  @font-face{font-family:'Sihage Rubik';src:url('/fonts/document/Rubik-Light.ttf') format('truetype');font-weight:300;font-style:normal;font-display:swap}
  @font-face{font-family:'Sihage Rubik';src:url('/fonts/document/Rubik-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
  @font-face{font-family:'Sihage Rubik';src:url('/fonts/document/Rubik-Medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
  @font-face{font-family:'Sihage Rubik';src:url('/fonts/document/Rubik-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
  @font-face{font-family:'Sihage Rubik';src:url('/fonts/document/Rubik-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
  @font-face{font-family:'Sihage Poppins';src:url('/fonts/document/Poppins-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}

  /* ================================================================
     SIHAGE Design System tokens — Canon (SIH-51, décidé le 2026-08-02)
     Le standard de la catégorie exécuté à pleine fidélité (barre de
     finition : Linear × TickTick) : canevas affirmé, tuiles blanches en
     premier plan, UN accent encre-lavée, pastilles vintage comme
     signature. Les noms historiques restent des alias.
     ================================================================ */
  :root{
    color-scheme:light dark;
    /* ── Surfaces ─────────────────────────────────────────── */
    --bg:#F7F7F5;          /* canevas clair du canon plat (décision Landry 2026-08-02) */
    --bg-2:#EFEFEC;        /* creux et plateaux */
    --surface:#FFFFFF;     /* tuiles et premier plan */
    --tile:var(--surface); /* alias STRUCTUREL : une tuile = UNE couleur, garanti par construction */
    --surface-2:#FAFAF8;   /* panneaux secondaires */
    --surface-3:#F1F1EF;
    --brand-ivory:#FFFFFF; /* l'ancien voile crème rejoint la tuile */
    --brand-color-fallback:#201F1D; /* couleur de marque absente : encre */
    --brand-tint-base:#181817; /* ancre sombre des surfaces teintées, accordée à la coque */
    --border:#E5E5E1;      /* filet fin : la structure sans la lourdeur */
    --border-strong:#CDCDC7;
    --scroll-pill-thumb:color-mix(in srgb,var(--ink) 38%,transparent);
    --scroll-pill-thumb-hover:color-mix(in srgb,var(--ink) 54%,transparent);
    --scroll-pill-thumb-active:color-mix(in srgb,var(--ink) 68%,transparent);
    --scroll-native-touch-thumb:color-mix(in srgb,var(--ink) 50%,transparent);
    /* Contrat d'interaction : un trait lisible au repos, puis plus net au survol.
       Les contours forts restent réservés au focus, à l'erreur et aux états structurants. */
    --border-soft:color-mix(in srgb,var(--border) 68%,var(--surface));
    --border-hover:var(--border);
    --popover-warm:color-mix(in srgb,var(--brand-ivory) 30%,var(--surface));
    --popover-warm-border:color-mix(in srgb,var(--accent) 16%,var(--surface));
    --hairline:var(--border);

    /* ── Encres ───────────────────────────────────────────── */
    --ink:#1A1A18;         /* information principale */
    --ink-2:#45443F;       /* corps */
    --ink-3:#6E6D66;       /* méta */
    --ink-4:#82817A;       /* placeholder */
    --ink-5:#CBCAC4;       /* désactivé / décoratif */
    --ink-inverse:#FFFFFF;

    /* ── Accent encre-lavée — la matière des pastilles ─────
       Fond teinté + encre sourde + bordure dédiée ; le trait fin
       (#5079A0) porte barres, liens et focus, où la poudre serait
       invisible. Décisions Landry 2026-08-01/02 (grain vintage
       atténué de 30 %). */
    --accent:#5079A0;
    --accent-2:#466685;
    --accent-soft:#B1CDE9;
    --accent-soft-hover:#A3C3E2; /* la teinte s'approfondit d'un cran au survol */
    --accent-soft-2:#8EB1D3;
    --accent-ink:#17324E;
    /* Rôles d'action — « l'action parle la matière pastille » a UN point
       d'expression ; tout bouton principal les consomme. */
    --action-bg:var(--accent-soft);
    --action-ink:var(--accent-ink);
    --action-border:var(--accent-soft-2);
    --action-bg-hover:var(--accent-soft-hover);

    /* ── Semantic — le même grain vintage que les pastilles ── */
    --good:#2E7A50;
    --good-2:#14402A;
    --good-soft:#AFD8BE;
    --good-ink:#14402A;
    --warn:#A8801E;
    --warn-2:#46320A;
    --warn-soft:#F0D48D;
    --warn-ink:#46320A;
    --bad:#A84A38;
    --bad-2:#571E12;
    --bad-soft:#E8BAB1;
    --bad-ink:#571E12;
    --info:#5079A0;
    --info-soft:#DCE7F2;
    --info-ink:#24476B;
    /* États murmurés : point + mot coloré, jamais de grand aplat. */
    --good-quiet:#256645;
    --warn-quiet:#6E5312;

    /* ── Pastilles métier — encres d'impression vintage ─────
       Moutarde, sauge, pétrole, prune (+ rôles CV / Lettre) : la
       signature qui se reconnaît sur une capture partagée. Fond
       teinté, encre sombre AA, bordure dédiée. */
    --tag-cyan:#A5CED6;   --tag-cyan-ink:#113A42;   --tag-cyan-border:#87B8C2;
    --tag-amber:#ECC67E;  --tag-amber-ink:#3F2C05;  --tag-amber-border:#D3B16B;
    --tag-violet:#C5B9E6; --tag-violet-ink:#2E1F55; --tag-violet-border:#AA9CD4;
    --tag-green:#AACFB5;  --tag-green-ink:#14402A;  --tag-green-border:#8EB89C;
    --doc-cv:#B1CDE9;     --doc-cv-ink:#17324E;     --doc-cv-border:#8EB1D3;
    --doc-letter:#E7B9A8; --doc-letter-ink:#4A1F12; --doc-letter-border:#D39D89;

    /* ── Sidebar encre — accord opaque à trois gris ─────────
       Une valeur stable vaut mieux qu'une surcouche recalculée selon
       son fond ; l'actif #393937 est PARTAGÉ (entrée, avatar, badge). */
    --sidebar-bg:#181817;
    --sidebar-bg-2:#2A2A29;
    --sidebar-fg:#E9E9E6;
    --sidebar-fg-muted:#B8B8B3;
    --sidebar-fg-strong:#F7F7F4;
    --sidebar-active:#393937;
    --sidebar-command-separator:#555553;
    /* L'accord à trois gris est GARANTI par référence, pas recopié. */
    --sidebar-divider:var(--sidebar-bg-2);
    --sidebar-hover:var(--sidebar-bg-2);
    --sidebar-command-bg:var(--sidebar-bg-2);
    --sidebar-command-border:var(--sidebar-bg-2);
    --sidebar-command-fg:var(--sidebar-fg-muted);
    --sidebar-command-hover-bg:var(--sidebar-active);
    --sidebar-command-hover-border:var(--sidebar-command-separator);

    /* ── Radii (modérés, jamais ronds sauf pills) ─────────── */
    --r-xs:3px; --r-sm:6px; --r:8px; --r-lg:10px; --r-xl:14px;

    /* ── Shadows — chaudes (rampe #141412), jamais bleues ────
       Ombre = mouvement ou superposition (canon PLAT : pas d'ombre
       de coque d'écran — décision 2026-08-02, DESIGN.md). */
    --shadow-xs: 0 1px 0 rgba(20,20,18,.04);
    --shadow-sm: 0 1px 2px rgba(20,20,18,.05), 0 1px 3px rgba(20,20,18,.04);
    --shadow: 0 1px 2px rgba(20,20,18,.05), 0 4px 8px -2px rgba(20,20,18,.06);
    --shadow-md: 0 2px 4px -1px rgba(20,20,18,.06), 0 4px 8px -2px rgba(20,20,18,.06);
    --shadow-lg: 0 4px 8px -2px rgba(20,20,18,.05), 0 12px 24px -4px rgba(20,20,18,.10);
    --shadow-popover:0 2px 8px rgba(20,20,18,.07),0 16px 38px -10px rgba(20,20,18,.20);
    --shadow-overlay:0 24px 60px rgba(20,20,18,.22);
    --shadow-accent:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);
    --surface-sunken:var(--surface-3);   /* valeur rendue (ex-bloc light) */
    --surface-elevated:var(--surface);   /* valeur rendue (ex-bloc light) */

    --sidebar-w: 280px;
    --sidebar-collapsed-w:72px;
    --asst-w: 0px;
    --account-popover-w:344px;
    --account-popover-shadow:0 18px 48px rgba(20,20,18,.18),0 4px 12px rgba(20,20,18,.08);

    /* ── Canonical DS aliases (mirror /projects/<DS>/colors_and_type.css)
       Components can use either family — values are identical.            */
    --slate-0:var(--surface); --slate-25:var(--surface-2); --slate-50:var(--bg); --slate-75:var(--bg-2);
    --slate-100:var(--border); --slate-150:var(--border-strong); --slate-200:color-mix(in srgb,var(--border) 76%,var(--surface)); --slate-300:color-mix(in srgb,var(--border-strong) 84%,var(--ink));
    --slate-400:var(--ink-4); --slate-500:var(--ink-3); --slate-600:var(--ink-3); --slate-700:var(--ink-2);
    --slate-800:var(--sidebar-bg-2); --slate-900:var(--sidebar-bg); --slate-950:var(--ink);

    --accent-50:var(--accent-soft); --accent-100:var(--accent-soft-2); --accent-200:color-mix(in srgb,var(--accent) 34%,white); --accent-300:color-mix(in srgb,var(--accent) 56%,white);
    --accent-400:color-mix(in srgb,var(--accent) 78%,white); --accent-500:var(--accent); --accent-600:var(--accent-2); --accent-700:var(--accent-ink);
    --accent-800:color-mix(in srgb,var(--accent-2) 84%,black); --accent-900:color-mix(in srgb,var(--accent-2) 92%,black);

    --success-50:var(--good-soft); --success-200:color-mix(in srgb,var(--good) 28%,var(--surface)); --success-500:var(--good); --success-600:var(--good-2); --success-700:var(--good-2); --success-soft:var(--good-soft);
    --warning-50:var(--warn-soft); --warning-200:color-mix(in srgb,var(--warn) 30%,var(--surface)); --warning-500:var(--warn); --warning-700:var(--warn-2);
    --danger-50:var(--bad-soft);  --danger-100:color-mix(in srgb,var(--bad) 16%,var(--surface)); --danger-200:color-mix(in srgb,var(--bad) 28%,var(--surface)); --danger-500:var(--bad); --danger-600:var(--bad-2); --danger-700:var(--bad-2);
    --info-50:var(--info-soft);    --info-500:var(--info);    --info-700:var(--info-ink);

    --bg-app:var(--slate-50); --bg-canvas:var(--slate-25);
    --bg-surface:var(--slate-0); --bg-subtle:var(--slate-75); --bg-muted:var(--slate-100);

    --fg-1:var(--slate-950); --fg-2:var(--slate-700); --fg-3:var(--slate-500);
    --fg-4:var(--slate-400); --fg-5:var(--slate-300);
    --fg-inverse:var(--ink-inverse); --fg-accent:var(--accent-600);

    --border-subtle:var(--slate-75); --border-default:var(--slate-100);
    --border-2:var(--border); --border-input:var(--slate-150); --border-input-hover:var(--slate-300);
    --border-focus:var(--accent-500); --divider:var(--slate-100);

    --radius-xs:3px; --radius-sm:6px; --radius-md:8px; --radius-lg:10px;
    --radius-xl:14px; --radius-2xl:18px; --radius-pill:999px;

    --space-2:4px; --space-3:8px; --space-4:12px; --space-5:16px;

    --ring-focus:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent);
    --scrim:rgba(24,23,21,.42);
    --ring-danger:0 0 0 3px color-mix(in srgb,var(--bad) 22%,transparent);

    --tracking-tight:-0.01em; --tracking-normal:0;
    --tracking-wide:0.04em;  --tracking-caps:0.08em;

    /* ── Typographie (tokens famille — le robinet central de la police UI ;
       les surfaces document (Rubik/Poppins, .rvdoc) restent indépendantes) ── */
    --font-sans:'Instrument Sans','Geist',ui-sans-serif,system-ui,sans-serif;
    --font-mono:'Geist Mono',ui-monospace,monospace;

    /* ── Motion (aligné sur colors_and_type.css — décélérations douces) ── */
    --ease-out:        cubic-bezier(0.16, 1, 0.3, 1);   /* hero ease — "water settling" */
    --ease-out-soft:   cubic-bezier(0.25, 1, 0.5, 1);   /* gentle deceleration */
    --ease-in-out:     cubic-bezier(0.65, 0, 0.35, 1);  /* symmetric motion */
    --ease-standard:   cubic-bezier(0.4, 0, 0.2, 1);    /* fallback / Material */
    --ease-emphasized: cubic-bezier(0.16, 1, 0.3, 1);   /* alias of --ease-out */
    --dur-instant: 80ms;
    --dur-fast: 180ms;
    --dur-base: 260ms;
    --dur-slow: 360ms;
    --dur-slower: 520ms;
  }

  /* ================================================================
     Modes globaux — les composants ne connaissent jamais le mode.
     Ils consomment seulement les rôles sémantiques ci-dessus.
     ================================================================ */
  [data-theme="light"]{
    /* Le canon (:root) EST le thème clair — plus de photocopie de 80
       déclarations à garder synchrone (leçon /simplify 2026-08-02 : trois
       divergences silencieuses s'y étaient déjà installées). Ce bloc ne
       porte que ce qui appartient réellement au mode. */
    color-scheme:light;
  }

  [data-theme="dark"]{
    color-scheme:dark;
    --bg:#080D11;
    --bg-2:#11171C;
    --surface:#181E24;
    --surface-2:#13191E;
    --surface-3:#222A31;
    --surface-sunken:#13191E;
    --surface-elevated:#222A31;
    --brand-ivory:#25241F;
    --border:#2A343C;
    --border-strong:#414E57;
    --ink:#F1F3F2;
    --ink-2:#B7C0BC;
    --ink-3:#818D87;
    --ink-4:#818D87;
    --ink-5:#4A5550;
    --ink-inverse:#080D11;
    --accent:#B8B1A6;
    --accent-2:#D8D3CA;
    --accent-soft:#2A2C2D;
    --accent-soft-hover:#333637;
    --accent-soft-2:#56544F;
    --accent-ink:#F1F3F2;
    --good:#79C6A5;--good-2:#A9DFC9;--good-soft:#19362B;--good-ink:#A9DFC9;--good-quiet:#8FD0B4;
    --warn:#E1B65F;--warn-2:#F1CB83;--warn-soft:#3B2E18;--warn-ink:#F1CB83;--warn-quiet:#E8C270;
    --bad:#E48A83;--bad-2:#F0AAA5;--bad-soft:#3D2323;--bad-ink:#F0AAA5;
    --info:#9DA9AF;--info-soft:#243139;--info-ink:#C4CED2;
    --tag-cyan:#183438;--tag-cyan-ink:#A7DDE1;--tag-cyan-border:#35656A;
    --tag-amber:#3B2E18;--tag-amber-ink:#F1CB83;--tag-amber-border:#765929;
    --tag-violet:#2D2942;--tag-violet-ink:#CBC4F2;--tag-violet-border:#5B5278;
    --tag-green:#19362B;--tag-green-ink:#A9DFC9;--tag-green-border:#356550;
    --doc-cv:#263943;--doc-cv-ink:#B8D5E0;--doc-cv-border:#456573;
    --doc-letter:#412D2A;--doc-letter-ink:#E8C0BA;--doc-letter-border:#704A45;
    --sidebar-bg:#080C10;--sidebar-bg-2:#202830;
    --sidebar-fg:#E7EBE9;--sidebar-fg-muted:#A5B0AB;--sidebar-fg-strong:#FFFFFF;
    --sidebar-divider:rgba(255,255,255,.11);
    --sidebar-hover:rgba(255,255,255,.08);
    --sidebar-active:#202830;
    --sidebar-command-bg:rgba(255,255,255,.07);
    --sidebar-command-border:rgba(255,255,255,.10);
    --sidebar-command-fg:rgba(255,255,255,.66);
    --sidebar-command-separator:rgba(255,255,255,.12);
    --sidebar-command-hover-bg:rgba(255,255,255,.13);
    --sidebar-command-hover-border:rgba(255,255,255,.20);
    --border-soft:color-mix(in srgb,var(--border) 72%,var(--surface));
    --border-hover:var(--border-strong);
    --popover-warm:color-mix(in srgb,var(--brand-ivory) 24%,var(--surface));
    --popover-warm-border:color-mix(in srgb,var(--accent) 24%,var(--surface));
    --scrim:rgba(0,0,0,.62);
    --scroll-pill-thumb:color-mix(in srgb,var(--ink) 34%,transparent);
    --scroll-pill-thumb-hover:color-mix(in srgb,var(--ink) 52%,transparent);
    --scroll-pill-thumb-active:color-mix(in srgb,var(--ink) 68%,transparent);
    --scroll-native-touch-thumb:color-mix(in srgb,var(--ink) 48%,transparent);
    --shadow-xs:0 1px 0 rgba(0,0,0,.28);
    --shadow-sm:0 1px 2px rgba(0,0,0,.30),0 2px 5px rgba(0,0,0,.16);
    --shadow:0 2px 4px rgba(0,0,0,.24),0 8px 18px -8px rgba(0,0,0,.50);
    --shadow-md:0 4px 10px rgba(0,0,0,.30),0 12px 24px -12px rgba(0,0,0,.56);
    --shadow-lg:0 10px 24px -8px rgba(0,0,0,.54),0 24px 48px -20px rgba(0,0,0,.72);
    --shadow-popover:0 8px 20px rgba(0,0,0,.42),0 24px 56px -16px rgba(0,0,0,.78);
    --shadow-overlay:0 28px 72px rgba(0,0,0,.62);
    --account-popover-shadow:var(--shadow-popover);
    --ring-focus:0 0 0 3px color-mix(in srgb,var(--accent) 34%,transparent);
    --ring-danger:0 0 0 3px color-mix(in srgb,var(--bad) 32%,transparent);
    --accent-50:var(--accent-soft);--accent-100:var(--accent-soft-2);
    --accent-200:color-mix(in srgb,var(--accent) 28%,var(--surface));
    --accent-300:color-mix(in srgb,var(--accent) 44%,var(--surface));
    --accent-400:color-mix(in srgb,var(--accent) 72%,var(--surface));
    --accent-800:color-mix(in srgb,var(--accent-2) 76%,var(--ink));
    --accent-900:color-mix(in srgb,var(--accent-2) 88%,var(--ink));
  }

  /* ── Canon SIH-51 · profondeur relative ──────────────────────────
     À l'intérieur d'un contexte tuile (carte, popover, modale), le rôle
     « creux » (--bg-2) se résout un cran plus haut — la surface de
     panneau — jamais au plateau : un puits interne ne doit jamais être
     plus sombre que le conteneur qui le porte. Le rempart document
     re-déclare ses propres valeurs et reste hors d'atteinte. */
  .card,.kc,.gk-card,.cve-vcard,.fm-file,.fm-folder,.vsk-paper,.aev-note-card,
  .cr-card,.lte-offer,.lte-proof,.vc-composer,.nav-carnet-popover,
  .modal,.cdet-modal2,.vc-carnet-modal,.display-modal,.ct-note-modal,.vw-modal,
  .profile-settings-modal,.memory-reinforce-modal,.vpf-section-modal,.in-modal,
  .cr-modal,.aev-modal,.jc-modal{
    /* Règle d'or : toute NOUVELLE tuile ou modale s'inscrit ici (ou porte
       une des classes canoniques .card / .modal) — sinon ses puits
       internes retombent silencieusement au niveau plateau. */
    --bg-2:var(--surface-2);
  }

  /* Les composants du Vault ont été construits par vagues successives : cette
     couche complète les rares couleurs directes encore présentes. Les cartes
     restent blanches et nettes ; la couleur ne sert qu'à donner un état ou un
     repère, jamais à teinter toute la surface. */
  .vault-view .vc-side,
  .vault-view .vc-side-head{background:var(--surface-2)}
  .vault-view .vc-side-head{border-color:var(--border)}
  .vault-view .vc-side .vc-carnet-item{
    background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-xs)
  }
  .vault-view .vc-side .vc-carnet-item:hover{
    background:color-mix(in srgb,var(--accent) 3%,var(--surface));
    border-color:var(--border-strong);box-shadow:var(--shadow-sm)
  }
  .vault-view .vc-side .vc-carnet-item.active{
    background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 48%,var(--border));
    box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)
  }
  .vault-view .vc-carnet-item.active .vc-contract,
  .vault-view .vc-list-item.active .cnt{
    background:color-mix(in srgb,var(--accent) 11%,var(--surface))
  }
  .vault-view .vc-banner:not([data-brand]){
    background:var(--surface);border-color:var(--border);box-shadow:none
  }
  .vault-view .vc-banner:not([data-brand]) .vc-banner-optbtn{color:var(--ink-3)}
  .vault-view .vc-banner:not([data-brand]) .vc-banner-optbtn:hover{
    background:var(--bg-2);color:var(--ink)
  }
  .vault-view .vc-carnet-new{background:var(--sidebar-bg);box-shadow:none}
  .vault-view .vc-carnet-new:hover{background:var(--sidebar-bg-2);filter:none}
  .vault-view .vcj{
    background:var(--surface-2);border:1px solid transparent
  }
  .vault-view .vcj:hover{background:var(--surface);border-color:var(--border)}
  .vault-view .vcj.open{background:var(--surface);border-color:var(--border-strong)}
  /* Sélections sur surface claire : le fond seul se perdait contre le rail. Le trait graphite
     reste volontairement doux ; il distingue l'état sans créer un nouveau bouton lourd. */
  .vault-view .vc-segthumb{
    background:color-mix(in srgb,var(--accent) 8%,var(--surface));
    border:1px solid color-mix(in srgb,var(--accent) 18%,var(--surface));
    box-shadow:var(--shadow-xs);
  }
  .vault-view .vc-tab:not(.on):hover{
    background-color:color-mix(in srgb,var(--accent) 6%,var(--surface));
  }
  /* Les choix de source restent compacts : au survol, une frontière douce répond au même
     langage que les onglets. L'option retenue garde son ancrage sombre, avec une lumière interne. */
  .vault-view .vjob-source-tabs button{
    border:1px solid transparent;
    transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);
  }
  .vault-view .vjob-source-tabs button:not(.on):hover{
    background:color-mix(in srgb,var(--accent) 6%,var(--surface));
    border-color:color-mix(in srgb,var(--accent) 16%,var(--surface));
  }
  .vault-view .vjob-source-tabs button.on{
    border-color:color-mix(in srgb,var(--sidebar-fg-strong) 18%,var(--sidebar-bg));
    box-shadow:inset 0 1px 0 color-mix(in srgb,var(--sidebar-fg-strong) 12%,transparent);
  }
  .vault-view .vcj-proof{background:var(--surface);border-color:var(--border)}
  .vault-view .vcj-ask{background:var(--surface);border-color:var(--border)}
  .vault-view .vc-structured--page .vc-rte{background:var(--surface)}
  .vault-view .vc-fmt-toolbar{
    background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-xs)
  }
  .vault-view .vc-fmt-toolbar button{color:var(--ink-3)}
  .vault-view .vc-fmt-toolbar button:hover{background:var(--accent-soft);color:var(--accent-ink)}
  .vault-view .vc-fmt-sep{background:var(--border)}
  .vault-view .vc-rte{color:var(--ink)}
  .vault-view .vc-rte:empty:before{color:var(--ink-4)}
  .vault-view .vc-rte blockquote{border-color:var(--accent);color:var(--ink-2)}
  .vault-view .vc-rte a{color:var(--accent-2)}


  /* ── Rempart document : les rendus recruteur (CV, lettre, synthèse,
     e-mail/message) restent sur les neutres standards quel que soit le thème
     de l'app — on ré-épingle les tokens neutres que leurs descendants
     consomment. Les thèmes de document (--doc-*) gardent la main. ───────── */
  .cve-cv,.lte-letter,.rvdoc,.lte-email,.lte-msg{
    color-scheme:light;
    --ink:#15171B;--ink-2:#393D45;--ink-3:#6B7079;--ink-4:#8B9098;--ink-5:#CFD4DB;
    --ink-inverse:#FFFFFF;--fg-inverse:#FFFFFF;
    --border:#E8EBEF;--border-strong:#DEE2E7;--hairline:#E8EBEF;
    --border-default:#E8EBEF;--border-subtle:#F0F2F5;--border-input:#DEE2E7;
    --bg:#F6F7F9;--bg-2:#F0F2F5;--surface:#FFFFFF;--surface-2:#FAFBFC;--surface-3:#F0F2F5;
    --accent:#5B574F;--accent-2:#3F3C36;--accent-soft:#EAE8E4;--accent-soft-2:#BDB8AE;--accent-ink:#35312C;
    --good:#2D7655;--good-2:#1E593F;--good-soft:#DCEEE2;--good-ink:#1E593F;
    --warn:#C69C43;--warn-2:#674A12;--warn-soft:#F2E8D0;--warn-ink:#674A12;
    --bad:#AB443F;--bad-2:#82302C;--bad-soft:#F4DFDB;--bad-ink:#82302C;
    --info:#566269;--info-soft:#E5EAE8;--info-ink:#3C4A4F;
    --shadow-xs:0 1px 0 rgba(16,24,40,.04);
    --shadow-sm:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.04);
    --shadow-md:0 2px 4px -1px rgba(16,24,40,.06),0 4px 8px -2px rgba(16,24,40,.06);
    --shadow-lg:0 4px 8px -2px rgba(16,24,40,.05),0 12px 24px -4px rgba(16,24,40,.10);
    --font-mono:'Geist Mono',ui-monospace,monospace;
  }

  /* La synthèse d'échange est elle aussi un document édité. Son canevas
     extérieur suit l'application, mais la feuille retrouve strictement la
     palette claire qui précédait le moteur de thème. */
  .ep-paper{
    color-scheme:light;
    --bg:#F3F4F3;--bg-2:#E8EAE8;--surface:#FFFFFF;--surface-2:#F7F8F7;--surface-3:#E1E4E2;
    --border:#C7CCC8;--border-strong:#9DA7A1;
    --ink:#0E1216;--ink-2:#282E32;--ink-3:#4C565B;--ink-4:#626D72;--ink-5:#C0C6C2;
    --ink-inverse:#FFFFFF;--fg-inverse:#FFFFFF;
    --accent:#5B574F;--accent-2:#3F3C36;--accent-soft:#EAE8E4;--accent-soft-2:#BDB8AE;--accent-ink:#35312C;
    --good:#2D7655;--good-2:#1E593F;--good-soft:#DCEEE2;--good-ink:#1E593F;
    --warn:#C69C43;--warn-2:#674A12;--warn-soft:#F2E8D0;--warn-ink:#674A12;
    --bad:#AB443F;--bad-2:#82302C;--bad-soft:#F4DFDB;--bad-ink:#82302C;
    --info:#566269;--info-soft:#E5EAE8;--info-ink:#3C4A4F;
    --shadow-xs:0 1px 0 rgba(16,24,40,.04);
    --shadow-sm:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.04);
    --shadow-md:0 2px 4px -1px rgba(16,24,40,.06),0 4px 8px -2px rgba(16,24,40,.06);
    --shadow-lg:0 4px 8px -2px rgba(16,24,40,.05),0 12px 24px -4px rgba(16,24,40,.10);
  }

  *{box-sizing:border-box}
  html,body{height:100%;margin:0;overflow:hidden;overscroll-behavior:none;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-weight:400;font-feature-settings:"cv11","ss01","ss03";font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
  /* Les contrôles de formulaire n'héritent pas de la police par défaut (UA Arial) :
     on les rattache au robinet central — toute règle plus spécifique garde la main. */
  button,input,optgroup,select,textarea{font-family:inherit}
  h1,h2,h3,h4,h5{margin:0;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
  h1{font-size:30px;line-height:1.1}
  h2{font-size:22px;line-height:1.15}
  h3{font-size:16px;line-height:1.25}
  h4{font-size:14px;line-height:1.3}
  h5{font-size:12px;line-height:1.3;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:500}
  p{margin:0;color:var(--ink-2);font-size:14px;line-height:1.55}
  hr{border:0;border-top:1px solid var(--border);margin:0}

  .mono{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-variant-numeric:tabular-nums}
  /* Instrument Serif retiré — le design system interdit l'italique décoratif. */
  .serif{font-family:var(--font-sans);font-style:normal;font-weight:600;letter-spacing:-.01em}

  /* ===== Top OS shell hint ===== */
  .os-shell{display:flex;height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;overflow:hidden;overscroll-behavior:none;background:var(--bg)}

  /* ===== Sidebar (dark slate, TickTick-inspired) ===== */
  .side{
    width:var(--sidebar-w);flex:0 0 var(--sidebar-w);
    background:var(--sidebar-bg);
    border-right:1px solid color-mix(in srgb,var(--sidebar-bg) 78%,var(--ink));
    color:var(--sidebar-fg);
    padding:12px 16px;
    display:flex;flex-direction:column;gap:10px;
    position:sticky;top:0;height:100vh;height:100dvh;overflow:visible;overscroll-behavior:contain;
    z-index:45;
  }
  /* ── Barres de défilement natives ─────────────────────────
     Sur desktop fin uniquement : le tactile/iPad garde l'indicateur OS natif. */
  @media (pointer:fine){
    *::-webkit-scrollbar{width:8px;height:8px}
    *::-webkit-scrollbar-thumb{background:var(--scroll-pill-thumb);border-radius:99px;border:2px solid transparent;background-clip:padding-box}
    *::-webkit-scrollbar-thumb:hover{background:var(--scroll-pill-thumb-hover)}
    *::-webkit-scrollbar-track{background:transparent}
    *::-webkit-scrollbar-corner{background:transparent}
    @supports not selector(::-webkit-scrollbar){
      *{scrollbar-width:thin;scrollbar-color:var(--scroll-pill-thumb) transparent}
    }
    .side::-webkit-scrollbar{width:6px}
    .side::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--sidebar-fg-strong) 28.000000000000004%,transparent);border-radius:99px}
  }

  /* Collapsed sidebar — rail mode */
  body[data-side="collapsed"] .side{
    width:var(--sidebar-collapsed-w);flex-basis:var(--sidebar-collapsed-w);padding:12px 10px;overflow:visible;gap:8px;
  }
  body[data-side="collapsed"] .side-brand{justify-content:center;padding:0;gap:0}
  body[data-side="collapsed"] .side-brand > div:not(.side-mark){display:none}
  body[data-side="collapsed"] .side-search{
    padding:0;justify-content:center;width:36px;height:36px;
    margin:0 auto;background:var(--sidebar-command-bg);border-color:var(--sidebar-command-border);
  }
  body[data-side="collapsed"] .side-search:hover{background:var(--sidebar-command-hover-bg);border-color:var(--sidebar-command-hover-border)}
  body[data-side="collapsed"] .side-search > span{display:none}
  body[data-side="collapsed"] .side-search svg{display:block}
  body[data-side="collapsed"] .nav{gap:2px;align-items:stretch}
  body[data-side="collapsed"] .nav > button,
  body[data-side="collapsed"] .nav-carnet-switcher > .nav-carnet-button{
    justify-content:center;padding:0;width:100%;height:38px;margin:0 auto;border-radius:8px;position:relative;
  }
  body[data-side="collapsed"] .nav > button .nav-ico{width:18px;height:18px}
  body[data-side="collapsed"] .nav > button .nav-ico svg{width:18px;height:18px}
  body[data-side="collapsed"] .side-search svg{width:14px;height:14px}
  body[data-side="collapsed"] .side-search-separator{width:36px;margin:0 auto}
  body[data-side="collapsed"] .side-mark{width:34px;height:34px;font-size:12px}
  body[data-side="collapsed"] .side-collapse{width:34px;height:34px}
  body[data-side="collapsed"] .nav > button > *:not(.nav-ico){display:none}
  body[data-side="collapsed"] .nav > button .nav-label{display:none}
  body[data-side="collapsed"] .nav-carnet-primary > *:not(.nav-ico),
  body[data-side="collapsed"] .nav-carnet-current{display:none}
  body[data-side="collapsed"] .nav-carnet-primary{width:100%;height:100%;justify-content:center;padding:0}
  .nav > button .nav-label-1l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block}
  .nav > button .nav-label-stack{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
  .nav > button .nav-sub-1l{font-size:10.5px;line-height:1.25;color:var(--sidebar-fg-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body[data-side="collapsed"] .nav > button .nav-label-stack{display:none}
  body[data-side="collapsed"] .nav > button[aria-current="page"],
  body[data-side="collapsed"] .nav-carnet-switcher > .nav-carnet-button.is-active{
    background:var(--sidebar-active);color:var(--sidebar-fg-strong);
  }
  body[data-side="collapsed"] .nav > button[aria-current="page"] .nav-ico,
  body[data-side="collapsed"] .nav-carnet-switcher > .nav-carnet-button.is-active .nav-ico{color:var(--sidebar-fg-strong)}
  body[data-side="collapsed"] .boards-tree{display:none}
  body[data-side="collapsed"] .side-foot{margin-top:auto}
  body[data-side="collapsed"] .me{
    justify-content:center;padding:4px;width:38px;height:38px;margin:0 auto;
    background:transparent;border-color:transparent;
  }
  body[data-side="collapsed"] .me .av{width:26px;height:26px;font-size:11px;border-radius:6px}
  body[data-side="collapsed"] .me .lbl,
  body[data-side="collapsed"] .me .me-menu-cue{display:none}

  /* Rail tooltips (dark sidebar context) */
  body[data-side="collapsed"] .nav > button[data-tip],
  body[data-side="collapsed"] .nav-carnet-switcher > .nav-carnet-button[data-tip],
  body[data-side="collapsed"] .side-foot-btn[data-tip],
  body[data-side="collapsed"] .side-search[data-tip],
  body[data-side="collapsed"] .me[data-tip]{position:relative}
  body[data-side="collapsed"] .nav > button[data-tip]::after,
  body[data-side="collapsed"] .nav-carnet-switcher > .nav-carnet-button[data-tip]::after,
  body[data-side="collapsed"] .side-foot-btn[data-tip]::after,
  body[data-side="collapsed"] .side-search[data-tip]::after,
  body[data-side="collapsed"] .me[data-tip]::after{
    content:attr(data-tip);
    position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);
    background:var(--ink);color:var(--fg-inverse);font-size:11.5px;font-weight:500;
    padding:5px 9px;border-radius:6px;white-space:nowrap;pointer-events:none;
    opacity:0;transition: opacity var(--dur-fast) var(--ease-out);z-index:99999;box-shadow:var(--shadow-md);
  }
  body[data-side="collapsed"] .nav > button[data-tip]::before,
  body[data-side="collapsed"] .nav-carnet-switcher > .nav-carnet-button[data-tip]::before,
  body[data-side="collapsed"] .side-foot-btn[data-tip]::before,
  body[data-side="collapsed"] .side-search[data-tip]::before,
  body[data-side="collapsed"] .me[data-tip]::before{
    content:"";position:absolute;left:calc(100% + 6px);top:50%;transform:translateY(-50%);
    border:5px solid transparent;border-right-color:var(--ink);
    opacity:0;transition: opacity var(--dur-fast) var(--ease-out);z-index:99999;pointer-events:none;
  }
  /* Ensure hovered rail item rises above siblings */
  body[data-side="collapsed"] .nav > button[data-tip]:hover,
  body[data-side="collapsed"] .nav-carnet-switcher > .nav-carnet-button[data-tip]:hover,
  body[data-side="collapsed"] .side-foot-btn[data-tip]:hover,
  body[data-side="collapsed"] .side-search[data-tip]:hover,
  body[data-side="collapsed"] .me[data-tip]:hover{z-index:99999;position:relative}
  body[data-side="collapsed"] .nav > button[data-tip]:hover::after,
  body[data-side="collapsed"] .nav-carnet-switcher > .nav-carnet-button[data-tip]:hover::after,
  body[data-side="collapsed"] .side-foot-btn[data-tip]:hover::after,
  body[data-side="collapsed"] .nav > button[data-tip]:hover::before,
  body[data-side="collapsed"] .nav-carnet-switcher > .nav-carnet-button[data-tip]:hover::before,
  body[data-side="collapsed"] .side-foot-btn[data-tip]:hover::before,
  body[data-side="collapsed"] .side-search[data-tip]:hover::after,
  body[data-side="collapsed"] .side-search[data-tip]:hover::before,
  body[data-side="collapsed"] .me[data-tip]:hover::after,
  body[data-side="collapsed"] .me[data-tip]:hover::before{opacity:1}
  /* Removed: topbar side-toggle */


  /* ===== Todo card (sidebar) ===== */
  
  .todo-head{display:flex;align-items:center;gap:8px}
  .todo-head .badge-acc{
    margin-left:auto;font-family:var(--font-mono);font-size:10px;
    background:var(--accent);color:var(--fg-inverse);padding:2px 7px;border-radius:99px;font-weight:600;
  }
  .todo-head .title{font-size:13px;font-weight:600;color:var(--sidebar-fg-strong);display:flex;align-items:center;gap:6px}
  .todo-list{display:flex;flex-direction:column;gap:5px}
  .todo-item{
    display:flex;align-items:flex-start;gap:8px;padding:7px 8px;
    background:color-mix(in srgb,var(--fg-inverse) 4%,transparent);border:1px solid var(--sidebar-divider);
    border-radius:8px;cursor:pointer;transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
  }
  .todo-item:hover{background:color-mix(in srgb,var(--fg-inverse) 7.000000000000001%,transparent);border-color:color-mix(in srgb,var(--fg-inverse) 12%,transparent)}
  .todo-check{
    width:16px;height:16px;border-radius:6px;border:1.5px solid var(--accent);
    background:transparent;flex:0 0 auto;margin-top:1px;display:grid;place-items:center;
    color:var(--sidebar-fg-strong);
  }
  .todo-item.done .todo-check{background:var(--accent);border-color:var(--accent)}
  .todo-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
  .todo-body .t{font-size:12.5px;font-weight:500;color:var(--sidebar-fg-strong);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .todo-body .s{font-size:10.5px;color:var(--sidebar-fg-muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;gap:5px}
  .todo-body .s .lbl-dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.6}
  .todo-item.done .todo-body .t{text-decoration:line-through;color:var(--sidebar-fg-muted)}
  .todo-pri{width:3px;border-radius:99px;flex:0 0 auto;align-self:stretch;background:var(--accent)}
  .todo-pri.med{background:var(--warn)}
  .todo-pri.low{background:var(--sidebar-fg-muted)}
  
  
  
  
  
  
  
  .side-brand{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 4px 12px;position:relative}
  .side-brand-text{display:flex;flex-direction:column;line-height:1.1;flex:1;min-width:0;overflow:hidden}
  .side-collapse{
    width:28px;height:28px;border:1px solid transparent;background-color:transparent;
    border-radius:8px;display:grid;place-items:center;cursor:pointer;color:var(--sidebar-fg-muted);
    padding:0;flex:0 0 auto;transform:scale(1);
    transition:color var(--dur-fast) var(--ease-out),
               background-color var(--dur-fast) var(--ease-out),
               opacity var(--dur-fast) var(--ease-out),
               transform var(--dur-base) var(--ease-out);
  }
  .side-collapse:hover{color:var(--sidebar-fg-strong);background-color:var(--sidebar-hover)}
  .side-collapse:active{background-color:color-mix(in srgb,var(--sidebar-fg-strong) 12%,transparent);transform:scale(0.92)}
  .side-collapse:focus-visible{outline:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent),0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent)}

  /* Tooltip riche (label + raccourci) — style Perplexity */
  .side-collapse-tip{
    position:absolute;top:calc(100% + 9px);right:0;
    display:flex;flex-direction:column;gap:3px;align-items:flex-start;
    background:var(--ink);color:var(--fg-inverse);padding:8px 11px;border-radius:8px;
    white-space:nowrap;line-height:1.25;box-shadow:var(--shadow-lg);
    opacity:0;pointer-events:none;z-index:99999;transform:translateY(-3px);
    transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
  }
  .side-collapse-tip .lbl{font-size:12.5px;font-weight:600;letter-spacing:.01em}
  .side-collapse-tip .kbd{font-family:var(--font-mono);font-size:11px;color:var(--sidebar-fg-muted)}
  .side-collapse:hover .side-collapse-tip{opacity:1;transform:translateY(0)}
  body[data-side="collapsed"] .side-collapse-tip{
    top:50%;right:auto;left:calc(100% + 12px);transform:translateY(-50%) translateX(-3px);
  }
  body[data-side="collapsed"] .side-collapse:hover .side-collapse-tip{transform:translateY(-50%) translateX(0)}

  /* Collapsed (rail) — logo by default, swaps to expand button on hover (Perplexity-style) */
  body[data-side="collapsed"] .side-brand{
    position:relative;width:38px;height:34px;margin:0 auto;padding:0;
    flex-direction:row;justify-content:center;align-items:center;gap:0;
  }
  body[data-side="collapsed"] .side-brand-text{display:none}
  body[data-side="collapsed"] .side-mark{
    position:absolute;inset:0;margin:auto;width:28px;height:28px;
    transition:opacity var(--dur-fast) var(--ease-out);
  }
  body[data-side="collapsed"] .side-collapse{
    position:absolute;inset:0;margin:auto;width:38px;height:34px;
    opacity:0;pointer-events:none;
  }
  body[data-side="collapsed"] .side-brand:hover .side-mark{opacity:0}
  body[data-side="collapsed"] .side-brand:hover .side-collapse{opacity:1;pointer-events:auto}
  /* side-mark — désormais rendu par l'asset image du DS ; aucun texte ni fond nécessaire */
  .side-mark{
    width:38px;height:38px;
    flex:0 0 auto;display:block;
  }
  .side-name{font-weight:650;font-size:14px;line-height:1.2;color:var(--sidebar-fg-strong);letter-spacing:.01em}
  .side-subtitle{font-size:10.5px;color:var(--sidebar-fg-muted);margin-top:2px;white-space:nowrap}
  .side-search{
    display:flex;align-items:center;gap:8px;width:calc(100% - 4px);height:35px;margin:0 2px;padding:7px 10px;
    background:var(--sidebar-command-bg);border:1px solid var(--sidebar-command-border);border-radius:8px;
    font-family:inherit;font-size:12.5px;font-weight:400;text-align:left;color:var(--sidebar-command-fg);cursor:pointer;
    transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);
  }
  .side-search:hover{background:var(--sidebar-command-hover-bg);border-color:var(--sidebar-command-hover-border);color:var(--sidebar-fg)}
  .side-search:focus-visible{outline:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent),0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent)}
  .side-search .k{margin-left:auto;font-family:inherit;font-size:10.5px;font-weight:400;line-height:16px;color:inherit;border:1px solid var(--sidebar-command-separator);padding:1px 5px;border-radius:6px}
  .side-search-separator{height:1px;margin:0 6px;background:var(--sidebar-command-separator);flex:0 0 auto}
  .nav{display:flex;flex-direction:column;gap:3px;margin-top:0;position:relative;flex:0 0 auto;min-height:0;overflow:visible}
  .side-brand,.side-search{flex:0 0 auto}
  .side-foot{flex:0 0 auto}
  .nav-section-label{padding:10px 10px 5px;font-family:var(--font-mono);font-size:9px;font-weight:600;line-height:1;letter-spacing:.09em;text-transform:uppercase;color:var(--sidebar-fg-muted)}
  body[data-side="collapsed"] .nav-section-label{height:12px;padding:0;font-size:0}
  .nav-profile{margin-top:0}
  /* Topbar sidebar toggle button */
  
  
  
  
  
  

  .nav > button,.nav-carnet-switcher > .nav-carnet-button{
    display:flex;align-items:center;gap:10px;width:100%;text-align:left;
    padding:0 10px;border:0;background-color:transparent;border-radius:8px;
    font:inherit;font-size:13px;color:var(--sidebar-fg);font-weight:500;cursor:pointer;
    height:38px;transform:scale(1);
    transition:background-color var(--dur-fast) var(--ease-out),
               color var(--dur-fast) var(--ease-out),
               transform var(--dur-base) var(--ease-out),
               box-shadow var(--dur-fast) var(--ease-out);
  }
  .nav > button:hover,.nav-carnet-switcher > .nav-carnet-button:hover{background-color:var(--sidebar-hover);color:var(--sidebar-fg-strong)}
  .nav > button:active,.nav-carnet-primary:active{background-color:color-mix(in srgb,var(--fg-inverse) 10%,transparent);color:var(--sidebar-fg-strong);transform:scale(0.965)}
  .nav > button:focus-visible,.nav-carnet-primary:focus-visible,.nav-carnet-current:focus-visible{outline:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent),0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent)}
  .nav > button[aria-current="page"],.nav-carnet-switcher > .nav-carnet-button.is-active{background-color:var(--sidebar-active);color:var(--sidebar-fg-strong)}
  .nav > button[aria-current="page"] .nav-ico,.nav-carnet-switcher > .nav-carnet-button.is-active .nav-ico{color:var(--sidebar-fg-strong)}
  .nav > button .nav-ico,.nav-carnet-switcher > .nav-carnet-button .nav-ico{width:18px;height:18px;display:grid;place-items:center;color:var(--sidebar-fg);flex:0 0 auto}
  .nav > button .badge{margin-left:auto;font-family:var(--font-mono);font-size:10px;background:var(--sidebar-bg-2);color:var(--sidebar-fg-muted);border:0;padding:1px 6px;border-radius:3px;font-weight:500}
  .nav > button[aria-current="page"] .badge{background:var(--sidebar-active);color:var(--sidebar-fg-strong)}
  .nav > button .badge.alert{background:var(--accent);color:var(--fg-inverse)}

  /* Switcher « un carnet à la fois » : le rail montre le carnet courant, la bibliothèque
     complète reste disponible dans un panneau temporaire. */
  .nav-carnet-switcher{position:relative;width:100%}
  /* Canon SIH-51 : la coque n'a qu'UNE matière — des gris opaques, plus
     de voiles crème ni de translucides recalculés selon le fond. */
  .nav-memory-group{margin-top:4px;padding:7px 5px 5px;border:1px solid var(--sidebar-active);border-radius:10px;background:var(--sidebar-bg-2)}
  .nav-memory-group > .nav-section-label{display:block;padding:0 5px 6px;color:var(--sidebar-fg-muted)}
  .nav-carnet-switcher > .nav-carnet-button{height:48px;gap:0;border-radius:8px;background:transparent;padding:0 7px 0 0}
  .nav-carnet-primary{display:flex;align-items:center;gap:0;min-width:0;flex:1;height:100%;padding:0 3px 0 10px;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),transform var(--dur-base) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
  .nav .nav-carnet-button .nav-carnet-icon{width:32px;min-width:32px;height:36px;min-height:36px;flex:0 0 32px;border-radius:8px;background:transparent;color:var(--sidebar-fg)}
  .nav-carnet-button .nav-carnet-icon svg{width:30px;height:30px}
  .nav-carnet-button .nav-label-stack{display:flex;flex:1;min-width:0;flex-direction:column;gap:1px}
  .nav-carnet-button .nav-label-1l{font-weight:650;line-height:1.2}
  .nav-carnet-button .nav-sub-1l{font-size:10px;line-height:1.3;color:var(--sidebar-fg-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .nav-carnet-current{position:relative;width:28px;height:28px;padding:1px;border:0;border-radius:8px;background:transparent;display:grid;place-items:center;flex:0 0 auto;cursor:pointer}
  .nav-carnet-current .vc-carnet-logo{border-color:color-mix(in srgb,var(--brand-ivory) 22%,transparent);box-shadow:none}
  .nav-carnet-current:hover .vc-carnet-logo,.nav-carnet-current[aria-expanded="true"] .vc-carnet-logo{border-color:color-mix(in srgb,var(--brand-ivory) 58%,transparent);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-ivory) 16%,transparent)}
  .nav-carnet-current-tip{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);width:max-content;padding:5px 8px;border-radius:6px;background:var(--ink);color:var(--fg-inverse);font-size:10.5px;font-weight:500;line-height:1.2;opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out);z-index:95;box-shadow:var(--shadow-md)}
  .nav-carnet-current:hover .nav-carnet-current-tip,.nav-carnet-current:focus-visible .nav-carnet-current-tip{opacity:1}
  .nav-carnet-current .vc-carnet-logo.has-img img,.nav-carnet-mini .vc-carnet-logo.has-img img{object-fit:contain;padding:3px}
  body[data-side="collapsed"] .nav-memory-group{margin:3px 0;padding:4px;border-color:color-mix(in srgb,var(--brand-ivory) 28%,transparent);background:color-mix(in srgb,var(--brand-ivory) 6%,transparent)}
  body[data-side="collapsed"] .nav-memory-group > .nav-section-label{display:none}
  body[data-side="collapsed"] .nav .nav-carnet-button .nav-carnet-icon{width:32px;min-width:32px;height:36px;min-height:36px;flex-basis:32px}
  body[data-side="collapsed"] .nav-carnet-button .nav-carnet-icon svg{width:30px;height:30px}

  .nav-carnet-popover{position:fixed;width:346px;z-index:90;display:flex;min-height:0;flex-direction:column;overflow:visible;background:var(--popover-warm);color:var(--ink);border:1px solid var(--popover-warm-border);border-radius:var(--radius-lg);box-shadow:var(--account-popover-shadow)}
  .nav-carnet-pop-header{flex:0 0 auto;padding:var(--space-4) var(--space-4) var(--space-3)}
  .nav-carnet-pop-title{display:flex;align-items:center;padding:0 0 var(--space-3)}
  .nav-carnet-pop-title strong{font-size:12.5px}
  .nav-carnet-pop-title span{margin-left:auto;font-size:10px;color:var(--ink-4)}
  .nav-carnet-search{display:flex;align-items:center;gap:var(--space-3);margin:0;padding:7px 9px;background:color-mix(in srgb,var(--surface) 72%,var(--brand-ivory));color:var(--ink-4);border:1px solid var(--popover-warm-border);border-radius:var(--radius-md)}
  .nav-carnet-search:focus-within{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .nav-carnet-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font:12px/1.4 var(--font-sans)}
  .nav-carnet-search input::placeholder{color:var(--ink-4)}
  .nav-carnet-list{flex:0 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:0 var(--space-3) var(--space-3)}
  .nav-carnet-family{padding:8px 10px 3px;font-family:var(--font-mono);font-size:9px;font-weight:600;line-height:1;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4)}
  .nav-carnet-option{display:flex;align-items:center;gap:10px;width:100%;min-height:47px;padding:8px 9px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
  .nav-carnet-option:hover{background:var(--bg-2)}
  .nav-carnet-option:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
  .nav-carnet-option[aria-selected="true"]{background:var(--bg-2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--border-strong)}
  .nav-carnet-mini{width:31px;height:31px;display:grid;place-items:center;flex:0 0 auto}
  .nav-carnet-option[aria-selected="true"] .nav-carnet-mini .vc-carnet-logo{border-color:var(--popover-warm-border)}
  .nav-carnet-option-copy{display:flex;flex:1;min-width:0;flex-direction:column}
  .nav-carnet-option-copy strong,.nav-carnet-option-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .nav-carnet-option-copy strong{font-size:12.5px}
  .nav-carnet-option-copy span{margin-top:1px;color:var(--ink-4);font-size:10.5px}
  .nav-carnet-check{display:grid;place-items:center;color:var(--ink-2);opacity:0}
  .nav-carnet-option[aria-selected="true"] .nav-carnet-check{opacity:1}
  .nav-carnet-empty{padding:24px 12px;text-align:center;color:var(--ink-4);font-size:12px}
  .nav-carnet-create{position:relative;flex:0 0 auto;margin:0 var(--space-3);padding:var(--space-2) 0 var(--space-3);border-top:1px solid var(--popover-warm-border)}
  .nav-carnet-new{display:flex;align-items:center;gap:9px;width:100%;padding:9px var(--space-2) 7px;border:0;background:transparent;color:var(--ink-3);font:600 12px/1.4 var(--font-sans);text-align:left;cursor:pointer}
  .nav-carnet-new:hover{background:var(--bg-2);color:var(--ink);border-radius:8px}
  .nav-carnet-new:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
  .nav-carnet-create-menu{position:absolute;left:0;right:0;bottom:calc(100% + 4px);z-index:2;display:flex;flex-direction:column;gap:2px;padding:5px;background:var(--popover-warm);border:1px solid var(--popover-warm-border);border-radius:10px;box-shadow:var(--shadow-popover)}
  .nav-carnet-create-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 9px;border:0;border-radius:8px;background:transparent;color:var(--ink-3);font:inherit;text-align:left;cursor:pointer}
  .nav-carnet-create-menu button:hover{background:var(--bg-2);color:var(--ink)}
  .nav-carnet-create-menu button > span{display:flex;min-width:0;flex-direction:column}
  .nav-carnet-create-menu strong{font-size:12.5px;color:var(--ink)}
  .nav-carnet-create-menu small{font-size:10.5px;color:var(--ink-4)}

  /* Boards tree (sub-boards) — inside dark sidebar */
  .boards-tree{display:flex;flex-direction:column;gap:1px;margin-top:2px}
  .board-item{
    display:flex;align-items:center;gap:8px;width:100%;
    padding:6px 10px;border:0;background-color:transparent;border-radius:6px;
    font:inherit;font-size:12.5px;color:var(--sidebar-fg);font-weight:500;cursor:pointer;text-align:left;
    position:relative;transform:scale(1);
    transition:background-color var(--dur-fast) var(--ease-out),
               color var(--dur-fast) var(--ease-out),
               transform var(--dur-base) var(--ease-out);
  }
  .board-item:hover{background-color:var(--sidebar-hover);color:var(--sidebar-fg-strong)}
  .board-item:active{background-color:var(--sidebar-active);transform:scale(0.97)}
  .board-item:focus-visible{outline:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent),0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent)}
  .board-item.pinned{color:var(--sidebar-fg-strong)}
  .board-item.active{background:var(--sidebar-active);color:var(--sidebar-fg-strong)}
  .board-item.archived{color:var(--sidebar-fg-muted);font-weight:400}
  .board-item .chev{
    width:14px;height:14px;display:grid;place-items:center;color:var(--sidebar-fg-muted);
    flex:0 0 auto;transition: transform var(--dur-fast) var(--ease-out);font-size:11px;line-height:1;
  }
  .board-item .chev.open{transform:rotate(90deg)}
  .board-item .chev.empty{visibility:hidden}
  .board-item .b-ico{width:14px;height:14px;display:grid;place-items:center;color:var(--sidebar-fg-muted);flex:0 0 auto}
  .board-item.pinned .b-ico{color:var(--accent-300, #82A5DA)}
  .board-item.active .b-ico{color:var(--sidebar-fg-strong)}
  .board-item .b-lbl{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .board-item .b-cnt{
    font-family:var(--font-mono);font-size:10px;color:var(--sidebar-fg-muted);
    background:var(--sidebar-bg-2);border:0;padding:1px 6px;border-radius:3px;
    flex:0 0 auto;
  }
  .board-item.active .b-cnt{background:var(--sidebar-command-separator);color:var(--sidebar-fg-strong)}
  .board-children{
    display:flex;flex-direction:column;gap:1px;padding-left:10px;
    margin:2px 0 4px 14px;border-left:1.5px solid var(--sidebar-divider);
  }
  .board-item.sub{padding:5px 8px;font-size:12px;font-weight:400;color:var(--sidebar-fg-muted)}
  .board-item.sub.active{color:var(--sidebar-fg-strong);font-weight:500;background:var(--sidebar-active)}
  .board-item.sub:hover{background:var(--sidebar-hover);color:var(--sidebar-fg)}
  .board-item.sub .b-cnt{font-size:9.5px;padding:0 5px}
  .board-add{
    display:flex;align-items:center;gap:8px;width:100%;
    padding:6px 10px;border:0;background:transparent;border-radius:6px;
    font:inherit;font-size:12px;color:var(--sidebar-fg-muted);cursor:pointer;text-align:left;
  }
  .board-add:hover{background:var(--sidebar-hover);color:var(--sidebar-fg)}
  .side-foot{margin-top:auto;display:flex;flex-direction:column;gap:5px}
  .side-foot-actions{display:flex;flex-direction:column;gap:3px;padding-top:9px;margin-top:8px;border-top:1px solid var(--sidebar-divider)}
  .side-foot-btn{
    display:flex;align-items:center;gap:10px;width:100%;text-align:left;
    padding:0 10px;border:0;background-color:transparent;border-radius:8px;
    font:inherit;font-size:13px;color:var(--sidebar-fg);font-weight:500;cursor:pointer;
    height:38px;
    transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);
  }
  .side-foot-btn:hover{background-color:var(--sidebar-hover);color:var(--sidebar-fg-strong)}
  .side-foot-btn:disabled{opacity:1;cursor:default}
  .side-foot-btn:disabled:hover{background:transparent;color:var(--sidebar-fg)}
  .side-foot-btn:active{background-color:color-mix(in srgb,var(--sidebar-fg-strong) 10%,transparent);color:var(--sidebar-fg-strong)}
  .side-foot-btn:focus-visible{outline:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent),0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent)}
  .side-foot-btn .nav-ico{width:16px;height:16px;display:grid;place-items:center;color:var(--sidebar-fg);flex:0 0 auto}
  .side-foot-btn:hover .nav-ico{color:var(--sidebar-fg-strong)}
  .side-foot-btn .badge{margin-left:auto;font-family:var(--font-mono);font-size:10px;border:0;padding:1px 6px;border-radius:3px;font-weight:600}
  .side-foot-btn .badge.alert{background:var(--accent);color:var(--fg-inverse)}
  body[data-side="collapsed"] .side-foot-btn{justify-content:center;padding:0;width:100%;height:38px;margin:0 auto;border-radius:8px;position:relative}
  body[data-side="collapsed"] .side-foot-btn .nav-label{display:none}
  body[data-side="collapsed"] .side-foot-btn .badge{position:absolute;top:3px;right:3px;margin:0;padding:0;width:7px;height:7px;min-width:0;border-radius:50%;font-size:0;line-height:0;overflow:hidden}
  .me{
    display:flex;align-items:center;gap:10px;padding:8px;border-radius:8px;
    background:transparent;border:1px solid var(--sidebar-divider);
    color:var(--sidebar-fg);
    transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
  }
  .me:hover,
  .me[aria-expanded="true"]{background:var(--sidebar-hover);border-color:var(--sidebar-command-separator);box-shadow:none}
  .me:focus-visible{outline:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent),0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent)}
  .me .av{width:30px;height:30px;border:1px solid var(--sidebar-command-separator);border-radius:var(--radius-md);background:var(--sidebar-active);color:var(--sidebar-fg-strong);display:grid;place-items:center;font-weight:600;font-size:11px;overflow:hidden}
  .me .av.has-photo,.usp-av.has-photo{background:var(--surface)}
  .me .av.has-photo>img,.usp-av.has-photo>img{width:100%;height:100%;border-radius:inherit;object-fit:cover;display:block}
  .me .lbl{display:flex;flex-direction:column;line-height:1.15;min-width:0;flex:1}
  .me .lbl .n{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--sidebar-fg-strong)}
  .me .lbl .e{font-family:var(--font-mono);font-size:10px;color:var(--sidebar-fg-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .me-menu-cue{
    width:22px;height:22px;border-radius:6px;display:grid;place-items:center;flex:0 0 auto;
    color:var(--sidebar-fg-muted);background:var(--sidebar-bg-2);
  }
  .me:hover .me-menu-cue,
  .me[aria-expanded="true"] .me-menu-cue{color:var(--sidebar-fg-strong);background:var(--sidebar-active)}
  body[data-side="expanded"] .me[data-tip]::after{
    content:attr(data-tip);position:absolute;right:8px;bottom:calc(100% + 9px);
    background:var(--ink);color:var(--fg-inverse);font-size:11.5px;font-weight:500;
    padding:5px 9px;border-radius:6px;white-space:nowrap;pointer-events:none;
    opacity:0;transform:translateY(2px);transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);
    z-index:70;box-shadow:var(--shadow-md);
  }
  body[data-side="expanded"] .me[data-tip]::before{
    content:"";position:absolute;right:15px;bottom:calc(100% + 4px);
    border:5px solid transparent;border-top-color:var(--ink);
    opacity:0;transition:opacity var(--dur-fast) var(--ease-out);z-index:70;pointer-events:none;
  }
  body[data-side="expanded"] .me[data-tip]:hover::after{opacity:1;transform:translateY(0)}
  body[data-side="expanded"] .me[data-tip]:hover::before{opacity:1}
  body[data-side="expanded"] .me[aria-expanded="true"]::after,
  body[data-side="expanded"] .me[aria-expanded="true"]::before{display:none}

  /* User profile switcher popover */
  .user-switch-pop{position:fixed;width:var(--account-popover-w);display:flex;min-height:0;flex-direction:column;overflow:visible;background:var(--popover-warm);color:var(--ink);border:1px solid var(--popover-warm-border);border-radius:var(--radius-xl);padding:8px;box-shadow:var(--account-popover-shadow);z-index:80}
  .usp-eyebrow{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--sidebar-fg-muted);padding:5px 8px 6px}
  .usp-head{display:flex;align-items:center;gap:10px;flex:0 0 auto;padding:9px 10px 12px;margin-bottom:4px;border-bottom:1px solid var(--popover-warm-border)}
  /* Positionnement seulement : le visuel vient de l'atome .ui-close-button. */
  .usp-close{margin-left:auto;flex:0 0 auto}
  .usp-menu-body{flex:0 1 auto;min-height:0;padding:2px 0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
  .usp-item{display:flex;align-items:center;gap:10px;width:100%;min-height:42px;text-align:left;padding:9px 10px;border:0;background:transparent;border-radius:8px;cursor:pointer;font:inherit;color:var(--ink-2);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .usp-item:hover{background:var(--bg-2);color:var(--ink)}
  .usp-item.on{background:var(--accent-soft);color:var(--accent-ink)}
  .usp-av{width:34px;height:34px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--accent);color:var(--fg-inverse);display:grid;place-items:center;font-weight:600;font-size:11px;flex:0 0 auto;overflow:hidden}
  .usp-icon{width:24px;height:24px;border-radius:6px;background:color-mix(in srgb,var(--brand-ivory) 72%,var(--surface));color:var(--ink-3);display:grid;place-items:center;flex:0 0 auto;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .usp-item:hover .usp-icon{color:var(--ink);background:var(--surface)}
  .usp-body{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
  .usp-body .nm{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .usp-body .rl{font-family:var(--font-mono);font-size:9.5px;color:var(--ink-4);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .usp-item > svg{color:var(--ink-4);flex:0 0 auto}
  .usp-item:hover > svg{color:var(--ink)}
  .usp-sep{height:1px;background:var(--popover-warm-border);margin:6px 10px}
  .usp-all-settings{border:0;background:transparent}
  .usp-all-settings .usp-icon{color:var(--ink-3);background:color-mix(in srgb,var(--brand-ivory) 72%,var(--surface))}
  .usp-all-settings:hover{background:var(--bg-2)}
  .usp-danger{color:var(--bad)}
  .usp-danger .usp-body .nm{color:var(--bad)}
  .usp-danger .usp-icon{color:var(--bad);background:var(--bad-soft)}
  .usp-danger:hover{color:var(--bad);background:var(--bad-soft)}
  .usp-danger:hover .usp-icon{color:var(--bad);background:var(--bad-soft)}
  .usp-foot{flex:0 0 auto;font-size:10px;color:var(--ink-4);padding:10px 10px 6px;border-top:1px solid var(--popover-warm-border);margin-top:5px;line-height:1.6}
  .usp-foot [aria-disabled="true"]{color:var(--ink-3)}
  body[data-side="collapsed"] .user-switch-pop{width:var(--account-popover-w)}
  body[data-side="collapsed"] .me[aria-expanded="true"]::before,
  body[data-side="collapsed"] .me[aria-expanded="true"]::after{display:none}

  .settings-signout-btn:hover{
    background:var(--danger-50)!important;
    color:var(--bad)!important;
  }
  .settings-signout-btn:hover svg{color:var(--bad,#C4453A)!important}
  .settings-dialog{
    --settings-type-display:14px;
    --settings-type-title:13px;
    --settings-type-value:13px;
    --settings-type-nav:12.5px;
    --settings-type-body:12px;
    --settings-type-control:12px;
    --settings-type-supporting:11.5px;
    --settings-type-meta:11px;
    --settings-type-eyebrow:10px;
  }
  .settings-dialog button:focus-visible,
  .settings-dialog input:focus-visible,
  .settings-dialog select:focus-visible{
    outline:0;
    box-shadow:var(--ring-focus);
  }
  .settings-edit-btn{
    opacity:0;
    pointer-events:none;
    border:1px solid var(--border-soft);background:var(--surface);color:var(--ink-2);
    border-radius:8px;cursor:pointer;
    transition:opacity .12s ease,background-color .12s ease,border-color .12s ease;
  }
  .settings-edit-btn:hover{background:var(--bg-2);border-color:var(--border-hover);color:var(--ink)}
  .settings-edit-row:hover .settings-edit-btn,
  .settings-edit-row:focus-within .settings-edit-btn{
    opacity:1;
    pointer-events:auto;
  }

  /* ===== List view ===== */
  .list-view{padding:18px 24px}
  .list-section{margin-bottom:18px}
  .list-section h4{
    display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ink);
    padding:0 6px 8px;
  }
  .list-section h4 .dot{width:8px;height:8px;border-radius:50%}
  .list-section h4 .cnt{
    font-family:var(--font-mono);font-size:10px;color:var(--ink-3);
    background:var(--bg-2);border:1px solid var(--border);padding:1px 6px;border-radius:6px;
  }
  .list-table{
    background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;
  }
  .list-head, .list-row{
    display:grid;
    grid-template-columns: 220px 1fr 100px 90px 110px 80px 70px 140px;
    align-items:center;gap:14px;padding:9px 14px;font-size:13px;
  }
  .list-head{
    background:var(--bg-2);border-bottom:1px solid var(--border);
    font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:500;
  }
  .list-row{border-top:1px solid var(--border);cursor:pointer;transition: background-color var(--dur-fast) var(--ease-out)}
  .list-row:first-child{border-top:0}
  .list-row:hover{background:var(--bg-2)}
  /* Glisser-déposer (vue Liste) — repère neutre transitoire */
  .list-row[draggable="true"]{cursor:grab}
  .list-row.dragging{opacity:.45;cursor:grabbing;background:var(--bg-2)}
  .list-section.drop-over .list-table{outline:1.5px dashed var(--ink-4);outline-offset:2px}
  .list-dropslot{height:38px;border-top:1px dashed var(--ink-4);background:var(--bg-2);
    animation:dropslot-in var(--dur-fast) var(--ease-out)}
  .list-row:focus-visible{outline:0;box-shadow:inset 0 0 0 2px var(--accent);background:var(--accent-soft)}
  .list-row .co{display:flex;align-items:center;gap:9px;min-width:0}
  .list-row .co .nm{font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .list-row .role-cell{color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .list-row .role-cell .sub{font-size:11.5px;color:var(--ink-3);margin-top:1px}
  .list-row .loc-cell{color:var(--ink-2);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .list-row .salary-cell{font-weight:600;color:var(--ink);font-size:12.5px}
  .list-row .match-cell{display:flex;align-items:center;gap:7px}
  .list-row .match-cell .bar{flex:1;height:4px;background:var(--bg-2);border-radius:99px;overflow:hidden;border:1px solid var(--border)}
  .list-row .match-cell .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:99px}
  .list-row .match-cell .v{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--ink);min-width:28px;text-align:right}
  .list-row .ats-cell{display:flex;align-items:center;justify-content:center}
  .list-row .when-cell{font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}
  .list-row .when-cell.urgent{color:var(--bad);font-weight:600}

  /* ===== Calendar view ===== */
  .cal-view{padding:18px 24px;display:flex;flex-direction:column}
  .cal-toolbar{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:0 4px 14px;flex-wrap:wrap;
  }
  .cal-nav{display:flex;align-items:center;gap:8px}
  .cal-nav h3{font-size:18px;letter-spacing:-.01em;color:var(--ink)}
  .cal-nav .nav-btn{
    width:30px;height:30px;border-radius:8px;border:1px solid var(--border-soft);
    background:var(--surface);color:var(--ink-2);cursor:pointer;
    display:grid;place-items:center;transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
  }
  .cal-nav .nav-btn:hover{background:var(--bg-2);border-color:var(--border-strong);color:var(--ink)}
  .cal-nav .nav-btn:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .cal-grid{
    display:grid;grid-template-columns:repeat(7,1fr);gap:0;
    background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;
    min-height:520px;
  }
  .cal-dayname{
    padding:8px 12px;background:var(--bg-2);border-bottom:1px solid var(--border);border-right:1px solid var(--border);
    font-family:var(--font-mono);font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-weight:500;
  }
  .cal-dayname:nth-child(7){border-right:0}
  .cal-cell{
    border-top:1px solid var(--border);border-right:1px solid var(--border);
    padding:6px 8px;display:flex;flex-direction:column;gap:4px;min-height:96px;
    position:relative;background:var(--surface);
  }
  .cal-cell:nth-child(7n){border-right:0}
  .cal-cell.muted{background:var(--bg-2)}
  .cal-cell.muted .cal-num{color:var(--ink-4)}
  .cal-cell.today .cal-num{
    background:var(--accent);color:var(--fg-inverse);border-radius:50%;
    width:22px;height:22px;display:grid;place-items:center;font-weight:600;
  }
  .cal-num{font-family:var(--font-mono);font-size:11px;color:var(--ink-2);font-weight:500;align-self:flex-start;padding:1px 4px}
  .cal-event{
    display:flex;align-items:center;gap:5px;padding:3px 6px;border-radius:6px;
    font-size:11px;font-weight:500;line-height:1.2;cursor:pointer;
    border:1px solid transparent;background:var(--bg-2);color:var(--ink-2);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    transition: background-color var(--dur-fast) var(--ease-out);
  }
  .cal-event:hover{filter:none;background:var(--bg-2);color:var(--ink)}
  .cal-event.interview:hover{background:var(--accent-2);color:var(--fg-inverse);border-color:var(--accent-2)}
  .cal-event.relance:hover{background:var(--warning-50,#FBF1E0);filter:brightness(.97)}
  .cal-event.deadline:hover{background:var(--bad-soft);filter:brightness(.97)}
  .cal-event.applied:hover{background:var(--good-soft);filter:brightness(.97)}
  .cal-event.interview{background:var(--accent);color:var(--fg-inverse);border-color:var(--accent-2)}
  .cal-event.relance{background:var(--warn-soft);color:var(--warn-ink);border-color:transparent}
  .cal-event.deadline{background:var(--bad-soft);color:var(--bad-ink);border-color:transparent}
  .cal-event.applied{background:var(--good-soft);color:var(--good-ink);border-color:transparent}
  .cal-event .ev-dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.7;flex:0 0 auto}
  .cal-more{font-size:10.5px;color:var(--ink-3);padding:1px 6px;font-weight:500}

  .cal-legend{display:flex;gap:14px;flex-wrap:wrap;padding:14px 4px 0}
  .cal-legend .lg{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-3)}
  .cal-legend .lg i{width:11px;height:11px;border-radius:3px;border:1px solid transparent}
  .cal-legend .lg.interview i{background:var(--accent);border-color:var(--accent-2)}
  .cal-legend .lg.relance i{background:var(--warn-soft)}
  .cal-legend .lg.deadline i{background:var(--bad-soft)}
  .cal-legend .lg.applied i{background:var(--good-soft)}

  /* unified scroll handled below */


  .vault-stack{display:flex;flex-direction:column;gap:14px}
  .vault-exp{
    background:var(--surface);border:1px solid var(--border);border-radius:13px;
    overflow:hidden;
  }
  .vault-exp .ve-head{
    display:flex;align-items:flex-start;gap:12px;padding:14px 16px;
    border-bottom:1px solid var(--border);background:var(--bg-2);
  }
  .vault-exp .ve-head .body{flex:1;min-width:0}
  .vault-exp .ve-head .role{font-size:14.5px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
  .vault-exp .ve-head .co{
    font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;
    margin-top:2px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  }
  .vault-exp .ve-head .co .sep{color:var(--ink-5)}
  .vault-exp .ve-head .ve-actions{display:flex;gap:4px;opacity:.6}
  .vault-exp:hover .ve-head .ve-actions{opacity:1}
  .vault-exp .ve-blocks{display:flex;flex-direction:column;gap:0}
  .vault-block{
    display:grid;grid-template-columns:36px 1fr auto;align-items:flex-start;gap:12px;
    padding:14px 16px;border-top:1px solid var(--border);
    cursor:pointer;transition: background-color var(--dur-fast) var(--ease-out);
  }
  .vault-block:first-child{border-top:0}
  .vault-block:hover{background:var(--bg-2)}
  .vault-block .vb-ico{
    width:32px;height:32px;border-radius:8px;display:grid;place-items:center;flex:0 0 auto;
    font-size:14px;
  }
  .vault-block .vb-ico.tech{background:var(--accent-soft);color:var(--accent-ink)}
  .vault-block .vb-ico.project{background:var(--bg-2);color:var(--ink-2)}
  .vault-block .vb-ico.training{background:var(--warn-soft);color:var(--warn-ink)}
  .vault-block .vb-ico.soft{background:var(--good-soft);color:var(--good-ink)}
  .vault-block .vb-body{display:flex;flex-direction:column;gap:7px;min-width:0}
  .vault-block .vb-text{font-size:13.5px;color:var(--ink);line-height:1.55}
  .vault-block .vb-tags{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
  .vault-block .vb-result{
    display:flex;align-items:flex-start;gap:7px;padding:6px 10px;
    background:var(--good-soft);border-radius:8px;font-size:12px;color:var(--good-ink);line-height:1.4;
  }
  .vault-block .vb-result .ic{flex:0 0 auto;margin-top:1px;color:var(--good-2)}
  .vault-block .vb-actions{display:flex;gap:4px;opacity:0;transition: opacity var(--dur-fast) var(--ease-out);align-self:flex-start}
  .vault-block:hover .vb-actions{opacity:1}
  .vault-block .vb-actions button{
    background:transparent;border:0;color:var(--ink-3);cursor:pointer;font:inherit;font-size:11.5px;
    padding:3px 7px;border-radius:6px;
  }
  .vault-block .vb-actions button:hover{background:var(--surface);color:var(--ink)}

  /* IA disclaimer footer */
  .vault-disclaimer{
    margin-top:18px;padding:12px 14px;border:1px dashed var(--border-strong);border-radius:10px;
    background:var(--bg-2);display:flex;align-items:flex-start;gap:10px;
    font-size:12px;color:var(--ink-3);line-height:1.5;
  }
  .vault-disclaimer .ic{color:var(--accent);flex:0 0 auto;margin-top:1px}
  .vault-disclaimer strong{color:var(--ink-2)}

  /* ===== Vault — wall layout ===== */
  .vc-paper{
    background:
      radial-gradient(circle at 1px 1px, color-mix(in srgb,var(--ink) 4%,transparent) 1px, transparent 0) 0 0/22px 22px,
      var(--bg);
  }
  
  
  
  
  
  

  /* ===== Vault view head — sticky on scroll, flush with topbar ===== */
  .vault-view-head{
    position:sticky;top:0;z-index:5;
    background-color:var(--bg-app);
    margin:0 -24px 12px;padding:8px 24px;
    border-bottom:1px solid var(--divider);
    align-items:center;
  }
  /* V4 : le shell respire légèrement tout autour (header, footer, gauche, droite) */
  .col > .vault-view{padding:8px;overflow:hidden}
  /* Compact heading inside the sticky head so it doesn't add extra vertical space */
  .vault-view-head h1{font-size:18px;line-height:1.2;margin:0}
  .vault-view-head p{display:none}
  
  

  /* ===== Vault gauge popup overlay ===== */
  
  .vc-gauge-popup{
    width:min(560px, 92vw);
    background-color:var(--bg-surface);
    border:1px solid var(--border-default);border-radius:var(--radius-lg);
    box-shadow:var(--shadow-lg);
    animation:popIn var(--dur-base) var(--ease-out);
  }
  .vc-gauge-popup .vc-progress{margin:0;border:0;box-shadow:none;border-radius:var(--radius-lg)}
  @keyframes popIn{
    from{opacity:0;transform:scale(0.96) translateY(-6px)}
    to  {opacity:1;transform:scale(1) translateY(0)}
  }

  /* Top progress bar */
  .vc-progress{
    background:var(--surface);border:1px solid var(--border);border-radius:13px;
    padding:14px 16px;margin-bottom:14px;display:flex;flex-direction:column;gap:8px;
    position:relative;
  }
  .vc-progress-reopen{
    display:inline-flex;align-items:center;gap:6px;padding:5px 11px;white-space:nowrap;
    border:1px dashed var(--border-strong);background-color:transparent;border-radius:99px;cursor:pointer;font:inherit;font-size:11.5px;color:var(--ink-3);font-weight:500;margin-bottom:14px;align-self:flex-start;transform:scale(1);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-base) var(--ease-out)}
  .vc-progress-reopen:hover{background-color:var(--surface);color:var(--ink-2);border-style:solid}.vc-progress-reopen:active{background-color:var(--bg-2);transform:scale(0.97)}.vc-progress-reopen:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .vc-progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
  .vc-progress-head strong{font-size:14px;color:var(--ink);white-space:nowrap}
  .vc-progress-head .mono{white-space:nowrap}
  .vc-progress-bar{height:8px;background:var(--bg-2);border:1px solid var(--border);border-radius:99px;overflow:hidden}
  .vc-progress-bar i{display:block;height:100%;background:var(--ink);border-radius:99px}
  .vc-progress-checks{display:flex;gap:6px;flex-wrap:wrap}
  .vc-check{
    display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:99px;
    font-size:11.5px;font-weight:500;border:1px solid;white-space:nowrap;
  }
  .vc-check.ok{background:var(--good-soft);color:var(--good-ink);border-color:transparent}
  .vc-check.partial{background:var(--warn-soft);color:var(--warn-ink);border-color:transparent}
  .vc-check.todo{background:var(--bg-2);color:var(--ink-3);border-color:var(--border)}

  .vc-shell{
    display:grid;grid-template-columns:240px 1fr;gap:0;
    background:var(--surface);border:1px solid var(--border);border-radius:12px;
    overflow:hidden;min-height:520px;
  }

  /* Sidebar simplifiée */
  .vc-side{background:var(--surface-2);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:1px;padding:12px 8px;overflow-y:auto}
  .vc-side-sep{padding:14px 8px 4px;font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-weight:500;font-family:var(--font-mono)}
  .vc-list-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:8px 9px;border:0;background-color:transparent;border-radius:8px;cursor:pointer;font:inherit;color:var(--ink-2);transform:scale(1);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-base) var(--ease-out)}
  .vc-list-item:hover{background-color:var(--surface)}
  .vc-list-item:active{background-color:var(--bg-2);transform:scale(0.97)}
  .vc-list-item:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .vc-list-item.active{background:var(--accent-soft);color:var(--accent-ink)}
  .vc-list-item.primary{background:var(--surface);border:1px solid var(--border-strong);margin-bottom:4px}
  .vc-list-item.primary.active{background:var(--accent-soft);border-color:var(--accent-soft-2)}
  .vc-list-ico{
    width:24px;height:24px;border-radius:8px;background:var(--bg-2);border:1px solid var(--border);
    display:grid;place-items:center;color:var(--ink-3);flex:0 0 auto;
  }
  .vc-list-item.active .vc-list-ico{background:var(--surface);color:var(--accent)}
  .vc-list-body{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
  .vc-list-body .nm{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vc-list-body .ctx{font-family:var(--font-mono);font-size:9.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vc-list-item.active .vc-list-body .ctx{color:var(--accent-ink);opacity:.7}
  .vc-list-item .cnt{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);background:var(--surface);border:1px solid var(--border);padding:1px 6px;border-radius:6px;flex:0 0 auto}
  .vc-list-item.active .cnt{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent-ink);border-color:transparent}
  .vc-side-create{margin-top:6px;display:flex;align-items:center;gap:8px;width:100%;padding:8px 9px;border:1px dashed var(--border-strong);background-color:transparent;border-radius:8px;cursor:pointer;font:inherit;font-size:12.5px;color:var(--ink-3);font-weight:500;transform:scale(1);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-base) var(--ease-out)}
  .vc-side-create:hover{background-color:var(--surface);color:var(--ink-2);border-style:solid}.vc-side-create:active{background-color:var(--bg-2);transform:scale(0.97)}.vc-side-create:focus-visible{outline:0;box-shadow:var(--ring-focus)}

  /* Main col */
  .vc-main-col{display:flex;flex-direction:column;padding:18px 22px 22px;overflow-y:auto;gap:14px;background:var(--surface)}

  /* Big composer */
  .vc-bigcomposer{
    background:var(--surface);border:1px solid var(--border);border-radius:13px;
    padding:14px 16px;display:flex;flex-direction:column;gap:10px;
    box-shadow:0 1px 2px color-mix(in srgb,var(--ink) 4%,transparent);
  }
  .vc-bigcomposer-head{display:flex;align-items:center;gap:9px}
  .vc-bigcomposer-head .vc-autosave{margin-left:auto}
  /* Déclencheur : le composer est masqué par défaut, révélé à la demande */
  .vc-composer-trigger{
    display:flex;align-items:center;gap:9px;
    padding:13px 16px;border:1.5px dashed var(--border-strong);border-radius:13px;
    background-color:var(--surface);color:var(--ink-2);
    font:inherit;font-size:14px;font-weight:500;text-align:left;cursor:pointer;
    transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);
  }
  .vc-composer-trigger:hover{border-color:var(--accent);background-color:var(--accent-soft);color:var(--ink)}
  .vc-composer-trigger:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .vc-composer-trigger-ai{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:10.5px;font-weight:400;color:var(--ink-3);text-transform:none;letter-spacing:0}
  .vc-bigcomposer-head strong{font-size:14px;color:var(--ink)}
  .vc-bigcomposer-ico{width:24px;height:24px;border-radius:8px;background:var(--ink);color:var(--fg-inverse);display:grid;place-items:center;flex:0 0 auto}
  
  .vc-detection{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--bg-2);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap}
  .vc-detection .mono{color:var(--ink-3)}
  
  
  .vc-bigcomposer-tools{display:flex;gap:5px;flex-wrap:wrap}
  
  
  

  /* Missing prompts */
  .vc-missing{
    background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;
    display:flex;flex-direction:column;gap:8px;
  }
  .vc-missing strong{font-size:13px;color:var(--ink)}
  .vc-missing-list{display:flex;gap:6px;flex-wrap:wrap}
  
  

  /* Banner */
  .vc-banner{position:relative;padding:13px 18px 12px;border:1px solid var(--border);border-radius:13px;background:linear-gradient(135deg, color-mix(in srgb, var(--vault-thread,var(--accent)) 8%, transparent), transparent 60%),var(--surface);overflow:hidden}
  /* Bannière condensée hors du fil : l'identité du carnet reste lisible, le contenu reprend
     la place. On resserre, on ne retire rien — le pied (dates, statut) s'efface seul. */
  .vc-banner.is-compact{padding:9px 18px 9px}
  .vc-banner.is-compact .vc-banner-deco{display:none}
  .vc-banner.is-compact h2{font-size:15px}
  .vc-banner-deco{display:none}
  .vc-banner-row{display:flex;align-items:center;gap:12px;position:relative;flex-wrap:wrap}
  
  
  
  
  /* Options du carnet (modifier/renommer/supprimer) : toujours nettes et visibles.
     Le menu est en fixed pour échapper à l'overflow de la bannière. */
  .vc-banner-opt{position:absolute;top:9px;right:2px;z-index:5;opacity:1}
  .vc-banner-optbtn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;border:1px solid transparent;background:transparent;color:color-mix(in srgb,var(--fg-inverse) 50%,transparent);cursor:pointer;padding:0;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vc-banner-optbtn:hover{background:color-mix(in srgb,var(--fg-inverse) 10%,transparent);border-color:color-mix(in srgb,var(--fg-inverse) 18%,transparent);color:var(--fg-inverse)}
  .vc-banner-synth{margin-right:36px}
  .vc-banner-optmenu{z-index:2147483600;min-width:188px;background:var(--surface);border:1px solid var(--border-strong);border-radius:13px;box-shadow:var(--shadow-lg);padding:6px;animation:vwPop .16s var(--ease-out)}
  .vc-banner-optitem{display:flex;align-items:center;gap:9px;width:100%;border:0;background:transparent;border-radius:8px;padding:8px 9px;font:inherit;font-size:13px;font-weight:500;color:var(--ink-2);cursor:pointer;text-align:left;transition:background var(--dur-fast) var(--ease-out)}
  .vc-banner-optitem:hover{background:var(--bg-2)}
  .vc-banner-optitem svg{color:var(--ink-3);flex:0 0 auto}
  .vc-banner-optitem.danger{color:var(--bad)}
  .vc-banner-optitem.danger:hover{background:color-mix(in srgb,var(--bad) 10%,var(--surface))}
  .vc-banner-optitem.danger svg{color:var(--bad)}
  .vc-banner-meta{flex:1;min-width:200px}
  .vc-banner-meta h2{font-size:18px;letter-spacing:-.02em;margin-top:1px}
  .vc-banner-meta .mono{font-size:10px}
  .vc-banner-ctx{font-size:13px;color:var(--ink-3);margin-top:4px}
  
  
  
  
  .vc-summary{margin-top:14px;display:flex;gap:9px;padding:10px 12px;background:var(--accent-soft);border:1px solid var(--accent-soft-2);border-radius:10px}
  .vc-summary-ico{width:22px;height:22px;border-radius:6px;background:var(--accent);color:var(--fg-inverse);display:grid;place-items:center;flex:0 0 auto;margin-top:1px}
  .vc-summary p{font-size:13px;color:var(--accent-ink);line-height:1.5}
  .vc-summary strong{font-weight:600}

  /* Filter tabs */
  .vc-filter-bar{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding:2px 0}
  .vc-filter-bar::-webkit-scrollbar{display:none}
  .vc-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:8px;border:1px solid transparent;background-color:transparent;cursor:pointer;font:inherit;font-size:12.5px;color:var(--ink-3);font-weight:500;white-space:nowrap;transform:scale(1);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-base) var(--ease-out)}
  .vc-tab:not(.on):hover{background-color:var(--bg-2);color:var(--ink)}.vc-tab:active{transform:scale(0.965)}.vc-tab:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .vc-tab.on{background-color:var(--surface);color:var(--ink);border-color:var(--border)}
  .vc-tab .cnt{font-family:var(--font-mono);font-size:10px;background:color-mix(in srgb,var(--ink) 6%,transparent);padding:1px 6px;border-radius:99px}
  .vc-tab.on .cnt{background:color-mix(in srgb,var(--ink) 5%,transparent)}

  /* Stack */
  .vc-stack{display:flex;flex-direction:column;gap:8px}
  .vc-bucket-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;font-weight:500;font-family:var(--font-mono)}
  .vc-bucket-head .cnt{background:var(--bg-2);border:1px solid var(--border);padding:1px 6px;border-radius:99px;font-size:9.5px}
  .vc-list{display:flex;flex-direction:column;gap:8px}

  /* ── Journal entry (carnet de bord — STAR en arrière-plan) ── */
  .vcj{display:grid;grid-template-columns:56px 18px 1fr;border-radius:13px;transition:background .26s cubic-bezier(.16,1,.3,1),box-shadow .26s cubic-bezier(.16,1,.3,1)}
  
  
  
  
  
  
  .vcj-group{display:flex;flex-direction:column}
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  .vcj-title{font-size:15.5px;line-height:22px;font-weight:600;letter-spacing:-.01em;margin:6px 0 5px;color:var(--ink);text-wrap:pretty}
  /* Pièces jointes DANS l'entrée : miniatures discrètes, la preuve à côté du récit. */
  /* Pièces (planche G .files) : tuiles blanches à hairline, radius 8 — interactives. */
  .vcj-proofs{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
  .vcj-proof{display:inline-flex;align-items:center;gap:7px;max-width:230px;padding:4px 9px 4px 4px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface)}
  .vcj-proof-ic{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:var(--bg-2);color:var(--ink-4);overflow:hidden;flex:0 0 auto}
  .vcj-proof-ic img{width:100%;height:100%;object-fit:cover}
  .vcj-proof-nm{font-size:11.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* Écran « Compétences » : 3 colonnes, une compétence par ligne avec son nombre de preuves. */
  .vsk-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
  @media (max-width:900px){ .vsk-cols{grid-template-columns:1fr} }
  .vsk-proofs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
  .vsk-proofs li{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--border)}
  .vsk-proofs li:first-child{border-top:0}
  .vsk-proof-n{display:inline-flex;align-items:center;gap:5px;flex:1;min-width:0;font-size:12.5px;line-height:17px;color:var(--ink-2);text-wrap:pretty}
  .vsk-proof-n svg{color:var(--good-ink);flex:0 0 auto}
  .vsk-proof-c{flex:0 0 auto;padding:2px 9px;border:1px solid var(--border-soft);border-radius:999px;background:var(--surface);font-family:var(--font-mono);font-size:11px;color:var(--ink-3);cursor:pointer;transition:border-color .18s cubic-bezier(.16,1,.3,1),color .18s cubic-bezier(.16,1,.3,1)}
  .vsk-proof-c:hover{border-color:var(--accent);color:var(--accent-ink)}
  .vsk-proof-c.is-job{cursor:default;color:var(--ink-4)}
  .vsk-note{display:flex;align-items:center;gap:6px}
  .vsk-note svg{color:var(--good-ink);flex:0 0 auto}
  /* Angles de la lettre : la seule commande de l'écran. Sélection = pastille pleine, jamais un
     bandeau ni un bord accent (regle-sobriete-visuelle). */
  .vltr-angles{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:0 0 10px}
  .vltr-angles-l{font-size:11.5px;color:var(--ink-4)}
  .vltr-angle-chip{padding:4px 11px;border:1px solid var(--border-soft);border-radius:999px;background:var(--surface);font-family:inherit;font-size:12px;color:var(--ink-2);cursor:pointer;transition:background-color .18s cubic-bezier(.16,1,.3,1),border-color .18s cubic-bezier(.16,1,.3,1)}
  .vltr-angle-chip:hover{border-color:var(--accent)}
  .vltr-angle-chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);font-weight:600}
  .vltr-quote{margin:18px 0 0;font-size:13.5px;line-height:21px;font-style:italic;color:var(--ink-2);text-wrap:pretty;max-width:72ch}
  .vltr-angle-note{margin:8px 0 0;font-size:11.5px;color:var(--ink-4)}
  /* Aperçu recruteur (maquette « Sur mon CV ») : un document sobre, pas un tableau de bord. */
  .vrcv-apercu{padding:22px 26px 20px}
  .vrcv-lead{margin:0 0 14px;font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-4)}
  .vrcv-role{margin:0;font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
  .vrcv-sub{margin:3px 0 0;font-size:12.5px;color:var(--ink-3)}
  .vrcv-cvlines{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column}
  .vrcv-cvlines li{padding:11px 0;border-top:1px solid var(--border)}
  .vrcv-cvline-t{display:block;font-size:13px;line-height:19px;color:var(--ink-2);text-wrap:pretty}
  .vrcv-cvlines .vrcv-prov{margin:6px 0 0}
  .vrcv-none{margin:18px 0 0;font-size:12.5px;color:var(--ink-4)}
  .vrcv-kws{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}

  /* ── Carte d'entrée MONO-COLONNE (maquette « carnet idéal ») : titre, récit, pièces, tags,
     puis la vie réelle du fait ou une question. Plus de rail droit — le fil se lit d'une traite. ── */
  .vcj.solo{grid-template-columns:minmax(0,1fr)}
  /* Vie du fait : barre de statistiques façon publication sociale. Le filet sépare le récit
     de ses usages sans créer un nouveau conteneur ; les compteurs restent du texte calme. */
  .vcj-stats{display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px solid var(--border-soft);color:var(--ink-3)}
  .vcj-stat{display:inline-flex;align-items:center;gap:5px;font-size:12px;line-height:17px;white-space:nowrap}
  .vcj-stat svg{flex:0 0 auto;color:var(--ink-4)}
  .vcj-stat b{font-weight:500;color:var(--ink-2);font-variant-numeric:tabular-nums}
  .vcj-stat.ready{color:var(--good-quiet)}
  .vcj-stat.needs-work{color:var(--warn-quiet)}
  .vcj-stat-dot{width:5px;height:5px;border-radius:50%;background:currentColor;flex:0 0 auto}
  /* Le résultat chiffré est une étape centrale d'enrichissement : contrairement aux autres
     questions STAR, il devient une action pleine largeur, ferme mais toujours Atelier. */
  .vcj-impact-cta{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;margin-top:12px;padding:10px 11px;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
  .vcj-impact-cta:hover{border-color:var(--border-hover);background:var(--surface-2);transform:translateY(-1px)}
  .vcj-impact-cta:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .vcj-impact-cta-ic{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--accent-soft);color:var(--accent-ink)}
  .vcj-impact-cta-copy{display:flex;min-width:0;flex-direction:column;gap:2px}
  .vcj-impact-cta-copy strong{font-size:13.5px;line-height:18px;font-weight:500;color:var(--ink)}
  .vcj-impact-cta-copy>span{font-size:11.5px;line-height:16px;color:var(--ink-3)}
  .vcj-impact-cta-action{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border-radius:8px;background:var(--sidebar-bg);color:var(--sidebar-fg-strong);font-size:12px;font-weight:500;white-space:nowrap}
  .vcj-impact-cta-action svg{flex:0 0 auto}
  .vcj-main > .vcj-invite-btn{margin-top:10px;flex-direction:row;align-items:center;gap:0;font-size:12.5px;color:var(--ink-3)}
  .vcj-main > .vcj-invite-btn .vcj-invite-hint{font-size:12.5px;color:var(--accent)}
  /* Provenance « d'après … » sur les aperçus : le « jamais inventé » rendu visible. Discret —
     c'est une note de bas de ligne, pas un badge qui vole la vedette au contenu. */
  .vrcv-prov{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:1px 7px;border:1px solid var(--border-soft);border-radius:999px;background:var(--surface);font-family:inherit;font-size:10.5px;color:var(--ink-4);cursor:pointer;vertical-align:middle;max-width:340px;transition:border-color .18s cubic-bezier(.16,1,.3,1),color .18s cubic-bezier(.16,1,.3,1)}
  /* Titre de fait long → une seule ligne tronquée, le texte complet reste dans l'attribut title au
     survol (décision Landry 2026-07-22). Clamp partagé CV/lettre/Récap. min-width:0 autorise le
     flex-item texte à rétrécir sous la taille de son contenu pour que l'ellipsis s'applique. */
  .vrcv-prov > .vrcv-prov-t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vrcv-prov:hover{border-color:var(--accent);color:var(--accent-ink)}
  /* Provenance non cliquable (fiche de poste) : même forme, sans promesse de lien. */
  .vrcv-prov.as-note{cursor:default}
  .vrcv-prov.as-note:hover{border-color:var(--border);color:var(--ink-4)}
  .vltr-sources{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0;padding-top:10px;border-top:1px dashed var(--border)}
  .vrcv-prov svg{flex:0 0 auto}
  /* Provenance sous une preuve de l'éditeur de lettre (lot 1b-i) : alignée sous le texte (au-delà
     de la case à cocher), pastilles qui passent à la ligne. Réutilise .vrcv-prov (margin-left:0
     dans le flux flex, l'écart est porté par le gap). */
  .cve-proof-prov{display:flex;flex-wrap:wrap;gap:6px;padding:2px 8px 6px 30px}
  .cve-proof-prov .vrcv-prov{margin-left:0}
  /* Signal d'enrichissement (lot #3 « Levier d'enrichissement ») : un bloc d'expérience SANS fait
     du Vault → invite POSITIVE et opt-in à raconter ce poste (clic → capture du journal pré-remplie
     qui nourrit le Vault). COMPLÉMENT de la pastille « d'après … », jamais les deux sur un bloc.
     Sobre (design system) : pas de bord/bande coloré, texte discret + icône ; l'accent n'apparaît
     qu'au survol. Ce n'est pas un « fait » (surface transparente) mais une invitation. */
  .cve-enrich-hint{display:inline-flex;align-items:center;gap:5px;margin:4px 0 2px;padding:2px 9px;border:1px solid var(--border-strong);border-radius:999px;background:transparent;font-family:inherit;font-size:10.5px;line-height:1.5;color:var(--ink-3);cursor:pointer;text-align:left;transition:border-color .18s cubic-bezier(.16,1,.3,1),color .18s cubic-bezier(.16,1,.3,1)}
  .cve-enrich-hint:hover{border-color:var(--accent);color:var(--accent-ink)}
  .cve-enrich-hint svg{flex:0 0 auto;color:var(--ink-4)}
  .cve-enrich-hint:hover svg{color:var(--accent)}
  .cve-enrich-hint-t{min-width:0}
  /* Dans l'éditeur CV, aligne le signal sous le texte du bloc (même retrait que la pastille). */
  .cve-expcard .cve-enrich-hint{margin-left:30px}
  /* Mention de repli : discrète mais lisible. Elle dit ce qui a échoué et propose de relancer —
     jamais automatiquement (regle-ecritures-plafonnees). */
  .vrcv-repli{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:10px 0 0;font-size:11.5px;color:var(--ink-3)}
  .vrcv-repli svg{flex:0 0 auto;color:var(--warn)}
  .vrcv-repli-btn{margin-left:4px;padding:2px 9px;border:1px solid var(--border-soft);border-radius:6px;background:var(--surface);font-family:inherit;font-size:11.5px;color:var(--ink);cursor:pointer}
  .vrcv-repli-btn:hover{border-color:var(--accent);color:var(--accent-ink)}
  .vrcv-guarantee{display:flex;align-items:center;gap:10px;margin-top:18px;padding-top:12px;border-top:1px solid var(--border);font-size:11.5px;color:var(--ink-3)}
  .vrcv-guarantee > span{display:inline-flex;align-items:center;gap:6px}
  .vrcv-guarantee svg{color:var(--good-ink);flex:0 0 auto}
  .vrcv-guarantee-r{margin-left:auto;color:var(--ink-4)}
  /* Premier pas · compte sans aucun carnet. */
  .vc-firststep{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin:auto;padding:56px 24px;max-width:460px}
  .vc-firststep-ic{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;background:var(--bg-2);color:var(--ink-3)}
  .vc-firststep h2{margin:6px 0 0;font-size:17px;font-weight:500;color:var(--ink);text-wrap:balance}
  .vc-firststep p{margin:0;font-size:13px;line-height:19px;color:var(--ink-3);text-wrap:pretty}
  .vc-firststep-cta{margin-top:6px;display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border:0;border-radius:10px;background:var(--accent);color:var(--fg-inverse);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer}
  /* En-tête de groupe daté du fil : le carnet se relit comme un journal. */
  /* Groupes datés (planche G .dgroup) : texte calme en sentence case — plus de mono UPPERCASE. */
  .vcj-group-h{margin:22px 2px 8px;font-family:inherit;font-size:12px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink-3)}
  .vcj-group:first-child .vcj-group-h{margin-top:4px}
  /* Composer EN TÊTE du fil : il n'est plus collé au bas de l'écran, donc plus de sticky,
     plus de dégradé de fond, plus de `margin-top:auto` qui le poussait vers le bas. */
  .vc-composer-top{margin:0}
  .vc-composer-top .jc-barwrap{position:static;margin-top:0;padding:0;background:none}
  .vcj-prose{font-size:13.5px;line-height:1.62;color:var(--ink-2);margin:5px 0 0;max-width:62ch;text-wrap:pretty}
  .vcj:not(.open) .vcj-prose{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  /* ─ Question douce : ce que la machine a relu dans la note, à confirmer par la personne.
       Surface NEUTRE (--bg-2) sans filet coloré : c'est une invitation, pas une alerte. ─ */
  /* Panneau de suggestion : surface interactive (boutons) → blanc chaud + hairline,
     lisible sur la carte au remplissage doux. */
  .vcj-ask{margin-top:10px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:8px}
  .vcj-ask-q{margin:0;font-size:12.5px;line-height:18px;color:var(--ink-2);display:flex;align-items:flex-start;gap:7px;text-wrap:pretty}
  .vcj-ask-q svg{color:var(--ink-4);flex-shrink:0;margin-top:2px}
  .vcj-ask-q b{font-weight:500;color:var(--ink)}
  .vcj-ask-actions{display:flex;gap:8px;padding-left:20px}
  .vcj-ask-yes,.vcj-ask-no{height:28px;padding:0 12px;border-radius:8px;font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:background .18s cubic-bezier(.16,1,.3,1),border-color .18s cubic-bezier(.16,1,.3,1)}
  .vcj-ask-yes{border:1px solid var(--accent);background:var(--accent);color:var(--fg-inverse)}
  .vcj-ask-yes:hover{background:var(--accent-600)}
  .vcj-ask-no{border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-2)}
  .vcj-ask-no:hover{border-color:var(--ink-4)}
  /* ─ Pièces jointes de l'entrée : liens · fichiers · aperçus ─ */
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  /* ── Journal entry v2 — carte à deux zones (C·v2 retenue, juin 2026).
     Remplace la frise (date|spine|content) : zone gauche = contenu + libellé
     « Utilisé · N CV » sur la ligne de date ; zone droite = méthode STAR (couleur
     = complétude, vert/ambre) au-dessus de l'aperçu des pièces. Le dépli s'étend
     sur toute la largeur sous les deux zones. Les anciennes règles .vcj-date/
     .vcj-spine/.vcj-content/.vcj-meta restent inertes (éléments supprimés). ── */
  /* ── Planche G (lot 3) : carte à REMPLISSAGE DOUX — fond crème profond, zéro bordure,
     zéro ombre. La hiérarchie vient de l'air et de la taille, pas de l'encre ni des cadres.
     Le hairline reste réservé aux éléments INTERACTIFS (composer, fichiers, boutons). ── */
  .vcj{position:relative;grid-template-columns:minmax(0,1fr) 208px;background:var(--bg-2);border:0;border-radius:13px;margin:5px 0;overflow:hidden;
    transition:background-color .18s var(--ease-out)}
  .vcj:hover,.vcj:focus-within,.vcj.menu-open{background:var(--surface)}
  .vcj.open{background:var(--slate-100)}
  .vcj.solo{grid-template-columns:1fr}
  .vcj-main{padding:15px 18px 13px;min-width:0;display:flex;flex-direction:column;gap:0;cursor:pointer}
  .vcj-main:focus-visible{outline:0;box-shadow:var(--ring-focus);border-radius:13px}
  
  /* Le type est un repère de classification : pastille pastel + icône Lucide, comme les
     autres attributs vintage du fait. Sa couleur vient de TYPE_CHIP_STYLE, jamais du JSX. */
  .vcj-typepill{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border:1px solid color-mix(in srgb,currentColor 15%,transparent);border-radius:6px;
  font-family:inherit;font-size:11px;font-weight:500;text-transform:none;letter-spacing:0;white-space:nowrap}
  .vcj-typepill svg{flex:0 0 auto}
  .vcj.menu-open{z-index:4;overflow:visible}
  .vcj-head-actions{position:relative;display:flex;align-items:center;gap:6px;flex:0 0 auto;margin-left:auto}
  .vcj-action-trigger{display:grid;place-items:center;width:26px;height:24px;padding:0;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--ink-4);cursor:pointer;transition:opacity .18s var(--ease-out),transform .18s var(--ease-out),background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vcj-action-trigger:hover,.vcj-action-trigger[aria-expanded="true"]{border-color:var(--border-soft);background:var(--surface);color:var(--ink-2)}
  .vcj-action-trigger:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .vcj-action-menu{position:absolute;z-index:5;top:calc(100% + 6px);right:0;display:flex;flex-direction:column;gap:3px;width:232px;padding:6px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-lg)}
  .vcj-action-menu button{display:flex;align-items:center;gap:9px;width:100%;min-height:36px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--ink-2);font:inherit;font-size:13px;text-align:left;cursor:pointer}
  .vcj-action-menu button:hover,.vcj-action-menu button:focus-visible{outline:0;background:var(--bg-2);color:var(--ink)}
  .vcj-action-menu button svg{flex:0 0 auto;color:var(--ink-4)}
  @media (hover:hover) and (pointer:fine){
    .vcj-action-trigger{opacity:0;transform:translateX(4px)}
    .vcj:hover .vcj-action-trigger,.vcj:focus-within .vcj-action-trigger,.vcj.menu-open .vcj-action-trigger{opacity:1;transform:none}
  }
  @media (hover:none),(pointer:coarse){
    .vcj-action-trigger{width:32px;height:32px}
  }
  @media (prefers-reduced-motion:reduce){
    .vcj,.vcj-action-trigger{transition:none}
  }
  
  
  
  
  
  
  
  
  
  
  /* Typo planche F : titres 15.5/500, deux graisses max. */
  .vcj-titlerow{display:flex;align-items:flex-start;gap:8px}
  .vcj-title{font-size:15.5px;line-height:1.35;font-weight:500;letter-spacing:-.005em;margin:0;color:var(--ink);text-wrap:pretty;flex:1;min-width:0}
  .vcj-titlerow .vcj-typepill{flex:0 0 auto}

  /* Deux densités, une seule entrée : la barre choisit la disposition et les filtres,
     tandis que VaultEntry reste l'unique source du contenu et des actions. */
  .vcj-view-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:18px 0 12px}
  .vcj-view-filters{display:flex;align-items:center;gap:4px;min-width:0;flex-wrap:wrap}
  .vcj-view-filters button,.vcj-view-switch button{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink-3);font:inherit;font-size:12px;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vcj-view-filters button:hover,.vcj-view-switch button:hover{background:var(--surface);color:var(--ink)}
  .vcj-view-filters button:focus-visible,.vcj-view-switch button:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .vcj-view-filters button.on,.vcj-view-switch button.on{border-color:var(--border-soft);background:var(--surface);color:var(--ink);font-weight:500}
  .vcj-view-filters button span{color:var(--ink-4);font-variant-numeric:tabular-nums}
  .vcj-view-filters .needs-work{color:var(--accent-ink)}
  .vcj-view-filter-sep{width:1px;height:18px;margin:0 4px;background:var(--border-soft)}
  .vcj-view-switch{display:flex;gap:3px;flex:0 0 auto;padding:3px;border-radius:10px;background:var(--bg-2)}
  .vcj-view-switch button{height:28px}

  .vc-list.cards{display:flex;flex-direction:column;gap:14px}
  .vc-list.cards .vcj-tile{display:flex;min-width:0;flex-direction:column}
  .vc-list.cards .vcj-tile .vcj-group-h{margin:0 2px 7px;color:var(--ink-4)}

  .vc-list.chronology{display:flex;flex-direction:column;gap:0}
  .vcj-chrono-row{position:relative;display:grid;grid-template-columns:88px minmax(0,1fr);gap:14px;align-items:start;margin:0 -10px;padding:17px 10px;border:0;border-radius:0;transition:background-color .18s var(--ease-out)}
  .vcj-chrono-row::after{content:"";position:absolute;right:10px;bottom:0;left:10px;height:1px;background:var(--border-soft);transition:opacity .12s var(--ease-out)}
  .vcj-chrono-row:hover,.vcj-chrono-row:focus-within{border-radius:11px;background:var(--bg-2)}
  .vcj-chrono-row.without-date{grid-template-columns:minmax(0,1fr)}
  .vcj-chrono-date{display:flex;min-width:0;flex-direction:column;padding-top:1px;font-size:11.5px;line-height:15px;color:var(--ink-3)}
  .vcj-chrono-date.unknown{color:var(--ink-4);font-style:italic}
  .vcj-chrono-row>.vcj{min-width:0;margin:0;border:0;border-radius:0;background:transparent;overflow:visible}
  .vcj-chrono-row>.vcj:hover,.vcj-chrono-row>.vcj:focus-within,.vcj-chrono-row>.vcj.menu-open{background:transparent}
  .vcj-chrono-row>.vcj .vcj-main{padding:0 0 1px}
  .vcj-chrono-row>.vcj .vcj-main:focus-visible{box-shadow:none}
  .vcj-chrono-row>.vcj .vcj-title{font-size:14px;line-height:19px}
  .vcj-chrono-row>.vcj .vcj-prose{max-width:68ch;font-size:12.5px;line-height:18px}
  .vcj-chrono-row>.vcj .vcj-typepill{height:20px;font-size:10.5px}
  .vcj-chrono-row>.vcj .vcj-extra{margin-top:8px}
  .vcj-chrono-row>.vcj .vcj-stats{margin-top:10px;padding-top:9px}
  .vcj-chrono-row>.vcj .vcj-impact-cta{max-width:none}

  @media(max-width:760px){
    .vcj-view-toolbar{align-items:flex-start;flex-direction:column-reverse}
    .vcj-view-switch{align-self:flex-end}
    .vcj-chrono-row{grid-template-columns:64px minmax(0,1fr);gap:9px}
    .vcj-chrono-row.without-date{grid-template-columns:minmax(0,1fr)}
  }
  
  
  
  /* Rangées étiquetées Tags / Compétences / Outils CONSERVÉES (décision Landry 24-07).
     Seul ajustement : la tuile passe sur fond blanc chaud pour rester lisible sur la
     carte au remplissage doux (--bg-2 sur --bg-2 serait invisible). */
  .vcj-extra{display:flex;align-items:flex-start;flex-wrap:wrap;gap:5px 14px;margin-top:9px}
  .vcj-extra-row{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}
  /* Structure d'origine, habillage harmonisé planche G (décision Landry 25-07) :
     étiquettes en sentence case, tuiles SANS bordure (non interactives — le hairline
     est réservé aux éléments interactifs), texte lisible. */
  .vcj-extra-l{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;min-height:20px;font-family:var(--font-sans);font-size:11px;letter-spacing:0;text-transform:none;color:var(--ink-3);padding-top:2px}
  .vcj-extra-l svg{width:11px;height:11px;color:var(--ink-4)}
  .vcj-extra-v{display:flex;flex-wrap:wrap;gap:5px;min-width:0}
  .vcj-xtag{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:6px;background:var(--surface);border:0;color:var(--ink-3);font-size:11px;font-weight:500}
  /* OUTILS = même tuile EXACTE que les Tags/Compétences (Landry : pas de perturbation visuelle). */
  /* ============================================================================
     Profil — tuiles d'ATTRIBUT compactes (.vpf-*) + pop-up guidé.
     Pas de STAR : liste d'éléments (outils/langues/certifs…) capturés via questions.
     ========================================================================== */
  .vpf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;align-content:start}
  .vpf-toolgroups{display:flex;flex-direction:column;gap:16px}
  .vpf-toolgroup{display:flex;flex-direction:column;gap:9px}
  .vpf-toolgroup-head{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:8px;padding-bottom:7px;border-bottom:1px solid var(--border)}
  .vpf-toolgroup-title{font-size:12.5px;font-weight:650;color:var(--ink)}
  .vpf-toolgroup-count{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--accent);background:var(--bg-2);border:1px solid var(--border);border-radius:6px;padding:1px 6px}
  .vpf-toolgroup-summary{font-size:11px;color:var(--ink-4);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vpf-tool-add{max-width:320px}
  .vpf-tile{display:flex;align-items:flex-start;gap:11px;text-align:left;width:100%;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;padding:12px 13px;cursor:pointer;transition:border-color .18s var(--ease-out),box-shadow .18s var(--ease-out)}
  .vpf-tile:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm,0 1px 2px color-mix(in srgb,var(--ink) 6%,transparent))}
  .vpf-tile:focus-visible{outline:none;box-shadow:var(--ring-focus)}
  .vpf-ic{flex:0 0 auto;width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--bg-2);border:1px solid var(--border);color:var(--accent)}
  .vpf-ic.lg{width:36px;height:36px;border-radius:8px}
  .vpf-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
  .vpf-titlerow{display:flex;align-items:center;gap:8px;min-width:0}
  .vpf-name{font-size:13.5px;font-weight:600;color:var(--ink);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
  .vpf-level{flex:0 0 auto;font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--accent-2);background:var(--bg-2);border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-variant-numeric:tabular-nums;white-space:nowrap}
  .vpf-meta{font-size:11.5px;line-height:16px;color:var(--ink-3);text-wrap:pretty;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .vpf-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
  .vpf-tag{display:inline-flex;align-items:center;height:19px;padding:0 7px;border-radius:6px;background:var(--bg-2);border:1px solid var(--border-soft);color:var(--ink-3);font-size:10.5px;font-weight:500}
  .vpf-go{flex:0 0 auto;color:var(--ink-4);opacity:0;transition:opacity .18s var(--ease-out);margin-top:1px}
  .vpf-tile:hover .vpf-go{opacity:1}
  .vpf-addtile-wrap{position:relative;min-width:0}
  .vpf-addtile{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;background:transparent;border:1px dashed var(--border-strong);border-radius:10px;padding:12px;cursor:pointer;color:var(--ink-3);font:inherit;font-size:12.5px;font-weight:500;transition:border-color .18s var(--ease-out),color .18s var(--ease-out),background-color .18s var(--ease-out)}
  .vpf-addtile:hover,.vpf-addtile.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
  .vpf-addtile-plus{display:flex}
  .vpf-addmenu{position:absolute;z-index:85;left:0;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);overflow:hidden}
  .vpf-addmenu-search{width:100%;height:36px;border:0;border-bottom:1px solid var(--border);background:var(--surface);color:var(--ink);font:inherit;font-size:12.5px;outline:none;padding:0 11px}
  .vpf-addmenu-list{max-height:286px;overflow:auto;padding:4px}
  .vpf-addmenu-list button,.vpf-addmenu-list>span{display:flex;width:100%;min-height:32px;align-items:center;gap:8px;border:0;background:transparent;border-radius:8px;color:var(--ink-2);font:inherit;font-size:12.5px;text-align:left;padding:7px 8px}
  .vpf-addmenu-list button{cursor:pointer}
  .vpf-addmenu-list button:hover{background:var(--bg-2);color:var(--ink)}
  .vpf-addmenu-list button>svg{color:var(--ink-4);flex-shrink:0}
  .vpf-addmenu-list button:hover>svg{color:var(--accent)}
  .vpf-addmenu-list button span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vpf-addmenu-list button i{font-family:var(--font-mono);font-size:9.5px;font-style:normal;color:var(--ink-4);flex-shrink:0}
  .vpf-addmenu-sep{min-height:24px!important;padding:8px 8px 4px!important;font-family:var(--font-mono);font-size:9.5px!important;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-4)!important}
  .vpf-addmenu-empty{color:var(--ink-4)!important;cursor:default}
  .vpf-tabgroup-lbl{font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);white-space:nowrap}
  /* ── Vue magazine du hub profil ── */
  .vpf-magazine{padding:18px 22px;display:flex;flex-direction:column;gap:22px}
  .vpf-mag-group{display:flex;flex-direction:column;gap:9px}
  .vpf-mag-group-head{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}
  .vpf-mag-group-lbl{font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4)}
  .vpf-mag-group-hint{font-size:10.5px;color:var(--ink-4);font-weight:400}
  .vpf-mag-group-deriv{display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);border-radius:6px;padding:2px 7px}
  .vpf-mag-group-deriv>svg{flex-shrink:0}
  .vpf-mag-group-total{font-size:9.5px;color:var(--ink-4);font-family:var(--font-mono);margin-left:auto}
  /* Pas de max-width : les tuiles grandissent toujours pour remplir TOUTE la largeur du
     groupe. Ainsi chaque groupe garde les mêmes bords (gauche/droite), qu'il ait 4 tuiles
     ou 3 (si une section est masquée) — Parcours s'aligne sur Synthèse / Profil. */
  .vpf-mag-sections{display:flex;gap:8px;flex-wrap:wrap}
  .vpf-mag-sec{border:1px solid var(--border-soft);border-radius:10px;background:var(--surface);cursor:pointer;flex:1 1 220px;min-width:200px;overflow:hidden;text-align:left;transition:border-color .15s var(--ease-out),box-shadow .15s var(--ease-out)}
  .vpf-mag-sec:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm,0 1px 2px color-mix(in srgb,var(--ink) 6%,transparent))}
  .vpf-mag-sec:focus-visible{outline:none;box-shadow:var(--ring-focus)}
  .vpf-mag-head{display:flex;align-items:center;gap:7px;padding:10px 12px 9px;border-bottom:1px solid var(--border)}
  .vpf-mag-head>svg{color:var(--ink-4);flex-shrink:0}
  .vpf-mag-sec-lbl{font-size:12px;font-weight:600;color:var(--ink);flex:1}
  .vpf-mag-cnt{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--accent);background:var(--bg-2);border:1px solid var(--border);border-radius:6px;padding:1px 6px}
  .vpf-mag-rows{padding:8px 12px;display:flex;flex-direction:column;gap:5px}
  .vpf-mag-row{display:flex;align-items:center;gap:6px}
  .vpf-mag-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);flex-shrink:0}
  .vpf-mag-nm{font-size:11.5px;color:var(--ink);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vpf-mag-lv{font-size:10px;color:var(--ink-3);font-family:var(--font-mono);flex-shrink:0}
  .vpf-mag-more{font-size:10.5px;color:var(--ink-3);padding-top:3px}
  .vpf-mag-empty{font-size:11px;color:var(--ink-4);font-style:italic;padding:10px 12px}
  .vpf-mag-back{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:8px;border:1px solid var(--border-soft);background:var(--surface);color:var(--ink-2);font:inherit;font-size:12.5px;font-weight:500;cursor:pointer;transition:background-color .15s,color .15s}
  .vpf-mag-back:hover{background:var(--bg-2);color:var(--ink)}
  .vpf-mag-currsec{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;color:var(--ink)}
  .vpf-mag-currsec>svg{color:var(--ink-3)}
  .vpf-mag-backrow{padding-left:22px;gap:10px}
  /* Pop-up guidé */
  /* Pop-up — taille uniforme B (validée juin 2026) : appliquée aux 3 sections
     (profil .vpf-pop · journal .vdp · candidature .modal). Voile + plan + marge communs. */
  .vpf-scrim{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:80;padding:28px;animation:vpfFade .18s var(--ease-out)}
  @keyframes vpfFade{from{opacity:0}to{opacity:1}}
  .vpf-pop{width:min(1100px,92vw);height:min(760px,88vh);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden;animation:vpfPop .26s var(--ease-out)}
  @keyframes vpfPop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  .vpf-pop-head{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--surface)}
  .vpf-pop-h{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .vpf-pop-eyebrow{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-4)}
  .vpf-title-row{display:flex;align-items:center;gap:9px;min-width:0}
  .vpf-pop-h h3{margin:0;font-size:16px;font-weight:600;color:var(--ink);letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vpf-pop-sub{margin:0;font-size:12.5px;line-height:1.35;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vpf-head-pill{flex:0 0 auto;font-family:var(--font-mono);font-size:10.5px;font-weight:500;color:var(--accent-2);background:var(--bg-2);border:1px solid var(--border-soft);border-radius:6px;padding:2px 7px;white-space:nowrap}
  .vpf-head-action{height:34px;padding:0 12px;flex:0 0 auto}
  .vpf-x{flex:0 0 auto;width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--ink-3);cursor:pointer}
  .vpf-x:hover{background:var(--bg-2);color:var(--ink)}
  /* flex:1 + min-height:0 : le corps remplit la hauteur fixe du pop-up et SCROLLE en interne ;
     le footer reste ainsi ancré en bas quelle que soit la quantité d'infos (un footer ne coulisse pas). */
  .vpf-pop-body{padding:16px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:15px;flex:1;min-height:0}
  .vpf-fld{display:flex;flex-direction:column;gap:6px}
  .vpf-q{font-size:12.5px;font-weight:600;color:var(--ink-2);display:flex;align-items:center;gap:6px}
  .vpf-opt{font-style:normal;font-weight:500;font-size:10.5px;color:var(--ink-4)}
  .vpf-inp{width:100%;height:36px;padding:0 11px;border:1px solid var(--border-soft);border-radius:8px;font:inherit;font-size:13px;color:var(--ink);background:var(--surface)}
  .vpf-inp:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring-focus)}
  .vpf-chips{display:flex;flex-wrap:wrap;gap:6px}
  .vpf-chip{height:30px;padding:0 12px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:12.5px;font-weight:500;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vpf-chip:hover{background:var(--bg-2);border-color:var(--border-hover);color:var(--ink)}
  .vpf-chip.on{background:var(--accent);border-color:var(--accent);color:var(--fg-inverse)}
  .vpf-tagedit{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:1px solid var(--border-soft);border-radius:8px;padding:6px 8px;min-height:36px}
  .vpf-tagedit:focus-within{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .vpf-tag.on{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 5px 0 8px;background:var(--bg-2);border:1px solid var(--border-soft);border-radius:6px;color:var(--ink-2);font-size:11px;font-weight:500}
  .vpf-tag.on button{display:flex;align-items:center;border:none;background:none;color:var(--ink-4);cursor:pointer;padding:0}
  .vpf-tag.on button:hover{color:var(--bad)}
  .vpf-taginp{flex:1;min-width:100px;height:24px;border:none;background:none;font:inherit;font-size:12px;color:var(--ink);outline:none}
  .vpf-pop-foot{display:flex;align-items:center;gap:14px;min-height:58px;padding:11px 20px;border-top:1px solid var(--border);background:var(--surface-2);flex-shrink:0}
  .vpf-hint{display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--ink-4)}
  .vpf-foot-note,.vpf-foot-spacer{flex:1;min-width:0;color:var(--ink-4);font-size:11.5px;line-height:1.35}
  .vpf-foot-note{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vpf-foot-actions{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:8px}
  .vpf-btn{height:34px;padding:0 14px;border:1px solid var(--border-soft);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;font-size:12.5px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
  .vpf-btn:hover{background:var(--bg-2);border-color:var(--border-hover)}
  .vpf-btn.primary{background:var(--ink);border-color:var(--ink);color:var(--surface)}
  .vpf-btn.primary:hover{background:var(--ink-2);border-color:var(--ink-2)}
  .vpf-btn.primary:disabled{opacity:.5;cursor:not-allowed}
  .vpf-btn.discuss{color:var(--ink-2);border-color:var(--border-soft);background:var(--surface)}
  .vpf-btn.discuss svg{color:var(--accent)}
  .vpf-btn.discuss:hover{border-color:var(--border-hover);background:var(--bg-2);color:var(--ink)}
  /* Capture conversationnelle (bulles) — variante du pop-up profil */
  .vpf-pop.pfc{height:min(560px,88vh)}
  .pfc-flow{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:9px;padding:16px 18px}
  .pfc-msg{max-width:86%;font-size:13px;line-height:1.5;padding:9px 12px;border-radius:13px;text-wrap:pretty}
  .pfc-msg.a{align-self:flex-start;background:var(--bg-2);color:var(--ink);border-bottom-left-radius:4px}
  .pfc-msg.u{align-self:flex-end;background:var(--accent);color:var(--fg-inverse);border-bottom-right-radius:4px}
  .pfc-msg.done{display:flex;align-items:center;gap:7px;background:var(--good-soft);color:var(--good-ink)}
  .pfc-opt{font-style:normal;color:var(--ink-4);font-size:11px}
  .pfc-info{align-self:flex-start;display:flex;gap:7px;align-items:flex-start;max-width:92%;font-size:11.5px;line-height:1.45;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:8px 11px}
  .pfc-info svg{color:var(--accent);flex:0 0 auto;margin-top:1px}
  .pfc-chips{display:flex;flex-wrap:wrap;gap:6px;align-self:flex-start;margin:1px 0 2px}
  .pfc-chip{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 12px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:12.5px;font-weight:500;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .pfc-chip:hover{background:var(--bg-2);border-color:var(--border-hover);color:var(--ink)}
  .pfc-chip.on{background:var(--accent);border-color:var(--accent);color:var(--fg-inverse)}
  .pfc-chip.keep{border-style:dashed;color:var(--ink-3)}
  .pfc-chip.ghost{border-style:dashed;color:var(--ink-4)}
  .pfc-bar{display:flex;gap:8px;align-items:center;padding:11px 14px;border-top:1px solid var(--border);background:var(--surface-2)}
  .pfc-bar input{flex:1;height:38px;padding:0 13px;border:1px solid var(--border-soft);border-radius:10px;font:inherit;font-size:13px;color:var(--ink);background:var(--surface)}
  .pfc-bar input:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring-focus)}
  .pfc-send{flex:0 0 auto;width:38px;height:38px;border-radius:10px;border:none;background:var(--accent);color:var(--fg-inverse);display:flex;align-items:center;justify-content:center;cursor:pointer}
  .pfc-send:hover{background:var(--accent-2)}
  .pfc-send:disabled{opacity:.45;cursor:not-allowed}
  .pfc-saved{display:inline-flex;align-items:center;gap:4px;margin-left:8px;font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--good-ink)}
  /* Deux colonnes : fiche éditable (gauche) + assistant (droite) — comme le composer du journal */
  .vpf-pop.pfc.pfc-2col{width:min(880px,100%);height:min(580px,88vh);flex-direction:row}
  .pfc-left{flex:1 1 44%;min-width:0;display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--surface-2)}
  .pfc-left-head{display:flex;gap:10px;align-items:center;padding:11px 16px 9px}
  .pfc-left-h{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .pfc-name-inp{border:none;background:none;font:inherit;font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--ink);padding:0;outline:none;width:100%}
  .pfc-name-inp::placeholder{color:var(--ink-4);font-weight:500}
  .pfc-left-body{flex:1;min-height:0;overflow-y:auto;padding:5px 16px 12px;display:flex;flex-direction:column;gap:13px}
  .pfc-left-foot{display:flex;align-items:center;gap:8px;padding:9px 16px;border-top:1px solid var(--border)}
  .vpf-fld.active>.vpf-q{color:var(--accent)}
  .vpf-fld.active>.vpf-inp,.vpf-fld.active>.vpf-area,.vpf-fld.active>.vpf-chips{outline:2px solid var(--accent-soft-2);outline-offset:3px;border-radius:8px}
  .vpf-area{width:100%;min-height:52px;padding:9px 11px;border:1px solid var(--border-soft);border-radius:8px;font:inherit;font-size:13px;line-height:1.45;color:var(--ink);background:var(--surface);resize:vertical}
  .vpf-area:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring-focus)}
  .pfc-right{flex:1 1 56%;min-width:0;display:flex;flex-direction:column}
  .pfc-right-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 10px 18px;border-bottom:1px solid var(--border)}
  .pfc-asst{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink-2)}
  .pfc-asst svg{color:var(--accent)}
  /* Modale section profil · sidebar interne (Infos perso, Langues, Centres d'intérêt). */
  .vpf-section-modal{width:min(1100px,92vw);height:min(760px,88vh);display:grid;grid-template-columns:320px minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"rail sysbar" "rail body";padding:0}
  .vpf-section-body{display:contents}
  .vpf-section-sysbar{grid-area:sysbar;display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:8px 12px;background:var(--bg-subtle);border-bottom:1px solid var(--border-default)}
  .vpf-section-sysbar-l{display:flex;align-items:center;gap:8px;min-width:0}
  .vpf-section-sysbar-r{display:flex;align-items:center;gap:6px;flex-shrink:0}
  .vpf-section-context{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);white-space:nowrap}
  .vpf-section-side{grid-area:rail;box-sizing:border-box;height:100%;min-height:0;overflow:hidden;border-right:1px solid var(--border);background:var(--bg-app);padding:0;display:flex;flex-direction:column;min-width:0}
  .vpf-section-railid{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:var(--sidebar-bg);color:var(--sidebar-fg-strong);flex:0 0 auto}
  .vpf-section-railid-head{display:flex;align-items:flex-start;gap:9px;min-width:0}
  .vpf-rail-avatar{flex:0 0 auto;width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--sidebar-fg-strong) 10%,transparent);border:1px solid color-mix(in srgb,var(--sidebar-fg-strong) 14.000000000000002%,transparent);color:var(--sidebar-fg-strong);overflow:hidden}
  .vpf-rail-avatar.has-photo{background:transparent;border-color:color-mix(in srgb,var(--sidebar-fg-strong) 22%,transparent)}
  .vpf-rail-avatar.has-photo>img{width:100%;height:100%;object-fit:cover;display:block}
  .vpf-section-railid-head>div{min-width:0;display:flex;flex-direction:column;gap:2px}
  .vpf-section-railid-head span:not(.vpf-rail-avatar){font-family:var(--font-mono);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:color-mix(in srgb,var(--sidebar-fg-strong) 55.00000000000001%,transparent)}
  .vpf-section-railid h3{margin:0;font-size:15px;font-weight:650;color:var(--sidebar-fg-strong);letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vpf-section-railid p{margin:0;font-size:11.5px;line-height:1.3;color:color-mix(in srgb,var(--sidebar-fg-strong) 68%,transparent);text-wrap:pretty}
  /* Carte d'identité du rail (section identity) : bannière photo 4:3 + chips overlayés
     en badges flottants sur le bas + nom/meta dessous. Sans photo, fallback avatar carré. */
  .vpf-rail-banner{position:relative;width:100%;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:color-mix(in srgb,var(--sidebar-fg-strong) 6%,transparent);border:1px solid color-mix(in srgb,var(--sidebar-fg-strong) 10%,transparent)}
  .vpf-rail-banner>img{width:100%;height:100%;object-fit:cover;display:block}
  /* Variante B3 : pastilles rondes icône-seulement, gradient minimal pour ne pas masquer
     la photo. Tooltip CSS-only au survol (data-tooltip → ::after). */
  .vpf-rail-badges{position:absolute;left:0;right:0;bottom:0;display:flex;flex-wrap:wrap;justify-content:center;gap:5px;padding:14px 10px 8px;background:linear-gradient(180deg,transparent 0%,color-mix(in srgb,var(--sidebar-bg) 30%,transparent) 55%,color-mix(in srgb,var(--sidebar-bg) 55%,transparent) 100%)}
  .vpf-rail-icon{position:relative;width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--sidebar-bg) 55%,transparent);border:1px solid color-mix(in srgb,var(--sidebar-fg-strong) 22%,transparent);color:var(--sidebar-fg-strong);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:default}
  .vpf-rail-icon>svg{color:var(--sidebar-fg-strong)}
  .vpf-rail-icon::after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:color-mix(in srgb,var(--sidebar-bg) 92%,transparent);color:var(--sidebar-fg-strong);padding:4px 8px;border-radius:6px;font-size:10.5px;font-weight:500;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s var(--ease-out);z-index:20}
  .vpf-rail-icon::before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translateX(-50%);border:4px solid transparent;border-top-color:color-mix(in srgb,var(--sidebar-bg) 92%,transparent);opacity:0;transition:opacity .12s var(--ease-out);z-index:20}
  .vpf-rail-icon:hover::after,.vpf-rail-icon:focus-visible::after,.vpf-rail-icon:hover::before,.vpf-rail-icon:focus-visible::before{opacity:1}
  /* Chips à valeur longue (email…) : tronqués avec ellipsis pour ne pas casser la mise en page. */
  .vpf-rail-chip.is-truncated{max-width:160px;min-width:0}
  .vpf-rail-chip.is-truncated>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vpf-rail-idcard{display:flex;align-items:center;gap:10px;min-width:0}
  .vpf-rail-idtxt{min-width:0;display:flex;flex-direction:column;gap:2px}
  
  .vpf-rail-name{margin:0;font-size:15px;font-weight:650;color:var(--sidebar-fg-strong);letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vpf-rail-meta{margin:0;font-size:11.5px;line-height:1.3;color:color-mix(in srgb,var(--sidebar-fg-strong) 68%,transparent)}
  /* Email / téléphone sous le nom : grille auto-fit → 2 colonnes si la largeur le permet,
     sinon repli sur une colonne. Troncature ellipsis sur l'email long. */
  .vpf-rail-contacts{list-style:none;margin:7px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:3px 10px}
  .vpf-rail-contact{display:flex;align-items:center;gap:5px;font-size:11px;line-height:1.3;color:color-mix(in srgb,var(--sidebar-fg-strong) 78%,transparent);min-width:0}
  .vpf-rail-contact>svg{flex-shrink:0;color:color-mix(in srgb,var(--sidebar-fg-strong) 55.00000000000001%,transparent)}
  .vpf-rail-contact>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  
  .vpf-rail-chips{display:flex;gap:5px;flex-wrap:wrap}
  .vpf-rail-chip{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:500;color:color-mix(in srgb,var(--sidebar-fg-strong) 85%,transparent);background:color-mix(in srgb,var(--sidebar-fg-strong) 8%,transparent);border:1px solid color-mix(in srgb,var(--sidebar-fg-strong) 10%,transparent);border-radius:99px;padding:3px 8px;line-height:1}
  .vpf-rail-chip>svg{flex-shrink:0;color:color-mix(in srgb,var(--sidebar-fg-strong) 78%,transparent)}
  .vpf-rail-chip.off{color:color-mix(in srgb,var(--sidebar-fg-strong) 32%,transparent);background:transparent;border-style:dashed;border-color:color-mix(in srgb,var(--sidebar-fg-strong) 18%,transparent)}
  .vpf-rail-chip.off>svg{color:color-mix(in srgb,var(--sidebar-fg-strong) 30%,transparent)}
  .vpf-section-group-title{font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-4)}
  .vpf-section-nav{display:flex;flex-direction:column;gap:9px;min-height:0;overflow-y:auto;overflow-x:hidden;padding:12px 14px 14px}
  .vpf-section-nav-group{display:flex;flex-direction:column;gap:3px}
  .vpf-section-group-title{padding:0 7px 1px}
  .vpf-section-nav button{display:flex;align-items:flex-start;gap:9px;width:100%;min-height:40px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink-2);font:inherit;text-align:left;padding:7px 10px;cursor:pointer}
  .vpf-section-nav button:hover{background:var(--surface);border-color:var(--border)}
  .vpf-section-nav button:disabled{opacity:.52;cursor:not-allowed}
  .vpf-section-nav button:disabled:hover{background:transparent;border-color:transparent}
  .vpf-section-nav button.on{background:var(--ink);border-color:var(--ink);color:var(--surface);box-shadow:none}
  .vpf-section-nav button>svg{flex-shrink:0;color:var(--ink-4);margin-top:2px}
  .vpf-section-nav button.on>svg{color:color-mix(in srgb,var(--fg-inverse) 76%,transparent)}
  .vpf-section-nav button span{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
  .vpf-section-nav button strong{font-size:12.5px;font-weight:650;color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vpf-section-nav button i{font-size:11px;font-style:normal;color:var(--ink-4);line-height:1.2;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
  .vpf-section-nav button.on i{color:color-mix(in srgb,var(--fg-inverse) 62%,transparent)}
  .vpf-section-nav button.add{border-style:dashed;border-color:var(--border-strong);margin-top:4px;justify-content:flex-start}
  .vpf-section-panel{grid-area:body;box-sizing:border-box;height:100%;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;padding:20px 22px 0}
  .vpf-section-detail{min-height:100%;display:flex;flex-direction:column}
  .vpf-section-detail .cve-profile-detail-grid{flex:1;align-content:start}
  .vpf-section-detail .cve-profile-detail-actions{position:sticky;bottom:0;margin:auto -22px 0;padding:9px 22px;min-height:52px;background:var(--surface);border-top:1px solid var(--border);box-shadow:none}
  .vpf-section-detail .cve-profile-detail-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px}
  .vpf-section-detail .cve-profile-detail-head>div{min-width:0}
  .cve-profile-head-actions{margin-left:0;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0;justify-self:end}
  .vpf-section-detail .cve-profile-intro{border:1px solid var(--border);border-radius:8px;background:var(--surface-2);padding:12px 14px;max-width:none}
  .vpf-section-detail .cve-profile-field.is-empty:not(.is-readonly){background:var(--surface);border-style:dashed}
  .vpf-section-detail .cve-profile-field.is-empty.is-readonly>strong{color:var(--ink-4);font-weight:500}
  .vpf-section-detail .cve-profile-field.is-empty:not(.is-readonly)>strong{color:var(--ink-3);font-weight:600}
  .vpf-section-detail .cve-profile-field.is-source{background:var(--surface-2)}
  /* Variante C (validée juin 2026) : deux bandeaux empilés (Photo en haut, Bibliothèque en
     bas), chacun pleine largeur. Le bandeau Photo a deux sous-rangées : (1) photo + texte
     côte à côte, (2) chips « Affichage » en bandeau plein-largeur dessous. */
  .vpf-photo-layout{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0}
  .vpf-photo-stage{display:flex;flex-direction:column;gap:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);padding:14px}
  .vpf-photo-stage-top{display:flex;gap:14px;align-items:flex-start}
  .vpf-photo-display{margin:0}
  .vpf-photo-display .cve-profile-chiprow{flex-wrap:wrap}
  .vpf-photo-stage.drag{border-color:var(--accent);background:var(--accent-soft)}
  .vpf-photo-preview{width:140px;height:170px;border-radius:8px;border:1px solid var(--border);background:var(--surface);display:grid;place-items:center;color:var(--ink-4);overflow:hidden}
  .vpf-photo-preview.has-img{background:var(--ink)}
  .vpf-photo-preview img{width:100%;height:100%;object-fit:cover;display:block}
  .vpf-photo-stage-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
  .vpf-photo-stage-copy span,.vpf-photo-library-title{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4)}
  .vpf-photo-stage-copy strong{font-size:14px;color:var(--ink)}
  .vpf-photo-stage-copy p{margin:0;font-size:12px;line-height:1.45;color:var(--ink-3)}
  .vpf-photo-side{display:flex;flex-direction:column;gap:12px;min-width:0}
  .vpf-photo-library{display:flex;flex-direction:column;gap:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);padding:10px}
  .vpf-photo-library-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:2px}
  .vpf-photo-library-head .vpf-photo-library-title{flex:0 0 auto}
  .vpf-photo-library-head>.vpf-btn{flex:0 0 auto;height:30px;padding:0 10px;font-size:11.5px}
  /* La biblio devient un bandeau plein-largeur : on dispose les vignettes en grille
     responsive (min 220px par tuile). Elles continuent à s'empiler proprement si trop nombreuses. */
  .vpf-photo-library>.vpf-photo-thumb,.vpf-photo-library>.vpf-photo-empty{margin:0}
  .vpf-photo-library>.vpf-photo-thumb{display:flex}
  .vpf-photo-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
  .vpf-photo-thumb{display:flex;align-items:center;gap:10px;width:100%;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);padding:7px;color:var(--ink-2);cursor:pointer;text-align:left}
  .vpf-photo-thumb.is-readonly{cursor:default}
  .vpf-photo-thumb:not(.is-readonly):hover{border-color:var(--border-strong);background:var(--surface-2)}
  .vpf-photo-thumb.on{border-color:var(--ink);background:var(--surface-2);color:var(--ink)}
  .vpf-photo-thumb img{width:38px;height:46px;border-radius:6px;object-fit:cover;flex:0 0 auto;background:var(--bg-2)}
  .vpf-photo-thumb>span:not(.vpf-photo-thumb-actions){min-width:0;display:flex;flex-direction:column;gap:2px;flex:1}
  .vpf-photo-thumb strong{font-size:12.5px;font-weight:650;color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vpf-photo-thumb i{font-style:normal;font-size:11px;color:var(--ink-4)}
  .vpf-photo-thumb-actions{display:flex;align-items:center;gap:4px}
  .vpf-photo-thumb-actions button{width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:var(--ink-4);display:grid;place-items:center;cursor:pointer}
  .vpf-photo-thumb-actions button:hover{background:var(--bg-2);color:var(--danger)}
  .vpf-photo-empty{display:flex;align-items:center;justify-content:center;min-height:112px;border:1px dashed var(--border-strong);border-radius:8px;color:var(--ink-4);font-size:12.5px}
  @media (max-width:760px){
    .vpf-section-modal{width:min(96vw,1100px);height:min(88vh,760px)}
    .vpf-section-modal{grid-template-columns:1fr;grid-template-rows:auto auto 1fr;grid-template-areas:"sysbar" "rail" "body"}
    .vpf-section-side{border-right:0;border-bottom:1px solid var(--border);max-height:260px}
    .vpf-photo-layout{grid-template-columns:1fr}
  }
  /* Synthèse transversale des outils + tuiles « à qualifier » + vue lecture seule */
  .vpf-synth{display:flex;align-items:center;gap:8px;padding:9px 13px;margin-bottom:11px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);font-size:12.5px;color:var(--ink-2)}
  .vpf-synth svg{color:var(--accent);flex:0 0 auto}
  .vpf-synth strong{color:var(--ink);font-weight:600}
  .vpf-synth-sep{display:flex;align-items:center;gap:6px;margin:16px 0 9px;font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-4)}
  .vpf-synth-sep svg{color:var(--ink-4)}
  .vpf-tile.suggest{background:var(--surface-2);border-style:dashed}
  .vpf-tile.suggest:hover{border-style:solid;border-color:var(--accent)}
  .vpf-tile.suggest .vpf-ic{color:var(--ink-3)}
  .vpf-tile.suggest:hover .vpf-ic{color:var(--accent)}
  
  .vpf-tile.suggest .vpf-go{color:var(--accent);opacity:.7}
  .vpf-view{gap:2px}
  .vpf-view-usages{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.45;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:9px 11px;margin-bottom:11px}
  .vpf-view-usages svg{color:var(--accent);flex:0 0 auto;margin-top:1px}
  .vpf-usages-wrap{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}
  .vpf-usages-lead{font-size:12px;color:var(--ink-2)}
  .vpf-usages-lead strong{color:var(--ink);font-weight:600}
  .vpf-usages-chips{display:flex;flex-wrap:wrap;gap:6px}
  .vpf-usage-chip{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 8px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);font:inherit;font-size:11.5px;font-weight:500;color:var(--ink-2);cursor:pointer;transition:border-color .15s,color .15s}
  .vpf-usage-chip:hover{border-color:var(--accent);color:var(--accent)}
  .vpf-usage-chip svg{color:var(--ink-4)}
  .vpf-usage-chip:hover svg{color:var(--accent)}
  .vpf-usage-chip i{font-style:normal;font-family:var(--font-mono);font-size:9.5px;color:var(--accent-2);background:var(--bg-2);border-radius:3px;padding:0 4px}
  /* Signal « Niveau actualisé » — une nouvelle saisie a fait monter une estimation */
  .vpf-levelup{display:flex;align-items:flex-start;gap:11px;margin:14px 0 0;padding:11px 13px;border:1px solid var(--accent-soft-2);border-radius:10px;background:var(--accent-soft)}
  .vpf-levelup-ic{flex:0 0 auto;width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--accent-soft-2);color:var(--accent)}
  .vpf-levelup-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
  .vpf-levelup-body>strong{font-size:12.5px;font-weight:600;color:var(--accent-ink)}
  .vpf-levelup-chips{display:flex;flex-wrap:wrap;gap:6px}
  .vpf-levelup-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border:1px solid var(--accent-soft-2);border-radius:8px;background:var(--surface);font:inherit;font-size:11.5px;font-weight:500;color:var(--ink);cursor:pointer;white-space:nowrap;transition:border-color .15s}
  .vpf-levelup-chip:hover{border-color:var(--accent)}
  .vpf-levelup-chip i{font-style:normal;font-family:var(--font-mono);font-size:10px;color:var(--accent);background:var(--bg-2);border-radius:3px;padding:0 5px}
  .vpf-levelup-x{flex:0 0 auto;width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--accent);cursor:pointer}
  .vpf-levelup-x:hover{background:var(--surface)}
  .vpf-view-row{display:flex;gap:14px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--border)}
  .vpf-view-row:last-child{border-bottom:none}
  .vpf-view-q{flex:0 0 132px;font-size:11.5px;font-weight:500;color:var(--ink-3)}
  .vpf-view-v{flex:1;min-width:0;font-size:13px;color:var(--ink);text-wrap:pretty}
  .vpf-view-empty{font-size:12.5px;color:var(--ink-4);padding:8px 0}
  /* Lien vers le carnet (Vault) dédié — sections qui ont une double surface (profil léger + carnet) */
  .vpf-carnet-banner{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:10px 13px;margin-bottom:12px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface-2);font:inherit;font-size:12.5px;line-height:1.4;color:var(--ink-2);cursor:pointer;transition:border-color .18s,background .18s}
  .vpf-carnet-banner:hover{border-color:var(--accent);background:var(--surface)}
  .vpf-carnet-banner>svg:first-child{color:var(--accent);flex:0 0 auto}
  .vpf-carnet-banner>svg:last-child{margin-left:auto;color:var(--ink-4);flex:0 0 auto}
  .vpf-carnet-banner strong{color:var(--ink);font-weight:600}
  .vpf-carnet-link{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:9px 11px;margin-bottom:11px;border:1px solid var(--accent-soft-2);border-radius:8px;background:var(--accent-soft);font:inherit;font-size:12.5px;color:var(--accent-ink);cursor:pointer;transition:background .18s}
  .vpf-carnet-link:hover{background:var(--surface)}
  .vpf-carnet-link>svg:first-child{color:var(--accent);flex:0 0 auto}
  .vpf-carnet-link>svg:last-child{margin-left:auto;color:var(--accent);flex:0 0 auto}
  .vpf-carnet-link strong{font-weight:600}
  /* Pied de feed — invite à capturer (incite aux entrées) */
  .vc-feed-end{display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;padding:0 16px 24px;margin-top:0;border-bottom:1px solid var(--border)}
  .vc-feed-end-line{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:var(--ink-2)}
  .vc-feed-end-line svg{color:var(--ink-4)}
  .vc-feed-end-sub{font-size:12px;color:var(--ink-4);max-width:430px;line-height:1.5;text-wrap:pretty}
  
  
  
  /* Zone droite */
  
  
  
  
  /* ─ Langue client : une question humaine remplace l'acronyme et le score. Ton posé,
       aucune couleur d'alerte — il ne manque rien, on propose d'aller plus loin. ─ */
  .vcj-invite{display:flex;flex-direction:column;gap:7px;width:100%}
  
  /* Question douce en ligne de texte (planche G .ask) : question grise, « Répondre » accent. */
  .vcj-invite-btn{display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;align-self:flex-start;padding:0;border:0;border-radius:0;background:none;font-family:inherit;font-size:12.5px;font-weight:500;color:var(--ink-3);cursor:pointer;text-align:left;transition:color .18s cubic-bezier(.16,1,.3,1)}
  .vcj-invite-btn:hover .vcj-invite-hint{color:var(--accent-2);text-decoration:underline;text-underline-offset:2px}
  .vcj-invite-hint{font-size:12.5px;font-weight:500;color:var(--accent)}
  
  
  
  
  
  
  
  
  
  
  
  
   

  /* ===== ReuseBadge (A) — repère de réutilisation unifié (window.ReuseBadge) ===== */
  .reuse-badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:8px;
    font-family:var(--font-mono);font-size:10.5px;font-weight:600;white-space:nowrap;flex:0 0 auto;
    background:var(--accent-50);color:var(--accent-2);border:1px solid var(--accent-soft-2)}
  .reuse-badge svg{color:var(--accent-2);flex-shrink:0}
  .reuse-badge.dense{height:20px;padding:0 8px;font-size:10px;font-weight:500}

  /* ===== StarMeter (B) — compteur de complétude STAR unifié (window.StarMeter) ===== */
  .starmeter{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
  
  
  .starmeter-sg{width:21px;height:21px;border-radius:6px;display:grid;place-items:center;font-family:var(--font-mono);font-size:10.5px;font-weight:600;border:1px solid transparent}
  .starmeter.dense .starmeter-sg{width:18px;height:18px;border-radius:6px;font-size:9.5px}
  .starmeter-sg.off{background:var(--surface);border-color:var(--border-strong);color:var(--ink-5)}
  .starmeter.ok .starmeter-sg.on{background:var(--good);color:var(--fg-inverse)}
  .starmeter.partial .starmeter-sg.on{background:var(--warn);color:var(--fg-inverse)}
  .starmeter-count{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--ink-4)}
  .starmeter.ok .starmeter-count{color:var(--good-ink)} .starmeter.partial .starmeter-count{color:var(--warn-2)}
  .starmeter-note{flex-basis:100%;font-size:10px;color:var(--ink-4);line-height:1.35}
  .starmeter-note.ok{color:var(--good-ink)}
  
  
  
  
  
  
  
  
  
  
  
   
  /* Dépli plein-largeur */
  

  /* ══ Pop-up d'entrée (VaultDetailPopup — Placement 3, assistant à la demande) ══ */
  .vdp-scrim{position:fixed;inset:0;z-index:80;background:var(--scrim);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:28px;animation:vdpFade .18s var(--ease-out)}
  @keyframes vdpFade{from{opacity:0}to{opacity:1}}
  .vdp{width:min(1100px,92vw);height:min(760px,88vh);background:var(--surface);border:1px solid var(--border);border-radius:16px;
    box-shadow:0 24px 60px -16px color-mix(in srgb,var(--ink) 34%,transparent),0 8px 18px -8px color-mix(in srgb,var(--ink) 18%,transparent);overflow:hidden;display:flex;flex-direction:row}
  .vdp-head{display:flex;align-items:center;gap:10px;padding:9px 16px;border-bottom:1px solid var(--border)}
  .vdp-chip{width:23px;height:23px;border-radius:8px;border:1px solid color-mix(in srgb,currentColor 15%,transparent);display:grid;place-items:center;flex:0 0 auto;margin-top:0}
  .vdp-htxt{flex:1;min-width:0}
  .vdp-head h3{margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--ink);line-height:1.3;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vdp-title-edit{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
  .vdp-title-edit>span{flex:0 0 auto;font-size:11px;color:var(--ink-3);white-space:nowrap}
  .vdp-title-edit>input{width:100%;min-width:0;height:30px;padding:0 9px;border:1px solid var(--border-input);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;outline:0}
  .vdp-title-edit>input:focus{border-color:var(--border-input-hover);box-shadow:var(--ring-focus)}
  .vdp-titlerow{display:flex;align-items:center;gap:9px;min-width:0}
  .vdp-meta{display:flex;align-items:center;gap:10px;margin:0 0 4px;flex-wrap:wrap;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-4)}
  .vdp-when{text-transform:uppercase;letter-spacing:.04em}
  .vdp-meta-right{display:inline-flex;align-items:center;gap:10px;margin-left:auto}
  .vdp-usecv{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px;border-radius:8px;font-size:10px;font-weight:500;background:var(--accent-50);color:var(--accent-2);border:1px solid var(--accent-soft-2)}
  .vdp-usecv svg{width:12px;height:12px}
  .vdp-x{width:26px;height:26px;flex:0 0 auto;display:grid;place-items:center;border:1px solid var(--border-soft);background:var(--surface);border-radius:8px;color:var(--ink-3);cursor:pointer}
  .vdp-x:hover{background:var(--bg-2);border-color:var(--border-hover);color:var(--ink)}
  .vdp-x:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .vdp-x.sm{width:26px;height:26px;border-color:transparent;margin-left:auto}
  .vdp-main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}
  /* Document */
  .vdp-doc{min-width:0;overflow:auto;padding:20px 24px;flex:1;min-height:0}
  .vdp-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:0;align-items:stretch;min-height:100%}
  /* Séparateur entre la colonne saisie/tags et la colonne STAR/pièces */
  .vdp-grid>.vdp-col:first-child{padding-right:26px}
  .vdp-grid>.vdp-col:last-child{padding-left:26px;border-left:1px solid var(--border)}
  .vdp-block+.vdp-block{margin-top:18px}
  .vdp-sech{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);display:flex;align-items:center;gap:7px;margin-bottom:10px}
  .vdp-sech svg{width:13px;height:13px}
  .vdp-prose{margin:0;font-size:14px;line-height:22px;color:var(--ink);text-wrap:pretty}
  .vdp-muted{font-size:12.5px;color:var(--ink-4)}
  .vdp-editor{border:1px solid var(--border-strong);border-radius:10px;overflow:hidden}
  .vdp-toolbar{display:flex;align-items:center;gap:1px;padding:6px 8px;background:var(--bg-2);border-bottom:1px solid var(--border);flex-wrap:wrap}
  .vdp-tb{width:28px;height:28px;border:0;background:transparent;border-radius:6px;color:var(--ink-3);display:grid;place-items:center;cursor:pointer}
  .vdp-tb:hover{background:var(--surface);color:var(--ink)}
  .vdp-tb svg{width:15px;height:15px}
  .vdp-area{padding:12px 14px;min-height:150px;font-size:14px;line-height:22px;color:var(--ink);outline:0;background:var(--surface)}
  textarea.vdp-area{display:block;width:100%;border:0;resize:vertical;font-family:var(--font-sans)}
  .vdp-sv-edit{width:100%;border:1px solid var(--border-strong);border-radius:8px;padding:5px 8px;font:inherit;font-size:13px;color:var(--ink);background:var(--surface)}
  .vdp-sv-edit:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
  .vdp-area:focus{box-shadow:inset 0 0 0 2px var(--accent-soft-2)}
  .vdp-tagsrow{display:flex;gap:7px;flex-wrap:wrap}
  .vdp-tag{display:inline-flex;align-items:center;height:23px;padding:0 9px;border-radius:6px;background:var(--bg-2);border:1px solid var(--border-soft);color:var(--ink-3);font-size:11.5px;font-weight:500}
  .vdp-tag-skill,.vdp-tag-stack{gap:5px;padding-left:7px}
  .vdp-tag-skill svg,.vdp-tag-stack svg{width:11px;height:11px;color:var(--ink-4)}
  .vdp-tag-stack{font-family:var(--font-mono)}
  /* Portée inversée (lot #4) « où ce fait a servi ? » : chips cliquables vers la candidature
     citante. Sobre (design system) : bord neutre, hover accent, aucune bande colorée. */
  .vdp-usage-list{display:flex;gap:7px;flex-wrap:wrap}
  .vdp-usage-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;background:var(--surface);border:1px solid var(--border-soft);color:var(--ink-3);font-family:inherit;font-size:11.5px;font-weight:500;cursor:pointer;transition:border-color .18s cubic-bezier(.16,1,.3,1),color .18s cubic-bezier(.16,1,.3,1)}
  .vdp-usage-chip:hover{border-color:var(--accent);color:var(--accent-ink)}
  .vdp-usage-chip svg{flex:0 0 auto;color:var(--ink-4)}
  .vdp-usage-chip:hover svg{color:var(--accent)}
  .vdp-tagedit{display:flex;flex-wrap:wrap;gap:7px;align-items:center;border:1px solid var(--border-soft);border-radius:10px;padding:9px 11px}
  .vdp-tg{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 5px 0 10px;border-radius:8px;background:var(--bg-2);border:1px solid var(--border);color:var(--ink-2);font-size:12px;font-weight:500}
  .vdp-tg button{border:0;background:transparent;color:var(--ink-4);cursor:pointer;display:grid;place-items:center;padding:0;width:16px;height:16px}
  .vdp-tagedit input{border:0;outline:0;font:inherit;font-size:13px;color:var(--ink);flex:1;min-width:90px;background:transparent}
  .vdp-starhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
  .vdp-segwrap{display:inline-flex;align-items:center;gap:8px}
  /* ─ Langue client dans le pop-up : ce qui manque se dit en clair (« Il manque le résultat »)
       plutôt qu'en score. Ton neutre — c'est un état, pas une faute. ─ */
  .vdp-missing{font-size:11.5px;color:var(--ink-3)}
  .vdp-complete{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--good-ink)}
  .vdp-sg{width:21px;height:21px;border-radius:6px;display:grid;place-items:center;font-family:var(--font-mono);font-size:10.5px;font-weight:600;border:1px solid transparent}
  .vdp-sg.off{background:var(--surface);border-color:var(--border-strong);color:var(--ink-5)}
  .vdp-star{display:flex;flex-direction:column;gap:1px;border:1px solid var(--border);border-radius:10px;overflow:hidden}
  .vdp-srow{display:flex;background:var(--surface)}
  .vdp-srow+.vdp-srow{border-top:1px solid var(--border)}
  .vdp-sk{width:96px;flex:0 0 auto;font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-4);padding:10px 11px;background:var(--bg-2)}
  .vdp-srow.todo .vdp-sk{color:var(--warn-2);background:var(--warn-soft)}
  .vdp-sv{flex:1;padding:10px 12px;font-size:12.5px;line-height:18px;color:var(--ink-2);text-wrap:pretty;outline:0}
  .vdp.editing .vdp-sv{background:var(--surface-2)}
  .vdp.editing .vdp-sv:focus{background:var(--surface);box-shadow:inset 0 0 0 1px var(--accent)}
  .vdp-star-empty{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--ink-4);line-height:1.5;background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:11px 12px}
  .vdp-star-empty svg{width:14px;height:14px;flex:0 0 auto;margin-top:1px;color:var(--ink-4)}
  /* Toggle « Version IA » ↔ « Ma saisie » sur l'en-tête STAR · segment sobre,
     accent réservé à l'état actif (regle-sobriete-visuelle). */
  .vdp-starview{display:inline-flex;align-items:center;gap:1px;padding:2px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2)}
  .vdp-starview-opt{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border:0;border-radius:6px;background:transparent;color:var(--ink-3);font:inherit;font-size:11.5px;font-weight:500;cursor:pointer;white-space:nowrap;transition:color .18s var(--ease-out),background .18s var(--ease-out)}
  .vdp-starview-opt svg{width:12px;height:12px;color:currentColor}
  .vdp-starview-opt:hover{color:var(--ink-2)}
  .vdp-starview-opt.on{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-xs)}
  /* Marqueur « reformulé par l'IA » : bordure gauche accent discrète + pastille. */
  .vdp-srow.vdp-reform{box-shadow:inset 2px 0 0 var(--accent)}
  .vdp-reform-tag{display:inline-flex;align-items:center;vertical-align:middle;margin-left:6px;color:var(--accent);opacity:.7}
  .vdp-reform-tag svg{width:11px;height:11px}
  .vdp-pgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .vdp-ptile{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface)}
  .vdp-ppic{height:56px;background:var(--surface-2);display:grid;place-items:center;color:var(--ink-3)}
  .vdp-ppic img{width:100%;height:100%;object-fit:cover;display:block}
  .vdp-pcap{padding:6px 8px;border-top:1px solid var(--border);font-size:10.5px;color:var(--ink-2);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vdp-plinks{display:flex;flex-direction:column;gap:6px;margin-top:8px}
  .vdp-plink{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--ink-2);text-decoration:none}
  .vdp-plink svg{color:var(--ink-4);flex:0 0 auto}
  .vdp-plink:hover{color:var(--accent)}
  /* Footer : dossier + type + quand à gauche ; actions à droite */
  .vdp-foot{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 14px;border-top:1px solid var(--border);background:var(--surface)}
  .vdp-foot-side{display:flex;align-items:center;gap:10px}
  .vdp-foot-side.left{justify-self:start}
  .vdp-foot-side.right{justify-self:end}
  .vdp-foot-left{display:flex;align-items:center;gap:12px;flex-wrap:nowrap;justify-content:center;min-width:0;overflow-x:auto;scrollbar-width:none}
  .vdp-foot-left::-webkit-scrollbar{display:none}
  .vdp-foot-folder,.vdp-mg{flex:0 0 auto}
  .vdp-foot-folder{display:inline-flex;align-items:center;gap:8px}
  .vdp-foot-folder .ff-l{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4)}
  .vdp-folderchip{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-2);font-weight:500}
  .vdp-folderchip svg{width:15px;height:15px;color:var(--ink-4)}
  
  .vdp-mg{display:flex;align-items:center;gap:8px}
  .vdp-mg .mg-l{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4)}
  .vdp-mv{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2)}
  .vdp-mv svg{width:14px;height:14px;color:var(--ink-4)}
  .vdp-select{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 10px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);font:inherit;font-size:13px;color:var(--ink-2);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vdp-select:hover{background:var(--bg-2);border-color:var(--border-hover);color:var(--ink)}
  .vdp-select .fc{display:inline-flex;align-items:center;gap:7px}
  .vdp-select svg{color:var(--ink-4)}
  
  
  
  /* Type : menu déroulant (même langage que le sélecteur de carnet « Dans ») */
  .vdp-mg-rel{position:relative}
  .vdp-foot-left.ovis{overflow:visible}
  /* Popovers Dans/Quand du pied : même largeur que dans le chat (252px) pour que « Juin 2026 » et « Choisir une date précise » tiennent sur une ligne */
  .vdp-popmenu{width:252px}
  .vdp-typemenu{position:absolute;bottom:calc(100% + 7px);left:0;z-index:30;min-width:198px;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 14px 32px -10px color-mix(in srgb,var(--ink) 26%,transparent),0 4px 10px -4px color-mix(in srgb,var(--ink) 14.000000000000002%,transparent);padding:5px;animation:vdpMenu .16s var(--ease-out)}
  @keyframes vdpMenu{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
  .vdp-typeopt{display:flex;align-items:center;gap:9px;width:100%;border:0;background:transparent;font:inherit;font-size:13px;color:var(--ink-2);padding:8px 9px;border-radius:8px;cursor:pointer;text-align:left}
  .vdp-typeopt span{flex:1}
  .vdp-typeopt:hover{background:var(--bg-2)}
  .vdp-typeopt.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:500}
  .vdp-typeopt svg{color:var(--ink-4);flex:0 0 auto}
  .vdp-typeopt.on svg:last-child{color:var(--accent)}
  .vdp-acts{display:flex;align-items:center;gap:9px;flex:0 0 auto}
  .vdp-btn{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 13px;border-radius:6px;font:inherit;font-size:13px;font-weight:500;cursor:pointer;border:1px solid var(--border-soft);white-space:nowrap;background:var(--surface);color:var(--ink);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vdp-btn svg{width:15px;height:15px}
  .vdp-btn:hover{background:var(--bg-2);border-color:var(--border-hover);color:var(--ink)}
  .vdp-btn.primary{background:var(--action-bg);border-color:var(--action-border);color:var(--action-ink)}
  .vdp-btn.primary:hover{background:var(--action-bg-hover)}
  /* Variante NOIRE · même facture que .vdp-btn, fond sombre = bouton d'action standard
     (remplace l'ancien gros pavé .btn.accent/.btn.primary). */
  .vdp-btn.dark{background:var(--sidebar-bg);border-color:var(--sidebar-bg);color:var(--sidebar-fg-strong)}
  .vdp-btn.dark:hover{background:var(--sidebar-bg-2);border-color:var(--sidebar-bg-2);color:var(--sidebar-fg-strong)}
  .vdp-btn.danger{border-color:color-mix(in srgb,var(--bad) 40%,transparent);color:var(--bad)}
  .vdp-btn.danger:hover{background:color-mix(in srgb,var(--bad) 8%,transparent);border-color:var(--bad);color:var(--bad)}
  /* Lien discret « Enregistrer sans discuter » sous la barre de saisie de l'assistant (mode création) */
  .vdp-savedirect{display:block;margin:9px auto 0;border:0;background:transparent;color:var(--ink-3);font:inherit;font-size:11.5px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
  .vdp-savedirect:hover{color:var(--ink)}
  /* Feedback du remplissage live + état « enregistré » de la coquille création */
  .vdp-flash{animation:vdpFlash 1.3s var(--ease-out)}
  @keyframes vdpFlash{0%{background:var(--accent-soft)}100%{background:var(--surface)}}
  .vdp-srow.todo.vdp-flash{animation:vdpFlashTodo 1.3s var(--ease-out)}
  @keyframes vdpFlashTodo{0%{background:var(--accent-soft)}100%{background:transparent}}
  
  @keyframes vdpTagIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
  .vdp-usecv.vdp-saved{background:var(--good-soft);color:var(--good-ink);border-color:var(--good)}
  .vdp-savedhint{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:9px;font-size:11.5px;color:var(--good-ink)}
  .vdp-savedhint svg{width:13px;height:13px;color:var(--good)}
  .jc-bubble-ok{display:inline-flex;align-items:center;gap:7px;color:var(--good-ink);background:var(--good-soft);border:1px solid var(--good)}
  .jc-recap-done{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--good-ink)}
  .jc-recap-done svg{color:var(--good)}
  @media (max-width:560px){ .vdp-grid{grid-template-columns:1fr} .vdp-grid>.vdp-col:first-child{padding-right:0} .vdp-grid>.vdp-col:last-child{padding-left:0;border-left:0;border-top:1px solid var(--border);margin-top:20px;padding-top:20px} }

  /* ── Composer journal deux panneaux ── */
  .vcjc{display:flex;flex-direction:column;height:100%;min-height:0}
  /* ── Vault v2 : rail droit (stats / outils / heatmap) ──
     Le rail GAUCHE des carnets a rejoint la sidebar principale (2026-07-20) : la coquille
     n'a plus de colonne de navigation à gauche. */
  .vc-shell{grid-template-columns:minmax(0,1fr)}
  .vc-shell.side-collapsed{grid-template-columns:minmax(0,1fr)}
  /* Panneau droit « En attente / Votre mémoire au travail » : 3e colonne quand il est rendu
     (fil d'un carnet uniquement). `:has` évite d'imposer une colonne vide partout ailleurs. */
  .vc-shell:has(> .vc-aside),.vc-shell.side-collapsed:has(> .vc-aside){grid-template-columns:minmax(0,1fr) 336px !important}
  /* ── Planche G (lot 3) : le rail vit sur le canevas crème, séparé du fil par l'air.
     Cartes du rail = remplissage doux sans bordure (l'idcard de la planche). ── */
  .vc-aside{border-left:0;background:var(--bg);overflow-y:auto;padding:18px 16px;display:flex;flex-direction:column;gap:22px;min-height:0}
  .vc-aside-context{display:flex;flex-direction:column;gap:10px}
  /* Carte identité : fond teinté marque + pastilles CONSERVÉS (décision Landry 24-07,
     « revenir à l'existant » sur ce composant pendant la bascule planche G). */
  .vc-aside-identity{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--border);border-radius:13px;background:var(--bg-2)}
  .vc-aside-identity .vc-banner-opt{position:relative;top:auto;right:auto;z-index:5}
  .vc-aside-identity .vc-banner-optbtn{color:var(--ink-4)}
  .vc-aside-identity .vc-banner-optbtn:hover{background:var(--surface);color:var(--ink)}
  .vc-aside-id-main{display:flex;align-items:center;gap:10px;min-width:0}
  .vc-aside-id-copy{min-width:0;flex:1}
  .vc-aside-id-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;letter-spacing:-.005em;color:var(--ink)}
  .vc-aside-id-role{margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;line-height:16px;color:var(--ink-3)}
  .vc-aside-id-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .vc-aside-id-status,.vc-aside-id-period,.vc-aside-id-tag{display:inline-flex;align-items:center;gap:5px;min-width:0;border:1px solid var(--border-soft);background:var(--surface);color:var(--ink-3)}
  .vc-aside-id-status,.vc-aside-id-period{height:21px;padding:0 8px;border-radius:99px;font-size:11px}
  .vc-aside-id-period{font-family:var(--font-sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
  .vc-aside-id-dot{width:6px;height:6px;border-radius:50%;background:var(--ink-4);flex:0 0 auto}
  .vc-aside-id-status[data-st="current"] .vc-aside-id-dot{background:var(--good)}
  .vc-aside-id-tags{display:flex;gap:5px;flex-wrap:wrap}
  .vc-aside-id-tag{height:19px;padding:0 8px;border-radius:99px;font-family:var(--font-sans);font-size:11px;letter-spacing:0;text-transform:none;white-space:nowrap}
  .vc-aside-id-why{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal;opacity:.68}
  .vc-aside-id-footer{display:flex;align-items:center;justify-content:flex-end;gap:4px;padding-top:2px}
  .vc-aside-identity.is-tinted .vc-aside-id-name{color:var(--sidebar-fg-strong)}
  .vc-aside-identity.is-tinted .vc-aside-id-role{color:color-mix(in srgb,var(--sidebar-fg-strong) 78%,transparent)}
  .vc-aside-identity.is-tinted .vc-aside-id-status,.vc-aside-identity.is-tinted .vc-aside-id-period,.vc-aside-identity.is-tinted .vc-aside-id-tag{border-color:color-mix(in srgb,var(--sidebar-fg-strong) 18%,transparent);background:color-mix(in srgb,var(--sidebar-fg-strong) 10%,transparent);color:color-mix(in srgb,var(--sidebar-fg-strong) 90%,transparent)}
  .vc-aside-identity.is-tinted .vc-banner-optbtn{color:color-mix(in srgb,var(--sidebar-fg-strong) 62%,transparent)}
  .vc-aside-identity.is-tinted .vc-banner-optbtn:hover{background:color-mix(in srgb,var(--sidebar-fg-strong) 14.000000000000002%,transparent);color:var(--sidebar-fg-strong)}
  .vc-aside-cta .vc-banner-synth{display:flex;width:100%;height:38px;margin:0;justify-content:center;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--fg-inverse);font-size:12.5px;box-shadow:var(--shadow-xs)}
  .vc-aside-cta .vc-banner-synth:hover{border-color:var(--accent-2);background:var(--accent-2)}
  /* Titres du rail (planche G .railsec .h) : sentence case 12/500 — plus de mono UPPERCASE. */
  .vc-aside-h{margin:0 0 10px;font-family:inherit;font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink-3)}
  .vc-aside-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
  .vc-aside-section-head .vc-aside-h{margin:0}
  .vc-activity-reset,.vc-capture-filter button{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:var(--accent-ink);font-family:inherit;font-size:10.5px;font-weight:600;line-height:1.2;cursor:pointer;white-space:nowrap}
  .vc-activity-reset:hover,.vc-capture-filter button:hover{text-decoration:underline;text-underline-offset:3px}
  
  .vc-aside-stats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
  .vc-aside-stat{display:block;width:100%;padding:0;border:0;background:none;font-family:inherit;font-size:12.5px;line-height:17px;color:var(--ink-2);text-align:left;cursor:pointer}
  .vc-aside-stat b{font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
  .vc-aside-stat:hover:not(.is-note){color:var(--accent-ink)}
  .vc-aside-stat.is-note{cursor:default}
  /* Baromètre de santé mémoire (chantier onboarding-capture) : carte douce, jauge accent, faits
     à étoffer cliquables. Copy « santé mémoire », jamais promesse par-candidature. */
  /* SIH-16 · renforcement mémoire. L'ancien baromètre et son score ont disparu :
     cette surface promet une aide, puis la modale B protège le focus. */
  .memory-reinforce-entry{display:grid;grid-template-columns:30px minmax(0,1fr);column-gap:9px;row-gap:4px;padding:14px;background:var(--surface);border:1px solid var(--border-soft);border-radius:13px}
  .memory-reinforce-entry-icon{grid-row:1/3;width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:var(--bg-2);color:var(--ink-2)}
  .memory-reinforce-entry h3{margin:0;font-size:13px;font-weight:600;color:var(--ink)}
  .memory-reinforce-entry p{grid-column:1/-1;margin:6px 0 4px;font-size:12px;line-height:1.45;color:var(--ink-3)}
  .memory-reinforce-entry > button{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;width:100%;height:32px;padding:0 10px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .memory-reinforce-entry > button:hover{background:var(--bg-2);border-color:var(--border-strong);color:var(--ink)}
  .memory-reinforce-entry > button:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .memory-reinforce-entry.is-sidebar{display:grid;grid-template-columns:16px minmax(0,1fr);column-gap:8px;row-gap:7px;margin:16px 0 4px;padding:14px;border-color:var(--sidebar-command-border);border-radius:13px;background:color-mix(in srgb,var(--sidebar-fg-strong) 7%,transparent)}
  .memory-reinforce-entry.is-sidebar .memory-reinforce-entry-icon{grid-row:1;width:16px;height:20px;border-radius:0;background:transparent;color:var(--sidebar-fg-strong)}
  .memory-reinforce-entry.is-sidebar h3{color:var(--sidebar-fg-strong);font-size:13px;font-weight:500}
  .memory-reinforce-entry.is-sidebar p{grid-column:1/-1;margin:0;color:var(--sidebar-fg-muted);font-size:11.5px}
  .memory-reinforce-entry.is-sidebar > button{grid-column:1/-1;height:34px;margin-top:3px;justify-content:center;gap:7px;border:0;background:var(--sidebar-fg-strong);color:var(--sidebar-bg)}
  .memory-reinforce-entry.is-sidebar > button:hover{background:var(--sidebar-fg);color:var(--sidebar-bg)}
  body[data-side="collapsed"] .memory-reinforce-entry.is-sidebar{display:none}
  .memory-reinforce-scrim{position:fixed;inset:0;z-index:900;display:grid;place-items:center;padding:24px;background:var(--scrim);animation:memoryReinforceScrim var(--dur-fast) var(--ease-out)}
  body[data-memory-reinforcement-open="true"][data-side="collapsed"] .side [data-tip]{z-index:auto}
  body[data-memory-reinforcement-open="true"][data-side="collapsed"] .side [data-tip]::before,
  body[data-memory-reinforcement-open="true"][data-side="collapsed"] .side [data-tip]::after{display:none}
  @keyframes memoryReinforceScrim{from{background:transparent}to{background:var(--scrim)}}
  /* SIH-53 — `minmax(0,…)` est la cause réelle du rail coupé : sans lui, la rangée
     centrale refuse de descendre sous la hauteur de son contenu, le rail déborde
     de la modale et se fait rogner par son `overflow:hidden` au lieu de défiler.
     La variante mobile (plus bas) appliquait déjà la forme correcte. */
  .memory-reinforce-modal{box-shadow:var(--shadow-lg);grid-template-rows:auto minmax(0,1fr) auto}
  .memory-reinforce-rail{display:flex;flex-direction:column;min-height:0;padding:20px 14px;overflow:hidden;border-right:1px solid var(--border-soft);background:var(--surface-2)}
  .memory-reinforce-rail-scroll{flex:1;min-height:0;overflow-y:auto;margin:0 -14px;padding:0 14px}
  .memory-reinforce-rail-context{display:flex;flex-direction:column;flex-shrink:0;padding:0 8px 18px;border-bottom:1px solid var(--border-soft)}
  .memory-reinforce-rail-context strong{margin-top:5px;overflow:hidden;color:var(--ink);font-size:14px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
  .memory-reinforce-rail-context > span:last-child:not(:first-child){margin-top:3px;color:var(--ink-3);font-size:11.5px}
  .memory-reinforce-eyebrow{font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
  .memory-reinforce-rail-group{margin-top:18px}
  .memory-reinforce-rail-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 8px 7px;color:var(--ink-3);font:500 9.5px/1.3 var(--font-mono);letter-spacing:.07em;text-transform:uppercase}
  .memory-reinforce-rail-title span{color:var(--ink-4);letter-spacing:0}
  .memory-reinforce-rail-entry{width:100%;min-height:44px;display:grid;grid-template-columns:7px minmax(0,1fr);gap:9px;align-items:center;padding:7px 9px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
  .memory-reinforce-rail-entry.on{background:var(--bg-2)}
  .memory-reinforce-rail-entry.is-static{cursor:default}
  .memory-reinforce-rail-entry strong,.memory-reinforce-rail-entry small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .memory-reinforce-rail-entry strong{font-size:12px;font-weight:500}
  .memory-reinforce-rail-entry small{color:var(--ink-3);font-size:10.5px}
  .memory-reinforce-dot{width:6px;height:6px;border-radius:50%;background:var(--warn-quiet,#8A5E20)}
  .memory-reinforce-dot.processing{background:var(--accent)}
  .memory-reinforce-dot.ready{background:var(--good-quiet,#3F6B52)}
  .memory-reinforce-head{grid-area:header;display:flex;align-items:center;gap:14px;min-height:70px;padding:14px 18px 14px 22px;border-bottom:1px solid var(--border-soft);background:var(--surface)}
  .memory-reinforce-head h2{margin:3px 0 0;font-size:17px;line-height:1.25;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
  .memory-reinforce-private{margin-left:auto;color:var(--ink-3);font:500 9.5px/1.3 var(--font-mono);letter-spacing:.03em;text-transform:uppercase}
  .memory-reinforce-close{width:30px;height:30px;display:grid;place-items:center;padding:0;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--ink-3);cursor:pointer}
  .memory-reinforce-close:hover{border-color:var(--border-soft);background:var(--bg-2);color:var(--ink)}
  .memory-reinforce-close:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .memory-reinforce-body{overflow:auto;padding:20px 28px 28px}
  .memory-reinforce-flow{max-width:760px;margin:0 auto;display:flex;flex-direction:column}
  .memory-reinforce-known{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border-radius:var(--radius-md);background:var(--surface-2);font-size:12px;line-height:1.5;color:var(--ink-2)}
  .memory-reinforce-known svg{flex:0 0 auto;margin-top:2px;color:var(--good-quiet)}
  .memory-reinforce-known strong{font-weight:600;color:var(--ink)}
  .memory-reinforce-question{margin-top:16px;padding:14px 16px 16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}
  .memory-reinforce-progress{display:flex;align-items:center;gap:9px;margin-bottom:9px;color:var(--ink-3);font-size:11.5px}
  .memory-reinforce-segments{display:flex;gap:4px}
  .memory-reinforce-segments i{width:24px;height:3px;border-radius:999px;background:var(--bg-2)}
  .memory-reinforce-segments i.active{background:var(--accent)}
  .memory-reinforce-question-type{padding-left:9px;border-left:1px solid var(--border);color:var(--ink-3);font:500 10px/1.3 var(--font-mono)}
  .memory-reinforce-question h3{margin:0;font-size:17px;line-height:1.3;font-weight:600;letter-spacing:-.015em;color:var(--ink)}
  .memory-reinforce-question > p{margin:5px 0 0;font-size:12px;color:var(--ink-3)}
  .memory-reinforce-options{display:grid;gap:6px;margin-top:14px}
  .memory-reinforce-options button{position:relative;width:100%;min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 11px 8px 13px;border:1px solid transparent;border-radius:var(--radius-md);background:var(--surface-2);color:var(--ink);font:inherit;font-size:13px;font-weight:500;text-align:left;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .memory-reinforce-options kbd{width:24px;height:24px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-3);font:500 11px/1 var(--font-mono)}
  .memory-reinforce-options button:hover{border-color:var(--border-strong);background:var(--bg-2);color:var(--ink)}
  .memory-reinforce-options button[aria-pressed="true"]{border-color:var(--ink-3);background:var(--bg-2);color:var(--ink)}
  .memory-reinforce-options button[aria-pressed="true"] kbd{border-color:var(--ink-3);background:var(--sidebar-bg);color:var(--sidebar-fg-strong)}
  .memory-reinforce-options button:focus-visible,.memory-reinforce-free input:focus,.memory-reinforce-free textarea:focus,.memory-reinforce-rephrase textarea:focus{outline:0;border-color:var(--accent);box-shadow:var(--ring-focus)}
  .memory-reinforce-free{display:grid;gap:7px;margin-top:6px;padding:10px 12px 12px;border:1px solid transparent;border-radius:var(--radius-md);background:var(--surface-2)}
  .memory-reinforce-free > span,.memory-reinforce-rephrase label > span{color:var(--ink);font-size:13px;font-weight:500}
  .memory-reinforce-free input,.memory-reinforce-free textarea,.memory-reinforce-rephrase textarea{width:100%;min-width:0;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);padding:9px 10px;color:var(--ink);font:inherit;font-size:13px;line-height:1.45;resize:vertical}
  .memory-reinforce-free input{height:38px;font-variant-numeric:tabular-nums}
  .memory-reinforce-exact-row{display:flex;align-items:center;gap:9px}
  .memory-reinforce-exact-row > span{color:var(--ink-3);font-size:12px;font-weight:400}
  .memory-reinforce-free-wrap{margin-top:6px;border-radius:var(--radius-md);background:var(--surface-2);overflow:hidden}
  .memory-reinforce-free-wrap .memory-reinforce-free{margin-top:0;padding-bottom:10px}
  .memory-reinforce-rephrase{margin:0 12px 10px;padding:0;color:var(--good-quiet);font-size:11.5px}
  .memory-reinforce-rephrase > button{height:30px;padding:0 10px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:12px;font-weight:500;cursor:pointer}
  .memory-reinforce-rephrase label{display:flex;flex-direction:column;gap:6px}
  .memory-reinforce-error{margin:0!important;color:var(--bad)!important;font-size:12px!important}
  .memory-reinforce-foot{grid-area:footer;min-height:58px;display:flex;align-items:center;gap:8px;padding:10px 18px;border-top:1px solid var(--border-soft);background:var(--surface)}
  .memory-reinforce-privacy{display:flex;align-items:center;gap:6px;color:var(--ink-3);font-size:10.5px}
  .memory-reinforce-foot .memory-reinforce-privacy + .btn{margin-left:auto}
  .memory-reinforce-foot .btn,.memory-reinforce-next .btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 13px;border-radius:8px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
  .memory-reinforce-foot .btn.primary,.memory-reinforce-next .btn.primary{border:1px solid var(--sidebar-bg);background:var(--sidebar-bg);color:var(--sidebar-fg-strong)}
  .memory-reinforce-foot .btn.ghost{border:1px solid transparent;background:var(--surface-2);color:var(--ink-2)}
  .memory-reinforce-foot .btn:disabled{opacity:.45;cursor:not-allowed}
  .memory-reinforce-state,.memory-reinforce-success{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:620px;margin:0 auto;text-align:center}
  .memory-reinforce-state h3,.memory-reinforce-success h3{margin:14px 0 5px;font-size:20px;font-weight:500;color:var(--ink)}
  .memory-reinforce-state p,.memory-reinforce-success > p{margin:0;color:var(--ink-3);font-size:13px}
  .memory-reinforce-skeleton{width:min(520px,80%);height:118px;border-radius:12px;background:var(--bg-2)}
  .memory-reinforce-skeleton.short{width:min(360px,58%);height:42px;margin-top:14px}
  .memory-reinforce-success-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--good-soft);color:var(--good-quiet)}
  .memory-reinforce-narrative{width:100%;margin-top:24px;padding:20px;border-radius:12px;background:var(--bg-2);text-align:left}
  .memory-reinforce-narrative p{margin:8px 0 0;font-size:17px;line-height:1.55;color:var(--ink);text-wrap:pretty}
  .memory-reinforce-next{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-soft);text-align:left}
  .memory-reinforce-next > div{display:flex;flex-direction:column;gap:2px}
  .memory-reinforce-next strong{font-size:13px;font-weight:600;color:var(--ink)}
  .memory-reinforce-next span{font-size:12px;color:var(--ink-3)}
  @media(max-width:760px){
    .memory-reinforce-scrim{padding:0}
    .cdet-modal2.memory-reinforce-modal{width:100vw;height:100dvh;border-radius:0;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"header" "body" "footer"}
    .cdet-railnav.memory-reinforce-rail{display:none}
    .cdet-content2.memory-reinforce-body{padding:22px 18px}
    .memory-reinforce-close,.memory-reinforce-options button,.memory-reinforce-free input,.memory-reinforce-rephrase > button,.memory-reinforce-foot .btn,.memory-reinforce-next .btn{min-height:44px}
    .memory-reinforce-close{width:44px;height:44px}
    .memory-reinforce-private,.memory-reinforce-privacy{display:none}
    .memory-reinforce-question h3{font-size:17px}
    .memory-reinforce-foot{justify-content:space-between}
    .memory-reinforce-next{align-items:stretch;flex-direction:column}
    .memory-reinforce-next .btn{justify-content:center}
  }
  @media(prefers-reduced-motion:reduce){.memory-reinforce-scrim{animation:none}}
  .cdet-head.memory-reinforce-head h2{color:var(--ink)}
  .vc-aside-activity{margin-top:auto;padding-top:var(--space-5);border-top:1px solid var(--divider)}
  /* Calendrier d'activité (planche G .cal) : carte douce sans bordure, radius 13. */
  .vc-activity-calendar{padding:13px 14px;border:0;border-radius:13px;background:var(--bg-2)}
  .vc-activity-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}
  .vc-activity-head>span{font-size:11.5px;font-weight:500;text-transform:capitalize;color:var(--fg-1)}
  .vc-activity-nav{display:flex;align-items:center;gap:var(--space-2)}
  .vc-activity-nav button{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--fg-4);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vc-activity-nav button:hover{background:var(--bg-surface);color:var(--fg-1)}
  .vc-activity-week,.vc-activity-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center}
  .vc-activity-week{margin-bottom:var(--space-2);font-family:var(--font-sans);font-size:10px;color:var(--fg-3)}
  .vc-activity-days button{position:relative;display:grid;place-items:center;height:28px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--fg-3);font-size:11px;font-variant-numeric:tabular-nums}
  .vc-activity-days button:disabled{cursor:default}
  .vc-activity-days button.is-outside{color:var(--fg-5)}
  .vc-activity-days button.has-captures{color:var(--fg-1);font-weight:500;cursor:pointer}
  .vc-activity-days button.has-captures:hover{background:var(--bg-surface)}
  .vc-activity-days button.is-selected{background:var(--accent-soft);color:var(--accent-ink)}
  .vc-activity-dot{position:absolute;left:50%;bottom:3px;width:4px;height:4px;border-radius:var(--radius-pill);background:var(--accent-500);transform:translateX(-50%)}
  .vc-activity-recap{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-input);font-size:11px;color:var(--fg-3)}
  .vc-activity-recap svg{flex:0 0 auto;color:var(--fg-4)}
  .vc-activity-recap b{font-weight:500;color:var(--fg-2)}
  .vc-capture-filter{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border:1px solid var(--accent-soft-2);border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent-ink);font-size:11.5px}
  .vc-capture-filter-copy{display:flex;align-items:center;gap:7px;min-width:0}
  .vc-capture-filter-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vc-capture-filter-copy b{font-weight:500}
  @media (max-width:1180px){
    /* `!important` requis : la règle deux-colonnes plus haut en porte un, donc sans lui le repli
       ne s'appliquait jamais. Le panneau passait bien en display:none, mais la grille gardait sa
       colonne de 276px — le fil restait compressé avec une bande blanche à sa droite
       (reproduit à 1136px, audit indépendant du 2026-07-20). */
    .vc-shell:has(> .vc-aside),.vc-shell.side-collapsed:has(> .vc-aside){grid-template-columns:minmax(0,1fr) !important}
    .vc-aside{display:none}
  }
  /* ── Planche G (lot 3) : le rail vit sur le canevas crème, séparé par l'air — plus de
     panneau blanc bordé. Les cartes du rail = remplissage doux, les champs = hairline. ── */
  .vc-rrail{border-left:0;background:var(--bg);overflow-y:auto;padding:18px 16px;display:flex;flex-direction:column;gap:20px;min-height:0}
  .vc-rrail > *{flex-shrink:0}
  
  /* Bandeau du carnet — déplacé dans le rail droit (au-dessus de la recherche) */
  /* Carte identité du carnet (planche G .idcard) : remplissage doux crème, encres chaudes —
     le dégradé charbon froid disparaît. */
  
  
  .vc-rrb-meta{min-width:0}
  .vc-rrb-meta .mono{display:block;font-family:inherit;font-size:11px;letter-spacing:0;text-transform:none;color:var(--ink-3)}
  .vc-rrb-meta h2{margin:2px 0 0;font-size:14px;font-weight:500;letter-spacing:-.005em;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vc-rrb-ctx{margin:0;font-size:11.5px;line-height:16px;color:var(--ink-3);text-wrap:pretty}
  .vc-rrb-kpis{display:flex;gap:0;border-top:1px solid var(--border-strong);padding-top:10px}
  .vc-rrb-kpis .kpi{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:1px}
  .vc-rrb-kpis .kpi .v{font-family:inherit;font-size:15px;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
  .vc-rrb-kpis .kpi .l{font-size:10.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  
  /* Titres de section du rail (planche G .railsec .h) : sentence case 12/500 — plus d'UPPERCASE. */
  .vc-rr-sec>h4{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink-3);margin:0 0 10px}
  
  
  
  .vc-rr-tools{display:flex;flex-direction:column;gap:7px}
  .vc-rr-tool{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;padding:9px 11px;text-align:left;width:100%;cursor:pointer;transition:all .18s}
  .vc-rr-tool:hover{border-color:var(--accent);background:var(--accent-soft)}
  .vc-rr-tool .ti{width:30px;height:30px;border-radius:8px;background:var(--bg-2);display:grid;place-items:center;color:var(--ink-2);flex-shrink:0}
  .vc-rr-tool:hover .ti{color:var(--accent)}
  .vc-rr-tool .tl{display:flex;flex-direction:column;line-height:1.3;min-width:0}
  .vc-rr-tool .tl b{font-size:13px;font-weight:500;color:var(--ink);white-space:nowrap}
  .vc-rr-tool .tl small{font-size:11px;color:var(--ink-4);white-space:nowrap}
  .vc-rr-stats{display:flex;gap:10px}
  .vc-rr-stats.vc-rr-3{gap:7px}
  .vc-rr-stats.vc-rr-3 .vc-rr-stat{padding:11px 9px}
  .vc-rr-stats.vc-rr-3 .vc-rr-stat .v{font-size:20px}
  .vc-rr-stats.vc-rr-3 .vc-rr-stat .k{margin-top:5px;line-height:1.2}
  .vc-rr-stat{flex:1;background:var(--bg-2);border-radius:13px;padding:12px 13px}
  .vc-rr-stat .v{font-family:var(--font-mono);font-size:23px;font-weight:500;color:var(--ink);line-height:1}
  .vc-rr-stat .k{font-size:11px;color:var(--ink-3);margin-top:6px}
  .vc-rr-stat .sub{font-size:10.5px;color:var(--ink-4);margin-top:2px;font-family:var(--font-mono)}
  .vc-hm-head{margin-bottom:9px}
  .vc-hm-head .mono{font-family:var(--font-mono);font-size:12px;color:var(--ink-2)}
  .vc-hm-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
  .vc-hm-lbl{font-size:9.5px;color:var(--ink-4);text-align:center;font-family:var(--font-mono)}
  .vc-hm-cell{aspect-ratio:1;border-radius:3px}

  /* Entry card */
  
  
  
  .vc-index{font-family:var(--font-mono);font-size:11px;color:var(--ink-4);font-weight:500;align-self:flex-start;margin-top:3px}
  .vc-main{cursor:pointer;display:flex;flex-direction:column;gap:5px;min-width:0}
  .vc-headline{display:flex;align-items:center;gap:8px}
  
  .vc-title{font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.01em;line-height:1.35}
  .vc-pin{display:inline-flex;color:var(--accent)}
  .vc-details{font-size:13px;color:var(--ink-3);line-height:1.55}
  .vc-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:3px}
  
  .vc-when{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--ink-3);border:1px solid var(--border);background:var(--surface);padding:1px 8px;border-radius:99px;font-weight:500}
  
  
  
  .vc-expand{padding-top:10px;margin-top:6px;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:8px}
  
  
  .vc-result{display:flex;align-items:flex-start;gap:7px;padding:7px 11px;background:var(--good-soft);border-radius:8px;font-size:12px;color:var(--good-ink)}
  .vc-actions{display:flex;gap:6px;flex-wrap:wrap}

  
  
  

  .vc-empty{text-align:center;padding:48px 16px;color:var(--ink-3);display:flex;flex-direction:column;gap:6px;align-items:center}
  .vc-empty .ic{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);margin-bottom:10px}
  .vc-empty strong{font-size:14px;color:var(--ink-2)}
  .vc-empty p{font-size:13px;max-width:340px;line-height:1.5;margin:0}
  .vc-empty-cta{margin-top:14px}

  @media (max-width:900px){
    .vc-shell{grid-template-columns:1fr}
    .vc-side{border-right:0;border-bottom:1px solid var(--border);max-height:220px}
    .vc-banner-row{flex-direction:column;align-items:flex-start}
    
  }
  
  .vc-add-entry{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:8px 16px;border:0;border-radius:var(--radius-pill);background-color:var(--sidebar-bg);color:var(--fg-inverse);font:inherit;font-size:13px;font-weight:500;cursor:pointer;box-shadow:0 1px 2px color-mix(in srgb,var(--ink) 16%,transparent),inset 0 1px 0 color-mix(in srgb,var(--fg-inverse) 5%,transparent);transition:background-color var(--dur-fast) var(--ease-out)}
  .vc-add-entry:hover{background-color:var(--sidebar-bg-2)}
  .vc-add-entry:active{background-color:var(--ink)}
  .vc-add-entry:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  
  
  
  
  

  .vc-shell{
    position:relative;
    /* UNE colonne : le rail des carnets a rejoint la sidebar principale (2026-07-20). La
       première colonne de 260px était celle de l'ancien rail — laissée en place, elle écrasait
       le contenu dans un couloir étroit et laissait la moitié droite vide. */
    display:grid;grid-template-columns:minmax(0,1fr);gap:0;
    background:var(--surface);border:1px solid var(--border);border-radius:12px;
    overflow:hidden;flex:1 1 auto;min-height:0;grid-template-rows:minmax(0,1fr);
    transition:grid-template-columns var(--dur-base) var(--ease-out);
  }

  /* Zone sidebar (rail + flyout) */
  .vc-side-zone{position:relative;min-width:0;display:flex;z-index:30}
  .vc-side-zone > .vc-side{flex:1 1 auto;min-width:0}
  /* Bouton de repli (dans un en-tête dédié) */
  .vc-side-head{display:flex;justify-content:flex-end;padding:2px 2px 6px;flex:0 0 auto;position:sticky;top:0;z-index:2;background:var(--surface-2)}
  .vc-side-collapse{
    width:26px;height:26px;border-radius:8px;
    border:1px solid var(--border-soft);background:var(--surface);color:var(--ink-3);
    display:grid;place-items:center;cursor:pointer;flex:0 0 auto;
    transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);
  }
  .vc-side-collapse:hover{background:var(--bg-2);color:var(--ink)}
  .vc-side-collapse:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  /* Rail visible uniquement en mode replié */
  

  /* Bouton de repli dans l'en-tête de la sidebar (mode déplié) — sur une ligne avec un intitulé */
  .vc-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 6px 8px 10px;flex:0 0 auto;position:sticky;top:0;z-index:6;background:var(--surface-2)}
  .vc-side-title{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;flex:0 0 auto}
  .vc-side-collapse{
    width:26px;height:26px;border-radius:8px;
    border:1px solid var(--border-soft);background:var(--surface);color:var(--ink-3);
    display:grid;place-items:center;cursor:pointer;flex:0 0 auto;
    transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);
  }
  .vc-side-collapse:hover{background:var(--bg-2);color:var(--ink)}
  .vc-side-collapse:focus-visible{outline:0;box-shadow:var(--ring-focus)}

  /* ===== Mode replié : plus de bande — juste un petit bouton flottant (aperçu au survol conservé) ===== */
  .vc-shell.side-collapsed{grid-template-columns:minmax(0,1fr);gap:0}
  /* Plus aucune colonne réservée : le bouton flotte au-dessus du contenu */
  .vc-shell.side-collapsed .vc-side-zone{background:transparent}
  .vc-shell.side-collapsed .vc-main-col{padding-left:0}
  
  /* Le bouton n'apparaît qu'au survol de la zone sidebar (le bouton lui-même reste
     cliquable même invisible — il sert de cible de survol au coin haut-gauche). */
  
  
  
  /* En mode réduit : la sidebar complète n'apparaît qu'au clic (épinglée).
     Le survol n'affiche qu'un petit aperçu flottant groupé (.vc-side-pop). */
  .vc-shell.side-collapsed .vc-side{display:none}

  /* Aperçu flottant compact au survol du rail */
  
  /* Fermeture instantanée : aucun délai, aucun fondu quand la souris quitte */
  
  
  
  
  
  
  
  
  
  
  
  
  

  /* Indicateurs déplacés dans le header — masqués à leur ancien emplacement */
  .vc-structured--page .vc-bigcomposer-head{display:none}

  /* Panneau de détail d'une entrée (clic sur une carte) — aligné au design SIHAGE */
  .vc-detailpanel{gap:16px}
  .vc-detail-type{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-family:var(--font-mono);white-space:nowrap}
  .vc-detail-title{width:100%;border:0;outline:none;background:transparent;font-size:20px;line-height:1.25;font-weight:600;color:var(--ink);letter-spacing:-.01em;padding:0;margin-top:2px}
  .vc-detailpanel .vc-editor .vc-detail-title{padding:0 16px}
  .vc-detailpanel .vc-editor .vc-fmt-toolbar{margin-top:12px}
  .vc-detail-rte{width:100%;min-height:150px;resize:vertical;font-size:14px !important;line-height:1.6}
  .vc-detail-block{display:flex;flex-direction:column;gap:8px}
  .vc-detail-lbl{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-family:var(--font-mono);white-space:nowrap}
  .vc-detail-lbl svg{color:var(--accent)}
  .vc-detail-impact{width:100%;min-height:64px;resize:vertical;font:inherit;font-size:14px;line-height:1.6;color:var(--ink);background:var(--surface);border:1px solid var(--border-input);border-radius:10px;padding:10px 12px;outline:none;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
  .vc-detail-impact:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}

  .vc-structured--page{
    flex:1;min-height:0;display:flex;flex-direction:column;gap:18px;
    background:transparent;border:0;box-shadow:none;border-radius:0;
    width:100%;max-width:1060px;margin:0 auto;
    padding:22px clamp(22px,4vw,52px) 22px;
  }
  .vc-structured--page .vc-bigcomposer-head{gap:9px;border:0;padding:0}
  .vc-structured--page .vc-bigcomposer-head strong{font-size:12px;font-weight:500;color:var(--ink-3)}
  .vc-structured--page .vc-bigcomposer-ico{background:var(--accent);width:20px;height:20px;border-radius:6px}
  .vc-structured--page .vc-autosave{color:var(--ink-3);font-size:10.5px}
  /* En mode page, l'éditeur riche remplace le textarea de N1Fields */
  .vc-structured--page .vc-q{display:none}

  /* === Bloc 2 : réglages (Quand/Contexte) — ligne distincte, bien marquée === */
  
  .vc-structured--page .vc-mini-label{color:var(--ink-3)}
  
  

  /* === Bloc 3 : outils + enregistrement — deuxième ligne === */
  
  .vc-structured--page .vc-bigcomposer-tools{gap:8px;row-gap:8px;flex:1 1 auto;min-width:0}
  
  .vc-structured--page .vc-detection{background:color-mix(in srgb,var(--accent) 5%,transparent);border-color:color-mix(in srgb,var(--accent) 16%,transparent);flex-wrap:wrap;row-gap:8px}
  
  /* Éditeur riche — encart de saisie bien délimité (page) */
  .vc-editor{flex:1;min-height:0;display:flex;flex-direction:column;gap:14px}
  .vc-structured--page .vc-editor{
    gap:0;overflow:hidden;background:var(--surface);
    border:1.5px solid var(--ink-4);border-radius:14px;
    box-shadow:0 18px 44px -10px color-mix(in srgb,var(--ink) 42%,transparent),0 6px 14px -6px color-mix(in srgb,var(--ink) 27%,transparent);
  }
  .vc-editor-title{flex:0 0 auto;font-size:16px;font-weight:600;color:var(--ink);letter-spacing:-.01em;line-height:1.3}
  .vc-structured--page .vc-editor-title{padding:13px 16px 9px;font-size:14.5px;color:var(--ink-2)}
  .vc-structured--page .vc-fmt-toolbar{
    border:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);
    border-radius:0;box-shadow:none;background:var(--surface);padding:5px 10px;
  }
  .vc-structured--page .vc-rte{padding:16px;min-height:260px;background:var(--surface)}
  
  .vc-fmt-toolbar{
    flex:0 0 auto;
    display:flex;align-items:center;gap:1px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;
    padding:3px 4px;background:var(--surface);border:1px solid var(--border);border-radius:8px;
    box-shadow:var(--shadow-xs);scrollbar-width:none;
  }
  .vc-fmt-toolbar::-webkit-scrollbar{display:none}
  .vc-fmt-group{display:flex;gap:1px}
  .vc-fmt-sep{width:1px;height:16px;background:var(--border);margin:0 4px;flex:0 0 auto}
  .vc-fmt-toolbar button{
    width:26px;height:26px;flex:0 0 auto;border:0;background:transparent;border-radius:6px;color:var(--ink-3);cursor:pointer;
    display:grid;place-items:center;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);
  }
  .vc-fmt-toolbar button:hover{background:var(--accent-soft);color:var(--accent-ink)}
  .vc-fmt-toolbar button:active{background:var(--accent-soft-2)}
  .vc-rte{
    flex:1 1 auto;min-height:220px;overflow-y:auto;
    font-size:16px;line-height:1.85;color:var(--ink);
    outline:none;padding:4px 2px;
    
  }
  .vc-rte:empty:before{content:attr(data-ph);color:var(--ink-4);pointer-events:none}
  .vc-rte h2{font-size:19px;font-weight:600;margin:.6em 0 .3em}
  .vc-rte blockquote{border-left:1px solid var(--accent);margin:.5em 0;padding:2px 0 2px 14px;color:var(--ink-2);font-style:italic}
  .vc-rte ul,.vc-rte ol{padding-left:1.4em;margin:.4em 0}
  .vc-rte a{color:var(--accent-2);text-decoration:underline}
  
  
  
  
  /* Beat the `.vault-view > *{flex-shrink:0}` rule so the shell is bounded and columns scroll internally */
  .vault-view > .vc-shell{flex:1 1 auto;min-height:0}

  /* Sidebar */
  .vc-side{
    background:var(--bg-2);border-right:1px solid var(--border);
    display:flex;flex-direction:column;gap:0;padding:0;overflow:visible;
    min-height:0;
  }
  .vc-side-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:1px;padding:2px 8px 12px}
  .vc-side-head{display:flex;align-items:center;justify-content:space-between;padding:13px 10px 9px 12px;flex:0 0 auto;border-bottom:1px solid var(--border-strong);position:relative;background:var(--bg-2)}
  .vc-side-head-actions{display:flex;align-items:center;gap:4px;flex:0 0 auto}
  .vc-side-add{opacity:0;transition:opacity var(--dur-fast) var(--ease-out);display:flex;align-items:center;justify-content:center;padding:0}
  .vc-side-add svg{display:block;margin:0}
  .vc-side-head-actions:hover .vc-side-add,.vc-side-add:hover,.vc-side-add:focus-visible,.vc-side-add[aria-expanded="true"]{opacity:1}
  
  .vc-newcarnet-lbl{font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);padding:4px 8px 6px}
  .vc-newcarnet-item{align-items:center;gap:10px}
  
  .vc-newcarnet-txt{display:flex;flex-direction:column;line-height:1.3;min-width:0;gap:1px}
  .vc-newcarnet-txt .nm{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap}
  .vc-newcarnet-txt .hint{font-size:11px;color:var(--ink-3)}
  .vc-side-head h5{margin:0;font-size:10.5px}
  .vc-shell.side-compact .vc-side-head h5{display:none}
  
  
  
  .vc-side-sep{
    padding:10px 8px 4px;font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-weight:500;font-family:var(--font-mono);
  }
  /* En-tête de groupe T1 — titre fort + pastille de compteur + filet */
  .vc-grp-head{position:relative;display:flex;align-items:center;gap:9px;margin:16px 2px 6px;padding:2px 2px 8px;border-bottom:1px solid var(--border-strong)}
  .vc-grp-title{margin:0;font-size:13px;font-weight:700;letter-spacing:-.01em;color:var(--ink);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}
  .vc-grp-num{font-family:var(--font-mono);font-size:10.5px;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);border-radius:6px;padding:1px 7px;flex:0 0 auto}
  .vc-grp-add{margin-left:auto;flex:0 0 auto;width:24px;height:24px;border-radius:8px;border:1px solid var(--border-soft);background:var(--surface);color:var(--ink-4);display:grid;place-items:center;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vc-grp-add:hover{background:var(--bg-2);color:var(--ink)}
  .vc-grp-add:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  /* Carnet = dossier à onglet (Option A), logo de marque */
  .vc-carnet-logo-wrap{position:relative;flex:0 0 auto}
  .vc-carnet-logo-wrap.drag{outline:2px dashed var(--accent);outline-offset:2px;border-radius:8px}
  .vc-carnet-logo{flex:0 0 auto;width:100%;height:100%;display:grid;place-items:center;color:var(--fg-inverse);border-radius:8px;box-shadow:var(--shadow-sm)}
  .vc-carnet-logo.has-img{background:var(--surface);border:1px solid var(--border);overflow:hidden;box-shadow:none}
  .vc-carnet-logo.has-img img{width:100%;height:100%;object-fit:cover;display:block}
  .vc-logo-edit{position:absolute;right:-5px;bottom:-5px;width:16px;height:16px;border-radius:50%;background:var(--surface);border:1px solid var(--border-strong);display:grid;place-items:center;color:var(--ink-3);cursor:pointer;box-shadow:var(--shadow-sm);opacity:0;transition:opacity var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);padding:0}
  .vc-logo-edit:hover{color:var(--accent);border-color:var(--accent)}
  .logo.xl.has-img{overflow:hidden;background:var(--surface)}
  .logo.xl.has-img img{width:100%;height:100%;object-fit:cover;display:block}
  .vc-carnet-logo-wrap:hover .vc-logo-edit{opacity:1}
  .vc-banner.tinted .mono{color:color-mix(in srgb,var(--sidebar-fg-strong) 62%,transparent)}
  .vc-banner.tinted h2{color:var(--sidebar-fg-strong)}
  .vc-banner.tinted p{color:color-mix(in srgb,var(--sidebar-fg-strong) 84%,transparent)}
  /* Fiche de poste intégrée au bandeau : intitulé du poste + détails (dates/source/progression) */
  
  
  
  
  
  
  /* Bouton « Générer une synthèse » — pill clair sur le bandeau sombre, poussé à droite */
  .vc-banner-synth{flex:0 0 auto;align-self:center;margin-left:auto;display:inline-flex;align-items:center;gap:6px;
    height:32px;padding:0 14px;border-radius:99px;border:1px solid color-mix(in srgb,var(--fg-inverse) 22%,transparent);
    background:color-mix(in srgb,var(--fg-inverse) 12%,transparent);color:var(--fg-inverse);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;
    transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .vc-banner-synth:hover{background:color-mix(in srgb,var(--fg-inverse) 20%,transparent);border-color:color-mix(in srgb,var(--fg-inverse) 36%,transparent)}
  .vc-banner-synth svg{flex:0 0 auto}
  /* Ligne nom de société + pastille de statut (en poste / terminé), poussée à droite */
  
  
  
  
  
  
  .vc-bs-why{font-style:normal;color:color-mix(in srgb,var(--fg-inverse) 60%,transparent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  
  /* Tous les carnets ont le même point d'accès aux actions : quand la période est
     absente, le pied reste volontairement minimal et aligne seulement « … » à droite. */
  
  
  
  
  /* Statut « En poste / Terminé » placé à GAUCHE de la date dans la ligne du bas ;
     les tags restent poussés à droite (margin auto sur .vc-banner-tags-foot). */
  
  
  
  a.vc-bj-src{transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  a.vc-bj-src:hover{background:color-mix(in srgb,var(--fg-inverse) 18%,transparent);border-color:color-mix(in srgb,var(--fg-inverse) 32%,transparent)}
  .vc-bj-added{font-size:11px;color:color-mix(in srgb,var(--fg-inverse) 60%,transparent)}
  .vc-bj-prog{margin-left:auto;display:flex;align-items:center;gap:10px;color:color-mix(in srgb,var(--fg-inverse) 88%,transparent);font-size:11px;font-family:var(--font-mono);white-space:nowrap}
  .vc-bj-bar{width:110px;height:6px;border-radius:99px;background:color-mix(in srgb,var(--fg-inverse) 20%,transparent);overflow:hidden}
  .vc-bj-bar i{display:block;height:100%;background:var(--surface);border-radius:99px}
  @media (max-width:760px){.vc-bj-prog{margin-left:0;width:100%}}
  .vc-banner.tinted .vc-banner-deco{opacity:.18}
  
  
  
  
  
  
  @media (max-width:720px){}
  .vc-carnet-logo svg{width:60%;height:60%}
  .vc-carnet-logo.neutral{background:var(--bg-2)!important;border:1px solid var(--border);color:var(--ink-3);box-shadow:none;font-family:var(--font-sans);font-weight:700;font-size:12px}
  .vc-side .vc-carnet-item{position:relative;margin-top:10px;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 10px;min-height:48px}
  .vc-carnet-item > *{position:relative;z-index:1}
  .vc-side .vc-carnet-item:hover{background:var(--surface);border-color:var(--slate-300);box-shadow:var(--shadow-md);transform:none}
  .vc-side .vc-carnet-item.active{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 0.5px var(--accent),var(--shadow-md);color:var(--accent-ink)}
  .vc-side .vc-carnet-item.active .nm{color:var(--accent-ink)}
  .vc-side .vc-carnet-item.active .ctx{color:var(--accent-ink);opacity:.7}
  .vc-carnet-item.active .nm{color:var(--accent-ink)}
  .vc-carnet-item.active .ctx{color:var(--accent-ink);opacity:.7}
  /* Essentiel par défaut (nom) ; dates/contexte au survol ou si actif */
  .vc-carnet-item .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  
  .vc-carnet-right{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:4px;flex:0 0 auto}
  .vc-contract{font-family:var(--font-mono);font-size:7px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-4);background:var(--bg-2);border:1px solid var(--border);border-radius:3px;padding:1px 4px;line-height:1.35;white-space:nowrap}
  .vc-carnet-item.active .vc-contract{color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:transparent}
  .vc-carnet-item .nm{font-size:13.5px}
  .vc-carnet-item .vc-list-body .ctx{display:none;font-size:8px;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:1px 0 0;min-width:0}
  .vc-carnet-item:hover .vc-carnet-context,.vc-carnet-item.active .vc-carnet-context{display:block}
  .vc-carnet-item.has-hovermeta:hover .vc-carnet-context,.vc-carnet-item.has-hovermeta.active .vc-carnet-context{display:none}
  .vc-carnet-item.has-hovermeta:hover .vc-carnet-hovermeta,.vc-carnet-item.has-hovermeta.active .vc-carnet-hovermeta{display:block}
  .vc-shell.side-compact .vc-carnet-item{margin-top:1px;border:0;background:transparent;box-shadow:none;border-radius:8px;padding:7px 4px}
  
  
  
  
  
  .vc-list-item{
    display:flex;align-items:center;gap:9px;width:100%;text-align:left;
    padding:7px 9px;border:0;background:transparent;border-radius:8px;cursor:pointer;
    font:inherit;color:var(--ink-2);transition: background-color var(--dur-fast) var(--ease-out);
  }
  .vc-list-item:hover{background:var(--surface)}
  .vc-list-item.active{background:var(--accent-soft);color:var(--accent-ink)}
  .vc-list-ico{
    width:22px;height:22px;border-radius:6px;background:var(--bg-2);border:1px solid var(--border);
    display:grid;place-items:center;color:var(--ink-3);flex:0 0 auto;
  }
  .vc-list-item.active .vc-list-ico{background:var(--surface);color:var(--accent)}
  .vc-list-body{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
  .vc-list-body .nm{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vc-list-body .ctx{font-family:var(--font-mono);font-size:9.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vc-list-item.active .vc-list-body .ctx{color:var(--accent-ink);opacity:.7}
  .vc-list-item .cnt{
    font-family:var(--font-mono);font-size:10px;color:var(--ink-3);
    background:var(--surface);border:1px solid var(--border);padding:1px 6px;border-radius:6px;flex:0 0 auto;
  }
  .vc-list-item.active .cnt{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent-ink);border-color:transparent}
  .vc-shell.side-compact .vc-list-item{justify-content:center;padding:7px 4px}
  .vc-shell.side-compact .vc-list-body,
  .vc-shell.side-compact .vc-list-item .cnt{display:none}
  .vc-side-create{
    margin-top:6px;display:flex;align-items:center;gap:8px;width:100%;
    padding:7px 9px;border:1px dashed var(--border-strong);background:transparent;border-radius:8px;cursor:pointer;
    font:inherit;font-size:12.5px;color:var(--ink-3);font-weight:500;
  }
  .vc-side-create:hover{background-color:var(--surface);color:var(--ink-2);border-style:solid}.vc-side-create:active{background-color:var(--bg-2);transform:scale(0.97)}.vc-side-create:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .vc-shell.side-compact .vc-side-create{justify-content:center}
  .vc-shell.side-compact .vc-side-create > *:not(svg):not([class*="Icon"]){display:none}

  /* Main col — scrolls as a single unit, independently of the left sidebar */
  /* Canon plat : le canevas clair DANS la coque — les cartes blanches
     ressortent (maquette validée, SIH-75). */
  .vc-main-col{display:flex;flex-direction:column;padding:0;overflow-y:auto;min-height:0;background:var(--bg)}
  @media (pointer:fine){
    .vc-main-col::-webkit-scrollbar{width:8px}
    .vc-main-col::-webkit-scrollbar-thumb{background:var(--scroll-pill-thumb);border-radius:99px}
    .vc-main-col::-webkit-scrollbar-thumb:hover{background:var(--scroll-pill-thumb-hover)}
  }
  /* Children keep their natural height; the column scrolls rather than squeezing them */
  .vc-main-col > *{flex-shrink:0}
  /* Wall view: the composer + missing prompts get a light inset, coherent with the left column padding */
  .vc-main-col > .vc-bigcomposer{margin:14px 22px 0}
  .vc-main-col > .vc-composer-trigger{margin:14px 22px 0}
  .vc-main-col > .vc-bigcomposer:first-child + .vc-missing{margin:14px 22px 0}

  /* Banner header */
  .vc-banner{
    position:relative;padding:13px 18px 12px;
    margin:14px 22px 0;
    border:1px solid var(--border);border-radius:13px;
    background:
      linear-gradient(135deg, color-mix(in srgb, var(--vault-thread,var(--accent)) 8%, transparent), transparent 60%),
      var(--surface);
    overflow:hidden;
  }
  /* Le menu d'options est rendu en fixed, mais son contexte doit tout de même
     passer devant la barre d'onglets collante lorsqu'il est ouvert. */
  .vc-banner:has(.vc-banner-opt.open){z-index:9;overflow:visible}
  /* Banner brandé (logo + couleurs de l'entreprise) */
  .vc-banner[data-brand]{color:var(--sidebar-fg-strong)}
  .vc-banner[data-brand] .vc-banner-meta h2{color:var(--sidebar-fg-strong)}
  .vc-banner[data-brand] .vc-banner-meta .mono{color:color-mix(in srgb,var(--sidebar-fg-strong) 70%,transparent)}
  .vc-banner[data-brand] .vc-banner-ctx{color:color-mix(in srgb,var(--sidebar-fg-strong) 82%,transparent)}
  
  
  
  .logo.has-img{background:var(--surface);overflow:hidden;padding:0}
  .logo.has-img img{width:100%;height:100%;object-fit:cover;display:block}
  .vc-banner[data-brand] .logo.has-img{box-shadow:var(--shadow-md),0 0 0 1px color-mix(in srgb,var(--sidebar-fg-strong) 15%,transparent)}
  .vc-banner-deco{display:none}
  .vc-banner-row{display:flex;align-items:center;gap:12px;position:relative;flex-wrap:wrap}
  .vc-banner-meta{flex:1;min-width:200px}
  .vc-banner-meta h2{font-size:18px;letter-spacing:-.02em;margin-top:1px}
  .vc-banner-meta .mono{font-size:10px}
  .vc-banner-ctx{font-size:13px;color:var(--ink-3);margin-top:4px}
  
  
  
  
  .vc-summary{
    margin-top:14px;display:flex;gap:9px;padding:10px 12px;
    background:var(--accent-soft);border:1px solid var(--accent-soft-2);border-radius:10px;
  }
  .vc-summary-ico{
    width:22px;height:22px;border-radius:6px;background:var(--accent);color:var(--fg-inverse);
    display:grid;place-items:center;flex:0 0 auto;margin-top:1px;
  }
  .vc-summary p{font-size:13px;color:var(--accent-ink);line-height:1.5}
  .vc-summary strong{font-weight:600}

  /* Filter tabs */
  .vc-filter-bar{
    display:flex;gap:4px;padding:10px 22px 8px;border-bottom:1px solid var(--border);
    background:var(--surface);flex-wrap:wrap;
  }
  .vc-filter-bar::-webkit-scrollbar{display:none}
  .vc-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:8px;border:1px solid transparent;background-color:transparent;cursor:pointer;font:inherit;font-size:12.5px;color:var(--ink-3);font-weight:500;white-space:nowrap;transform:scale(1);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-base) var(--ease-out)}
  .vc-tab:not(.on):hover{background-color:var(--bg-2);color:var(--ink)}.vc-tab:active{transform:scale(0.965)}.vc-tab:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .vc-tab.on{background-color:var(--surface);color:var(--ink);border-color:var(--border)}
  .vc-tab .cnt{
    font-family:var(--font-mono);font-size:10px;
    background:color-mix(in srgb,var(--ink) 6%,transparent);padding:1px 6px;border-radius:99px;
  }
  .vc-tab.on .cnt{background:color-mix(in srgb,var(--ink) 5%,transparent)}

  /* Composer always visible */
  .vc-composer{
    margin:14px 22px 0;padding:12px 14px;
    background:var(--surface);border:1px solid var(--accent-100);border-radius:13px;
    box-shadow:var(--shadow-sm);
  }
  
  
  
  
  
  .vc-composer-meta{
    display:flex;align-items:center;justify-content:space-between;padding-top:8px;margin-top:8px;
    border-top:1px dashed var(--border);
  }
  
  
  
  

  /* Stack & buckets — flows naturally; the main column owns the scroll */
  .vc-stack{padding:0 22px 22px;display:flex;flex-direction:column;gap:18px;flex:0 0 auto}
  /* La zone sous les tabs garde une hauteur mini : les tabs restent collés même si l'onglet a peu d'entrées */
  .vc-main-col > .vc-stack,
  .vc-main-col > .fm,
  .vc-main-col > .vjob,
  .vc-main-col > .vw,
  .vc-main-col > .vsk,
  .vc-main-col > .vc-recap{min-height:calc(100% - 38px)}

  /* ── Onglet « Fiche de poste » ── */
  .vjob{padding:0 22px 22px}
  /* En-tête = section en haut de la carte unique (plus de carte séparée) : pas de bordure propre,
     un simple filet de séparation avant les onglets. Il défile avec le contenu. */
  .vjob-head{display:flex;flex-direction:column;gap:5px;padding:16px 18px 14px;border-bottom:1px solid var(--border)}
  .vjob-eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-4)}
  .vjob-head h3{margin:2px 0 1px;font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
  .vjob-meta{font-size:12.5px;color:var(--ink-3)}
  /* Pied d'en-tête : dates · source · ajout · progression — flux souple qui ne se chevauche jamais */
  
  .vjob-dates{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;color:var(--ink-3);border:1px solid var(--border);background:var(--bg-2);border-radius:99px;padding:3px 11px}
  .vjob-dates svg{color:var(--ink-4)}
  .vjob-src{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;color:var(--ink-2);text-decoration:none;border:1px solid var(--border);background:var(--bg-2);border-radius:99px;padding:4px 11px;max-width:300px;min-width:0}
  .vjob-src span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vjob-src:hover{color:var(--accent);border-color:var(--border-strong)}
  .vjob-added{font-size:11px;color:var(--ink-4)}
  /* Progression poussée à droite, label + barre en ligne */
  .vjob-head-prog{display:flex;align-items:center;gap:9px;margin-left:auto}
  .vjob-head-prog span{font-family:var(--font-mono);font-size:11px;color:var(--ink-2);white-space:nowrap}
  .vjob-head-prog .vjob-pbar{width:120px;margin:0}
  /* Carte unique */
  .vjob-card{background:var(--surface);border:1px solid var(--border);border-radius:13px;position:relative}
  /* Barre d'onglets internes de la Fiche de poste : se fige à son tour JUSTE SOUS l'en-tête de
     section collé, à distance FIXE (en-tête segmenté ~55px + tablier 14px = top:69px). z-index < l'en-tête
     (8) → elle passe dessous lui et garde un écart constant de 14px ; reste accessible au scroll
     sans jamais le chevaucher ni se faire couper. */
  .vjob-tabs{display:flex;align-items:stretch;gap:2px;background:var(--surface);border-bottom:1px solid var(--border);padding:0 10px;overflow-x:auto;scrollbar-width:none;
    position:sticky;top:69px;z-index:6;border-radius:12px 12px 0 0}
  .vjob-tabs::-webkit-scrollbar{display:none}
  .vjob-tabbtn{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;font:inherit;font-size:12.5px;font-weight:500;color:var(--ink-3);padding:11px 12px 10px;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;transition:color .18s var(--ease-out)}
  .vjob-tabbtn:hover{color:var(--ink)}
  .vjob-tabbtn.on{color:var(--ink);font-weight:600;border-bottom-color:var(--ink)}
  .vjob-tabbtn i{font-style:normal;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-4)}
  .vjob-body{padding:16px 18px;display:flex;flex-direction:column;gap:14px}
  .vjob-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}
  .vjob-list li{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;row-gap:5px;font-size:13px;line-height:19px;color:var(--ink-2);padding:5px 2px 5px 14px;position:relative;text-wrap:pretty}
  .vjob-list li::before{content:"";position:absolute;left:1px;top:13px;width:5px;height:5px;border-radius:50%;background:var(--ink-5)}
  .vjob-li-text{flex:1 1 auto;min-width:0}
  .vjob-li-k{font-weight:600;color:var(--ink-2);margin-right:7px}
  /* Actions au survol : annoter · retirer */
  .vjob-acts{display:inline-flex;align-items:center;gap:1px;opacity:0;transition:opacity .18s var(--ease-out)}
  .vjob-list li:hover .vjob-acts,.vjob-titem:hover .vjob-acts{opacity:1}
  .vjob-acts button{border:0;background:transparent;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;color:var(--ink-4);cursor:pointer}
  .vjob-acts button:hover{background:var(--bg-2);color:var(--ink)}
  /* Note personnelle (précision, ressenti) */
  .vjob-note{flex-basis:100%;display:inline-flex;align-items:flex-start;gap:7px;background:var(--bg-2);border:1px solid var(--border-soft);border-radius:8px;padding:6px 10px;font-size:12px;line-height:17px;color:var(--ink-2);cursor:pointer}
  .vjob-note svg{flex-shrink:0;margin-top:2px;color:var(--ink-4)}
  .vjob-note:hover{border-color:var(--border-strong)}
  .vjob-note-edit{flex-basis:100%;display:flex;flex-direction:column;gap:6px}
  .vjob-note-edit textarea{width:100%;box-sizing:border-box;border:1px solid var(--border-strong);border-radius:8px;padding:7px 10px;font:inherit;font-size:12.5px;line-height:17px;color:var(--ink);background:var(--surface);resize:vertical;outline:none}
  .vjob-note-edit textarea:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .vjob-note-edit .r{display:flex;gap:6px}
  .vjob-note-edit .r button{border:1px solid var(--border-soft);background:var(--surface);border-radius:8px;padding:4px 11px;font:inherit;font-size:11.5px;color:var(--ink-2);cursor:pointer}
  .vjob-note-edit .r button.ok{background:var(--ink);border-color:var(--ink);color:var(--fg-inverse);font-weight:600}
  /* Ajouter un élément */
  .vjob-add{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;border:1px dashed var(--border-strong);background:transparent;border-radius:8px;padding:4px 11px;font:inherit;font-size:11.5px;color:var(--ink-3);cursor:pointer;margin-top:6px}
  .vjob-add:hover{color:var(--ink);border-color:var(--ink-4);background:var(--bg-2)}
  .vjob-add-row{display:flex;gap:6px;margin-top:6px}
  .vjob-add-row input{flex:1 1 auto;min-width:0;border:1px solid var(--border-strong);border-radius:8px;padding:6px 10px;font:inherit;font-size:12.5px;color:var(--ink);background:var(--surface);outline:none}
  .vjob-add-row input:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .vjob-add-row button{border:1px solid var(--border-soft);background:var(--surface);border-radius:8px;padding:5px 12px;font:inherit;font-size:12px;color:var(--ink-2);cursor:pointer;flex-shrink:0}
  .vjob-add-row button.ok{background:var(--ink);border-color:var(--ink);color:var(--fg-inverse);font-weight:600}
  .vjob-add-row button.ok:disabled{opacity:.45;cursor:not-allowed}
  /* Groupes (À maîtriser · L'offre en détail) */
  .vjob-group{display:flex;flex-direction:column}
  .vjob-group + .vjob-group{border-top:1px solid var(--border);padding-top:14px}
  .vjob-subh{margin:0 0 6px;font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-family:var(--font-mono);display:flex;align-items:baseline;gap:8px}
  .vjob-subh i{font-style:normal;font-size:10.5px;color:var(--ink-4);letter-spacing:0}
  .vjob-empty-line{margin:0 0 2px;font-size:12px;color:var(--ink-4)}
  /* Rémunération */
  .vjob-paytop{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  @media (max-width:1100px){.vjob-paytop{grid-template-columns:1fr}}
  .vjob-paycard{border:1px solid var(--border);background:var(--bg-2);border-radius:10px;padding:13px 15px;display:flex;flex-direction:column;gap:4px;min-width:0}
  .vjob-paycard.hl{background:var(--surface);border-color:var(--border-strong)}
  .vjob-paycard .l{display:flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-4)}
  .vjob-paycard:hover .vjob-acts{opacity:1}
  .vjob-paycard strong{font-family:var(--font-mono);font-size:17px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
  .vjob-paycard .s{font-size:11.5px;color:var(--ink-3)}
  /* Suggestions d'ajout (primes & avantages…) */
  .vjob-addzone{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}
  .vjob-addzone .vjob-add{margin-top:0}
  .vjob-sugg{display:inline-flex;align-items:center;gap:5px;border:1px dashed var(--border-strong);background:transparent;border-radius:99px;padding:3px 11px;font:inherit;font-size:11.5px;color:var(--ink-3);cursor:pointer}
  .vjob-sugg:hover{color:var(--ink);border-color:var(--ink-4);background:var(--bg-2)}
  /* Réalisations : icône de ligne, chip « retenue », échéance d'objectif */
  .vjob-win-ic{width:18px;height:18px;border-radius:6px;display:grid;place-items:center;color:var(--ink-4);flex-shrink:0;margin-top:1px}
  .vjob-win-tag{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border-soft);background:var(--bg-2);border-radius:99px;padding:2px 10px;font-size:11px;font-weight:500;color:var(--ink-2)}
  .vjob-win-tag svg{color:var(--good)}
  .vjob-due{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-4);border:1px solid var(--border);border-radius:99px;padding:2px 9px;flex-shrink:0;white-space:nowrap}
  .vjob-titem.done .vjob-titem-label{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--ink-5)}
  /* Documents liés */
  .vjob-docs{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
  .vjob-docs .vjob-add{margin-top:0}
  .vjob-doc{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);background:var(--bg-2);border-radius:8px;padding:5px 11px 5px 6px;max-width:300px}
  .vjob-doc .ic{width:24px;height:24px;border-radius:6px;background:var(--surface);border:1px solid var(--border);display:grid;place-items:center;color:var(--ink-3);flex-shrink:0}
  .vjob-doc .n{font-size:12px;font-weight:500;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vjob-doc .s{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-4);flex-shrink:0}
  .vjob-doc .vjob-kw-x{margin:0 -2px 0 -2px}
  /* Mots-clés ATS */
  .vjob-kws{display:flex;flex-wrap:wrap;gap:6px}
  .vjob-kw{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--bg-2);border-radius:99px;padding:4px 11px;font-size:12px;font-weight:500;color:var(--ink-3)}
  .vjob-kw svg{color:var(--ink-4)}
  .vjob-kw.ok{background:var(--surface);border-color:var(--ink-4);color:var(--ink)}
  .vjob-kw.ok svg{color:var(--good)}
  .vjob-kw-x{border:0;background:transparent;padding:0;margin:0 -3px 0 -1px;width:16px;height:16px;border-radius:50%;display:none;place-items:center;color:var(--ink-4);cursor:pointer}
  .vjob-kw:hover .vjob-kw-x{display:grid}
  .vjob-kw-x:hover{color:var(--bad)}
  .vjob-kw.plus{border-style:dashed;background:transparent;color:var(--ink-3);cursor:pointer;font:inherit;font-size:12px;font-weight:500}
  .vjob-kw.plus:hover{color:var(--ink);border-color:var(--ink-4)}
  .vjob-kw-add-row input{border:1px solid var(--border-strong);border-radius:99px;padding:4px 12px;font:inherit;font-size:12px;color:var(--ink);background:var(--surface);outline:none;width:130px}
  .vjob-kw-add-row input:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}
  /* Conditions */
  .vjob-conds{display:flex;flex-direction:column}
  .vjob-cond{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:8px 2px;border-bottom:1px solid var(--border);font-size:13px;line-height:19px}
  .vjob-cond:last-child{border-bottom:0}
  .vjob-cond .k{color:var(--ink-3);font-weight:500}
  .vjob-cond .v{color:var(--ink-2)}
  .vjob-disclaimer{display:flex;align-items:center;gap:6px;margin:0;font-size:11px;color:var(--ink-4)}
  .vjob-todo-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
  .vjob-todo-head h4{margin:0;font-size:13.5px;font-weight:600;color:var(--ink)}
  .vjob-progress-n{font-family:var(--font-mono);font-size:12px;color:var(--ink-2)}
  .vjob-pbar{height:5px;border-radius:99px;background:var(--bg-2);margin:10px 0 12px;overflow:hidden}
  .vjob-pbar i{display:block;height:100%;border-radius:99px;background:var(--ink)}
  .vjob-todo-list{display:flex;flex-direction:column}
  .vjob-titem{display:flex;align-items:flex-start;gap:10px;padding:8px 2px;border-bottom:1px solid var(--border)}
  .vjob-titem:last-child{border-bottom:0}
  .vjob-titem-row{display:flex;align-items:baseline;gap:8px}
  .vjob-titem-row .vjob-titem-label{flex:1 1 auto;min-width:0}
  .vjob-check{flex:0 0 auto;padding:0;width:18px;height:18px;margin-top:1px;border-radius:6px;border:1.5px solid var(--border-strong);background:var(--surface);display:grid;place-items:center;color:var(--fg-inverse);cursor:pointer;transition:background-color .18s var(--ease-out),border-color .18s var(--ease-out)}
  .vjob-check:hover{border-color:var(--ink-3)}
  .vjob-titem.done .vjob-check{background:var(--ink);border-color:var(--ink)}
  .vjob-titem-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:5px}
  .vjob-titem-label{font-size:13px;line-height:19px;color:var(--ink-2)}
  .vjob-titem.done .vjob-titem-label{color:var(--ink);font-weight:500}
  .vjob-proof{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;border:1px solid var(--border-soft);background:var(--bg-2);border-radius:99px;padding:2px 9px;font:inherit;font-size:11px;color:var(--ink-3);cursor:pointer;max-width:100%}
  .vjob-proof:hover{color:var(--accent);border-color:var(--border-strong)}
  .vjob-confirm{border:1px solid var(--border);border-radius:10px;background:var(--bg);padding:9px 10px;display:flex;flex-direction:column;gap:3px;margin-top:2px}
  .vjob-confirm-q{font-size:11.5px;font-weight:600;color:var(--ink-2);margin-bottom:3px}
  .vjob-confirm-opt{display:flex;align-items:center;gap:7px;width:100%;text-align:left;border:0;background:transparent;border-radius:8px;padding:5px 7px;font:inherit;font-size:12px;color:var(--ink-2);cursor:pointer}
  .vjob-confirm-opt span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vjob-confirm-opt:hover{background:var(--surface)}
  .vjob-confirm-opt.plain{color:var(--ink-3)}
  .vjob-confirm-cancel{align-self:flex-start;border:0;background:transparent;font:inherit;font-size:11px;color:var(--ink-4);cursor:pointer;padding:3px 7px}
  .vjob-confirm-cancel:hover{color:var(--ink-2)}
  .vjob-tool-confirm{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:2px}
  .vjob-tool-confirm span{font-size:11.5px;color:var(--ink-4)}
  .vjob-tool-confirm button{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border-soft);background:var(--surface);border-radius:999px;padding:3px 8px;font:inherit;font-size:11px;color:var(--ink-3);cursor:pointer}
  .vjob-tool-confirm button:hover{border-color:var(--border-strong);background:var(--bg-subtle);color:var(--ink)}
  .vjob-todo-note{margin:0;font-size:11.5px;line-height:17px;color:var(--ink-4);text-wrap:pretty}
  /* État d'accueil */
  .vjob-onboard{width:min(760px,calc(100vw - 56px));max-width:760px;margin:36px auto 0;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:28px 32px;display:flex;flex-direction:column;gap:12px;text-align:center;align-items:center}
  .vjob-ob-ic{width:40px;height:40px;border-radius:10px;background:var(--bg-2);border:1px solid var(--border);display:grid;place-items:center;color:var(--ink-3)}
  .vjob-onboard h3{margin:2px 0 0;font-size:16px;font-weight:600;color:var(--ink)}
  .vjob-onboard > p{margin:0;font-size:13px;line-height:19px;color:var(--ink-3);text-wrap:pretty}
  .vjob-source-card{width:100%;margin-top:8px;border:1px solid var(--border);border-radius:13px;background:var(--bg-2);padding:12px;display:flex;flex-direction:column;gap:12px;text-align:left}
  .vjob-source-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:5px;border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:4px}
  .vjob-source-tabs button{min-width:0;min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:transparent;border-radius:8px;padding:8px 12px;font:inherit;font-size:12px;font-weight:500;color:var(--ink-3);white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vjob-source-tabs button:hover{color:var(--ink);background:var(--bg-2)}
  .vjob-source-tabs button.on{background:var(--ink);color:var(--fg-inverse);font-weight:600}
  .vjob-source-tabs button.on svg{color:currentColor}
  .vjob-source-panel{display:flex;flex-direction:column;gap:10px}
  .vjob-source-grid{display:grid;grid-template-columns:1fr;gap:10px}
  .vjob-source-field{display:flex;flex-direction:column;gap:5px}
  .vjob-source-field span{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4)}
  .vjob-source-field input,.vjob-source-field textarea{width:100%;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;line-height:18px;outline:0}
  .vjob-source-field input{height:38px;padding:0 11px}
  .vjob-source-field textarea{min-height:172px;resize:vertical;padding:10px 11px}
  .vjob-source-field input:focus,.vjob-source-field textarea:focus,.vjob-source-upload:focus-within{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .vjob-source-upload{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:132px;border:1px dashed var(--border-strong);border-radius:10px;background:var(--surface);color:var(--ink-3);text-align:center;cursor:pointer;padding:18px;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vjob-source-upload:hover{border-color:var(--ink-4);background:var(--bg-subtle);color:var(--ink-2)}
  .vjob-source-upload strong{font-size:13px;font-weight:600;color:var(--ink);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vjob-source-upload span{font-size:12px;line-height:17px;color:var(--ink-4);max-width:330px}
  .vjob-source-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}
  .vjob-source-error{margin:0;font-size:12px;line-height:17px;color:var(--bad)}
  .vjob-source-actions{display:flex;justify-content:flex-end}
  .vjob-source-actions .ok{border:0;border-radius:8px;background:var(--accent);color:var(--fg-inverse);font:inherit;font-size:12.5px;font-weight:600;padding:8px 15px;cursor:pointer;transition:filter var(--dur-fast) var(--ease-out)}
  .vjob-source-actions .ok:hover{filter:brightness(1.04)}
  .vjob-source-actions .ok:disabled{opacity:.48;cursor:not-allowed;filter:none}
  .vjob-lost-intro{display:flex;align-items:flex-start;gap:8px;border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:10px 12px;font-size:12px;line-height:17px;color:var(--ink-3)}
  .vjob-lost-intro svg{color:var(--good);flex:0 0 auto;margin-top:1px}
  .vjob-lost-progress{display:grid;grid-template-columns:1fr auto;gap:5px 10px;align-items:center}
  .vjob-lost-progress span{font-size:12px;font-weight:600;color:var(--ink)}
  .vjob-lost-progress b{font-family:var(--font-mono);font-size:10.5px;font-weight:500;color:var(--ink-4)}
  .vjob-lost-progress i{grid-column:1/-1;display:block;height:4px;border-radius:99px;background:var(--border);overflow:hidden}
  .vjob-lost-progress em{display:block;height:100%;border-radius:99px;background:var(--ink)}
  .vjob-lost-field small{font-size:12px;line-height:17px;color:var(--ink-4);margin-top:-2px}
  .vjob-lost-field textarea{min-height:150px}
  .vjob-lost-hints{display:flex;flex-direction:column;gap:6px}
  .vjob-lost-hints>span{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4)}
  .vjob-lost-hints>div{display:flex;flex-wrap:wrap;gap:5px}
  .vjob-lost-hints button{border:1px solid var(--border-soft);background:var(--surface);border-radius:999px;padding:3px 9px;font:inherit;font-size:11.5px;color:var(--ink-3);cursor:pointer}
  .vjob-lost-hints button:hover{border-color:var(--border-strong);background:var(--bg-subtle);color:var(--ink)}
  .vjob-lost-nav{display:flex;justify-content:space-between;gap:8px}
  .vjob-lost-nav button{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border-soft);background:var(--surface);border-radius:8px;padding:6px 10px;font:inherit;font-size:12px;color:var(--ink-2);cursor:pointer}
  .vjob-lost-nav button:hover:not(:disabled){background:var(--bg-subtle);color:var(--ink)}
  .vjob-lost-nav button:disabled{opacity:.45;cursor:not-allowed}
  
  
  .vjob-ob-go{border:0;border-radius:8px;background:var(--accent);color:var(--fg-inverse);font:inherit;font-size:12.5px;font-weight:600;padding:7px 14px;cursor:pointer}
  .vjob-ob-go:disabled{opacity:.5;cursor:not-allowed}
  .vjob-ob-alts{display:flex;gap:8px}
  .vjob-ob-alts button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-soft);background:var(--surface);border-radius:8px;padding:6px 12px;font:inherit;font-size:12px;color:var(--ink-2);cursor:pointer}
  .vjob-ob-alts button:hover{background:var(--bg-2)}
  .vjob-ob-demo{margin:0;font-size:11.5px;color:var(--warn-2,var(--ink-3))}

  /* ── Onglet « Réalisations & objectifs » (gestionnaire de to-do) ── */
  .vw{padding:0 22px 22px;display:flex;flex-direction:column;gap:14px}
  .vw-head{display:flex;flex-direction:column}
  .vw-eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-4)}
  .vw-head h3{margin:4px 0 5px;font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
  .vw-head p{margin:0;max-width:680px;font-size:12.5px;line-height:18px;color:var(--ink-3);text-wrap:pretty}
  /* Bandeau de stats + progression */
  .vw-stats{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
  .vw-stat{flex:1 1 64px;min-width:60px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:11px 13px;display:flex;flex-direction:column;gap:2px;justify-content:center}
  .vw-stat .v{font-family:var(--font-mono);font-size:21px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}
  .vw-stat .l{font-size:11px;color:var(--ink-3)}
  .vw-stat.warn .v{color:var(--bad)}
  .vw-prog{flex:2 1 190px;min-width:170px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 15px;display:flex;flex-direction:column;justify-content:center;gap:7px}
  
  
  .vw-prog .vjob-pbar{margin:0}
  /* Barre d'outils */
  .vw-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
  .vw-filters{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
  .vw-toolbar-r{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .vw-group-sel{display:inline-flex;align-items:center;gap:3px;border:1px solid var(--border);background:var(--bg-2);border-radius:8px;padding:3px}
  .vw-group-lbl{font-size:11px;color:var(--ink-4);padding:0 6px 0 5px}
  .vw-group-sel button{border:0;background:transparent;border-radius:6px;padding:5px 10px;font:inherit;font-size:12px;color:var(--ink-3);cursor:pointer;transition:all var(--dur-fast,.18s) var(--ease-out)}
  .vw-group-sel button:hover{color:var(--ink)}
  .vw-group-sel button.on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--shadow-sm)}
  .vw-add-main{display:inline-flex;align-items:center;gap:6px;border:0;background:var(--accent);color:var(--fg-inverse);border-radius:8px;padding:7px 13px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm);transition:filter var(--dur-fast,.18s) var(--ease-out)}
  .vw-add-main:hover{filter:brightness(1.06)}
  /* « Préparer ma review » — bouton secondaire (à gauche de « Nouveau ») */
  .vw-add-main.rvprep-launch{background:var(--surface);color:var(--ink-2);border:1px solid var(--border-strong)}
  .vw-add-main.rvprep-launch:hover{filter:none;background:var(--bg-2);color:var(--ink);border-color:var(--ink-4)}
  .vw-add-main.rvprep-launch svg{color:var(--accent)}
  /* Intégration dans la .kanban-toolbar de « goals » : aligne la hauteur sur le
     pill « Nouveau » (Btn accent sm) et empêche le retour à la ligne du libellé. */
  .kanban-toolbar .vw-add-main{white-space:nowrap}
  .kanban-toolbar .vw-add-main.rvprep-launch{padding:5px 12px;font-size:12px;border-radius:var(--radius-pill,99px)}

  /* Outils de la barre Kanban objectifs (Affichage · Filtres · Rechercher) —
     popovers calqués sur le Tableau candidatures, adaptés aux objectifs. */
  .gk-tool-wrap{position:relative;display:inline-flex}
  .gk-pop{position:absolute;top:calc(100% + 6px);right:0;z-index:60;background:var(--surface);
    border:1px solid var(--border);border-radius:13px;box-shadow:0 12px 32px color-mix(in srgb,var(--ink) 14.000000000000002%,transparent);
    padding:8px;min-width:236px;display:flex;flex-direction:column;gap:2px}
  .gk-pop-h{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);padding:4px 8px 6px}
  .gk-pop-opt{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;font-size:13px;
    color:var(--ink);cursor:pointer;border:none;background:none;text-align:left;width:100%;
    transition:background var(--dur-1,.18s) var(--ease-out,cubic-bezier(.16,1,.3,1))}
  .gk-pop-opt:hover{background:var(--bg-2)}
  .gk-pop-opt.on{color:var(--accent);font-weight:500}
  .gk-pop-opt .gk-pop-n{margin-left:auto;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}
  .gk-pop-opt.on .gk-pop-n{color:var(--accent)}
  .gk-pop-opt svg{color:var(--accent);flex:none}
  
  
  
  
  
  .gk-pop-sep{height:1px;background:var(--border);margin:5px 4px}
  .gk-pop-filter{max-height:min(70vh,560px);overflow-y:auto}
  .gk-pop-opt-lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .gk-pop-reset{color:var(--ink-3)}
  .gk-pop-reset svg{color:var(--ink-3)}
  /* Densité des cartes du Kanban objectifs (réglage « Affichage ») */
  .gk-card.dens-compact{padding:8px 10px}
  .gk-card.dens-compact .gk-card-title{font-size:13px}
  .gk-card.dens-compact .gk-subs{margin-top:7px;padding-top:7px}
  .gk-card.dens-cozy{padding:16px}
  .gk-card.dens-cozy .gk-subs{margin-top:13px;padding-top:13px}

  /* ===== Gestion des objectifs — vue KANBAN (gestion de projet) ===== */
  .gk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
  
  
  
  
  
  

  /* Vue Kanban — même approche que le Tableau candidatures : hauteur fixe,
     entête de colonne fixe, cartes qui défilent à l'intérieur de chaque colonne. */
  .gk-shell{flex:1 1 auto;min-height:0;overflow:hidden}
  .gk-bodyfill{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
  .gk-statscroll{overflow-y:auto;gap:14px;padding-right:2px}
  .gk-empty-wrap{align-items:center;justify-content:center}
  .gk-foot{flex:0 0 auto;margin:0}
  .gk-scroll-wrap{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow-x:auto;overflow-y:hidden}
  @media (pointer:fine){
    .gk-scroll-wrap::-webkit-scrollbar{height:8px}
    .gk-scroll-wrap::-webkit-scrollbar-thumb{background:var(--scroll-pill-thumb);border-radius:99px}
    .gk-scroll-wrap::-webkit-scrollbar-track{background:transparent}
  }
  .gk-board{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:14px}
  /* Canon SIH-51 : la colonne n'est plus un slab teinté (écart 1,09:1
     invisible) — c'est une ZONE du panneau délimitée par l'espacement.
     La carte se détache par sa blancheur, son filet et son ombre. */
  .gk-col{border:1px solid transparent;border-radius:13px;display:flex;flex-direction:column;min-height:0;overflow:hidden;transition:border-color var(--dur-base) var(--ease-out),background var(--dur-base) var(--ease-out)}
  .gk-col.drop-over{border-color:var(--ink-4);background:var(--bg-2)}
  .gk-col-head{display:flex;align-items:center;gap:8px;padding:11px 13px 9px;border-bottom:1px solid transparent;flex:0 0 auto}
  .gk-col-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
  .gk-col-head h4{margin:0;font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
  .gk-col-n{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--ink-3);background:var(--bg-2);border:1px solid transparent;border-radius:99px;padding:1px 8px}
  .gk-col-body{display:flex;flex-direction:column;gap:9px;padding:11px;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
  @media (pointer:fine){
    .gk-col-body::-webkit-scrollbar{width:6px}
    .gk-col-body::-webkit-scrollbar-thumb{background:var(--scroll-pill-thumb);border-radius:99px}
    .gk-col-body::-webkit-scrollbar-track{background:transparent}
  }
  .gk-col-empty{font-size:12px;color:var(--ink-4);text-align:center;padding:18px 8px;border:1px dashed var(--border-strong);border-radius:8px}

  /* Candidatures réutilise la structure éprouvée d'Objectifs ; seuls le
     nombre de colonnes et le contenu métier des cartes diffèrent. */
  .cand-kanban-shell{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:5px;padding:10px 10px 5px;overflow:hidden}
  .cand-kanban-board{grid-template-columns:repeat(5,minmax(188px,1fr));gap:12px}
  .cand-kanban-body .kc{flex:0 0 auto;padding:11px 12px}
  .cand-kanban-board .kc.dragging{opacity:.5}

  .gk-card{position:relative;background:var(--tile);border:1px solid var(--border-soft);border-radius:8px;padding:11px 12px;cursor:pointer;box-shadow:var(--shadow-xs);transition:box-shadow var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .gk-card:hover{box-shadow:var(--shadow-sm);border-color:var(--border-strong)}
  .gk-card.dragging{opacity:.5}
  
  .gk-cat{display:inline-flex;align-items:center;gap:5px;height:19px;padding:0 8px;border-radius:6px;background:var(--bg-2);border:1px solid var(--border);font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
  .gk-cat svg{color:var(--ink-3)}
  .gk-cat.c-objectif svg{color:var(--accent)}
  .gk-cat.c-initiative svg,.gk-cat.c-participation svg,.gk-cat.c-idee svg{color:var(--good)}
  .gk-prio{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-4)}
  .gk-prio.p-haute{color:var(--bad)}
  .gk-prio.p-moyenne{color:var(--warn)}
  .gk-prio.p-basse{color:var(--ink-4)}
  .gk-prio-pill{display:inline-flex;align-items:center;gap:4px;height:19px;padding:0 8px;border-radius:6px;background:var(--bg-2);border:1px solid var(--border-soft);font-size:10.5px;font-weight:600;color:var(--ink-2)}
  .gk-prio-pill svg{color:var(--ink-4);flex:0 0 auto}
  .gk-prio-pill.p-haute svg{color:var(--bad)}
  .gk-prio-pill.p-moyenne svg{color:var(--warn)}
  .gk-prio-pill.p-basse svg{color:var(--ink-4)}
  
  .gk-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:11px;padding-top:9px;border-top:1px solid var(--border)}
  .gk-foot-dates{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow:hidden}
  .gk-date.muted{color:var(--ink-4)}
  .gk-date.muted svg{color:var(--ink-4)}
  .gk-date{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3)}
  .gk-date svg{color:var(--ink-4);flex:0 0 auto}
  .gk-date.over{color:var(--bad)}
  .gk-date.over svg{color:var(--bad)}
  .gk-date-arrow{color:var(--ink-4);flex:0 0 auto}
  .gk-card-title{padding-right:30px;font-size:13.5px;font-weight:500;line-height:1.4;color:var(--ink);text-wrap:pretty}

  /* Menu d'actions commun aux cartes Candidatures et Objectifs. */
  .card-options{position:absolute;top:8px;right:8px;z-index:6}
  .card-options.open{z-index:7}
  .card-options-trigger{display:grid;place-items:center;width:26px;height:26px;padding:0;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);color:var(--ink-3);cursor:pointer;box-shadow:var(--shadow-xs);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .card-options-trigger:hover{background:var(--bg-2);border-color:var(--border-hover);color:var(--ink)}
  .card-options.open .card-options-trigger{background:var(--bg-2);border-color:var(--border-strong);color:var(--ink)}
  .card-options-trigger:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .card-options-menu{position:absolute;top:calc(100% + 5px);right:0;z-index:8;display:flex;flex-direction:column;gap:1px;min-width:148px;padding:5px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-lg)}
  .card-options-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 9px;border:0;border-radius:6px;background:transparent;color:var(--ink-2);font:inherit;font-size:13px;font-weight:500;text-align:left;cursor:pointer;white-space:nowrap}
  .card-options-item:hover{background:var(--bg-2);color:var(--ink)}
  .card-options-item svg{flex:0 0 auto;color:var(--ink-3)}
  .card-options-item.danger,.card-options-item.danger svg{color:var(--bad)}
  .card-options-item.danger:hover{background:color-mix(in srgb,var(--bad) 10%,var(--surface))}
  .gk-card-desc{font-size:12px;line-height:1.45;color:var(--ink-3);margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .gk-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:9px}
  .gk-carnet{display:inline-flex;align-items:center;gap:4px;max-width:100%;font-size:11px;color:var(--ink-3);background:var(--bg-2);border-radius:99px;padding:2px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .gk-carnet svg{color:var(--ink-4);flex:0 0 auto}
  .gk-chip{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3)}
  .gk-chip svg{color:var(--ink-4)}
  .gk-chip.done svg{color:var(--good)}
  .gk-due{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);margin-left:auto}
  .gk-due svg{color:var(--ink-4)}
  .gk-due.over{color:var(--bad)}
  .gk-due.over svg{color:var(--bad)}

  /* Carte d'objectif — sous-tâches imbriquées (checklist) */
  .gk-card.gk-obj .gk-card-title{font-weight:600}
  .gk-subs{margin-top:10px;border-top:1px solid var(--border);padding-top:9px}
  .gk-subs-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
  .gk-subs-lbl{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;color:var(--ink-3)}
  .gk-subs-lbl svg{color:var(--ink-4)}
  .gk-subs-cnt{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3)}
  .gk-subs-bar{height:3px;border-radius:99px;background:var(--bg-2);overflow:hidden;margin-bottom:8px}
  .gk-subs-bar i{display:block;height:100%;background:var(--ink);border-radius:99px}
  .gk-sub-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}
  .gk-sub{display:flex;align-items:center;gap:7px;border-radius:8px;padding:3px 4px;transition:background var(--dur-fast) var(--ease-out)}
  .gk-sub:hover{background:var(--bg-2)}
  .gk-sub-check{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;padding:0;cursor:pointer;line-height:0}
  .gk-sub-title{flex:1 1 auto;min-width:0;text-align:left;border:0;background:transparent;padding:0;font:inherit;font-size:12px;color:var(--ink-2);cursor:pointer;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .gk-sub-title:hover{color:var(--ink);text-decoration:underline}
  .gk-sub.is-done .gk-sub-title{color:var(--ink-4);text-decoration:line-through}
  .gk-sub-stat{flex:0 0 auto;font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}
  
  
  /* Tâche libre — carte légère, secondaire aux objectifs */
  .gk-card.gk-task{background:var(--bg-2);box-shadow:none}
  .gk-card.gk-task:hover{background:var(--surface);box-shadow:var(--shadow-sm)}
  .gk-card.gk-task .gk-cat{background:var(--surface)}
  /* Séparateur « Tâches libres » dans une colonne */
  .gk-col-sep{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-4);padding:6px 2px 2px}

  /* ── Onglet Statistiques ── */
  .gk-stats{display:flex;flex-direction:column;gap:14px;margin-top:4px}
  .gk-stats-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
  @media (max-width:1000px){.gk-stats-kpis{grid-template-columns:repeat(3,1fr)}}
  @media (max-width:700px){.gk-stats-kpis{grid-template-columns:repeat(2,1fr)}}
  .gk-kpi{background:var(--bg-2);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}
  .gk-kpi .v{font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
  .gk-kpi .l{font-size:12px;color:var(--ink-3)}
  .gk-kpi.warn .v{color:var(--bad)}
  .gk-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
  @media (max-width:900px){.gk-stats-row{grid-template-columns:1fr}}
  .gk-stats-card{background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:15px 16px}
  .gk-stats-h{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:12px}
  .gk-stats-h svg{color:var(--ink-4)}
  .gk-bigprog{display:flex;align-items:baseline;gap:8px;margin-bottom:9px}
  .gk-bigpct{font-size:28px;font-weight:700;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
  .gk-bigsub{font-size:12px;color:var(--ink-3)}
  .gk-priolist{display:flex;flex-direction:column;gap:9px}
  .gk-prioline{display:flex;align-items:center;gap:9px}
  .gk-prioline .dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
  .gk-prioline-l{font-size:12.5px;color:var(--ink-2)}
  .gk-prioline-n{margin-left:auto;font-family:var(--font-mono);font-size:13px;color:var(--ink);font-weight:600}
  .gk-carnetstats{display:flex;flex-direction:column;gap:12px}
  .gk-carnetstat-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px}
  .gk-carnetstat-nm{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .gk-carnetstat-nm svg{color:var(--ink-4);flex:0 0 auto}
  .gk-carnetstat-n{color:var(--ink-3);flex:0 0 auto}
  .gk-carnetstat-bar{height:6px;border-radius:99px;background:var(--bg-2);overflow:hidden}
  .gk-carnetstat-bar i{display:block;height:100%;background:var(--ink);border-radius:99px}
  /* ===== Modale « Préparer ma review / mon 1:1 » (Prop 3) ===== */
  
  @keyframes rvprep-fade{from{opacity:0}to{opacity:1}}
  .rvprep{width:min(1100px,92vw);height:min(760px,88vh);background:var(--surface);border:1px solid var(--border);border-radius:16px;
    box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;
    animation:rvprep-rise 260ms var(--ease-out) both}
  @keyframes rvprep-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
  .rvprep-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 20px 11px;border-bottom:1px solid var(--border)}
  .rvprep-head-id{display:flex;align-items:flex-start;gap:11px}
  
  .rvprep-head-id strong{display:block;font-size:15px;font-weight:600;color:var(--ink)}
  .rvprep-head-id span{display:block;font-size:12.5px;color:var(--ink-3);margin-top:1px}
  .rvprep-x{border:0;background:transparent;color:var(--ink-3);cursor:pointer;border-radius:8px;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;transition:background var(--dur-fast) var(--ease-out)}
  .rvprep-x:hover{background:var(--bg-2);color:var(--ink)}
  .rvprep-periods{display:flex;gap:3px;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--bg-2)}
  .rvprep-periods button{flex:0 0 auto;border:1px solid transparent;background:transparent;border-radius:8px;padding:6px 13px;font:inherit;font-size:12.5px;font-weight:500;color:var(--ink-3);cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}
  .rvprep-periods button:hover{color:var(--ink)}
  .rvprep-periods button.on{background:var(--surface);color:var(--ink);font-weight:600;border-color:var(--border);box-shadow:var(--shadow-sm)}
  /* Contrôles : Pour (motif) + Période, alignés */
  .rvprep-controls{display:flex;flex-direction:column;gap:9px;padding:13px 20px;border-bottom:1px solid var(--border);background:var(--bg-2)}
  .rvprep-ctl{display:flex;align-items:center;gap:11px}
  .rvprep-ctl-lbl{flex:0 0 54px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-4)}
  
  
  
  
  .rvprep-body{padding:8px 20px 18px;overflow-y:auto;flex:1;min-height:0}
  
  
  
  
  .rvprep-sec{padding:14px 0 4px}
  .rvprep-sec + .rvprep-sec{border-top:1px solid var(--border)}
  .rvprep-sec h4{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin:0 0 10px}
  .rvprep-sec h4 svg{color:var(--ink-4)}
  .rvprep-sec h4 i{margin-left:auto;font-style:normal;font-family:var(--font-mono);font-size:11px;color:var(--ink-4);background:var(--bg-2);border-radius:999px;padding:1px 8px}
  .rvprep-item{display:flex;align-items:flex-start;gap:10px;padding:7px 0}
  .rvprep-item + .rvprep-item{border-top:1px solid var(--border)}
  
  
  
  
  .rvprep-item-b{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
  .rvprep-item-t{font-size:13.5px;color:var(--ink);font-weight:500;line-height:1.4}
  .rvprep-item-r{font-size:12.5px;color:var(--ink-2);line-height:1.45}
  .rvprep-item-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-4)}
  
  
  
  
  .rvprep-copy{display:inline-flex;align-items:center;gap:6px;border:0;background:var(--accent);color:var(--fg-inverse);border-radius:8px;padding:8px 14px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:filter var(--dur-fast) var(--ease-out)}
  .rvprep-copy:hover{filter:brightness(1.06)}
  .rvprep-copy:disabled{opacity:.5;cursor:not-allowed}
  .rvprep-copy.ghost{background:var(--surface);color:var(--ink-2);border:1px solid var(--border-strong)}
  .rvprep-copy.ghost:hover{filter:none;background:var(--bg-2);color:var(--ink)}
  /* ===== Document de synthèse généré (caché à l'écran, rendu en PDF via impression) ===== */
  .rvdoc{position:fixed;left:-9999px;top:0;width:794px;background:#fff;color:#15171B;font-family:'Sihage Rubik',system-ui,sans-serif}
  .rvdoc-head{border-bottom:2px solid #15171B;padding-bottom:14px;margin-bottom:18px}
  .rvdoc-brand{font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:.18em;color:#6B7079}
  .rvdoc-kicker{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-top:14px}
  .rvdoc-title{font-size:27px;font-weight:700;letter-spacing:-.02em;margin:3px 0 0;color:#15171B}
  .rvdoc-meta{font-size:12.5px;color:#6B7079;margin-top:5px}
  .rvdoc-intro{font-size:14px;line-height:1.6;color:#393D45;margin:0 0 22px}
  .rvdoc-sec{margin-bottom:22px;break-inside:avoid}
  .rvdoc-sec h2{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#15171B;margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid #E8EBEF}
  .rvdoc-sec ul{list-style:none;margin:0;padding:0}
  .rvdoc-sec li{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:6px 0;border-bottom:1px solid #F0F2F5;break-inside:avoid}
  .rvdoc-li-t{font-size:13.5px;line-height:1.45;color:#15171B;font-weight:500}
  .rvdoc-li-src{flex:0 0 auto;font-size:11px;color:#6B7079;font-family:var(--font-mono);white-space:nowrap}
  .rvdoc-impact{padding:9px 0;border-bottom:1px solid #F0F2F5;break-inside:avoid}
  .rvdoc-impact-t{font-size:13.5px;font-weight:600;color:#15171B}
  .rvdoc-impact-r{font-size:13px;line-height:1.5;color:#2D9A6B;font-weight:500;margin:2px 0 1px}
  .rvdoc-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
  .rvdoc-shot{margin:0;break-inside:avoid}
  .rvdoc-shot img{width:100%;height:108px;object-fit:cover;border:1px solid #E8EBEF;border-radius:6px;display:block}
  .rvdoc-shot figcaption{font-size:10.5px;color:#6B7079;margin-top:4px;line-height:1.3}
  
  /* Formulaire d'ajout */
  .vw-addform{background:var(--surface);border:1px solid var(--border-strong);border-radius:13px;padding:14px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-sm)}
  .vw-addtitle{border:1px solid var(--border-strong);border-radius:8px;padding:9px 12px;font:inherit;font-size:14px;color:var(--ink);background:var(--surface);outline:none}
  .vw-addtitle:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .vw-addmeta{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
  .vw-field{display:flex;flex-direction:column;gap:4px}
  .vw-field>span{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);padding-left:2px}
  .vw-field select,.vw-field input{border:1px solid var(--border);border-radius:8px;padding:6px 10px;font:inherit;font-size:12.5px;color:var(--ink);background:var(--surface);outline:none}
  .vw-field input{width:130px}
  .vw-field select:focus,.vw-field input:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .vw-addbtns{display:flex;gap:6px;margin-left:auto}
  .vw-addbtns button{border:1px solid var(--border-soft);background:var(--surface);border-radius:8px;padding:7px 14px;font:inherit;font-size:12.5px;color:var(--ink-2);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .vw-addbtns button:hover:not(:disabled){background:var(--bg-2);border-color:var(--border-hover);color:var(--ink)}
  .vw-addbtns button.ok{background:var(--ink);border-color:var(--ink);color:var(--fg-inverse);font-weight:600}
  .vw-addbtns button.ok:disabled{opacity:.45;cursor:not-allowed}
  /* Sections groupées */
  .vw-section{background:var(--surface);border:1px solid var(--border);border-radius:13px;overflow:hidden}
  .vw-sec-head{display:flex;align-items:center;gap:9px;padding:11px 16px;border-bottom:1px solid var(--border);background:var(--bg-2)}
  .vw-sec-ico{width:22px;height:22px;border-radius:8px;background:var(--surface);border:1px solid var(--border);display:grid;place-items:center;color:var(--ink-3);flex-shrink:0}
  .vw-sec-head h4{margin:0;font-size:12.5px;font-weight:600;color:var(--ink);flex:1 1 auto}
  .vw-sec-head i{font-style:normal;font-family:var(--font-mono);font-size:11px;color:var(--ink-4);background:var(--surface);border:1px solid var(--border);border-radius:99px;padding:1px 8px}
  .vw-list{display:flex;flex-direction:column}
  /* Type d'ajout : Objectif / Tâche */
  .vw-addtype{display:inline-flex;gap:2px;border:1px solid var(--border);background:var(--bg-2);border-radius:8px;padding:3px;align-self:flex-start}
  .vw-addtype button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;border-radius:6px;padding:6px 13px;font:inherit;font-size:12.5px;font-weight:500;color:var(--ink-3);cursor:pointer}
  .vw-addtype button svg{color:var(--ink-4)}
  .vw-addtype button.on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--shadow-sm)}
  .vw-addtype button.on svg{color:var(--accent)}
  /* Ligne de tâche / objectif */
  .vw-task{border-bottom:1px solid var(--border)}
  .vw-task:last-child{border-bottom:0}
  .vw-task-main{display:flex;align-items:center;gap:9px;padding:9px 16px}
  .vw-task.is-obj .vw-task-main{padding:11px 16px;background:color-mix(in srgb,var(--bg-2) 50%,var(--surface))}
  .vw-prio{flex:0 0 auto;width:22px;height:22px;border:1px solid var(--border-soft);background:var(--bg-2);border-radius:8px;display:grid;place-items:center;cursor:pointer;color:var(--ink-4);transition:all var(--dur-fast,.18s) var(--ease-out)}
  .vw-prio.p-haute{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--border));background:color-mix(in srgb,var(--bad) 8%,var(--surface))}
  .vw-prio.p-moyenne{color:var(--warn)}
  .vw-prio.p-basse{color:var(--ink-5)}
  .vw-prio:hover{border-color:var(--ink-4)}
  .vw-task .vjob-check{flex:0 0 auto;margin-top:0}
  .vw-task.done .vjob-check,.vw-dr-child.done .vjob-check,.vw-step.done .vjob-check,.vjob-check.lg.on{background:var(--ink);border-color:var(--ink)}
  .vjob-check.sm{width:16px;height:16px;border-radius:3px}
  .vjob-check.lg{width:22px;height:22px;border-radius:6px;flex:0 0 auto}
  .vw-open{flex:1 1 auto;min-width:0;display:flex;align-items:center;text-align:left;border:0;background:transparent;font:inherit;cursor:pointer;padding:3px 5px;border-radius:6px;margin:0 -5px}
  .vw-open:hover{background:var(--bg-2)}
  .vw-open:hover .vw-task-title{color:var(--accent)}
  .vw-task-title{font-size:13px;line-height:18px;color:var(--ink-2);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vw-task.is-obj .vw-task-title{font-weight:600;font-size:13.5px;color:var(--ink)}
  .vw-task.done .vw-task-title{color:var(--ink-4);text-decoration:line-through;text-decoration-color:var(--ink-5);font-weight:400}
  
  
  
  
  
  
  .vw-status{flex-shrink:0;border:1px solid var(--border);background:var(--surface);border-radius:99px;padding:2px 9px;font:inherit;font-size:10px;font-weight:600;white-space:nowrap}
  .vw-status.s-todo{color:var(--info);border-color:color-mix(in srgb,var(--info) 35%,var(--border))}
  .vw-status.s-doing{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
  .vw-status.s-review{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,var(--border));background:color-mix(in srgb,var(--warn) 7%,var(--surface))}
  .vw-due{flex-shrink:0;display:inline-flex;align-items:center;gap:4px}
  .vw-due.over{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,var(--border));background:color-mix(in srgb,var(--bad) 8%,var(--surface))}
  .vw-due.over svg{color:var(--bad)}
  .vw-due-edit input{border:1px solid var(--accent);border-radius:99px;padding:3px 11px;font:inherit;font-family:var(--font-mono);font-size:11px;color:var(--ink);background:var(--surface);outline:none;width:120px;box-shadow:var(--ring-focus)}
  .vw-row-meta{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}
  .vw-mchip{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-4)}
  .vw-mchip svg{color:var(--ink-5)}
  .vw-mchip.ok svg{color:var(--good)}
  .vw-open-arrow{flex:0 0 auto;border:0;background:transparent;width:24px;height:24px;border-radius:6px;display:grid;place-items:center;color:var(--ink-5);cursor:pointer;opacity:0;transition:opacity var(--dur-fast,.18s) var(--ease-out)}
  .vw-task:hover .vw-open-arrow{opacity:1}
  .vw-open-arrow:hover{background:var(--bg-2);color:var(--ink-2)}
  /* Ajout rapide d'une tâche à un objectif — affordance discrète révélée au survol de la ligne
     (remplace l'ancien bouton pleine largeur « Ajouter une tâche » ; le bouton « Nouveau » et le
     tiroir de l'objectif couvrent le reste — retour Landry juin 2026). */
  .vw-addchild-inline{flex:0 0 auto;border:0;background:transparent;width:24px;height:24px;border-radius:6px;display:grid;place-items:center;color:var(--ink-4);cursor:pointer;opacity:0;transition:opacity var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vw-task:hover .vw-addchild-inline{opacity:1}
  .vw-addchild-inline:hover{background:var(--accent-soft);color:var(--accent)}
  .vw-addchild{display:inline-flex;align-items:center;gap:6px;margin:2px 0 6px 52px;border:0;background:transparent;font:inherit;font-size:11.5px;color:var(--ink-4);cursor:pointer;padding:4px 7px;border-radius:6px;align-self:flex-start}
  .vw-addchild:hover{color:var(--accent);background:var(--bg-2)}
  .vw-task .vjob-confirm{margin:0 16px 11px 47px}
  /* Segmented (réutilisé dans le tiroir) */
  
  
  
  
  
  
  /* Sous-tâches (réutilisé dans le tiroir) */
  .vw-step{display:flex;align-items:center;gap:8px}
  .vw-step-lbl{flex:1 1 auto;min-width:0;font-size:12.5px;color:var(--ink-2)}
  .vw-step.done .vw-step-lbl{color:var(--ink-4);text-decoration:line-through;text-decoration-color:var(--ink-5)}
  .vw-step-x{border:0;background:transparent;width:20px;height:20px;border-radius:6px;display:grid;place-items:center;color:var(--ink-5);cursor:pointer;opacity:0;transition:opacity var(--dur-fast,.18s) var(--ease-out)}
  .vw-step:hover .vw-step-x{opacity:1}
  .vw-step-x:hover{color:var(--bad);background:var(--bg-2)}

  /* ── Tiroir de détail (façon Asana) ── */
  /* ── Pop-up de détail (centré, taille B — comme la fiche candidature) ── */
  .vw-scrim{position:fixed;inset:0;z-index:80;background:var(--scrim);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:28px;animation:vwFade .18s var(--ease-out)}
  @keyframes vwFade{from{opacity:0}to{opacity:1}}
  .vw-modal{width:min(1100px,92vw);height:min(760px,88vh);background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:vwPop .26s var(--ease-out)}
  @keyframes vwPop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  /* Mode assistant — OPTION C « side-by-side » (juin 2026, Landry) :
     plus de modale flottante ni de scrim. La fiche devient un panneau gauche
     pleine hauteur calé après la sidebar, l'assistant occupe 500px à droite.
     Le scrim passe transparent et laisse la sidebar interactive. */
  .vw-scrim.asst-open{background:transparent;backdrop-filter:none;padding:0;display:block;pointer-events:none;animation:none}
  .vw-modal.asst-open{position:fixed;top:0;bottom:0;left:var(--sidebar-w);right:0;width:auto;height:auto;max-width:none;max-height:none;border:0;border-left:1px solid var(--border);border-radius:0;box-shadow:-12px 0 40px -24px color-mix(in srgb,var(--ink) 20%,transparent);flex-direction:row;align-items:stretch;pointer-events:auto;animation:vwSlideC .26s var(--ease-out)}
  body[data-side="collapsed"] .vw-modal.asst-open{left:var(--sidebar-collapsed-w)}
  @keyframes vwSlideC{from{opacity:0}to{opacity:1}}
  .vw-dr-head{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);flex-shrink:0}
  /* Retour au tableau (même approche que la fiche candidature, Landry juin 2026) */
  .vw-dr-back{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;height:26px;padding:0 9px 0 7px;border:1px solid var(--border-soft);background:var(--surface);border-radius:99px;font:inherit;font-size:12px;font-weight:500;color:var(--ink-2);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vw-dr-back svg{color:var(--ink-4)}
  .vw-dr-back:hover{background:var(--bg-2);border-color:var(--ink-4);color:var(--ink)}
  .vw-dr-back:hover svg{color:var(--ink-2)}
  .vw-dr-back-sep{width:1px;height:18px;background:var(--border);flex:0 0 auto}
  /* Pastille de statut dans l'en-tête du détail — façon « Déplacer vers » des candidatures */
  .vw-statuspick{position:relative;display:inline-flex}
  .vw-statuspill{display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 9px;border:1px solid var(--border-soft);background:var(--surface);border-radius:99px;font:inherit;font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .vw-statuspill:hover{background:var(--bg-2);border-color:var(--border-hover)}
  .vw-statuspill svg{color:var(--ink-4)}
  .vw-status-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
  .vw-status-scrim{position:fixed;inset:0;z-index:90}
  .vw-status-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:91;min-width:212px;background:var(--surface);border:1px solid var(--border-strong);border-radius:13px;box-shadow:var(--shadow-lg);padding:6px;animation:vwPop .16s var(--ease-out)}
  .vw-status-menu-head{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);padding:6px 8px 5px}
  .vw-status-opt{display:flex;align-items:center;gap:9px;width:100%;border:0;background:transparent;border-radius:8px;padding:8px 9px;font:inherit;font-size:13px;font-weight:500;color:var(--ink-2);cursor:pointer;text-align:left;transition:background var(--dur-fast) var(--ease-out)}
  .vw-status-opt:hover{background:var(--bg-2)}
  .vw-status-opt.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
  .vw-status-opt-lbl{flex:1 1 auto}
  .vw-status-opt svg{color:var(--accent);flex:0 0 auto}
  .vw-dr-crumb{display:inline-flex;align-items:center;gap:5px;max-width:200px;border:1px solid var(--border-soft);background:var(--bg-2);border-radius:99px;padding:3px 10px;font:inherit;font-size:11.5px;color:var(--ink-2);cursor:pointer;overflow:hidden}
  .vw-dr-crumb span,.vw-dr-crumb{white-space:nowrap;text-overflow:ellipsis}
  .vw-dr-crumb:hover{border-color:var(--border-strong);color:var(--accent)}
  .vw-dr-crumb svg{color:var(--ink-4);flex-shrink:0}
  .vw-dr-sp{flex:1 1 auto}
  .vw-dr-x{border:0;background:transparent;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--ink-4);cursor:pointer}
  .vw-dr-x:hover{background:var(--bg-2);color:var(--ink)}
  /* Boutons à icône seule : padding:0 → centrage exact (consigne CLAUDE.md, Landry juin 2026).
     Ces boutons ont une taille explicite + place-items/justify center mais gardaient le
     padding UA (~1px 6px) qui faisait déborder l'icône à droite. */
  .vw-dr-x,.vw-dr-child-open,.vw-dr-secadd,.vw-att-tile-x,.vw-foot-optbtn,.vw-foot-candx,.vpf-x,.cve-drawer-x,.vc-side-collapse{padding:0}
  .vw-dr-body{flex:1 1 auto;min-height:0;overflow:hidden;padding:0;display:flex;flex-direction:column;gap:0}
  .vw-dr-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:0;align-items:stretch;flex:1;min-height:0}
  @media (max-width:780px){.vw-dr-grid{grid-template-columns:1fr;height:auto}}
  /* Scroll INDÉPENDANT par colonne (Landry, juin 2026) : la description (gauche)
     et le rail (droite) défilent chacun de leur côté, sans impacter l'autre. */
  .vw-dr-main,.vw-dr-rail{display:flex;flex-direction:column;gap:16px;min-width:0;min-height:0;overflow-y:auto}
  .vw-dr-main{padding:14px 24px 22px}
  .vw-dr-rail{padding:14px 22px 22px 24px;border-left:1px solid var(--border);gap:10px}
  @media (max-width:780px){
    .vw-dr-body{overflow-y:auto}
    .vw-dr-main,.vw-dr-rail{overflow:visible}
    .vw-dr-rail{padding:18px 22px 22px;border-left:0;border-top:1px solid var(--border)}
  }
  /* Rail compact (Landry, juin 2026) : viser « pas de scroll » au zoom normal —
     bulles plus petites, sections resserrées. */
  .vw-dr-rail .vw-dr-sec{gap:6px}
  .vw-dr-rail .vw-dr-tag{font-size:11px;padding:2px 6px 2px 9px;gap:5px}
  .vw-dr-rail .vw-dr-tag button{width:14px;height:14px}
  .vw-dr-rail .vw-dr-sec-empty{font-size:11px;line-height:1.45}
  .vw-dr-titlerow{display:flex;align-items:flex-start;gap:10px}
  .vw-dr-title{flex:1 1 auto;min-width:0;border:1px solid transparent;border-radius:8px;padding:5px 8px;margin:-3px -8px;font:inherit;font-size:17px;font-weight:600;line-height:23px;color:var(--ink);background:transparent;outline:none;resize:none;overflow:hidden;field-sizing:content}
  .vw-dr-title:hover{background:var(--bg-2)}
  .vw-dr-title:focus{border-color:var(--accent);background:var(--surface);box-shadow:var(--ring-focus)}
  .vw-dr-meta{display:flex;flex-wrap:wrap;gap:14px 18px}
  
  .vw-dr-lbl{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4)}
  .vw-due-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-soft);background:var(--bg-2);border-radius:8px;padding:5px 11px;font:inherit;font-size:12.5px;color:var(--ink-2);cursor:pointer;white-space:nowrap}
  .vw-due-btn svg{color:var(--ink-4)}
  .vw-due-btn:hover{border-color:var(--border-hover);color:var(--ink)}
  .vw-due-btn.over{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--border));background:color-mix(in srgb,var(--bad) 8%,var(--surface))}
  /* Plage début → échéance : la flèche dit le sens ; un côté non défini reste en
     gris « invite » pour qu'on distingue d'un coup d'œil une date posée d'un vide. */
  .vw-daterange{display:inline-flex;align-items:center;gap:3px}
  .vw-daterange-sep{display:inline-flex;align-items:center;color:var(--ink-4);flex:0 0 auto}
  .vw-due-btn:not(.set){color:var(--ink-4)}
  .vw-due-btn:not(.set) svg{color:var(--ink-5)}
  .vw-due-btn.set{color:var(--ink)}
  /* Header sur une ligne : mini-libellé sous l'icône (Landry, juin 2026). */
  .vw-due-btn.p5{align-items:center;gap:7px;padding:4px 10px}
  .vw-due-cap{display:inline-flex;flex-direction:column;align-items:center;gap:1px;line-height:1;flex:0 0 auto}
  .vw-due-cap svg{color:var(--ink-4)}
  .vw-due-btn.p5.set .vw-due-cap svg{color:var(--ink-3)}
  .vw-due-btn.p5.over .vw-due-cap svg{color:var(--bad)}
  .vw-due-mini{font-family:var(--font-mono);font-size:7.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-4);line-height:1}
  .vw-due-val{line-height:1.1;white-space:nowrap}
  /* P5 — deux champs étiquetés DÉBUT / ÉCHÉANCE (option retenue, Landry juin 2026). */
  .vw-datefields{display:inline-flex;align-items:flex-end;gap:7px}
  .vw-datefield{display:flex;flex-direction:column;gap:3px}
  .vw-datelab{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-4);padding-left:2px}
  .vw-datefields > .vw-daterange-sep{padding-bottom:7px}
  /* Mini-frise début → échéance (rail + popover). */
  .win-tl{display:flex;flex-direction:column;gap:4px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 16%,var(--surface));border-radius:10px;padding:8px 11px 9px}
  .win-tl.framed{border-bottom:1px solid var(--border);padding-bottom:11px;margin-bottom:4px}
  .win-tl-track{position:relative;height:6px;border-radius:99px;background:var(--surface);margin:2px 3px 0}
  .win-tl-fill{position:absolute;top:0;left:0;height:100%;border-radius:99px;background:var(--ink)}
  .win-tl-fill.over{background:var(--bad)}
  .win-tl-node{position:absolute;top:50%;width:10px;height:10px;border-radius:50%;background:color-mix(in srgb,var(--accent) 7%,var(--surface));border:2px solid var(--ink-4);transform:translate(-50%,-50%)}
  .win-tl-node.start{left:0}
  .win-tl-node.end{left:100%;border-color:var(--ink)}
  .win-tl-node.end.over{border-color:var(--bad);background:var(--bad)}
  .win-tl-now{position:absolute;top:50%;width:3px;height:14px;border-radius:2px;background:var(--accent);transform:translate(-50%,-50%);box-shadow:0 0 0 3px var(--accent-soft)}
  .win-tl-ends{display:grid;grid-template-columns:1fr auto 1fr;align-items:flex-end;gap:8px}
  .win-tl-end{display:flex;flex-direction:column;gap:1px;min-width:0;justify-self:start}
  .win-tl-end.r{align-items:flex-end;text-align:right;justify-self:end}
  .win-tl-lab{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4)}
  .win-tl-val{font-size:12px;font-weight:600;color:var(--ink);white-space:nowrap}
  .win-tl-val.over{color:var(--bad)}
  .win-tl-rel{justify-self:center;font-size:11px;color:var(--ink-3);font-weight:500;white-space:nowrap;min-width:0}
  .win-tl-rel.over{color:var(--bad)}
  /* Mini-Gantt commun à l'objectif : une ligne par tâche datée, span partagé,
     repère « aujourd'hui » vertical (Landry juin 2026). */
  .win-gantt{display:flex;flex-direction:column;gap:6px;padding-top:2px}
  .win-gantt-rows{display:flex;flex-direction:column;gap:5px}
  .win-gantt-row{display:grid;grid-template-columns:82px 1fr;gap:9px;align-items:center}
  .win-gantt-rlab{font-size:10.5px;line-height:1.3;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .win-gantt-row.obj .win-gantt-rlab{font-weight:600;color:var(--ink-2)}
  .win-gantt-row.cur .win-gantt-rlab{color:var(--ink);font-weight:600}
  .win-gantt-rtrack{position:relative;height:12px;border-radius:99px;background:var(--bg-2)}
  .win-gantt-bar{position:absolute;top:50%;transform:translateY(-50%);height:7px;border-radius:99px;background:var(--ink-4);min-width:7px}
  .win-gantt-row.obj .win-gantt-bar{height:8px;background:var(--ink-3)}
  .win-gantt-row.cur .win-gantt-bar{background:var(--accent)}
  .win-gantt-bar.done{background:var(--good)}
  .win-gantt-bar.over{background:var(--bad)}
  .win-gantt-pt{position:absolute;top:50%;width:8px;height:8px;border-radius:50%;background:var(--ink-4);transform:translate(-50%,-50%);border:1.5px solid var(--surface)}
  .win-gantt-row.cur .win-gantt-pt{background:var(--accent)}
  .win-gantt-pt.done{background:var(--good)}
  .win-gantt-pt.over{background:var(--bad)}
  .win-gantt-now{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--accent);transform:translateX(-50%);border-radius:1px;opacity:.45;z-index:1}
  .win-gantt-row.cur .win-gantt-now{opacity:.85}
  .win-gantt-axis{display:grid;grid-template-columns:82px 1fr;gap:9px;margin-top:1px}
  .win-gantt-axtrack{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:9px;letter-spacing:.02em;color:var(--ink-4)}
  
  
  .vw-dr-confirm{margin:0}
  .vw-dr-sec{display:flex;flex-direction:column;gap:10px}
  .vw-dr-sec h5{margin:0;display:flex;align-items:center;gap:7px;font-size:11px;font-weight:600;color:var(--ink);letter-spacing:.01em;text-transform:none}
  .vw-dr-sec h5 svg{color:var(--ink-4)}
  .vw-dr-sec h5 i{font-style:normal;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--ink-4);background:var(--bg-2);border:1px solid var(--border);border-radius:99px;padding:1px 8px}
  .vw-dr-desc{width:100%;box-sizing:border-box;min-height:74px;border:1px solid var(--border);border-radius:10px;padding:10px 12px;font:inherit;font-size:13px;line-height:19px;color:var(--ink);background:var(--bg-2);outline:none;resize:vertical}
  .vw-dr-desc:focus{border-color:var(--accent);background:var(--surface);box-shadow:var(--ring-focus)}
  /* Éditeur de description — traitement de texte + joindre fichier/lien
     (même langage que l'éditeur du journal de bord, Landry juin 2026). */
  .vw-desc-rte{border:1px solid var(--border);border-radius:10px;background:var(--bg-2);overflow:hidden;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
  .vw-desc-rte:focus-within{border-color:var(--accent);background:var(--surface);box-shadow:var(--ring-focus)}
  .vw-desc-rte .jc-rte-toolbar{padding:4px 6px;margin:0;border-bottom:1px solid var(--border)}
  .vw-desc-rte .vw-dr-desc.bare{border:0;border-radius:0;background:transparent;min-height:84px;box-shadow:none}
  .vw-desc-rte .vw-dr-desc.bare:focus{border:0;box-shadow:none}
  .vw-desc-linkrow{padding:0 8px 8px}
  /* Checklist intégrée à la description (juin 2026, Landry) — cases à cocher
     que l'on remplit directement dans le bloc Description. Filet de séparation
     d'avec la zone de texte, jamais un cadre supplémentaire. */
  .vw-desc-checklist{padding:9px 10px 8px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:3px}
  .vw-cl-head{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-4);margin:0 0 3px}
  .vw-cl-head > svg{color:var(--ink-4)}
  .vw-cl-head i{font-style:normal;font-weight:500;color:var(--ink-3);font-variant-numeric:tabular-nums}
  .vw-cl-row{display:flex;align-items:center;gap:9px;border-radius:8px;padding:3px 4px;margin:0 -4px}
  .vw-cl-row:hover{background:var(--bg-2)}
  .vw-cl-check{margin-top:0}
  .vw-cl-row.done .vw-cl-check{background:var(--ink);border-color:var(--ink)}
  .vw-cl-input{flex:1 1 auto;min-width:0;border:0;background:transparent;font:inherit;font-size:12.5px;line-height:18px;color:var(--ink);outline:none;padding:1px 0}
  .vw-cl-input::placeholder{color:var(--ink-4)}
  .vw-cl-row.done .vw-cl-input{color:var(--ink-4);text-decoration:line-through;text-decoration-color:var(--ink-5)}
  .vw-cl-rm{flex:0 0 auto;width:22px;height:22px;padding:0;border:0;background:transparent;border-radius:6px;display:grid;place-items:center;color:var(--ink-5);cursor:pointer;opacity:0;transition:opacity var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vw-cl-row:hover .vw-cl-rm,.vw-cl-rm:focus-visible{opacity:1}
  .vw-cl-rm:hover{background:var(--surface);color:var(--ink-2)}
  .vw-cl-add{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;margin-top:3px;border:0;background:transparent;font:inherit;font-size:12px;color:var(--ink-4);cursor:pointer;padding:3px 4px;border-radius:6px;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}
  .vw-cl-add:hover{color:var(--accent);background:var(--bg-2)}
  /* Sous-tâches : ajout via un simple « + » (Landry juin 2026). */
  .vw-dr-addmini{align-self:flex-start;width:30px;height:30px;border:1px dashed var(--border-strong);background:transparent;border-radius:8px;display:grid;place-items:center;color:var(--ink-3);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vw-dr-addmini:hover{color:var(--ink);border-color:var(--ink-4);background:var(--bg-2)}
  /* Séparateur dans le rail (pièces jointes ↔ compétences). */
  .vw-dr-railsep{height:1px;background:var(--border);margin:0}
  /* Cluster d'actions à droite d'un en-tête de section + « + » discret au survol (Landry juin 2026). */
  .vw-dr-sec-actions{margin-left:auto;display:inline-flex;align-items:center;gap:8px}
  .vw-dr-sec h5 .vw-dr-sec-actions .vw-dr-sec-meta{margin-left:0}
  .vw-dr-secadd{width:22px;height:22px;flex:0 0 auto;border:1px solid var(--border-soft);background:var(--surface);border-radius:6px;display:grid;place-items:center;color:var(--ink-4);cursor:pointer;opacity:0;transition:opacity var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .vw-dr-sec:hover .vw-dr-secadd,.vw-dr-secadd:focus-visible{opacity:1}
  .vw-dr-secadd:hover{background:var(--bg-2);color:var(--ink);border-color:var(--ink-4)}
  /* Chips COMMUNES héritées de l'objectif/dossier parent — lecture seule, ton secondaire (Landry juin 2026). */
  .vw-dr-tag.inherited{padding:3px 11px;gap:5px;color:var(--ink-3);background:var(--bg-2);border-color:var(--border-soft)}
  .vw-dr-tag.inherited svg{color:var(--ink-4);flex:0 0 auto}
  /* « À l'origine » dans le pied : popover qui s'ouvre vers le HAUT (Landry juin 2026). */
  .vw-origin-up .vw-status-menu{top:auto;bottom:calc(100% + 6px)}
  .vw-statuspick.up .vw-status-menu{top:auto;bottom:calc(100% + 6px)}
  .vw-head-asst{height:28px;padding:0 11px;font-size:12.5px;flex:0 0 auto}
  .vw-dr-foot .vdp-foot-left{overflow:visible}
  /* ============================================================
     Icônes centrées par défaut dans les boutons à icône seule.
     Convention projet (Landry, juin 2026) : un bouton qui ne contient
     qu'une icône doit la centrer parfaitement — jamais décalée à droite.
     ============================================================ */
  /* ============================================================
     Ic\u00f4nes centr\u00e9es dans les boutons \u00e0 ic\u00f4ne seule.
     Convention projet (Landry, juin 2026) : aucun padding par d\u00e9faut sur
     les <button> \u2014 chaque bouton d\u00e9finit le sien. C'est le padding UA
     (\u22481px 6px) qui d\u00e9centrait les petits boutons \u00e0 ic\u00f4ne seule (l'ic\u00f4ne
     d\u00e9bordait \u00e0 droite de la content-box) ; les classes texte (.btn,
     .vdp-btn, .vpf-btn\u2026) posent toutes leur propre padding et ne sont donc
     pas affect\u00e9es (sp\u00e9cificit\u00e9 sup\u00e9rieure).
     \u26a0 NE PAS cibler button:has(> svg:only-child) : :only-child ignore les
     n\u0153uds texte, donc \u00e7a matche aussi les boutons ic\u00f4ne+label et casse leur
     mise en page (retour Landry). */
  /* → Règle globale retirée (cassait les boutons icône+label) : le padding:0 est
     posé directement sur chaque classe de bouton à icône seule, cf. .vjob-check. */
  .vw-dr-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
  .vw-dr-sec-empty{margin:0;font-size:11.5px;line-height:1.5;color:var(--ink-4);text-wrap:pretty}
  .vw-dr-tag{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;white-space:nowrap;border:1px solid var(--border-soft);background:var(--surface);border-radius:99px;padding:3px 6px 3px 11px;font-size:12px;font-weight:500;color:var(--ink)}
  .vw-dr-tag button{border:0;background:transparent;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;color:var(--ink-4);cursor:pointer}
  .vw-dr-tag button:hover{color:var(--bad);background:var(--bg-2)}
  /* ChipAdd — « + » discret au survol (hifi-media.jsx) : même esprit que le « + »
     des pièces jointes. Masqué par défaut, révélé au survol de la section parente. */
  .chipadd-btn{flex:0 0 auto;width:24px;height:24px;padding:0;border:1px dashed var(--border-strong);background:transparent;border-radius:6px;display:grid;place-items:center;color:var(--ink-4);cursor:pointer;opacity:0;transition:opacity var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}
  .vw-dr-sec:hover .chipadd-btn,.vdp-block:hover .chipadd-btn,.chipadd-host:hover .chipadd-btn,.chipadd-btn:focus-visible{opacity:1}
  .chipadd-btn:hover{border-style:solid;border-color:var(--ink-4);color:var(--ink);background:var(--bg-2)}
  .chipadd-field input{border:1px solid var(--accent);border-radius:99px;padding:4px 12px;font:inherit;font-size:12px;color:var(--ink);background:var(--surface);outline:none;width:124px;box-shadow:0 0 0 3px var(--accent-soft)}
  .vw-dr-hint{margin:0;font-size:11px;line-height:16px;color:var(--ink-4);text-wrap:pretty}
  .vw-dr-children,.vw-dr-steps{display:flex;flex-direction:column;gap:7px}
  .vw-dr-child{display:flex;align-items:center;gap:9px;border:1px solid var(--border);background:var(--bg-2);border-radius:8px;padding:7px 10px}
  .vw-dr-child-t{flex:1 1 auto;min-width:0;text-align:left;border:0;background:transparent;font:inherit;font-size:12.5px;color:var(--ink-2);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vw-dr-child-t:hover{color:var(--accent)}
  .vw-dr-child.done .vw-dr-child-t{color:var(--ink-4);text-decoration:line-through;text-decoration-color:var(--ink-5)}
  .vw-dr-child > svg{color:var(--ink-5);flex-shrink:0}
  .vw-dr-child .vw-row-meta{margin-left:0}
  .vw-dr-stepadd{display:flex;align-items:center;gap:7px}
  .vw-dr-stepadd input{flex:1 1 auto;min-width:0;border:1px solid var(--border);border-radius:8px;padding:6px 11px;font:inherit;font-size:12.5px;color:var(--ink);background:var(--bg-2);outline:none}
  .vw-dr-stepadd input:focus{border-color:var(--accent);background:var(--surface);box-shadow:var(--ring-focus)}
  .vw-dr-stepadd button{flex:0 0 auto;width:30px;height:30px;border:1px solid var(--border-soft);background:var(--surface);border-radius:8px;display:grid;place-items:center;color:var(--ink-3);cursor:pointer}
  .vw-dr-stepadd button:disabled{opacity:.4;cursor:not-allowed}
  .vw-dr-stepadd button:not(:disabled):hover{border-color:var(--ink-4);color:var(--ink)}
  .vw-dr-atts{display:flex;flex-direction:column;gap:6px}
  .vw-att{display:flex;align-items:center;gap:9px;border:1px solid var(--border);background:var(--bg-2);border-radius:8px;padding:6px 8px}
  .vw-att .ic{width:28px;height:28px;border-radius:8px;background:var(--surface);border:1px solid var(--border);display:grid;place-items:center;color:var(--ink-3);flex-shrink:0}
  .vw-att .n{flex:1 1 auto;min-width:0;font-size:12.5px;font-weight:500;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vw-att .s{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-4);flex-shrink:0}
  .vw-att-x{border:0;background:transparent;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;color:var(--ink-4);cursor:pointer;flex-shrink:0}
  .vw-att-x:hover{color:var(--bad);background:var(--surface)}

  /* ============================================================
     Détail d'objectif — refonte juin 2026 (Landry) :
     navigation en profondeur (3 niveaux), pièces jointes en
     bande horizontale, colonne IA, assistant à la demande.
     ============================================================ */

  /* Mode assistant : la modale passe en flex-row \u2014 header+body+footer
     s'empilent dans la colonne gauche (.vw-dr-stack), l'assistant occupe la
     colonne de droite (Landry, juin 2026 \u2014 Option C side-by-side). */
  .vw-modal.asst-open{flex-direction:row}
  .vw-dr-stack{display:contents}
  .vw-modal.asst-open .vw-dr-stack{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0}
  .vw-modal.asst-open .vw-dr-asst{flex:0 0 min(500px,40vw);min-width:0;max-width:500px;border-left:1px solid var(--border);animation:vwAsstIn .3s var(--ease-out)}
  @keyframes vwAsstIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}

  .vw-dr-body.asst-open{overflow:hidden;padding:0;gap:0}
  .vw-dr-body.asst-open .vw-dr-grid{flex:1;min-height:0;height:100%;grid-template-columns:1fr;gap:0;align-items:stretch}
  /* En mode normal, .vw-dr-leftcol est transparent (display:contents) pour
     que main+rail restent les enfants directs de la grille. */
  .vw-dr-leftcol{display:contents}
  .vw-dr-body.asst-open .vw-dr-leftcol{display:flex;flex-direction:column;min-width:0;min-height:0;overflow-y:auto;gap:18px;padding:18px 22px 20px}
  .vw-dr-body.asst-open .vw-dr-main{overflow:visible;padding:0;border-right:0;gap:14px}
  .vw-dr-body.asst-open .vw-dr-rail{overflow:visible;padding:16px 0 0;border-left:0;border-top:1px solid var(--border);gap:14px}
  .vw-dr-body.asst-open .vw-dr-rail .vw-dr-tag{font-size:11px;padding:2px 7px 2px 8px}
  .vw-dr-body.asst-open .vw-dr-rail .vw-ai-foot{display:none}

  /* Fil d'Ariane — compact, troncature au milieu si > 3 niveaux. */
  .vw-dr-bc{display:inline-flex;align-items:center;gap:2px;flex-wrap:nowrap;min-width:0;padding:0;margin:0;color:var(--ink-2);max-width:100%;overflow:hidden}
  .vw-dr-bc > svg{flex:0 0 auto;color:var(--ink-4)}
  .vw-dr-bc-seg{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 7px;border-radius:6px;border:0;background:transparent;color:var(--ink-2);font:inherit;font-size:12px;font-weight:500;cursor:pointer;max-width:260px;min-width:0}
  .vw-dr-bc-seg:hover{background:var(--bg-2);color:var(--ink)}
  .vw-dr-bc-seg > svg{color:var(--ink-4)}
  .vw-dr-bc-lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  .vw-dr-bc-ell{padding:0 2px;color:var(--ink-5);font-size:13px;user-select:none}

  /* Pas d'animation @keyframes ici : key + keyframes se fige à opacity:0 dans
     ce runtime (cf. design system). Contenu toujours visible. */
  .vw-dr-main{gap:10px}
  .vw-dr-fade{display:flex;flex-direction:column;gap:18px}

  /* Compteurs inline dans les en-têtes de section. */
  .vw-dr-sec h5 .vw-dr-sec-meta{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.01em;color:var(--ink-4);text-transform:none;font-weight:400}

  /* Sous-tâches : ligne dense + bouton « Ouvrir » pour le drill-in. */
  .vw-dr-child-open{flex:0 0 auto;width:22px;height:22px;border:0;background:transparent;color:var(--ink-4);border-radius:6px;cursor:pointer;display:grid;place-items:center}
  .vw-dr-child-open:hover{background:var(--surface);color:var(--ink)}

  /* Pièces jointes — bande horizontale scrollable + vignettes carrées. */
  .vw-dr-attstrip{display:flex;gap:8px;overflow-x:auto;padding:2px 0 8px;scroll-snap-type:x proximity}
  @media (pointer:fine){
    .vw-dr-attstrip::-webkit-scrollbar{height:6px}
    .vw-dr-attstrip::-webkit-scrollbar-thumb{background:var(--scroll-pill-thumb);border-radius:3px}
  }
  .vw-dr-attstrip > div{scroll-snap-align:start;flex:0 0 auto}
  .vw-att-tile{position:relative;width:148px;height:108px;margin:0;border:1px solid var(--border);background:var(--bg-2);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
  .vw-att-tile.is-img img{display:block;width:100%;height:74px;object-fit:cover;background:var(--bg-3)}
  .vw-att-tile-ic{height:74px;display:flex;align-items:center;justify-content:center;background:var(--surface);color:var(--ink-4);border-bottom:1px solid var(--border)}
  .vw-att-tile.is-pdf .vw-att-tile-ic{color:var(--bad)}
  .vw-att-tile.is-doc .vw-att-tile-ic{color:var(--accent)}
  .vw-att-tile.is-link .vw-att-tile-ic{color:var(--ink-3)}
  .vw-att-tile.is-sheet .vw-att-tile-ic{color:var(--good)}
  .vw-att-tile figcaption{flex:1;padding:5px 8px;font-size:11px;line-height:1.3;color:var(--ink-2);display:flex;align-items:center;justify-content:space-between;gap:4px}
  .vw-att-tile figcaption span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  .vw-att-tile figcaption em{font-style:normal;font-family:var(--font-mono);font-size:10px;color:var(--ink-4);flex:0 0 auto}
  .vw-att-tile-x{position:absolute;top:5px;right:5px;width:20px;height:20px;border:0;border-radius:999px;background:color-mix(in srgb,var(--ink) 55.00000000000001%,transparent);color:var(--fg-inverse);cursor:pointer;display:grid;place-items:center;opacity:0;transition:opacity 180ms var(--ease-out)}
  .vw-att-tile:hover .vw-att-tile-x{opacity:1}
  .vw-att-tile-x:hover{background:var(--bad)}

  /* ── Pièces jointes unifiées (.smed-*) — moteur partagé fichiers+liens ──────
     Pop-up objectif (rail) ET pop-up entrée Vault (colonne). Vignettes riches,
     filtre type façon WhatsApp, « + » discret au survol. (hifi-media.jsx) */
  .smed{display:flex;flex-direction:column;gap:7px}
  .smed-head{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:600;letter-spacing:.01em;color:var(--ink)}
  .smed-head > svg{width:13px;height:13px;flex:0 0 auto;color:var(--ink-4)}
  .smed-title{flex:0 0 auto}
  .smed-count{font-style:normal;font-family:var(--font-mono);font-size:10px;font-weight:400;color:var(--ink-4)}
  .smed-add-wrap{margin-left:auto;position:relative;display:inline-flex}
  .smed-add{width:22px;height:22px;flex:0 0 auto;padding:0;border:1px solid var(--border-soft);background:var(--surface);border-radius:6px;display:grid;place-items:center;color:var(--ink-4);cursor:pointer;opacity:0;transition:opacity var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .smed:hover .smed-add,.smed-add:focus-visible{opacity:1}
  .smed-add:hover{background:var(--bg-2);color:var(--ink);border-color:var(--ink-4)}
  .smed-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:6;min-width:188px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-md);padding:5px;display:flex;flex-direction:column;gap:1px}
  .smed-menu button{display:flex;align-items:center;gap:9px;width:100%;border:0;background:transparent;border-radius:8px;padding:8px 9px;font:inherit;font-size:12.5px;color:var(--ink-2);text-align:left;cursor:pointer;text-transform:none;letter-spacing:0}
  .smed-menu button:hover{background:var(--bg-2);color:var(--ink)}
  .smed-menu button > svg{color:var(--ink-4);flex:0 0 auto}
  /* Filtre segmenté (pill, item actif blanc + ombre — convention DS). */
  .smed-filters{display:inline-flex;align-self:flex-start;gap:2px;background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:2px}
  .smed-filter{border:0;background:transparent;border-radius:6px;padding:4px 11px;font:inherit;font-size:11.5px;font-weight:500;color:var(--ink-3);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .smed-filter:hover{color:var(--ink)}
  .smed-filter.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
  .smed-linkadd{display:flex;align-items:center;gap:7px}
  .smed-linkadd input{flex:1 1 auto;min-width:0;border:1px solid var(--border);border-radius:8px;padding:6px 11px;font:inherit;font-size:12.5px;color:var(--ink);background:var(--surface);outline:none}
  .smed-linkadd input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
  .smed-linkadd button{flex:0 0 auto;width:30px;height:30px;padding:0;border:1px solid var(--border-soft);background:var(--surface);border-radius:8px;display:grid;place-items:center;color:var(--ink-2);cursor:pointer}
  .smed-linkadd button:disabled{opacity:.45;cursor:not-allowed}
  .smed-linkadd button:not(:disabled):hover{background:var(--bg-2);color:var(--ink);border-color:var(--ink-4)}
  .smed-strip{display:flex;gap:9px;overflow-x:auto;padding:1px 0 5px;scroll-snap-type:x proximity}
  @media (pointer:fine){
    .smed-strip::-webkit-scrollbar{height:6px}
    .smed-strip::-webkit-scrollbar-thumb{background:var(--scroll-pill-thumb);border-radius:3px}
    .smed-strip::-webkit-scrollbar-track{background:transparent}
  }
  .smed-tile{position:relative;flex:0 0 auto;width:124px;scroll-snap-align:start;margin:0;border:1px solid var(--border);background:var(--surface);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;text-decoration:none}
  .smed-pic{height:52px;background:var(--bg-3);overflow:hidden}
  .smed-pic img{display:block;width:100%;height:100%;object-fit:cover}
  .smed-ic{height:52px;display:grid;place-items:center;background:var(--surface-2);color:var(--ink-3);border-bottom:1px solid var(--border)}
  .smed-tile.is-link .smed-ic{color:var(--ink-3)}
  .smed-tile.is-link:hover{border-color:var(--ink-4)}
  .smed-tile.is-link:hover .smed-ic{background:var(--bg-2)}
  .smed-cap{padding:6px 8px;border-top:1px solid var(--border);font-size:10.5px;line-height:1.3;color:var(--ink-2);font-weight:500;display:flex;align-items:center;justify-content:space-between;gap:5px}
  .smed-tile.is-img .smed-cap{border-top:0}
  .smed-cap span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  .smed-cap em{font-style:normal;font-family:var(--font-mono);font-size:9px;color:var(--ink-4);flex:0 0 auto}
  .smed-x{flex:0 0 auto;padding:0;border:0;cursor:pointer;display:grid;place-items:center;color:var(--ink-4);background:transparent;border-radius:999px;transition:opacity var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .smed-x.is-tile{position:absolute;top:5px;right:5px;width:20px;height:20px;background:color-mix(in srgb,var(--ink) 55.00000000000001%,transparent);color:var(--fg-inverse);opacity:0}
  .smed-tile:hover .smed-x.is-tile{opacity:1}
  .smed-x.is-tile:hover{background:var(--bad)}
  .smed-empty{margin:0;font-size:11.5px;line-height:1.5;color:var(--ink-4);text-wrap:pretty}

  /* Rail IA — pied de provenance discret (une seule signalisation « assistant »). */
  .vw-ai-foot{margin:2px 0 0;display:flex;gap:6px;align-items:flex-start;font-size:10px;line-height:1.4;color:var(--ink-4);padding-top:7px;border-top:1px solid var(--border)}
  .vw-ai-foot svg{flex:0 0 auto;color:var(--accent);margin-top:1px}

  /* Panneau assistant — 3ᵉ colonne dans le mode asst-open. Pas d'animation
     d'entrée @keyframes (se figerait à opacity:0 dans ce runtime). */
  .vw-dr-asst{display:flex;flex-direction:column;background:var(--surface);min-width:0;overflow:hidden}
  .vw-dr-asst-head{display:flex;align-items:center;gap:9px;padding:13px 15px;border-bottom:1px solid var(--border);flex:0 0 auto}
  .vw-dr-asst-av{width:25px;height:25px;border-radius:8px;background:var(--accent);color:var(--fg-inverse);display:grid;place-items:center;flex:0 0 auto}
  .vw-dr-asst-av svg{width:14px;height:14px}
  .vw-dr-asst-eyebrow{font-size:13.5px;font-weight:600;letter-spacing:-.01em;color:var(--ink);min-width:0}
  /* Chip de contexte (Option C · 3A) */
  .vw-dr-asst-ctx{display:flex;align-items:center;gap:9px;margin:11px 13px 2px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}
  
  .vw-dr-asst-ctx-tx{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
  .vw-dr-asst-ctx-tx .l{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);margin-bottom:1px}
  .vw-dr-asst-ctx-tx .v{font-size:12px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vw-dr-asst-ctx-det{flex:0 0 auto;height:25px;padding:0 9px;border-radius:6px;border:1px solid var(--border-soft);background:var(--surface);color:var(--ink-3);font:inherit;font-size:11px;display:inline-flex;align-items:center;gap:5px;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vw-dr-asst-ctx-det:hover{background:var(--bg-2);color:var(--ink)}
  .vw-dr-asst-ctx.detached{background:var(--bg-2);border-style:dashed}
  
  .vw-dr-asst-x{width:26px;height:26px;border-radius:6px;border:0;background:transparent;color:var(--ink-3);cursor:pointer;display:grid;place-items:center;flex:0 0 auto}
  .vw-dr-asst-x:hover{background:var(--bg-2);color:var(--ink)}
  .vw-dr-asst-flow{flex:1;min-height:0;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
  .vw-dr-asst-msg{font-size:13px;line-height:1.5;padding:9px 12px;border-radius:10px;max-width:90%}
  .vw-dr-asst-msg.bot{background:var(--bg-2);color:var(--ink)}
  .vw-dr-asst-msg.me{background:var(--accent);color:var(--fg-inverse);align-self:flex-end}
  .vw-dr-asst-msg p{margin:0}
  .vw-dr-asst-msg ul{margin:6px 0 0;padding:0 0 0 18px}
  .vw-dr-asst-bar{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--border);flex:0 0 auto;background:var(--surface)}
  .vw-dr-asst-bar input{flex:1;border:1px solid var(--border);border-radius:8px;padding:8px 10px;font:inherit;font-size:13px;background:var(--bg-2);color:var(--ink);outline:0}
  .vw-dr-asst-bar input:focus{background:var(--surface);border-color:var(--accent);box-shadow:var(--ring-focus)}
  .vw-dr-asst-send{width:30px;height:30px;border-radius:8px;border:0;background:var(--ink);color:var(--fg-inverse);cursor:pointer;display:grid;place-items:center;flex:0 0 auto}
  .vw-dr-asst-send:hover{filter:brightness(1.1)}

  .vw-dr-proof{display:flex;align-items:center;gap:8px}
  .vw-dr-unlink{border:0;background:transparent;font:inherit;font-size:11.5px;color:var(--ink-4);cursor:pointer;text-decoration:underline}
  .vw-dr-unlink:hover{color:var(--bad)}
  .vw-dr-prooflist{display:flex;flex-direction:column;gap:4px}
  .vw-dr-proofopt{display:flex;align-items:center;gap:8px;text-align:left;border:1px solid var(--border-soft);background:var(--bg-2);border-radius:8px;padding:7px 10px;font:inherit;font-size:12.5px;color:var(--ink-2);cursor:pointer}
  .vw-dr-proofopt svg{color:var(--ink-4);flex-shrink:0}
  .vw-dr-proofopt span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vw-dr-proofopt:hover{border-color:var(--border-strong);color:var(--accent)}
  /* Nouvel objectif / nouvelle tâche — pop-up (même gabarit que .vw-modal) */
  .vw-newtask .vw-dr-head{padding:9px 16px}
  .vw-newtask-h{margin:0;font-size:14.5px;font-weight:600;color:var(--ink);display:inline-flex;align-items:center;gap:8px}
  .vw-newtask-h svg{color:var(--accent)}
  .vw-newtask-body{display:flex;flex-direction:column;gap:20px;padding:28px 34px;max-width:720px;margin:0 auto;width:100%}
  .vw-newtask-input{width:100%;border:0;border-bottom:1px solid var(--border);background:transparent;padding:6px 0 10px;font:inherit;font-size:20px;font-weight:500;line-height:1.3;color:var(--ink);outline:none;transition:border-color var(--dur-fast) var(--ease-out)}
  .vw-newtask-input::placeholder{color:var(--ink-4);font-weight:400}
  .vw-newtask-input:focus{border-bottom-color:var(--ink)}
  .vw-newtask-desc{width:100%;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:10px 12px;font:inherit;font-size:13.5px;line-height:1.5;color:var(--ink);outline:none;resize:vertical;min-height:54px;margin-top:-8px}
  .vw-newtask-desc::placeholder{color:var(--ink-4)}
  .vw-newtask-desc:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
  .vw-newtask-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .vw-newtask-grid .vw-field{display:flex;flex-direction:column;gap:5px;min-width:0}
  .vw-newtask-grid .vw-field > span{font-family:var(--font-mono);font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-4)}
  .vw-newtask-grid .vw-field select,.vw-newtask-grid .vw-field input{height:36px;border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;padding:0 11px;font:inherit;font-size:13px;color:var(--ink)}
  .vw-newtask-grid .vw-field select:focus,.vw-newtask-grid .vw-field input:focus{outline:none;border-color:var(--ink)}
  .vw-newtask-tip{display:flex;align-items:flex-start;gap:7px;margin:0;padding:11px 13px;background:var(--bg-2);border:1px solid var(--border);border-radius:10px;font-size:12px;line-height:17px;color:var(--ink-3)}
  .vw-newtask-tip svg{flex-shrink:0;margin-top:2px;color:var(--accent)}
  .vw-newtask-kbd{font-family:var(--font-mono);font-size:11px;color:var(--ink-4)}
  /* À l'origine / commanditaire dans l'en-tête */
  .vw-origin-pick{position:relative;display:inline-flex}
  .vw-origin-hbtn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 9px 0 7px;border:1px solid var(--border-soft);background:var(--surface);border-radius:99px;font:inherit;font-size:12.5px;font-weight:500;color:var(--ink-2);cursor:pointer;max-width:210px;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .vw-origin-hbtn:hover{background:var(--bg-2);border-color:var(--border-hover)}
  .vw-origin-hbtn svg{color:var(--ink-4);flex:0 0 auto}
  .vw-origin-hbtn.self svg:first-child{color:var(--accent)}
  .vw-origin-hbtn.empty{color:var(--ink-3);border-style:dashed}
  .vw-origin-hbtn .vw-origin-av.xs{margin-left:-2px}
  .vw-origin-hnm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vw-origin-av.xs{width:20px;height:20px;font-size:9px;line-height:1;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--fg-inverse);font-weight:700;flex:0 0 auto}
  .vw-origin-menu{min-width:290px;max-width:340px;padding:6px}
  .vw-origin-menu .vw-pick-search{margin:4px 2px 6px}
  .vw-origin-menu .vw-pick-list{max-height:220px;overflow:auto}
  .vw-dr-tag.stack{font-family:inherit;font-size:12px;display:inline-flex;flex-direction:row;gap:6px}
  .vw-foot-carnetbtn{border:0;background:transparent;padding:0;cursor:pointer;max-width:210px}
  .vw-foot-carnetbtn .vdp-fc-nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vw-foot-carnetbtn:hover{color:var(--accent)}
  .vw-foot-carnetbtn:hover svg{color:var(--accent)}
  .vw-mv-over{color:var(--bad)}
  .vw-mv-over svg{color:var(--bad)}
  .vw-foot-opts{position:relative;display:inline-flex}
  .vw-foot-optbtn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border-soft);background:var(--surface);border-radius:99px;color:var(--ink-3);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vw-foot-optbtn:hover{background:var(--bg-2);border-color:var(--border-hover);color:var(--ink)}
  /* Candidature liée dans le pied (en bas à droite) */
  
  
  
  
  .vw-foot-candchip{border:0;background:transparent;padding:0;cursor:pointer;max-width:180px;display:inline-flex;align-items:center;gap:7px}
  .vw-foot-candchip .vdp-fc-nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vw-foot-candchip:hover .vdp-fc-nm{color:var(--accent)}
  .vw-foot-candx{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;color:var(--ink-3);cursor:pointer;flex:0 0 auto;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .vw-foot-candx:hover{color:var(--bad);border-color:var(--bad)}
  .vw-cand-menu{min-width:300px;max-height:330px;overflow:auto}
  .vw-cand-opt{align-items:center;gap:9px}
  .vw-cand-opt-body{display:flex;flex-direction:column;min-width:0;text-align:left}
  .vw-cand-opt-body .n{font-size:13px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vw-cand-opt-body .r{font-size:11.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vw-foot-menu{position:absolute;bottom:calc(100% + 6px);right:0;z-index:91;min-width:236px;background:var(--surface);border:1px solid var(--border-strong);border-radius:13px;box-shadow:var(--shadow-lg);padding:6px;animation:vwPop .16s var(--ease-out)}
  .vw-foot-opt{display:flex;align-items:center;gap:9px;width:100%;border:0;background:transparent;border-radius:8px;padding:8px 9px;font:inherit;font-size:13px;font-weight:500;color:var(--ink-2);cursor:pointer;text-align:left;transition:background var(--dur-fast) var(--ease-out)}
  .vw-foot-opt:hover{background:var(--bg-2)}
  .vw-foot-opt svg{color:var(--ink-4);flex:0 0 auto}
  .vw-foot-opt.danger{color:var(--bad)}
  .vw-foot-opt.danger svg{color:var(--bad)}
  .vw-foot-opt.danger:hover{background:color-mix(in srgb,var(--bad) 8%,transparent)}
  .vw-foot-menu-sep{height:1px;background:var(--border);margin:4px 2px}
  /* Journal de la tâche (commentaires horodatés) */
  .vw-log-composer{display:flex;flex-direction:column;gap:7px;align-items:flex-end}
  .vw-log-composer textarea{width:100%;box-sizing:border-box;min-height:42px;border:1px solid var(--border);border-radius:10px;padding:9px 11px;font:inherit;font-size:12.5px;line-height:18px;color:var(--ink);background:var(--bg-2);outline:none;resize:vertical}
  .vw-log-composer textarea:focus{border-color:var(--accent);background:var(--surface);box-shadow:var(--ring-focus)}
  .vw-log-composer button{border:0;background:var(--ink);color:var(--fg-inverse);border-radius:8px;padding:6px 14px;font:inherit;font-size:12px;font-weight:600;cursor:pointer}
  .vw-log-composer button:disabled{opacity:.4;cursor:not-allowed}
  .vw-log{display:flex;flex-direction:column;margin-top:2px}
  .vw-log-item{position:relative;display:flex;align-items:flex-start;gap:10px;padding:0 0 12px 0}
  .vw-log-item::before{content:"";position:absolute;left:4px;top:14px;bottom:-2px;width:1px;background:var(--border)}
  .vw-log-item:last-child{padding-bottom:0}
  .vw-log-item:last-child::before{display:none}
  .vw-log-dot{flex:0 0 auto;width:9px;height:9px;margin-top:4px;border-radius:50%;background:var(--surface);border:2px solid var(--ink-4);z-index:1}
  .vw-log-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
  .vw-log-when{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-4)}
  .vw-log-body p{margin:0;font-size:12.5px;line-height:18px;color:var(--ink-2);text-wrap:pretty}
  .vw-log-x{flex:0 0 auto;border:0;background:transparent;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;color:var(--ink-5);cursor:pointer;opacity:0;transition:opacity var(--dur-fast,.18s) var(--ease-out)}
  .vw-log-item:hover .vw-log-x{opacity:1}
  .vw-log-x:hover{color:var(--bad);background:var(--bg-2)}
  /* À l'origine (commanditaire) + candidature liée */
  .vw-origin-sec{position:relative}
  .vw-origin-card,.vw-cardlink-card{display:flex;align-items:center;gap:10px;border:1px solid var(--border);background:var(--bg-2);border-radius:10px;padding:8px 10px}
  .vw-origin-av{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:var(--fg-inverse);font-family:var(--font-mono);font-size:11px;font-weight:600}
  .vw-origin-av.sm{width:26px;height:26px;font-size:10px}
  .vw-origin-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}
  .vw-origin-body .n{font-size:13px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vw-origin-body .r{font-size:11.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vw-origin-acts{display:flex;align-items:center;gap:2px;flex-shrink:0}
  .vw-origin-acts button{border:0;background:transparent;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;color:var(--ink-4);cursor:pointer}
  .vw-origin-acts button:hover{background:var(--surface);color:var(--ink)}
  .vw-origin-self{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
  .vw-initiative-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-radius:99px;padding:4px 11px;font-size:12px;font-weight:600;color:var(--accent)}
  .vw-add-inline2{border:0;background:transparent;font:inherit;font-size:11.5px;color:var(--ink-4);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
  .vw-add-inline2:hover{color:var(--accent)}
  .vw-origin-empty{display:inline-flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;border:1px dashed var(--border-strong);background:transparent;border-radius:10px;padding:10px 12px;font:inherit;font-size:12.5px;color:var(--ink-3);cursor:pointer;text-align:left}
  .vw-origin-empty svg{color:var(--ink-4)}
  .vw-origin-empty:hover{border-color:var(--ink-4);color:var(--ink);background:var(--bg-2)}
  /* Popover de sélection (contact / candidature) */
  .vw-pick{margin-top:8px;border:1px solid var(--border-strong);background:var(--surface);border-radius:10px;box-shadow:0 14px 34px -12px color-mix(in srgb,var(--ink) 28.000000000000004%,transparent);overflow:hidden}
  .vw-pick-search{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--border)}
  .vw-pick-search svg{color:var(--ink-4);flex-shrink:0}
  .vw-pick-search input{flex:1 1 auto;min-width:0;border:0;outline:0;font:inherit;font-size:13px;color:var(--ink);background:transparent}
  .vw-pick-list{max-height:220px;overflow-y:auto;padding:4px;display:flex;flex-direction:column;gap:1px}
  .vw-pick-item{display:flex;align-items:center;gap:10px;text-align:left;border:0;background:transparent;border-radius:8px;padding:7px 8px;cursor:pointer}
  .vw-pick-item:hover{background:var(--bg-2)}
  .vw-pick-it-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}
  .vw-pick-it-body .n{font-size:12.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vw-pick-it-body .r{font-size:11px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vw-pick-list .vw-sb-empty{padding:10px 10px}
  .vw-pick-foot{display:flex;gap:4px;border-top:1px solid var(--border);padding:6px}
  .vw-pick-foot button{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:transparent;border-radius:8px;padding:7px 8px;font:inherit;font-size:11.5px;color:var(--ink-2);cursor:pointer}
  .vw-pick-foot button:hover{background:var(--bg-2);color:var(--ink)}
  .vw-pick-foot button svg{color:var(--ink-4)}
  .vw-pick-manual{padding:10px;display:flex;flex-direction:column;gap:7px}
  .vw-pick-manual input{border:1px solid var(--border);border-radius:8px;padding:7px 10px;font:inherit;font-size:12.5px;color:var(--ink);background:var(--bg-2);outline:none}
  .vw-pick-manual input:focus{border-color:var(--accent);background:var(--surface);box-shadow:var(--ring-focus)}
  .vw-pick-mrow{display:flex;gap:6px}
  .vw-pick-mrow button{border:1px solid var(--border-soft);background:var(--surface);border-radius:8px;padding:6px 13px;font:inherit;font-size:12px;color:var(--ink-2);cursor:pointer}
  .vw-pick-mrow button.ok{background:var(--ink);border-color:var(--ink);color:var(--fg-inverse);font-weight:600}
  .vw-pick-mrow button.ok:disabled{opacity:.45;cursor:not-allowed}
  /* En-tête : titre + bascule Gérer / Synthèse */
  .vw-head{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
  .vw-head-txt{flex:1 1 320px;min-width:0;display:flex;flex-direction:column}
  /* En-tête « Tâches & objectifs » sur une seule ligne : titre + contexte + bulle d'info, toggle à droite */
  .vw-head-1l{align-items:center;flex-wrap:nowrap;gap:12px}
  .vw-head-1l .vw-head-txt{flex:0 1 auto;flex-direction:row;align-items:center;gap:8px;min-width:0}
  .vw-head-1l .vw-head-txt h3{margin:0;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}
  .vw-head-ctx{font-size:13px;color:var(--ink-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .vw-head-info{position:relative;flex:0 0 auto;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;color:var(--ink-4);cursor:help;outline:none;transition:color var(--dur-fast,.18s) var(--ease-out),background var(--dur-fast,.18s) var(--ease-out)}
  .vw-head-info:hover,.vw-head-info:focus-visible{color:var(--accent);background:var(--bg-2)}
  .vw-info-bubble{position:absolute;top:calc(100% + 8px);left:0;z-index:30;width:320px;max-width:78vw;padding:10px 12px;
    background:var(--ink);color:var(--fg-inverse);border-radius:8px;font-size:12px;line-height:17px;font-weight:450;text-wrap:pretty;
    box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-3px);
    transition:opacity var(--dur-fast,.18s) var(--ease-out),transform var(--dur-fast,.18s) var(--ease-out),visibility var(--dur-fast,.18s)}
  .vw-info-bubble::before{content:"";position:absolute;bottom:100%;left:7px;border:5px solid transparent;border-bottom-color:var(--ink)}
  .vw-head-info:hover .vw-info-bubble,.vw-head-info:focus-visible .vw-info-bubble{opacity:1;visibility:visible;transform:translateY(0)}
  .vw-viewtoggle{flex:0 0 auto;display:inline-flex;align-items:center;gap:2px;border:1px solid var(--border);background:var(--bg-2);border-radius:8px;padding:3px;margin-top:2px}
  .vw-viewtoggle button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;border-radius:6px;padding:6px 12px;font:inherit;font-size:12.5px;font-weight:500;color:var(--ink-3);cursor:pointer;transition:all var(--dur-fast,.18s) var(--ease-out)}
  .vw-viewtoggle button svg{color:var(--ink-4)}
  .vw-viewtoggle button:hover{color:var(--ink)}
  .vw-viewtoggle button.on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--shadow-sm)}
  .vw-viewtoggle button.on svg{color:var(--accent)}
  /* En-tête Objectifs sur une seule ligne : titre + filtre-icône (gauche) · grouper/bascule/nouveau (droite) */
  .vw-head-r{display:flex;align-items:center;gap:10px;margin-left:auto;flex:0 0 auto}
  .vw-filterbtn-wrap{position:relative;flex:0 0 auto}
  .vw-filterbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--border-soft);background:var(--surface);border-radius:8px;color:var(--ink-3);cursor:pointer;transition:border-color var(--dur-fast,.18s) var(--ease-out),color var(--dur-fast,.18s) var(--ease-out)}
  .vw-filterbtn:hover{border-color:var(--border-hover);color:var(--ink)}
  .vw-filterbtn.on{border-color:var(--border-strong);color:var(--ink)}
  .vw-filterbtn-dot{position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--surface)}
  .vw-pop-scrim{position:fixed;inset:0;z-index:40}
  .vw-filter-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:41;min-width:184px;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow-md);padding:5px;display:flex;flex-direction:column;gap:1px}
  .vw-filter-pop button{display:flex;align-items:center;gap:8px;border:0;background:transparent;border-radius:8px;padding:7px 9px;font:inherit;font-size:12.5px;color:var(--ink-2);cursor:pointer;text-align:left;transition:background var(--dur-fast,.18s) var(--ease-out)}
  .vw-filter-pop button:hover{background:var(--bg-2)}
  .vw-filter-pop button.on{color:var(--ink);font-weight:600}
  .vw-filter-pop button .vw-fp-lbl{flex:1 1 auto}
  .vw-filter-pop button i{font-style:normal;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-4)}
  .vw-filter-pop button svg{color:var(--accent);flex:0 0 auto}
  /* ── Vue Synthèse ── */
  .vw-synth{display:flex;flex-direction:column;gap:14px}
  .vw-synth-lead{display:flex;align-items:flex-start;gap:10px;background:var(--bg-2);border:1px solid var(--border);border-radius:13px;padding:13px 15px}
  .vw-synth-lead .vc-summary-ico{flex-shrink:0;width:24px;height:24px;border-radius:8px;background:var(--surface);border:1px solid var(--border);display:grid;place-items:center;color:var(--accent);margin-top:1px}
  .vw-synth-lead p{margin:0;font-size:13px;line-height:19px;color:var(--ink-2);text-wrap:pretty}
  .vw-synth-lead strong{color:var(--ink);font-weight:600}
  /* Répartition de la contribution */
  .vw-mix{background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
  .vw-mix-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 10px}
  .vw-mix-head span:first-child{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);white-space:nowrap}
  .vw-mix-head .mono{font-family:var(--font-mono);font-size:12px;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
  .vw-mixbar{display:flex;gap:3px;height:12px;border-radius:99px;overflow:hidden;background:var(--bg-2)}
  .vw-mixseg.seg-initiative,.vw-mdot.seg-initiative{background:var(--ink)}
  .vw-mixseg.seg-participation,.vw-mdot.seg-participation{background:var(--ink-3)}
  .vw-mixseg.seg-idee,.vw-mdot.seg-idee{background:var(--ink-5)}
  .vw-mix-legend{display:flex;flex-wrap:wrap;gap:14px}
  .vw-mleg{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-3)}
  .vw-mdot{width:9px;height:9px;border-radius:3px;flex-shrink:0}
  .vw-mleg b{font-family:var(--font-mono);font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
  /* Blocs de contribution */
  .vw-synth-block{background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:15px 16px;display:flex;flex-direction:column;gap:11px}
  .vw-synth-block.strong{border:1px solid var(--border)}
  .vw-synth-block > header{display:flex;align-items:flex-start;gap:11px}
  .vw-sb-ico{flex-shrink:0;width:30px;height:30px;border-radius:8px;background:var(--bg-2);border:1px solid var(--border);display:grid;place-items:center;color:var(--ink-3)}
  .vw-synth-block.strong .vw-sb-ico{background:color-mix(in srgb,var(--accent) 10%,var(--surface));border-color:color-mix(in srgb,var(--accent) 30%,var(--border));color:var(--accent)}
  .vw-sb-titles{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
  .vw-sb-titles h4{margin:0;font-size:13.5px;font-weight:600;color:var(--ink);display:flex;align-items:baseline;gap:8px}
  .vw-sb-titles h4 i{font-style:normal;font-family:var(--font-mono);font-size:11px;color:var(--ink-4);background:var(--bg-2);border:1px solid var(--border);border-radius:99px;padding:1px 8px}
  .vw-synth-block.strong .vw-sb-titles h4 i{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}
  .vw-sb-titles p{margin:0;font-size:12px;line-height:17px;color:var(--ink-3);text-wrap:pretty}
  .vw-sb-empty{margin:0;font-size:12px;color:var(--ink-4)}
  .vw-sb-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
  .vw-sb-list li{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px;font-size:13px;line-height:19px;color:var(--ink-2)}
  .vw-sb-list li > svg{flex-shrink:0;margin-top:2px;color:var(--good)}
  .vw-sb-list li.done .vw-sb-txt{color:var(--ink-3)}
  .vw-sb-list li.doing > svg{color:var(--ink-4)}
  .vw-sb-txt{flex:1 1 auto;min-width:0}
  .vw-sb-prog .vjob-pbar{margin:0 0 2px}

  /* ── Onglet « Compétences pro » ── */
  .vsk{padding:0 22px 22px;display:flex;flex-direction:column;gap:14px}
  .vsk-head h3{margin:0 0 3px;font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
  .vsk-head p{margin:0;font-size:12.5px;color:var(--ink-3)}
  /* Une seule colonne : les 3 familles prennent toute la largeur et la ligne d'assurance passe
     DESSOUS, comme la footerline de la maquette. En 2 colonnes, les compétences se tassaient sur
     ~60 % de la largeur et le pied flottait à leur droite, à mi-hauteur — il se lisait comme un
     encart voisin, pas comme la garantie de l'écran. */
  .vsk-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
  .vsk-fams{display:flex;flex-direction:column;gap:14px}
  .vsk-fam{background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:14px 16px}
  .vsk-fam h4{margin:0 0 10px;font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-family:var(--font-mono)}
  
  
  
  
  
  .vsk-note{margin:0;font-size:11.5px;color:var(--ink-4)}
  .vsk-cv{display:flex;flex-direction:column;gap:8px}
  .vsk-cv-bar{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .vsk-cv-bar span{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-family:var(--font-mono)}
  .vsk-cv-bar button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-soft);background:var(--surface);border-radius:8px;padding:5px 11px;font:inherit;font-size:12px;color:var(--ink-2);cursor:pointer}
  .vsk-cv-bar button:hover{background:var(--bg-2)}
  .vsk-paper{background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:20px 22px;display:flex;flex-direction:column;gap:9px}
  .vsk-paper-h{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);border-bottom:1.5px solid var(--ink);padding-bottom:5px;margin-bottom:2px}
  
  
  
  .vsk-cv-note{margin:0;font-size:11.5px;color:var(--ink-4);text-wrap:pretty}
  .vc-bucket-head{
    display:flex;align-items:center;justify-content:space-between;gap:8px;
    margin:0 0 8px;padding:0 6px;font-size:11px;color:var(--ink-3);text-transform:uppercase;
    letter-spacing:.08em;font-weight:500;font-family:var(--font-mono);
  }
  .vc-bucket-head .cnt{
    background:var(--bg-2);border:1px solid var(--border);padding:1px 6px;border-radius:99px;
    font-family:var(--font-mono);font-size:9.5px;color:var(--ink-3);
  }
  .vc-list{display:flex;flex-direction:column;gap:8px}

  /* Barre de la vue carnet : compteur + bascule liste/tuiles — collante sous les tabs */
  .vc-carnet-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;padding:14px 4px 10px;position:sticky;top:37px;z-index:7;background:var(--bg)}
  .vc-carnet-count{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);letter-spacing:.02em;flex:1 1 auto;text-align:center}
  .vc-carnet-sp{flex:1 1 auto}
  .vc-carnet-new{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;border:0;background:var(--accent);color:var(--fg-inverse);border-radius:8px;padding:7px 13px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm);transition:filter var(--dur-fast) var(--ease-out)}
  .vc-carnet-new:hover{filter:brightness(1.06)}
  .vc-displaybar-actions{flex:0 0 auto;display:flex;align-items:center;gap:10px}
  .vc-carnet-filters{display:flex;align-items:center;gap:6px}
  
  
  
  .vc-display-wrap{position:relative}
  .vc-display-btn{width:32px;height:30px;border:1px solid transparent;background:transparent;border-radius:8px;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vc-display-btn:hover{background:var(--bg-subtle);color:var(--ink)}
  .vc-display-btn.on{background:var(--bg-subtle);border-color:var(--border-strong);color:var(--accent)}
  .vc-display-scrim{position:fixed;inset:0;z-index:40}
  .vc-display-menu{position:absolute;top:36px;right:0;z-index:41;min-width:212px;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 14px 34px -10px color-mix(in srgb,var(--ink) 34%,transparent);padding:6px;display:flex;flex-direction:column;gap:1px}
  .vc-display-menu-head{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);padding:6px 8px 5px}
  .vc-display-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;padding:8px 9px;border:0;background:transparent;border-radius:8px;cursor:pointer;font:inherit;font-size:13px;color:var(--ink-2)}
  .vc-display-opt:hover{background:var(--bg-2)}
  .vc-display-opt-l{display:inline-flex;align-items:center;gap:9px}
  .vc-display-opt-l svg{color:var(--ink-3)}
  .vc-display-check{flex:0 0 auto;width:18px;height:18px;border-radius:6px;border:1.5px solid var(--border-strong);display:grid;place-items:center;color:var(--fg-inverse)}
  .vc-display-check.on{background:var(--accent);border-color:var(--accent)}
  
  .vc-composer-mode-settings{position:relative;margin:7px -2px -2px;padding:9px 2px 2px;
    border-top:1px solid var(--border-strong);
    background:linear-gradient(180deg,color-mix(in srgb,var(--bg-muted) 62%,transparent),transparent 72%);
    box-shadow:0 -8px 16px -18px color-mix(in srgb,var(--ink) 70%,transparent)}
  .vc-composer-mode-settings::before{content:"";position:absolute;left:8px;right:8px;top:-1px;height:1px;
    background:linear-gradient(90deg,transparent,var(--ink-4),transparent);opacity:.45}
  .vc-composer-mode-settings .vc-display-menu-head{padding-top:3px}
  .vc-display-radio{flex:0 0 auto;width:18px;height:18px;border-radius:99px;border:1.5px solid var(--border-strong);display:grid;place-items:center}
  .vc-display-radio.on{border-color:var(--accent)}
  .vc-display-radio.on > span{width:8px;height:8px;border-radius:99px;background:var(--accent)}
  /* Pastille « filtre actif » sur le bouton + menu de filtres (chips Type/Période/Tag) */
  .vc-display-dot{position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--surface)}
  .vc-display-wrap .vc-display-btn{position:relative}
  .vc-filter-menu{min-width:268px;max-width:300px;padding:6px 8px 9px}
  .vc-filter-menu .vc-display-menu-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
  .vc-filter-reset{border:0;background:transparent;color:var(--accent);font-family:var(--font-sans);font-size:10.5px;font-weight:600;letter-spacing:0;text-transform:none;cursor:pointer;padding:2px 4px;border-radius:6px}
  .vc-filter-reset:hover{background:var(--accent-50)}
  .vc-filter-group{padding:6px 1px 2px}
  .vc-filter-group+.vc-filter-group{border-top:1px solid var(--border);margin-top:4px;padding-top:8px}
  .vc-filter-glabel{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);margin-bottom:7px}
  .vc-filter-glabel svg{color:var(--ink-4)}
  .vc-filter-chips{display:flex;flex-wrap:wrap;gap:5px}
  .vc-filter-chip{border:1px solid var(--border-soft);background:var(--bg-2);color:var(--ink-2);border-radius:8px;padding:4px 9px;font-size:11px;font-weight:500;cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}
  .vc-filter-chip:hover{background:var(--accent-soft);border-color:var(--accent-soft-2);color:var(--accent-ink)}
  .vc-filter-chip.on{background:var(--accent);border-color:var(--accent);color:var(--fg-inverse)}
  .vc-filter-empty{font-size:12px;color:var(--ink-4);padding:6px 2px}
  
  
  
  
  

  /* Vue tuiles — façon gestionnaire de fichiers (dossiers) */
  .vc-list.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
  .vc-list.tiles .vcj-tile{display:flex;min-width:0;flex-direction:column}
  .vc-list.tiles .vcj-tile .vcj-group-h{margin:0 2px 8px}
  
  
  
  .vc-list.tiles .vc-title{font-size:14px;line-height:1.3;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding-right:16px}
  .vc-list.tiles .vc-details{display:block;font-size:12.5px;line-height:1.5;color:var(--ink-3);white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .vc-list.tiles .vc-stars-head{display:none}
  .vc-list.tiles .vc-meta{margin-top:auto;gap:6px;flex-wrap:wrap}
  .vc-list.tiles .vc-usedin{white-space:nowrap}
  

  /* Tuile d'ajout — façon gestionnaire de fichiers (nouveau document dans la section courante) */
  .vc-addtile{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
    min-height:120px;border:1.5px dashed var(--border-strong);border-radius:13px;
    background:transparent;color:var(--ink-3);cursor:pointer;font:inherit;
    transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);
  }
  .vc-addtile:hover{border-color:var(--accent);background:var(--accent-50);color:var(--accent)}
  .vc-addtile-plus{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--bg-2);color:var(--ink-3);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vc-addtile:hover .vc-addtile-plus{background:var(--accent);color:var(--fg-inverse)}
  .vc-addtile-lbl{font-size:13px;font-weight:600}

  /* ===== Gestionnaire de fichiers (carnets) ===== */
  .fm{display:flex;flex-direction:column;gap:10px;padding:10px 22px 20px}
  .fm-flat{gap:18px}
  .fm-title{display:flex;align-items:center;gap:7px;margin:0;font-size:15px;line-height:1.25;color:var(--ink)}
  .fm-title svg{color:var(--ink-3)}
  .fm-subtitle{margin:3px 0 0;font-size:12px;line-height:1.45;color:var(--ink-3)}
  .fm-error{display:flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid var(--danger-200);border-radius:8px;background:var(--danger-50);color:var(--danger-600);font-size:12px}
  .fm-type-group{display:flex;flex-direction:column;gap:9px}
  .fm-type-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:7px;border-bottom:1px solid var(--border-default);color:var(--ink-2);font-size:12.5px;font-weight:650}
  .fm-type-head span{display:inline-flex;align-items:center;gap:7px}
  .fm-type-head svg{color:var(--ink-4)}
  .fm-type-head b{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--ink-4)}
  
  
  .fm-folder.auto .fm-folder-ico{background:var(--bg-2);color:var(--ink-3)}
  .fm-file-thumb{height:74px;margin:-2px -2px 2px;border-radius:8px;overflow:hidden;background:var(--bg-2);border:1px solid var(--border)}
  .fm-file-thumb img{width:100%;height:100%;object-fit:cover;display:block}
  .fm-file-thumb-pdf{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--bad);background:linear-gradient(180deg,color-mix(in srgb,var(--bad) 7%,var(--surface)),var(--surface))}
  .fm-file-thumb-pdf span{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--ink-4)}
  .fm-file-ico.k-img{background:color-mix(in srgb,var(--accent) 12%,var(--bg-2));color:var(--accent)}
  .fm-file-ico.k-audio{background:var(--tag-violet);color:var(--tag-violet-ink)}
  .fm-file-ico.k-pdf{background:color-mix(in srgb,var(--bad) 12%,var(--bg-2));color:var(--bad)}
  .fm-file-ico.k-generated{background:var(--accent-soft);color:var(--accent)}
  .fm-file-ico.k-link{background:color-mix(in srgb,var(--good) 12%,var(--bg-2));color:var(--good)}
  .fm-file-ico.k-markdown{background:var(--bg-2);color:var(--ink-3)}
  .fm-file-src{display:inline-flex;align-items:center;gap:4px;max-width:100%;font-size:10.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .fm-file-src svg{flex-shrink:0;color:var(--ink-4)}
  .fm-file-foot{flex-wrap:wrap;row-gap:4px}
  .fm-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
  .fm-crumbs{display:flex;align-items:center;gap:4px;flex-wrap:wrap;min-width:0}
  .fm-crumb{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:0;background:transparent;border-radius:8px;cursor:pointer;font:inherit;font-size:13px;font-weight:600;color:var(--ink-2)}
  .fm-crumb:hover{background:var(--bg-2);color:var(--ink)}
  .fm-crumb svg{color:var(--ink-3)}
  .fm-sep{color:var(--ink-4);display:inline-flex}
  .fm-actions{display:flex;gap:6px;flex:0 0 auto}
  .fm-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--border-soft);background:var(--surface);border-radius:6px;cursor:pointer;font:inherit;font-size:12px;font-weight:500;color:var(--ink);white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .fm-btn:hover{background:var(--bg-2);border-color:var(--border-hover);color:var(--ink)}
  .fm-btn.primary{background:var(--action-bg);border-color:var(--action-border);color:var(--action-ink)}
  .fm-btn.primary:hover{background:var(--action-bg-hover)}

  .fm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;align-content:start}

  /* Tuile dossier */
  .fm-folder{position:relative;display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--border-soft);border-radius:13px;background:var(--surface);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .fm-folder:hover{transform:translateY(-1px);box-shadow:0 6px 18px -8px color-mix(in srgb,var(--ink) 22%,transparent);border-color:var(--border-strong)}
  .fm-folder.drop{border-color:var(--accent);background:var(--accent-50);border-style:dashed}
  .fm-folder.dragging{opacity:.45}
  .fm-folder-ico{flex:0 0 auto;width:42px;height:42px;border-radius:10px;display:grid;place-items:center;background:var(--accent-50);color:var(--accent)}
  .fm-folder-body{min-width:0;flex:1}
  .fm-folder-name{font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .fm-folder-meta{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);margin-top:2px}

  /* Tuile fichier (note) */
  .fm-file{position:relative;display:flex;flex-direction:column;gap:7px;min-height:128px;padding:13px 14px;border:1px solid var(--border-soft);border-radius:13px;background:var(--surface);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .fm-file:hover{transform:translateY(-1px);box-shadow:0 8px 20px -8px color-mix(in srgb,var(--ink) 22%,transparent);border-color:var(--border-strong)}
  .fm-file.dragging{opacity:.45}
  .fm-generated-thumb{height:84px;margin:-2px -2px 2px;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--bg-subtle)}
  .studio-doc-thumb-preview{width:70px;height:90px;position:relative;overflow:hidden;background:var(--surface);color:var(--ink);pointer-events:none}
  .fm-generated-thumb .studio-doc-thumb-preview{width:100%;height:100%}
  .document-miniature-placeholder{display:grid;place-items:center;background:var(--surface);color:var(--ink-4)}
  .fm-file-head{display:flex;align-items:center;justify-content:space-between}
  .fm-file-ico{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--bg-2);color:var(--ink-3)}
  .fm-file-name{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .fm-file-sub{font-size:12px;color:var(--ink-3);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .fm-file-foot{margin-top:auto;display:flex;align-items:center;gap:8px}
  .fm-file-when{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;color:var(--ink-3);font-family:var(--font-mono)}

  .fm-more{flex:0 0 auto;width:26px;height:26px;border:1px solid transparent;background:transparent;border-radius:6px;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .fm-folder:hover .fm-more,.fm-file:hover .fm-more{opacity:1}
  .fm-more:hover{background:var(--bg-2);border-color:var(--border-soft);color:var(--ink)}
  .fm-more:focus-visible{opacity:1;outline:0;box-shadow:var(--ring-focus)}
  .fm-folder .fm-more{position:absolute;top:8px;right:8px}

  /* Tuile d'ajout */
  .fm-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:128px;padding:14px;text-align:center;border:1.5px dashed var(--border-strong);border-radius:13px;background:transparent;color:var(--ink-3);cursor:pointer;font:inherit;transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .fm-add:hover{border-color:var(--accent);background:var(--accent-50);color:var(--accent)}
  .fm-add-plus{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--bg-2);color:var(--ink-3);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .fm-add:hover .fm-add-plus{background:var(--accent);color:var(--fg-inverse)}
  .fm-add-lbl{font-size:13px;font-weight:600;line-height:1.2}
  .fm-add-sub{font-size:11px;color:var(--ink-4);line-height:1.2;margin-top:1px}
  .fm-add:hover .fm-add-sub{color:var(--accent)}

  .fm-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:36px 16px;color:var(--ink-3);text-align:center}
  .fm-empty svg{color:var(--ink-4)}
  .fm-empty strong{font-size:13px;color:var(--ink-2)}
  .fm-empty span{max-width:380px;font-size:12px;line-height:1.5}
  .fm-inline-menu{position:absolute;z-index:2;top:42px;right:10px;padding:4px;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;box-shadow:var(--shadow-md)}
  .fm-inline-menu button{display:flex;align-items:center;gap:7px;border:0;border-radius:6px;background:transparent;color:var(--danger-600);font:inherit;font-size:12px;padding:6px 8px;cursor:pointer}
  .fm-inline-menu button:hover{background:var(--danger-50)}

  /* Consultation rapide de document : gabarit B existant, lecture avant édition. */
  .fm-preview-scrim{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:var(--space-4,16px);background:var(--scrim)}
  .fm-document-preview.cdet-modal2{display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:none;width:min(1100px,92vw);height:min(760px,88vh);background:var(--bg-surface)}
  .fm-document-preview-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid var(--border-default)}
  .fm-document-preview-eyebrow{display:block;font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4)}
  .fm-document-preview-head h2{margin:3px 0 0;font-size:16px;line-height:1.2;color:var(--ink)}
  .fm-document-preview-meta{margin:4px 0 0;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3)}
  .fm-document-preview-close{display:grid;opacity:1}
  .fm-document-preview-body{position:relative;display:grid;min-height:0;overflow:hidden;padding:0;background:var(--bg-2)}
  .fm-document-pdf-viewer{width:100%;height:100%;min-height:0;overflow:auto;overscroll-behavior:contain;background:var(--bg-2)}
  .fm-document-pdf-viewer .react-pdf__Document{min-height:100%}
  .fm-document-pdf-pages{display:flex;flex-direction:column;align-items:center;gap:var(--space-5,24px);padding:var(--space-5,24px)}
  .fm-document-pdf-pages .react-pdf__Page{overflow:hidden;background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}
  .fm-document-pdf-pages .react-pdf__Page canvas{display:block;max-width:100%;height:auto!important}
  .fm-document-pdf-pages .react-pdf__Page__textContent{user-select:text}
  .fm-document-pdf-page-loading{width:min(794px,calc(100vw - 96px));aspect-ratio:210/297;background:var(--surface)}
  .fm-document-preview-loading{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:14px;padding:24px;background:var(--bg-2);color:var(--ink-3)}
  .fm-document-preview-loading-page{display:flex;flex-direction:column;gap:12px;width:min(248px,36%);aspect-ratio:210/297;padding:28px 24px;background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}
  .fm-document-preview-loading-page span{height:10px;border-radius:var(--radius-xs);background:var(--bg-2)}
  .fm-document-preview-loading-page span:nth-child(2){width:82%}
  .fm-document-preview-loading-page span:nth-child(3){width:64%}
  .fm-document-preview-loading-page span:nth-child(4){width:74%}
  .fm-document-preview-loading p{margin:0;font-size:12.5px}
  .fm-document-preview-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px;color:var(--ink-3);text-align:center;background:var(--bg-2)}
  .fm-document-preview-error p{max-width:420px;margin:0;font-size:13px;line-height:1.5}
  .fm-document-preview-html{min-height:0;overflow:auto;padding:28px 24px;background:radial-gradient(115% 85% at 50% -8%,#565B61 0%,#2B2E33 82%);box-shadow:inset 0 18px 44px rgba(0,0,0,.32),inset 0 -14px 38px rgba(0,0,0,.22)}
  .doc-html-preview-stage{width:794px;margin:0 auto 28px;background:transparent}
  .doc-html-preview-stage .cve-output-surface>.cve-cvwrap,
  .doc-html-preview-stage .cve-output-surface>.cve-cvscale{width:794px;overflow:visible}
  .doc-html-preview-stage .cve-cv{margin:0;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-lg)}
  .doc-html-preview-stage .cve-cv.cve-output{background:#fff}
  .doc-html-preview-stage .lte-letter,
  .doc-html-preview-stage .lte-emailwrap,
  .doc-html-preview-stage .lte-msgwrap{margin:0 auto;border:0;border-radius:0;box-shadow:none;background:#fff}
  .doc-html-preview-stage--letter .cve-editwrap{width:794px;margin:0 auto;background:transparent}
  .doc-html-preview-stage--letter .lte-letter{width:794px;max-width:none;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-lg);-webkit-box-decoration-break:clone;box-decoration-break:clone}
  /* Borne de sortie d'édition : pop-up d'actualisation pendant qu'on fige le document. */
  .doc-freeze-overlay{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:rgba(16,24,40,.40);backdrop-filter:blur(3px)}
  .doc-freeze-card{display:flex;align-items:center;gap:14px;background:var(--surface,#fff);border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow-lg);padding:18px 22px;max-width:380px}
  .doc-freeze-spin{width:22px;height:22px;flex:0 0 auto;border-radius:50%;border:2.5px solid var(--border);border-top-color:var(--accent,#3b66b0);animation:doc-freeze-rot .8s linear infinite}
  .doc-freeze-txt{display:flex;flex-direction:column;gap:2px}
  .doc-freeze-txt strong{font-size:14px;color:var(--ink,#15171b)}
  .doc-freeze-txt span{font-size:12px;color:var(--ink-3,#6b7079)}
  @keyframes doc-freeze-rot{to{transform:rotate(360deg)}}
  .fm-document-preview-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-top:1px solid var(--border-default)}
  .fm-document-preview-actions{display:flex;align-items:center;gap:8px}
  .fm-file-preview .fm-document-preview-body{background:var(--bg-2)}
  .fm-file-preview-canvas{display:grid;place-items:center;width:100%;height:100%;min-height:0;overflow:auto;padding:24px;background:var(--bg-2)}
  .fm-file-preview-canvas img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;border-radius:10px;background:var(--surface);box-shadow:var(--shadow-lg)}
  .fm-file-preview-canvas--pdf{padding:0;background:var(--surface)}
  .fm-file-preview-canvas object{display:block;width:100%;height:100%;border:0;background:var(--surface)}
  .fm-file-preview-foot{align-items:center;justify-content:space-between;overflow:visible;min-height:58px}
  .fm-file-preview-meta{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;min-width:0;text-align:left}
  .fm-file-preview-date{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:10.5px;line-height:1.4;color:var(--ink-3)}
  .fm-file-preview-date svg{color:var(--ink-4)}
  .fm-file-preview-title-edit{display:flex;align-items:center;gap:8px;margin-top:3px;max-width:min(620px,64vw)}
  .fm-file-preview-title-edit input{width:min(520px,54vw);height:34px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:15px;font-weight:650;line-height:1.2;padding:0 10px;outline:none;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
  .fm-file-preview-title-edit input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-50)}
  .fm-file-preview-options{position:relative;display:inline-flex}
  .fm-file-preview-foot .fm-btn:disabled{opacity:.48;cursor:not-allowed;background:var(--bg-2);color:var(--ink-4);border-color:var(--border)}
  .fm-file-preview-foot .fm-btn:disabled svg{color:var(--ink-4)}
  .fm-file-preview-options-btn{width:36px;justify-content:center;padding-inline:0}
  .fm-file-preview-options-menu{position:absolute;right:0;bottom:calc(100% + 8px);z-index:3;min-width:224px;padding:6px;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 18px 38px -14px color-mix(in srgb,var(--ink) 35%,transparent);display:flex;flex-direction:column;gap:2px}
  .fm-file-preview-options-menu button{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:var(--ink-2);font:inherit;font-size:13px;text-align:left;cursor:pointer}
  .fm-file-preview-options-menu button:hover{background:var(--bg-2);color:var(--ink)}
  .fm-file-preview-options-menu button svg{color:var(--ink-3)}
  .fm-file-preview-options-menu button.danger{margin-top:2px;color:var(--danger-600);border:1px solid var(--danger-200);background:var(--danger-50)}
  .fm-file-preview-options-menu button.danger svg{color:var(--danger-600)}
  .fm-file-preview-options-menu button.danger:hover{background:var(--danger-100,#FEE4E2)}
  .fm-file-preview-menu-sep{display:block;height:1px;margin:5px 4px;background:var(--border)}
  .sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
  .fm-btn[href]{text-decoration:none}
  @media (max-width: 760px){
    .fm-file-preview-foot{align-items:stretch;flex-direction:column;justify-content:flex-start;min-height:0}
    .fm-file-preview-meta{min-width:0;width:100%}
    .fm-file-preview-title-edit{align-items:stretch;flex-direction:column;max-width:none}
    .fm-file-preview-title-edit input{width:100%}
    .fm-document-preview-actions{justify-content:flex-end;flex-wrap:wrap}
    .fm-file-preview-options-menu{right:0}
  }

  /* Menu contextuel */
  
  
  
  
  
  
  
  
  

  /* Modale Déplacer */
  
  .fm-move{width:min(360px,90vw);max-height:70vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow-lg);padding:8px}
  .fm-move-head{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);padding:8px 10px 6px}
  .fm-move-list{display:flex;flex-direction:column;gap:1px}
  .fm-move-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:8px 10px;border:0;background:transparent;border-radius:8px;cursor:pointer;font:inherit;font-size:13px;color:var(--ink-2)}
  .fm-move-item:hover{background:var(--bg-2);color:var(--ink)}
  .fm-move-item svg{color:var(--ink-3)}

  /* ===== Collections intelligentes ===== */
  .sc{display:flex;flex-direction:column;gap:16px;padding:16px 22px 24px}
  .sc-compose{display:flex;align-items:center;gap:14px;text-align:left;width:100%;padding:16px 18px;border:0;border-radius:14px;cursor:pointer;color:var(--sidebar-fg-strong);background:linear-gradient(120deg,var(--accent-700,#2A4E86),var(--accent-500) 70%);box-shadow:var(--shadow-md);transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
  .sc-compose:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg)}
  
  .sc-compose-txt{flex:1;display:flex;flex-direction:column;gap:3px}
  .sc-compose-txt strong{font-size:15px;font-weight:600}
  .sc-compose-txt span{font-size:12.5px;color:color-mix(in srgb,var(--sidebar-fg-strong) 82%,transparent)}
  .sc-compose-go{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--sidebar-fg-strong) 16%,transparent)}

  .sc-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .sc-eyebrow{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}
  .sc-disclaimer{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--ink-3)}
  .sc-disclaimer svg{color:var(--accent)}

  .sc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  
  
  

  /* ===== Composer pour un poste (overlay) ===== */
  
  .cvc{width:min(900px,94vw);max-height:88vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-xl,var(--shadow-lg));overflow:hidden;animation:slideUp var(--dur-base) var(--ease-out)}
  .cvc-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border);font-size:15px;font-weight:600;color:var(--ink);white-space:nowrap}
  .cvc-head svg{color:var(--accent);vertical-align:-3px;margin-right:7px}
  .cvc-head button{border:0;background:transparent;color:var(--ink-3);cursor:pointer;width:30px;height:30px;border-radius:8px;display:grid;place-items:center}
  .cvc-head button:hover{background:var(--bg-2);color:var(--ink)}
  .cvc-body{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.2fr);min-height:0;overflow:hidden}
  
  .cvc-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);margin-top:4px}
  .cvc-presets{display:flex;flex-wrap:wrap;gap:6px}
  .cvc-preset{font-size:12px;font-weight:500;color:var(--ink-2);background:var(--surface);border:1px solid var(--border-strong);border-radius:99px;padding:6px 11px;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .cvc-preset:hover{background:var(--bg-2)}
  .cvc-preset.on{background:var(--sidebar-bg);border-color:var(--sidebar-bg);color:var(--fg-inverse)}
  .cvc-ta{min-height:120px;resize:vertical;font:inherit;font-size:13px;line-height:1.55;color:var(--ink);background:var(--surface);border:1px solid var(--border-input);border-radius:10px;padding:11px 12px;outline:none}
  .cvc-ta:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .cvc-run{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;margin-top:6px;padding:10px 14px;border:0;border-radius:10px;background:var(--accent-500);color:var(--fg-inverse);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}
  .cvc-run:hover{background:var(--accent-600)}
  .cvc-run:disabled{opacity:.5;cursor:not-allowed}
  .cvc-out{padding:16px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;background:var(--bg-app)}
  
  
  
  .cvc-out-head{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}
  .cvc-item{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 13px;display:flex;flex-direction:column;gap:8px}
  .cvc-item-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .cvc-item-title{border:0;background:transparent;padding:0;text-align:left;font:inherit;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer}
  .cvc-item-title:hover{color:var(--accent);text-decoration:underline}
  .cvc-match{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3)}
  .cvc-match-bar{width:42px;height:5px;border-radius:99px;background:var(--bg-2);overflow:hidden}
  .cvc-match-bar i{display:block;height:100%;background:var(--accent);border-radius:99px}
  .cvc-bullet{font-size:13px;line-height:1.5;color:var(--ink-2)}

  /* Entry card */
  
  
  
  
  .vc-index{
    font-family:var(--font-mono);font-size:11px;color:var(--ink-4);font-weight:500;
    align-self:flex-start;margin-top:3px;letter-spacing:.02em;
  }
  .vc-main{cursor:pointer;display:flex;flex-direction:column;gap:5px;min-width:0}
  .vc-headline{display:flex;align-items:center;gap:8px}
  .vc-type{font-size:15px;line-height:1}
  .vc-title{font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.01em;line-height:1.35}
  
  .vc-pin{display:inline-flex;color:var(--accent)}
  .vc-details{font-size:13px;color:var(--ink-3);line-height:1.55}
  .vc-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:3px}
  .vc-when{
    display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--ink-3);
    border:1px solid var(--border);background:var(--surface);padding:1px 8px;border-radius:99px;font-weight:500;
  }
  
  
  
  .vc-expand{padding-top:10px;margin-top:6px;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:8px}
  
  
  .vc-result{
    display:flex;align-items:flex-start;gap:7px;padding:7px 11px;
    background:var(--good-soft);border-radius:8px;font-size:12px;color:var(--good-ink);
  }
  .vc-actions{display:flex;gap:6px;flex-wrap:wrap}

  /* Compact mode */
  
  
  

  /* Empty */
  .vc-empty{
    text-align:center;padding:48px 16px;color:var(--ink-3);display:flex;flex-direction:column;gap:6px;align-items:center;
  }
  .vc-empty .ic{font-size:32px;margin-bottom:6px}
  .vc-empty strong{font-size:14px;color:var(--ink-2)}
  .vc-empty p{font-size:13px}

  @media (max-width:900px){
    .vc-shell{grid-template-columns:1fr}
    .vc-side{border-right:0;border-bottom:1px solid var(--border);max-height:200px}
    .vc-banner-row{flex-direction:column;align-items:flex-start}
    
  }

  /* ============ Vault — synthèse croquis 08 (capture structurée, FAB, coach) ============ */
  /* Étoiles de fierté */
  .vc-stars{display:inline-flex;align-items:center;gap:2px;line-height:0}
  .vc-stars .vc-star{display:inline-grid;place-items:center;color:var(--ink-5)}
  .vc-stars .vc-star svg{fill:none}
  .vc-stars .vc-star.on{color:var(--accent)}
  .vc-stars .vc-star.on svg{fill:var(--accent)}
  .vc-stars.interactive .vc-star{border:0;background:transparent;padding:1px;cursor:pointer;border-radius:3px;transition:transform var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .vc-stars.interactive .vc-star:hover{transform:scale(1.18)}
  .vc-stars.interactive .vc-star:focus-visible{outline:0;box-shadow:var(--ring-focus)}

  /* Composer structuré — N1 questions */
  .vc-structured .vc-autosave{display:inline-flex;align-items:center;gap:4px;color:var(--good);text-transform:none;letter-spacing:0}
  .vc-q{display:flex;flex-direction:column;gap:6px}
  .vc-q-label{font-size:15px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
  
  
  
  
  
  
  .vc-mini-label{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
  
  
  
  
  
  

  /* Tags suggérés validables (recognition over recall) */
  
  
  
  

  /* Niveau 2 — détail */
  
  
  
  
  @keyframes vcSlideDown{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
  .vc-detail-field{display:flex;flex-direction:column;gap:5px}
  .vc-detail-label{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--ink-2);white-space:nowrap}
  .vc-detail-input{border:1px solid var(--border);background:var(--surface);border-radius:8px;font:inherit;font-size:13px;color:var(--ink);padding:8px 10px;outline:none;resize:vertical;line-height:1.5}
  .vc-detail-input:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .vc-detail-input::placeholder{color:var(--ink-4);font-style:italic}
  .vc-detail-grid{display:flex;gap:16px;flex-wrap:wrap}
  .vc-detail-grid .vc-detail-field{flex:1;min-width:200px}
  .vc-detail-grid .vc-detail-input.one{min-width:0}
  .vc-pride-inline{display:flex;align-items:center;height:34px}

  /* Carte enrichie */
  .vc-stars-head{margin-left:auto;flex:0 0 auto}
  .vc-usedin{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:500;color:var(--accent-ink);background:var(--accent-soft);border:1px solid var(--accent-soft-2);padding:1px 8px;border-radius:99px}
  .vc-toval-flag{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--accent);background:var(--surface);border:1px dashed var(--accent);padding:1px 8px;border-radius:99px}
  
  .vc-validate{display:flex;flex-direction:column;gap:8px;padding:10px 11px;background:var(--accent-soft);border:1px solid var(--accent-soft-2);border-radius:8px}
  .vc-validate-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--accent-ink)}
  .vc-validate-head strong{font-weight:600}
  .vc-validate-head span{display:inline-flex;align-items:center;gap:5px}
  
  .vc-impact-show{display:flex;align-items:flex-start;gap:7px;padding:7px 11px;background:var(--accent-soft);border-radius:8px;font-size:12px;color:var(--accent-ink);line-height:1.5}
  .vc-impact-show strong{font-weight:600}
  
  .vc-pride-label{font-size:12px;font-weight:600;color:var(--ink-2)}
  

  /* Encart manque + CTA coach */
  .vc-missing-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
  
  
  
  
  

  /* Jauge dans le mur */
  .vc-wall-gauge{margin:14px 22px 0}
  .vc-wall-gauge .vc-progress{margin-bottom:0}

  /* (Le FAB « Quick Add » — mort : aucun rendu JSX, règle corrompue, ombre COLORÉE bannie
     par le design system — a été retiré ici, critique du 2026-07-25.) */

  /* Pop-up « Nouvelle entrée » — modale 2 panneaux (Proposition v2) */
  .aev-bottom{display:flex;justify-content:center;padding:8px 0 26px}
  
  
  
  .aev-scrim{position:fixed;inset:0;background:var(--scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:2000;animation:aevFade .2s var(--ease-out)}
  @keyframes aevFade{from{opacity:0}to{opacity:1}}
  .aev-modal{width:min(980px,96vw);max-height:90vh;background:var(--surface);border-radius:16px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:aevRise .28s var(--ease-out)}
  @keyframes aevRise{from{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:none}}
  .aev-head{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--border)}
  .aev-head h2{font-size:17px;font-weight:600;margin:0;color:var(--ink)}
  .aev-head-mid{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-4);font-weight:500;white-space:nowrap}
  .aev-head-mid svg{color:var(--accent)}
  .aev-split{display:grid;grid-template-columns:1fr 358px;flex:1;min-height:0;overflow:hidden}
  .aev-jrnl{padding:22px 24px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}
  .aev-jrnl > *{flex:0 0 auto}
  .aev-jq-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
  .aev-jq{font-size:20px;line-height:1.35;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin:0}
  .aev-eyebrow{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
  .aev-tmpl-wrap{position:relative;flex:0 0 auto}
  .aev-tmpl-btn{display:inline-flex;align-items:center;gap:8px;background:var(--accent-soft);color:var(--accent);white-space:nowrap;border:1px solid var(--accent-soft-2,var(--accent-soft));border-radius:8px;padding:7px 11px;font:inherit;font-size:12.5px;font-weight:500;cursor:pointer}
  .aev-tmpl-btn:hover{border-color:var(--accent)}
  .aev-tmpl-menu{position:absolute;top:calc(100% + 6px);right:0;width:280px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:6px;z-index:10;max-height:320px;overflow-y:auto}
  .aev-tmpl-menu button{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;background:transparent;padding:9px 10px;border-radius:8px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer}
  .aev-tmpl-menu button:hover{background:var(--bg-2)}
  .aev-tmpl-menu .tm-ico{color:var(--ink-4)}
  .aev-note-card{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}
  .aev-rt{display:flex;align-items:center;gap:1px;padding:6px 8px;border-bottom:1px solid var(--border);flex-wrap:wrap}
  .aev-rt button{width:28px;height:28px;border:0;background:transparent;border-radius:6px;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}
  .aev-rt button:hover{background:var(--bg-2);color:var(--ink)}
  .aev-rt .div{width:1px;height:18px;background:var(--border);margin:0 5px}
  .aev-note-area{width:100%;border:0;outline:0;resize:vertical;min-height:170px;padding:14px 15px;font-family:inherit;font-size:15px;line-height:1.55;color:var(--ink);background:transparent}
  .aev-note-area::placeholder{color:var(--accent-soft-2,#9db4d8)}
  .aev-meta{display:flex;gap:30px;flex-wrap:wrap}
  .aev-inp{border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-family:inherit;font-size:14px;color:var(--ink);background:var(--surface);outline:0;transition:all var(--dur-fast) var(--ease-out)}
  .aev-inp:focus{border-color:var(--accent);box-shadow:var(--ring-focus,0 0 0 3px var(--accent-soft))}
  .aev-type-pills{display:flex;gap:7px;flex-wrap:wrap;margin-top:5px}
  .aev-tpill{border:1px solid var(--border-soft);background:var(--surface);border-radius:99px;padding:6px 13px;font:inherit;font-size:13px;font-weight:500;color:var(--ink-2);cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}
  .aev-tpill:hover{border-color:var(--border-strong)}
  .aev-tpill.on{background:var(--ink);border-color:var(--ink);color:var(--fg-inverse)}
  .aev-tag-input{display:flex;flex-wrap:wrap;gap:7px;align-items:center;border:1px solid var(--border);border-radius:8px;padding:8px 10px;min-height:42px}
  .aev-tag-pill{display:inline-flex;align-items:center;gap:6px;background:var(--bg-2);border:1px solid var(--border-soft);color:var(--ink-2);border-radius:99px;padding:3px 5px 3px 10px;font-size:12px;font-weight:500}
  .aev-tag-pill button{border:0;background:transparent;color:var(--ink-4);display:grid;place-items:center;padding:1px;border-radius:50%;cursor:pointer}
  .aev-tag-pill button:hover{color:var(--bad)}
  .aev-tag-input input{border:0;outline:0;font-family:inherit;font-size:13px;flex:1;min-width:80px;background:transparent;color:var(--ink)}
  .aev-actions{display:flex;gap:8px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--border)}
  .aev-ja{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border-soft);background:var(--surface);border-radius:8px;padding:8px 12px;font:inherit;font-size:13px;font-weight:500;color:var(--ink-2);cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}
  .aev-ja:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
  .aev-anal{background:var(--bg-2);border-left:1px solid var(--border);padding:20px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}
  .aev-anal-h{display:flex;align-items:center;gap:8px}
  .aev-anal-h .sp{color:var(--accent);display:grid;place-items:center}
  .aev-anal-h h3{font-size:14px;font-weight:600;margin:0;color:var(--ink);flex:1}
  .aev-anal-sub{font-size:11.5px;color:var(--ink-4);margin:-8px 0 0}
  .aev-anal-empty{font-size:12.5px;color:var(--ink-3);line-height:1.5;background:var(--surface);border:1px dashed var(--border-strong);border-radius:8px;padding:14px}
  .aev-mat{display:flex;align-items:center;gap:10px;margin:2px 0 0}
  .aev-route{display:flex;align-items:center}
  .aev-route .node{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--border-strong);background:var(--surface);display:grid;place-items:center;color:var(--ink-4);font-size:10px;font-weight:600;font-family:var(--font-mono);flex-shrink:0;transition:all var(--dur-base) var(--ease-out)}
  .aev-route .node.on{background:var(--ink);border-color:var(--ink);color:var(--fg-inverse)}
  .aev-route .seg{width:20px;height:2px;background:var(--border);transition:background var(--dur-base) var(--ease-out)}
  .aev-route .seg.on{background:var(--ink)}
  .aev-mat-state{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;border-radius:99px;padding:2px 9px;white-space:nowrap}
  .aev-mat-state.todo{color:var(--warn-ink,#8a5208);background:var(--warn-soft,#fbf0dd)}
  .aev-mat-state.ready{color:var(--good-ink);background:var(--good-soft)}
  .aev-asp{display:flex;gap:10px;align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 11px}
  .aev-asp-node{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--border-strong);background:var(--surface);display:grid;place-items:center;color:var(--ink-4);font-size:10px;font-weight:600;font-family:var(--font-mono);flex-shrink:0}
  .aev-asp.ok .aev-asp-node{background:var(--good);border-color:var(--good);color:var(--fg-inverse)}
  .aev-asp-k{font-size:11px;font-weight:600;color:var(--ink-3);letter-spacing:.03em}
  .aev-asp-v{font-size:12.5px;color:var(--ink-2);line-height:1.4;margin-top:3px;text-wrap:pretty}
  .aev-asp-ask{font-size:12.5px;color:var(--warn-ink,#8a5208);line-height:1.4;margin-top:3px}
  .aev-anal-tags{display:flex;flex-wrap:wrap;gap:6px}
  .aev-sugtag{display:inline-flex;align-items:center;gap:5px;border:1px dashed var(--accent);color:var(--accent);white-space:nowrap;background:var(--accent-soft);border-radius:99px;padding:3px 9px;font:inherit;font-size:11.5px;font-weight:500;cursor:pointer}
  .aev-sugtag.added{border-style:solid;color:var(--good-ink);background:var(--good-soft);border-color:var(--good);cursor:default}
  .aev-disc{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--ink-3);background:var(--surface);border-radius:8px;padding:9px 12px}
  .aev-disc .di{color:var(--ink-4)}
  .aev-foot{display:flex;align-items:center;gap:10px;padding:16px 22px;border-top:1px solid var(--border);background:var(--surface)}
  .aev-dans{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4)}
  .aev-btn{display:inline-flex;align-items:center;gap:7px;border-radius:6px;font:inherit;font-size:13.5px;white-space:nowrap;font-weight:500;padding:8px 13px;border:1px solid transparent;cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}
  .aev-btn.primary{background:var(--accent);color:var(--fg-inverse);border-color:var(--accent);box-shadow:var(--shadow-sm)}
  .aev-btn.primary:hover{background:var(--accent-2);border-color:var(--accent-2)}
  .aev-btn.ghost{background:transparent;color:var(--ink-2)}
  .aev-btn.ghost:hover{background:var(--bg-2);border-color:var(--border-soft)}
  @media (max-width:760px){.aev-split{grid-template-columns:1fr}.aev-anal{border-left:0;border-top:1px solid var(--border)}}

  /* Scrim partagé QuickAdd / Coach */
  
  @keyframes vcFade{from{opacity:0}to{opacity:1}}
  
  @keyframes vcPop{from{opacity:0;transform:scale(.97) translateY(8px)}to{opacity:1;transform:none}}
  .vc-qa-head{display:flex;align-items:center;gap:9px;padding:14px 16px;border-bottom:1px solid var(--border)}
  .vc-qa-head strong{font-size:14px;color:var(--ink)}
  .vc-qa-head .vc-autosave{margin-left:auto}
  .vc-qa-body{padding:16px;display:flex;flex-direction:column;gap:13px}
  .vc-qa-detect{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px}
  

  /* Coach interview modal */
  
  .vc-coach-head{display:flex;align-items:center;gap:11px;padding:14px 18px;border-bottom:1px solid var(--border);flex:0 0 auto}
  .vc-coach-ava{width:32px;height:32px;border-radius:8px;background:var(--accent);color:var(--fg-inverse);display:grid;place-items:center;flex:0 0 auto}
  .vc-coach-head > div{display:flex;flex-direction:column;gap:2px;line-height:1.2;min-width:0}
  .vc-coach-head strong{font-size:14px;color:var(--ink);white-space:nowrap;line-height:1.2}
  .vc-coach-head .mono{font-size:10px;color:var(--ink-3);white-space:nowrap;line-height:1.2}
  .vc-coach-cols{display:grid;grid-template-columns:1fr 1fr;flex:1;min-height:0}
  .vc-coach-chat{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border);background:var(--bg-app)}
  .vc-coach-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:9px}
  .vc-bubble{max-width:86%;padding:9px 12px;border-radius:13px;font-size:13px;line-height:1.45}
  .vc-bubble.coach{align-self:flex-start;background:var(--accent-soft);color:var(--accent-ink);border-bottom-left-radius:4px}
  .vc-bubble.user{align-self:flex-end;background:var(--surface);border:1px solid var(--border);color:var(--ink-2);border-bottom-right-radius:4px}
  
  
  
  
  .vc-coach-preview{display:flex;flex-direction:column;gap:11px;padding:16px;overflow-y:auto;background:var(--surface-2)}
  .vc-coach-preview > .mono{display:inline-flex;align-items:center;gap:5px;color:var(--ink-3);font-size:10px}
  
  
  .vc-coach-val{font-size:13px;color:var(--ink);font-weight:500;line-height:1.45}
  .vc-coach-val.empty{color:var(--ink-5);font-weight:400}
  .vc-coach-next{display:flex;align-items:flex-start;gap:6px;font-size:11.5px;color:var(--ink-3);line-height:1.45;padding:9px 11px;border:1px dashed var(--border-strong);border-radius:8px}
  .vc-coach-next strong{color:var(--ink-2);font-weight:600}
  @media (max-width:760px){
    
    .vc-coach-cols{grid-template-columns:1fr;grid-template-rows:1fr auto}
    .vc-coach-preview{display:none}
  }

  /* Rail continu du carnet : les destinations restent assemblées ; les outils forment ensuite
     un groupe autonome séparé par un trait. Un indicateur unique glisse sous la destination active. */
  .vc-filter-bar{gap:0;padding:9px 22px;justify-content:flex-start;border-bottom:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;background:transparent;align-items:center}
  /* ── Planche G (lot 3) : plus de rail encadré — les onglets sont du TEXTE calme, l'actif
     porte un remplissage doux qui glisse (thumb). Le cadre n'a plus de raison d'être. ── */
  .vc-segtrack{position:relative;display:inline-flex;align-items:center;gap:2px;flex:0 0 auto;background:transparent;border:0;border-radius:0;padding:0}
  .vc-segthumb{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:8px;background:var(--bg-2);box-shadow:none;opacity:0;pointer-events:none}
  .vc-segthumb.ready{opacity:1;transition:transform var(--dur-base) var(--ease-out,cubic-bezier(.16,1,.3,1))}
  @media (prefers-reduced-motion:reduce){.vc-segthumb.ready{transition:none}}
  /* ─ Porte unique « Ce que ça produit » : les projections du carnet (CV · lettre · compétences)
       ne sont plus des onglets de même poids que la matière, elles vivent derrière un seul
       bouton. Le menu est en `fixed`-like absolu ancré au bouton ; le scrim ferme au clic. ─ */
  .vc-produce-pop{display:inline-flex}
  .vc-produce-btn .vc-tab-lbl{max-width:none}
  
  .vc-produce-txt{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
  .vc-produce-txt b{font-size:13px;font-weight:600;color:var(--ink)}
  .vc-produce-txt small{font-size:11px;line-height:15px;color:var(--ink-4);text-wrap:pretty}
  .vc-produce-opt{align-items:flex-start}
  .vc-produce-opt svg:first-child{margin-top:2px}
  .vc-produce-opt{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:0;border-radius:8px;background:none;font-family:inherit;font-size:13px;font-weight:500;color:var(--ink-2);cursor:pointer;text-align:left;transition:background .18s cubic-bezier(.16,1,.3,1)}
  .vc-produce-opt svg{color:var(--ink-4);flex:0 0 auto}
  .vc-produce-opt span{flex:1;min-width:0}
  .vc-produce-opt:hover{background:var(--bg-2)}
  .vc-produce-opt.on{background:var(--accent-soft);color:var(--accent-ink)}
  .vc-produce-opt.on svg{color:var(--accent-ink)}
  /* Rangée d'onglets : navigation défilable + outils à droite. Le groupe d'outils conserve
     ses libellés à largeur normale et replie uniquement ceux-ci lorsque le conteneur se resserre. */
  .vc-tabsrow{display:flex;align-items:center;gap:8px;padding-right:22px}
  .vc-tabsrow > .vc-filter-bar{flex:1 1 auto;min-width:0}
  .vc-bar-tools{flex:0 0 auto;display:flex;align-items:center;gap:2px;padding:0 0 0 6px}
  /* Outils intégrés à la barre : style fantôme, libellé explicite, séparation unique. */
  .vc-tabsrow .vc-bar-tools::before{content:"";align-self:center;width:1px;height:18px;background:var(--border);margin:0 6px 0 2px}
  .vc-tabsrow .vc-bar-tools .vc-display-btn{width:auto;min-width:30px;height:30px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;background:transparent;
    border-radius:8px;color:var(--ink-3);box-shadow:none;font:inherit;font-size:12.5px;font-weight:500;white-space:nowrap}
  .vc-tabsrow .vc-bar-tools .vc-display-btn > svg{flex:0 0 auto}
  .vc-tabsrow .vc-bar-tools .vc-display-btn:hover{background:var(--bg-subtle);color:var(--ink)}
  .vc-tabsrow .vc-bar-tools .vc-display-btn.on{background:var(--bg-subtle);border-color:var(--border-strong);color:var(--accent);box-shadow:none}
  /* Bouton « Filtres » regroupant Période/Tag/Type */
  /* Outil de barre en fantôme (planche G .sp) : texte calme, remplissage doux au survol. */
  /* Scroll : les tabs restent collés en haut de la colonne, le bandeau remonte derrière.
     container-type:inline-size → la rangée d'onglets est un conteneur de requête : les
     libellés se replient en mode icône seule quand la colonne se resserre, pour que tous
     les onglets tiennent sur un écran sans scroll horizontal (retour Landry, juin 2026). */
  .vc-main-col > .vc-tabsrow{position:sticky;top:0;z-index:8;background:var(--bg);container-type:inline-size;container-name:vtabs}
  /* Tablier universel : 14px couleur page sous l'en-tête de section collé. Le contenu qui
     défile disparaît donc 14px SOUS le bord de l'en-tête — la même distance est conservée
     dans TOUTES les sections (Journal, Fiche de poste, Objectifs, Compétences, Récap). */
  .vc-main-col > .vc-tabsrow::after{content:"";position:absolute;left:0;right:0;top:100%;height:14px;background:var(--bg);pointer-events:none}
  /* Sidebar repliée : le rail garde le MÊME retrait gauche que le bandeau (.vc-banner
     margin-left:22px) pour rester aligné avec lui — le bouton flottant de repli est un
     simple overlay de survol, il n'impose plus son propre retrait (retour Landry juin 2026). */
  .vc-shell.side-collapsed .vc-main-col > .vc-tabsrow > .vc-filter-bar{padding-left:22px}
  .vc-filter-bar::-webkit-scrollbar{display:none}
  .vc-tab{
    flex:0 0 auto;position:relative;z-index:1;padding:6px 12px;border-radius:8px;border:0;
    background-color:transparent;color:var(--ink-3);font-weight:500;gap:7px;
    font-size:13px;letter-spacing:0;text-transform:none;box-shadow:none;
    transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);
  }
  .vc-tab > svg{color:var(--ink-4)}
  .vc-tab:not(.on):hover{color:var(--ink-2);background-color:var(--bg-2)}
  /* Deux graisses max (planche F) : l'actif est 500, jamais 600. */
  .vc-segtrack .vc-tab.on{background-color:transparent;color:var(--ink);font-weight:500;box-shadow:none}
  .vc-tab.on > svg{color:var(--ink-3)}
  /* Compteur (planche G .vtab .n) : un chiffre accent NU, tabulaire — plus de bulle. */
  .vc-tab .cnt{
    min-width:0;height:auto;padding:0;border-radius:0;
    display:inline-flex;align-items:center;justify-content:center;
    background:transparent;border:0;color:var(--accent);
    font-family:inherit;font-size:12px;font-weight:400;line-height:1;font-variant-numeric:tabular-nums;
  }
  .vc-tab.on .cnt{background:transparent;color:var(--accent)}
  /* Icônes d'onglets visibles dans le contrôle segmenté */
  .vc-filter-bar .vc-tab > svg{display:inline-flex}
  .vc-tab-lbl{display:inline}
  /* Au zoom, seuls les outils perdent leur texte. Les trois destinations du carnet conservent
     leur nom ; la navigation reste compréhensible et peut défiler horizontalement si nécessaire. */
  @container vtabs (max-width: 860px){
    .vc-carnet-tools .vc-tool-label{display:none}
    .vc-tabsrow .vc-carnet-tools .vc-display-btn{width:30px;padding:0}
  }
  .vc-produce-btn .vc-tab-lbl{display:inline !important;max-width:none}

  /* Récap — synthèse (remplace le feed) */
  .vc-recap{padding:18px 22px 26px;display:flex;flex-direction:column;gap:18px}
  .vc-recap-synth{display:flex;gap:10px;padding:12px 14px;background:var(--accent-soft);border:1px solid var(--accent-soft-2);border-radius:10px}
  .vc-recap-synth p{font-size:13px;color:var(--accent-ink);line-height:1.5}
  .vc-recap-synth strong{font-weight:600}
  .vc-recap-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
  .vc-recap-kpi{display:flex;flex-direction:column;gap:5px;padding:13px 15px;background:var(--bg-2);border-radius:13px}
  .vc-recap-kpi .l{font-family:var(--font-mono);font-size:9.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
  .vc-recap-kpi .v{font-size:24px;font-weight:600;color:var(--ink);letter-spacing:-.02em;display:flex;align-items:baseline;gap:5px}
  .vc-recap-kpi .v .u{font-size:11px;font-weight:500;color:var(--ink-3)}
  .vc-recap-kpi .v.vc-recap-stars{height:30px;align-items:center}
  .vc-recap-block{display:flex;flex-direction:column;gap:9px}
  .vc-recap-block h5{margin:0;font-size:12px;font-weight:600;color:var(--ink-2)}
  
  
  
  @media (max-width:760px){.vc-recap-kpis{grid-template-columns:repeat(2,1fr)}}

  /* Récap — « Aperçu sur votre CV » (rendu recruteur d'une expérience) */
  .vc-recap-cv{display:flex;flex-direction:column;gap:11px}
  .vrcv-intro{display:flex;flex-direction:column;gap:3px}
  .vrcv-intro h5{margin:0;display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:var(--ink)}
  .vrcv-intro h5 svg{color:var(--accent)}
  .vrcv-intro p{margin:0;font-size:12px;line-height:1.5;color:var(--ink-3);text-wrap:pretty;max-width:62ch}
  /* La feuille = une SEULE carte (pas d'imbrication). Sous-zones séparées par filets. */
  .vrcv-paper{background:var(--surface);border:1px solid var(--border);border-radius:6px;
    box-shadow:0 1px 2px color-mix(in srgb,var(--ink) 6%,transparent),0 10px 28px -16px color-mix(in srgb,var(--ink) 20%,transparent);
    padding:22px 24px;display:flex;flex-direction:column;gap:14px}
  .vrcv-eyebrow{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
    color:var(--ink);border-bottom:1.5px solid var(--ink);padding-bottom:5px}
  .vrcv-exp{display:grid;grid-template-columns:116px 1fr;gap:16px;align-items:start}
  .vrcv-date{font-family:var(--font-mono);font-size:10.5px;line-height:1.5;color:var(--ink-3);padding-top:2px}
  .vrcv-expbody{display:flex;flex-direction:column;gap:1px;min-width:0}
  .vrcv-role{font-size:13.5px;font-weight:700;color:var(--accent);line-height:1.35}
  .vrcv-contract{font-weight:500;color:var(--ink-2)}
  .vrcv-org{font-size:12px;font-weight:600;color:var(--ink-2)}
  .vrcv-bullets{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:5px}
  .vrcv-bullets li{position:relative;padding-left:16px;font-size:12px;line-height:1.5;color:var(--ink-2);text-wrap:pretty}
  .vrcv-bullets li::before{content:"";position:absolute;left:2px;top:6px;width:5px;height:5px;
    border:1.4px solid var(--accent);transform:rotate(45deg)}
  .vrcv-bullets-strong li{font-weight:600;color:var(--ink)}
  .vrcv-results{margin-top:10px}
  .vrcv-rlabel{display:block;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;
    letter-spacing:.07em;color:var(--ink-3);margin-bottom:3px}
  /* Zones du papier : sous-sections séparées par filets (un seul niveau de carte). */
  .vrcv-zone{display:flex;flex-direction:column;gap:9px}
  .vrcv-paper > .vrcv-zone + .vrcv-zone{border-top:1px solid var(--border);padding-top:15px}
  .vrcv-kv{display:grid;grid-template-columns:158px 1fr;gap:14px;font-size:12px;line-height:1.5}
  .vrcv-kv .vrcv-k{font-weight:600;color:var(--ink-2)}
  .vrcv-kv .vrcv-k.acc{color:var(--accent);font-weight:700}
  .vrcv-kv .vrcv-v{color:var(--ink-2);text-wrap:pretty}
  .vrcv-skills{display:flex;flex-direction:column;gap:9px}
  .vrcv-skills .vrcv-eyebrow{margin-bottom:1px}
  .vrcv-skills .vrcv-kv .vrcv-k{color:var(--accent);font-weight:700}
  /* Statut dans la colonne de dates (En poste / Terminé) */
  .vrcv-status{display:inline-flex;align-items:center;gap:5px;margin-top:5px;font-size:9.5px;font-weight:600;
    text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);white-space:nowrap}
  .vrcv-status::before{content:"";width:6px;height:6px;border-radius:99px;background:var(--ink-4)}
  .vrcv-status.current::before{background:var(--good)}
  /* Puces atténuées (contexte) + objectif terminé + échéance */
  .vrcv-bullets-dim li{color:var(--ink-3)}
  .vrcv-bullets-dim li::before{border-color:var(--ink-4)}
  .vrcv-bullets li.done{color:var(--ink-4);text-decoration:line-through}
  .vrcv-due{font-family:var(--font-mono);font-size:11px;color:var(--ink-4);text-decoration:none}
  /* Sous-blocs (évolution / personnes / objectifs) */
  .vrcv-sub{display:flex;flex-direction:column;gap:6px;margin-top:3px}
  .vrcv-sublabel{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)}
  .vrcv-timeline{display:flex;flex-direction:column;gap:5px}
  .vrcv-tl{display:grid;grid-template-columns:92px 1fr;gap:12px;font-size:12px;line-height:1.5}
  .vrcv-tl-k{font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}
  .vrcv-tl-v{color:var(--ink-2);text-wrap:pretty}
  /* Mots-clés ATS + chiffres clés : pastilles (sémantique distincte des compétences) */
  .vrcv-kws{display:flex;flex-wrap:wrap;gap:5px}
  .vrcv-kw{display:inline-flex;align-items:center;padding:2px 9px;border-radius:99px;background:var(--bg-2);
    border:1px solid var(--border);font-size:11px;color:var(--ink-2)}
  .vrcv-metric{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;background:var(--bg-2);
    border:1px solid var(--border);font-family:var(--font-mono);font-size:11px;color:var(--ink)}
  
  
  /* Sur la lettre — aperçu de la lettre de motivation */
  .vltr{display:flex;flex-direction:column;gap:9px}
  .vltr-meta{margin:0;font-family:var(--font-mono);font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
  .vltr-greet{margin:2px 0 0;font-size:12.5px;color:var(--ink-2);font-weight:600}
  .vltr-p{margin:0;font-size:12.5px;line-height:1.6;color:var(--ink-2);text-wrap:pretty}
  .vltr-sign{margin:4px 0 0;font-size:12px;color:var(--ink-3)}
  .vltr-angle{margin:0;font-size:12px;line-height:1.55;color:var(--ink-3);text-wrap:pretty}
  @media (max-width:680px){.vrcv-exp{grid-template-columns:1fr;gap:4px}.vrcv-kv{grid-template-columns:1fr;gap:2px}}

  /* ===== Main column ===== */
  .col{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--bg);height:100vh;height:100dvh;overflow:hidden;overscroll-behavior:none}

  /* Les vues SIHAGE scrollent dans leurs panneaux, jamais sur la fenêtre du navigateur.
     Cela coupe le rebond macOS quand un panneau arrive en haut ou en bas. */
  .side,
  .vc-side,
  .vc-main-col,
  .vc-side-scroll,
  .vpf-pop-body,
  .vpf-section-nav,
  .vpf-section-panel,
  .gk-col-body,
  .cdet-railgrp,
  .cdet-content,
  .cdet-content2,
  .cve-prevscroll,
  .cve-optA .cve-canvas,
  .cve-side .cve-midscroll,
  .cve-secroot,
  .lte-pdf-scroll,
  .ct-lscroll,
  .ct-detail{
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  /* ===== Gabarit de header de section (flèches + titre · actions + Assistant) ===== */
  .sec-head{
    flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative;
    height:42px;padding:0 14px;background:var(--surface);border-bottom:1px solid var(--border);
    /* Au-dessus du bandeau et de la barre d'onglets sticky (z-index:8) pour que la
       popover du sélecteur de carnet (Vault) ne soit pas masquée par ce qui suit. */
    z-index:10;
  }
  /* Nom du carnet/section affiché, centré dans l'en-tête (sous les éléments gauche/droite) */
  .sec-head-c{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:40%;
    font-size:13px;font-weight:600;letter-spacing:-.01em;color:var(--ink-2);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
  /* Sélecteur de carnet (Vault) — wrap absolu centré + bouton cliquable + popover.
     Pas de chevron : l'affordance vient d'une PETITE PILL discrète (fond bg-2 + icône
     livre à gauche), qui se REMPLIT en accent au hover/ouvert avec un anneau soft.
     L'icône book bascule en book-open (rotation subtile) — geste stylé sans bruit. */
  .sec-head-switch{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:48%;z-index:6}
  .sec-head-c-btn{position:static;transform:none;max-width:100%;pointer-events:auto;
    display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 12px 0 10px;
    border:1px solid var(--border-soft);background:var(--bg-2);border-radius:999px;cursor:pointer;
    color:var(--ink-2);
    transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),
      box-shadow var(--dur-base) var(--ease-out),color var(--dur-fast) var(--ease-out),
      transform var(--dur-fast) var(--ease-out)}
  .sec-head-c-btn:hover{background:var(--surface);border-color:var(--border-strong);
    box-shadow:0 0 0 4px var(--accent-soft);color:var(--ink)}
  .sec-head-switch.open .sec-head-c-btn{background:var(--surface);border-color:color-mix(in srgb,var(--accent) 35%,var(--border-strong));
    box-shadow:0 0 0 4px var(--accent-soft);color:var(--ink)}
  /* Icône livre à gauche : geste stylé — légère rotation/translation au hover/ouvert
     pour suggérer l'ouverture d'un carnet. */
  .sec-head-c-ic{display:inline-flex;align-items:center;justify-content:center;width:16px;color:var(--ink-3);
    transition:color var(--dur-fast) var(--ease-out),transform var(--dur-base) var(--ease-out)}
  .sec-head-c-btn:hover .sec-head-c-ic,
  .sec-head-switch.open .sec-head-c-ic{color:var(--accent);transform:rotate(-8deg) translateX(-1px)}
  .sec-head-c-lbl{font-size:13px;font-weight:600;letter-spacing:-.01em;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  /* Popover : descend du centre du header, ancré au bouton. */
  .sec-head-pop{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);z-index:1000;
    min-width:260px;max-width:320px;max-height:calc(100vh - 120px);overflow-y:auto;
    background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;
    box-shadow:0 18px 44px -12px color-mix(in srgb,var(--ink) 20%,transparent),0 2px 6px -2px color-mix(in srgb,var(--ink) 8%,transparent);
    padding:6px;animation:sec-head-pop-in 160ms var(--ease-out) both}
  @keyframes sec-head-pop-in{from{opacity:0;transform:translate(-50%,-4px)}to{opacity:1;transform:translate(-50%,0)}}
  .sec-head-pop-eyebrow{font-family:var(--font-mono);font-size:10px;color:var(--ink-4);
    text-transform:uppercase;letter-spacing:.08em;padding:6px 8px 4px}
  .sec-head-pop-group{font-family:var(--font-mono);font-size:10px;color:var(--ink-4);
    text-transform:uppercase;letter-spacing:.08em;padding:10px 8px 4px;margin-top:2px;border-top:1px solid var(--border)}
  .sec-head-pop-item{display:flex;align-items:center;gap:8px;width:100%;height:30px;padding:0 8px;
    border:0;background:transparent;border-radius:8px;cursor:pointer;
    color:var(--ink-2);font-size:13px;text-align:left;
    transition:background var(--dur-fast) var(--ease-out)}
  .sec-head-pop-item:hover{background:var(--bg-2)}
  .sec-head-pop-item.active{background:var(--accent-soft);color:var(--accent-ink)}
  .sec-head-pop-item.active .sec-head-pop-ico{color:var(--accent)}
  .sec-head-pop-ico{display:inline-flex;align-items:center;justify-content:center;width:18px;color:var(--ink-3);flex-shrink:0}
  .sec-head-pop-nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .sec-head-l{display:flex;align-items:center;gap:10px;min-width:0}
  
  .sec-head-title{margin:0;font-size:14px;font-weight:600;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sec-head-r{display:flex;align-items:center;gap:10px;flex:0 0 auto}
  .sec-head-div{width:1px;height:20px;background:var(--border);flex:0 0 auto}
  .asst-btn{
    /* Canon : l'action porte la matière pastille — fond teinté, encre
       de la famille, bordure dédiée. Icône et texte partagent l'encre. */
    display:inline-flex;align-items:center;justify-content:center;gap:7px;height:30px;padding:0 13px;
    border:1px solid var(--action-border);background:var(--action-bg);border-radius:99px;color:var(--action-ink);
    font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;
    transition:background-color var(--dur-fast) var(--ease-out),transform var(--dur-base) var(--ease-out);
  }
  .asst-btn svg{color:currentColor}
  .asst-btn:hover{background:var(--action-bg-hover)}
  .asst-btn:active{transform:scale(.97)}
  @media (max-width:640px){.asst-btn .asst-btn-lbl{display:none}.asst-btn{padding:0;width:36px;gap:0}}

  /* ===== Assistant : lanceur fixe (haut-droite) + panneau ancré à droite ===== */
  .asst-launch{
    position:fixed;top:9px;right:16px;z-index:35;
    display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 16px;
    border:1px solid var(--ink);background:var(--ink);border-radius:99px;
    color:var(--fg-inverse);font:inherit;font-size:13px;font-weight:600;cursor:pointer;
    box-shadow:var(--shadow-sm);
    transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);
  }
  .asst-launch svg{color:var(--fg-inverse)}
  .asst-launch:hover{background:var(--sidebar-bg-2);border-color:var(--sidebar-bg-2);box-shadow:var(--shadow-md)}
  .asst-launch:active{transform:scale(.97)}
  .asst-launch:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .asst-launch.is-hidden{opacity:0;pointer-events:none;transform:translateY(-8px) scale(.96)}
  /* Notification proactive (#16) : point discret quand une suggestion attend. */
  .asst-launch{position:fixed}
  .asst-launch-dot{position:absolute;top:6px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--accent);border:2px solid var(--surface)}
  .asst-launch.has-hint{box-shadow:0 0 0 1px var(--accent-soft),0 6px 16px -6px color-mix(in srgb,var(--ink) 16%,transparent)}
  @media (max-width:640px){.asst-launch .asst-launch-lbl{display:none}.asst-launch{padding:0;width:36px;justify-content:center;gap:0}}

  .asst-panel{
    position:fixed;top:0;right:0;bottom:0;width:404px;max-width:94vw;z-index:85;
    background:var(--surface);border-left:1px solid var(--border);
    box-shadow:-22px 0 56px -28px color-mix(in srgb,var(--ink) 42%,transparent);
    display:flex;flex-direction:column;
    transform:translateX(100%);
    transition:transform var(--dur-slow) var(--ease-out);
    will-change:transform;
  }
  .asst-panel.open{transform:translateX(0)}

  /* ===== Dock assistant « façon Comet » =================================
     Quand l'assistant est ouvert, il réserve sa largeur à droite (--asst-w).
     Le shell ET les grandes modales de détail se décalent à gauche et restent
     pleinement utilisables (header + footer compris) — on continue à
     travailler, l'assistant est juste à côté, conscient du contexte. */
  body[data-asst="open"] .os-shell{margin-right:var(--asst-w,0px)}
  body[data-asst="open"] .vw-scrim,
  body[data-asst="open"] .overlay,
  body[data-asst="open"] .vdp-scrim,
  body[data-asst="open"] .vpf-scrim{right:var(--asst-w,0px)}
  /* Les modales ne débordent jamais sous le dock : leur largeur se borne à
     l'espace restant (le voile reste l'enfant direct du scrim). */
  body[data-asst="open"] .vw-scrim>*,
  body[data-asst="open"] .overlay>*,
  body[data-asst="open"] .vdp-scrim>*,
  body[data-asst="open"] .vpf-scrim>*{max-width:100%}

  /* Chip de contexte (ce que « voit » l'assistant) */
  .asst-ctx{display:flex;align-items:center;gap:9px;margin:11px 13px 2px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2)}
  .asst-ctx-ic{width:24px;height:24px;border-radius:6px;background:var(--surface);color:var(--ink-3);display:grid;place-items:center;flex:0 0 auto}
  .asst-ctx-tx{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
  .asst-ctx-tx .l{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);margin-bottom:1px}
  .asst-ctx-tx .v{font-size:12.5px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .asst-ctx-det{flex:0 0 auto;height:25px;padding:0 9px;border-radius:6px;border:1px solid var(--border-soft);background:var(--surface);color:var(--ink-3);font:inherit;font-size:11px;display:inline-flex;align-items:center;gap:5px;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .asst-ctx-det:hover{background:var(--bg-2);color:var(--ink)}

  /* Zone 2 — suggestion agentique (l'assistant se manifeste) */
  .asst-sugg{display:flex;gap:10px;margin:10px 13px 2px;padding:11px 12px;border:1px solid var(--accent-soft-2,#C5D3EA);border-radius:10px;background:var(--accent-soft,#EEF3FA)}
  .asst-sugg-ic{width:24px;height:24px;border-radius:8px;background:var(--accent);color:var(--fg-inverse);display:grid;place-items:center;flex:0 0 auto}
  .asst-sugg-body{flex:1 1 auto;min-width:0}
  .asst-sugg-body p{margin:0 0 9px;font-size:12.5px;line-height:1.5;color:var(--ink);text-wrap:pretty}
  .asst-sugg-acts{display:flex;gap:7px}
  .asst-sugg-yes{height:28px;padding:0 11px;border-radius:8px;border:0;background:var(--accent);color:var(--fg-inverse);font:inherit;font-size:12px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:filter var(--dur-fast) var(--ease-out)}
  .asst-sugg-yes:hover{filter:brightness(1.07)}
  .asst-sugg-no{height:28px;padding:0 10px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-3);font:inherit;font-size:12px;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .asst-sugg-no:hover{background:var(--bg-2);color:var(--ink)}
  .asst-head{
    flex:0 0 auto;display:flex;align-items:center;gap:10px;position:relative;
    padding:13px 12px 13px 15px;border-bottom:1px solid var(--border);
  }
  .asst-head-ic{
    flex:0 0 auto;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;
    background:var(--accent-soft);color:var(--accent);
  }
  .asst-head-id{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;line-height:1.25}
  .asst-head-id strong{font-size:14px;font-weight:600;color:var(--ink)}
  .asst-head-id span{font-size:11.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .asst-iconbtn{
    flex:0 0 auto;width:30px;height:30px;border:1px solid transparent;background:transparent;border-radius:8px;
    display:grid;place-items:center;color:var(--ink-3);cursor:pointer;
    transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);
  }
  .asst-iconbtn:hover{background:var(--bg-2);border-color:var(--border-soft);color:var(--ink)}
  .asst-iconbtn:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  /* Menu réglages — préférence d'autonomie (#22) */
  .asst-setmenu{position:absolute;top:calc(100% - 4px);right:10px;z-index:6;width:248px;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow-md,0 8px 24px -8px color-mix(in srgb,var(--ink) 18%,transparent));padding:7px;display:flex;flex-direction:column;gap:2px}
  .asst-setmenu-eyebrow{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);font-weight:600;padding:5px 8px 3px}
  .asst-setmenu-opt{display:flex;align-items:flex-start;gap:9px;padding:8px;border:0;background:transparent;border-radius:8px;cursor:pointer;text-align:left;font:inherit;transition:background-color var(--dur-fast) var(--ease-out)}
  .asst-setmenu-opt:hover{background:var(--bg-2)}
  .asst-setmenu-radio{width:15px;height:15px;border-radius:50%;border:1.5px solid var(--border-strong);flex:0 0 auto;margin-top:1px;position:relative;transition:border-color var(--dur-fast) var(--ease-out)}
  .asst-setmenu-opt.on .asst-setmenu-radio{border-color:var(--accent)}
  .asst-setmenu-opt.on .asst-setmenu-radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--accent)}
  .asst-setmenu-tx{display:flex;flex-direction:column;gap:1px;min-width:0}
  .asst-setmenu-tx strong{font-size:13px;font-weight:600;color:var(--ink)}
  .asst-setmenu-tx span{font-size:11.5px;color:var(--ink-3);line-height:1.35}
  .asst-scroll{
    flex:1 1 auto;min-height:0;overflow-y:auto;
    display:flex;flex-direction:column;gap:10px;padding:16px;
  }
  .asst-day{align-self:center;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);margin-bottom:2px}
  .asst-scroll .bubble{max-width:88%}
  .asst-scroll .bubble.acc p{color:var(--accent-ink)}
  /* Messages + flux guidé agentique — bulles en enfants directs du flex column,
     alignées par align-self (motif éprouvé, évite le rétrécissement du wrapper). */
  .asst-b{align-self:flex-start;max-width:88%;position:relative}
  .asst-b.user{align-self:flex-end;background:var(--ink);color:var(--fg-inverse);border-color:var(--ink)}
  .asst-b p{margin:0}
  .asst-b-copy,.asst-copybtn{position:absolute;width:27px;height:27px;padding:0;border-radius:8px;border:1px solid var(--border-soft);background:var(--surface);color:var(--ink-3);display:grid;place-items:center;cursor:pointer;opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .asst-b-copy{top:7px;right:7px}
  .asst-b:hover .asst-b-copy,.asst-copybox:hover .asst-copybtn,.asst-b-copy:focus-visible,.asst-copybtn:focus-visible{opacity:1;pointer-events:auto}
  .asst-b-copy:hover,.asst-copybtn:hover{background:var(--bg-2);border-color:var(--border-strong);color:var(--ink)}
  .asst-qchips{align-self:flex-start;display:flex;flex-wrap:wrap;gap:6px;max-width:92%}
  .asst-qchip{font:inherit;font-size:12px;height:30px;padding:0 11px;border-radius:8px;border:1px solid var(--border-soft);background:var(--surface);color:var(--ink-2);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .asst-qchip:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}
  .asst-copybox{margin-top:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:10px 11px;position:relative}
  .asst-copybox p{margin:0 0 8px;font-size:12.5px;line-height:1.5;color:var(--ink);text-wrap:pretty}
  .asst-copybtn{right:6px;bottom:6px}
  /* Fil d'action (#17 transparence) — l'assistant montre ce qu'il fait, en direct,
     annulable. Trace discrète, neutre : pastille verte, pas de bande colorée. */
  .asst-act{align-self:stretch;display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2);font-size:12px;color:var(--ink-2)}
  .asst-act-ic{width:18px;height:18px;border-radius:6px;background:var(--good);color:var(--fg-inverse);display:grid;place-items:center;flex:0 0 auto}
  .asst-act-tx{flex:1;line-height:1.4;text-wrap:pretty}
  .asst-act-undo{height:24px;padding:0 9px;border-radius:6px;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-3);font:inherit;font-size:11.5px;cursor:pointer;flex:0 0 auto;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .asst-act-undo:hover{background:var(--surface);border-color:var(--ink-4);color:var(--ink)}
  .asst-act.undone{color:var(--ink-4)}
  .asst-act.undone .asst-act-ic{background:var(--ink-4)}
  .asst-msg-acts{margin-top:9px;display:flex;flex-direction:column;gap:5px}
  .asst-apply{height:30px;padding:0 12px;border-radius:8px;border:0;background:var(--accent);color:var(--fg-inverse);font:inherit;font-size:12.5px;font-weight:500;display:inline-flex;align-items:center;gap:6px;cursor:pointer;align-self:flex-start;transition:filter var(--dur-fast) var(--ease-out)}
  .asst-apply:hover{filter:brightness(1.07)}
  .asst-apply-note{font-size:10.5px;color:var(--ink-4)}
  .asst-applied{margin-top:8px;display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--good);font-weight:500}
  /* Pied « façon journal » pendant une saisie guidée (enregistré, modifiable après) */
  .asst-jfoot{flex:0 0 auto;display:flex;align-items:center;gap:7px;margin:0 14px;padding:9px 0 2px;font-size:11.5px;color:var(--ink-3);border-top:1px solid var(--border)}
  .asst-jfoot svg{color:var(--good);flex:0 0 auto}
  .asst-jfoot strong{color:var(--ink-2);font-weight:600}
  .asst-input{
    flex:0 0 auto;display:flex;align-items:center;gap:8px;margin:0 14px 16px;
    background:var(--surface);border:1px solid var(--border-strong);border-radius:13px;
    padding:6px 6px 6px 8px;box-shadow:var(--shadow-sm);
  }
  .asst-input:focus-within{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .asst-plus{flex:0 0 auto;width:30px;height:30px;border:0;background:transparent;border-radius:8px;display:grid;place-items:center;color:var(--ink-3);cursor:pointer}
  .asst-plus:hover{background:var(--bg-2);color:var(--ink)}
  .asst-input input{flex:1 1 auto;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:13.5px;color:var(--ink);padding:6px 0}
  .asst-send{flex:0 0 auto;width:32px;height:32px;border:0;border-radius:8px;background:var(--accent);color:var(--fg-inverse);display:grid;place-items:center;cursor:pointer;transition:filter var(--dur-fast) var(--ease-out)}
  .asst-send:hover{filter:brightness(1.06)}
  /* #21 — référencement @ multi-contexte */
  .asst-inputwrap{position:relative;flex:0 0 auto}
  .asst-mentions{display:flex;flex-wrap:wrap;gap:6px;margin:0 14px 8px}
  .asst-mention{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 5px 0 9px;border-radius:99px;background:var(--accent-soft);color:var(--accent-ink);font-size:12px;font-weight:500}
  .asst-mention>svg{color:var(--accent)}
  .asst-mention-x{width:18px;height:18px;border:0;background:transparent;border-radius:50%;display:grid;place-items:center;color:var(--ink-3);cursor:pointer}
  .asst-mention-x:hover{background:color-mix(in srgb,var(--ink) 7.000000000000001%,transparent);color:var(--ink)}
  .asst-atmenu{position:absolute;left:14px;right:14px;bottom:calc(100% + 2px);z-index:7;background:var(--surface);border:1px solid var(--border-strong);border-radius:13px;box-shadow:var(--shadow-md,0 8px 24px -8px color-mix(in srgb,var(--ink) 18%,transparent));padding:7px;max-height:280px;overflow-y:auto}
  .asst-atmenu-eyebrow{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);font-weight:600;padding:5px 8px 4px}
  .asst-atmenu-opt{width:100%;display:flex;align-items:center;gap:9px;padding:8px;border:0;background:transparent;border-radius:8px;cursor:pointer;text-align:left;font:inherit;transition:background-color var(--dur-fast) var(--ease-out)}
  .asst-atmenu-opt:hover{background:var(--bg-2)}
  .asst-atmenu-ic{width:24px;height:24px;border-radius:6px;background:var(--bg-2);color:var(--ink-3);display:grid;place-items:center;flex:0 0 auto}
  .asst-atmenu-opt:hover .asst-atmenu-ic{background:var(--surface)}
  .asst-atmenu-lbl{flex:1 1 auto;min-width:0;font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .asst-atmenu-kind{flex:0 0 auto;font-size:10.5px;color:var(--ink-4);text-transform:uppercase;letter-spacing:.04em}
  .topbar{
    /* Canon : la barre est du CHROME — un filet, jamais une tuile ombrée. */
    background:var(--surface);
    border-bottom:1px solid var(--border);
    display:flex;align-items:center;gap:0px;padding:8px 24px 8px 6px;
    height:48px;flex:0 0 auto;position:relative;z-index:6;
  }
  .crumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-3)}
  .crumb strong{color:var(--ink);font-weight:600}
  .crumb .sep{color:var(--ink-5)}
  .toptools{margin-left:auto;display:flex;align-items:center;gap:8px}

  /* ===== Unified inner scroll views (used by every tab) ===== */
  .view,.vault-view,.list-view,.cal-view{
    flex:1 1 auto;min-height:0;min-width:0;
    overflow-y:auto;overflow-x:hidden;
    padding:8px 12px;

    display:flex;flex-direction:column;
  }
  /* Canon PLAT (décision finale Landry 2026-08-02) : pas de coque —
     les cartes blanches reposent directement sur le canevas clair. */
  @media (pointer:fine){
    .view::-webkit-scrollbar,.vault-view::-webkit-scrollbar,.list-view::-webkit-scrollbar,.cal-view::-webkit-scrollbar{width:8px;height:8px}
    .view::-webkit-scrollbar-thumb,.vault-view::-webkit-scrollbar-thumb,.list-view::-webkit-scrollbar-thumb,.cal-view::-webkit-scrollbar-thumb{background:var(--scroll-pill-thumb);border-radius:99px}
    .view::-webkit-scrollbar-thumb:hover,.vault-view::-webkit-scrollbar-thumb:hover,.list-view::-webkit-scrollbar-thumb:hover,.cal-view::-webkit-scrollbar-thumb:hover{background:var(--scroll-pill-thumb-hover)}
  }
  .view > *,.vault-view > *,.list-view > *,.cal-view > *{flex-shrink:0}
  .view-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px;flex-wrap:wrap}
  .view-head h1{font-size:16px;font-weight:600;text-transform:uppercase;letter-spacing:.07em}
  .view-head .h1-row{display:flex;align-items:center;gap:12px}
  .view-head p{max-width:60ch;margin-top:6px}
  /* Inner content fills the column width like the Kanban board (no max-width clamp) */

  /* ===== Activity filter chips (DS pill pattern) ===== */
  .activity-filter{
    appearance:none;border:1px solid var(--border-soft);background-color:var(--bg-surface);
    padding:5px 11px;border-radius:var(--radius-pill);
    font:inherit;font-size:12.5px;font-weight:500;color:var(--fg-2);
    cursor:pointer;line-height:1.2;transform:scale(1);white-space:nowrap;
    transition:background-color var(--dur-fast) var(--ease-out),
               border-color var(--dur-fast) var(--ease-out),
               color var(--dur-fast) var(--ease-out),
               transform var(--dur-base) var(--ease-out);
  }
  .activity-filter:hover{background-color:var(--bg-subtle);border-color:var(--border-strong)}
  .activity-filter:active{transform:scale(0.965)}
  .activity-filter:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .activity-filter.on{background-color:var(--fg-1);border-color:var(--fg-1);color:var(--bg-surface)}
  .activity-filter.on:hover{background-color:var(--fg-1)}
  .kb-mode-toggle{
    display:inline-flex;background-color:var(--bg-subtle);
    border-radius:var(--radius-md);padding:3px;
    border:1px solid var(--border-default);gap:0;align-items:center;
  }
  .kb-mode-divider{
    width:1px;align-self:stretch;background-color:var(--border-default);
    margin:2px 4px;flex-shrink:0;
  }
  .kb-mode-board{
    appearance:none;border:0;background-color:transparent;
    display:inline-flex;align-items:center;gap:7px;
    padding:5px 10px 5px 11px;border-radius:6px;
    font:inherit;font-size:12.5px;font-weight:600;
    color:var(--fg-1);cursor:pointer;line-height:1.2;transform:scale(1);white-space:nowrap;
    position:relative;
    transition:background-color var(--dur-fast) var(--ease-out),
               color var(--dur-fast) var(--ease-out),
               transform var(--dur-base) var(--ease-out);
  }
  .kb-mode-board:hover{background-color:color-mix(in srgb,var(--ink) 5%,transparent)}
  .kb-mode-board:active{transform:scale(0.965)}
  .kb-mode-board:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .kb-mode-board.on{background-color:var(--bg-surface);box-shadow:var(--shadow-sm)}
  .kb-mode-board.on:hover{background-color:var(--bg-surface)}
  .kb-mode-board > svg:last-child{color:var(--fg-3);margin-left:-2px}
  .kb-mode-seg{
    appearance:none;border:0;background-color:transparent;
    display:inline-flex;align-items:center;gap:6px;
    padding:5px 11px;border-radius:6px;
    font:inherit;font-size:var(--fs-12, 12px);font-weight:var(--fw-medium, 500);
    color:var(--fg-3);cursor:pointer;line-height:1.2;transform:scale(1);white-space:nowrap;
    transition:background-color var(--dur-fast) var(--ease-out),
               color var(--dur-fast) var(--ease-out),
               box-shadow var(--dur-fast) var(--ease-out),
               transform var(--dur-base) var(--ease-out);
  }
  .kb-mode-seg:not(.on):hover{background-color:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--fg-1)}
  .kb-mode-seg:active{transform:scale(0.965)}
  .kb-mode-seg:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .kb-mode-seg.on{background-color:var(--bg-surface);color:var(--fg-1);box-shadow:inset 0 0 0 1px var(--border);font-weight:var(--fw-semibold, 600)}

  /* ===== Kanban statistics view ===== */
  .kb-stats-view{
    flex:1 1 auto;min-height:0;overflow:auto;
    padding:18px 24px 24px;
    display:flex;flex-direction:column;gap:22px;
    background:var(--bg-app);
  }
  .kb-stats-section{display:flex;flex-direction:column;gap:12px}
  .kb-stats-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
  .kb-stats-section-head h2{margin:0;font-size:18px;font-weight:var(--fw-semibold, 600);letter-spacing:var(--tracking-tight, -.01em);color:var(--fg-1);line-height:1.2}
  .kb-stats-section-head p{margin:2px 0 0;font-size:13px;color:var(--fg-3);line-height:1.4}

  /* ===== Calendar — date picker dropdown + segmented divider ===== */
  .dp-segmented .seg-divider{
    width:1px;align-self:stretch;background-color:var(--border-default);
    margin:2px 4px;flex-shrink:0;
  }
  .cal-date-picker{position:relative}
  
  
  
  
  
  
  
  
  
  
  .cal-date-picker-foot{
    display:flex;justify-content:flex-end;gap:6px;
    padding-top:6px;border-top:1px solid var(--divider);
  }
  /* Bouton — base + comportements.
     Hover  → background -100
     Press  → background -200 (no scale, no shadow, no bounce)
     Focus  → ring 3px via var(--ring-focus)
     Disabled → opacity 0.5, cursor not-allowed */
  .btn{
    appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;
    padding:7px 13px;font:inherit;font-size:13px;font-weight:500;color:var(--fg-1);
    background-color:var(--bg-surface);border:1px solid var(--border-soft);
    border-radius:var(--radius-sm);cursor:pointer;line-height:1.2;
    transition:background-color var(--dur-fast) var(--ease-out),
               border-color var(--dur-fast) var(--ease-out),
               color var(--dur-fast) var(--ease-out),
               box-shadow var(--dur-fast) var(--ease-out);
  }
  .btn:hover{background-color:var(--bg-subtle);border-color:var(--border-hover)}
  .btn:active{background-color:var(--bg-muted)}
  .btn:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .btn[disabled],.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
  .btn[disabled]:hover,.btn[aria-disabled="true"]:hover{background-color:var(--bg-surface);border-color:var(--border-soft)}
  .btn.sm{padding:5px 9px;font-size:var(--fs-12);border-radius:var(--radius-sm)}
  .btn.lg{padding:9px 16px;font-size:var(--fs-14);border-radius:var(--radius-md)}
  .btn.icon{width:30px;height:30px;padding:0}
  /* CTA pleins — bouton d'action standard : MEME FACTURE que .vdp-btn (hauteur 32,
     radius arrondi, font 13/500, plat), fond charbon. Aligne sur « Discuter avec
     l'assistant » (juin 2026, ex-pilule a ombre, jugee dissonante). On fixe taille et
     police EN DUR car les tokens de police/poids ne sont pas definis (le .btn de base
     retombait sinon a 16px et poids normal). */
  .btn.primary,.btn.accent{background-color:var(--action-bg);color:var(--action-ink);border-color:var(--action-border);border-radius:var(--radius-lg)}
  .btn.primary:not(.icon-only),.btn.accent:not(.icon-only){height:32px;padding:0 14px;gap:7px;font-size:13px;font-weight:500;border-radius:8px}
  .btn.primary:hover,.btn.accent:hover{background-color:var(--action-bg-hover)}
  .btn.primary:active,.btn.accent:active{background-color:var(--ink);border-color:var(--ink)}
  /* Icône à 15px comme .vdp-btn (rendu premium, jamais un glyphe « texte »). */
  .btn.primary svg,.btn.accent svg{width:15px;height:15px}
  .btn.ghost{background-color:transparent;border-color:transparent;color:var(--fg-2)}
  .btn.ghost:hover{background-color:var(--bg-subtle);border-color:var(--border-soft);color:var(--fg-1)}
  .btn.ghost:active{background-color:var(--bg-muted);color:var(--fg-1)}
  .btn.danger{background-color:var(--bg-surface);border-color:color-mix(in srgb,var(--danger-500) 36%,var(--border-default));color:var(--danger-700)}
  .btn.danger:hover{background-color:var(--danger-50);border-color:var(--danger-500);color:var(--danger-700)}
  .btn.danger:active{background-color:color-mix(in srgb,var(--danger-500) 16%,var(--bg-surface));border-color:var(--danger-500)}
  /* Primitives de structure partagées : fermeture, rangement, pied et zones scrollables.
     Elles vivent dans app/_ui/modules/ui/ et remplacent progressivement les classes locales. */
  .ui-close-button{width:26px;height:26px;flex:0 0 auto;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--fg-3);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .ui-close-button--md{width:34px;height:34px}
  .ui-close-button:hover{background:var(--bg-subtle);border-color:var(--border-soft);color:var(--fg-1)}
  .ui-close-button--danger:hover{background:color-mix(in srgb,var(--danger-500) 12%,transparent);color:var(--danger-500)}
  .ui-folder-select{position:relative;display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;min-width:0}
  .ui-folder-select__label{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);flex:0 0 auto}
  .ui-folder-select__control{display:inline-flex;align-items:center;gap:7px;min-width:0;border:0;background:transparent;padding:0;font:inherit;font-size:13px;font-weight:500;color:var(--ink-2);cursor:pointer}
  .ui-folder-select__control svg{width:15px;height:15px;color:var(--ink-4);flex:0 0 auto}
  .ui-folder-select__control svg:last-child{width:13px;height:13px}
  .ui-folder-select__value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ui-panel-header{display:flex;align-items:center;gap:8px;min-width:0;min-height:49px;padding:7px 12px;border-bottom:1px solid var(--border-default);background:var(--bg-subtle)}
  .ui-panel-header__left,.ui-panel-header__center,.ui-panel-header__right{display:flex;align-items:center;min-width:0}
  .ui-panel-header__left{flex:1;gap:9px}
  .ui-panel-header__center{gap:6px;flex:0 0 auto}
  .ui-panel-header__right{gap:8px;flex:0 0 auto}
  .ui-panel-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0;min-height:49px;padding:8px 16px;border-top:1px solid var(--border-default);background:var(--bg-surface)}
  .ui-panel-footer__left,.ui-panel-footer__right{display:flex;align-items:center;min-width:0}
  .ui-panel-footer__left{gap:18px}
  .ui-panel-footer__right{gap:8px;margin-left:auto}
  .ui-scroll-area{position:relative;min-width:0;min-height:0;overscroll-behavior:contain}
  .ui-scroll-area--vertical{overflow-y:auto;overflow-x:hidden}
  .ui-scroll-area--horizontal{overflow-x:auto;overflow-y:hidden}
  @media (pointer:fine){
    .ui-scroll-area--vertical::-webkit-scrollbar{width:8px}
    .ui-scroll-area--horizontal::-webkit-scrollbar{height:8px}
    .ui-scroll-area--compact::-webkit-scrollbar{width:6px;height:6px}
    .ui-scroll-area::-webkit-scrollbar-thumb{background:var(--scroll-pill-thumb);border-radius:999px;border:2px solid transparent;background-clip:padding-box}
    .ui-scroll-area--compact::-webkit-scrollbar-thumb{border-width:1px}
  }
  /* ── Fin de course (comportement UNIQUE, décision Landry 27-07) ────────────
     Le contenu ne bouge pas et il n'y a PAS d'ombre : le seul signal est la
     PILULE — elle se comprime sous la pression publiée par le moteur
     (edge-stretch) puis se détend en se posant. Elle flotte dans la
     respiration intérieure de la zone (≥ 8 px), façon Linear/macOS. */
  /* La barre native disparaît AVANT l'injection JS dès que le contexte déclare
     une pilule. Les sélecteurs legacy évitent le flash sur les surfaces pas
     encore portées vers data-scroll-mode ; le tactile garde son indicateur natif. */
  @media (pointer: fine){
    [data-scroll-mode="pill"],
    .edge-stretch,
    .side,
    .vc-aside,
    .vc-main-col,
    .gk-col-body,
    .gk-statscroll,
    .asst-scroll,
    .asst-atmenu,
    .jc-menu-scroll,
    .ct-lscroll,
    .ct-detail,
    .cdet-content,
    .cdet-content2,
    .cdet-rail,
    .cve-midscroll,
    .cve-prevscroll,
    .cve-lib2-scroll,
    .cve-railscroll,
    .cve-drawer-body,
    .cve-profile-list,
    .display-modal .dm-body,
    .boards-mgr .bm-body,
    .fm-move,
    .vdp-asst-flow,
    :has(> .ui-scrollpill-host){scrollbar-width:none}
    [data-scroll-mode="pill"]::-webkit-scrollbar,
    .edge-stretch::-webkit-scrollbar,
    .side::-webkit-scrollbar,
    .vc-aside::-webkit-scrollbar,
    .vc-main-col::-webkit-scrollbar,
    .gk-col-body::-webkit-scrollbar,
    .gk-statscroll::-webkit-scrollbar,
    .asst-scroll::-webkit-scrollbar,
    .asst-atmenu::-webkit-scrollbar,
    .jc-menu-scroll::-webkit-scrollbar,
    .ct-lscroll::-webkit-scrollbar,
    .ct-detail::-webkit-scrollbar,
    .cdet-content::-webkit-scrollbar,
    .cdet-content2::-webkit-scrollbar,
    .cdet-rail::-webkit-scrollbar,
    .cve-midscroll::-webkit-scrollbar,
    .cve-prevscroll::-webkit-scrollbar,
    .cve-lib2-scroll::-webkit-scrollbar,
    .cve-railscroll::-webkit-scrollbar,
    .cve-drawer-body::-webkit-scrollbar,
    .cve-profile-list::-webkit-scrollbar,
    .display-modal .dm-body::-webkit-scrollbar,
    .boards-mgr .bm-body::-webkit-scrollbar,
    .fm-move::-webkit-scrollbar,
    .vdp-asst-flow::-webkit-scrollbar,
    :has(> .ui-scrollpill-host)::-webkit-scrollbar{display:none}
  }
  @media (prefers-reduced-motion: reduce){
    .ui-scrollpill{transition:none !important}
  }
  /* Rail en SUPERPOSITION (décision Landry 27-07) : pas de gouttière réservée —
     la pilule flotte au-dessus du bord du contenu, façon iPad ; l'empilement
     élevé garantit qu'aucun élément de la zone ne la recouvre. */
  .ui-scrollpill-host{position:sticky;top:0;height:0;z-index:30;transform:none !important;align-self:stretch;flex:0 0 auto;width:100%;min-width:0;pointer-events:none}
  .ui-scrollpill{position:absolute;top:0;right:1px;width:10px;display:flex;justify-content:flex-end;align-items:stretch;
    opacity:0;cursor:default;pointer-events:auto;
    /* Pendant la pression, contenu et pilule lisent la même géométrie sans amorti.
       Au relâchement, seul le déplacement composé se pose pendant 300 ms. */
    transition:opacity 420ms var(--ease-out)}
  .ui-scrollpill i{display:block;width:3px;border-radius:99px;background:var(--scroll-pill-thumb);
    transition:background-color 160ms var(--ease-out)}
  [data-pill="on"] > .ui-scrollpill-host .ui-scrollpill{opacity:1;
    transition:opacity 120ms var(--ease-out)}
  [data-overscroll] > .ui-scrollpill-host .ui-scrollpill{opacity:1}
  [data-overscroll] > .ui-scrollpill-host .ui-scrollpill i{width:4px;background:var(--scroll-pill-thumb-hover)}
  [data-overscroll="release"] > .ui-scrollpill-host .ui-scrollpill{
    transition:opacity 120ms var(--ease-out),transform 300ms var(--ease-out)}
  [data-pill-hover] > .ui-scrollpill-host .ui-scrollpill i{width:6px;background:var(--scroll-pill-thumb-hover)}
  [data-pill-drag] > .ui-scrollpill-host .ui-scrollpill{opacity:1}
  [data-pill-drag] > .ui-scrollpill-host .ui-scrollpill i{width:6px;background:var(--scroll-pill-thumb-active)}
  /* Les bureaux documentaires gardent leurs indicateurs historiques : clairs
     sur le bureau CV anthracite, graphite sur le bureau lettre beige. */
  .fm-document-preview-html,
  .cvedit[data-doc="cv"] .cve-letterbody > .cve-prevscroll,
  .cve-optA .cve-canvas{
    --scroll-pill-thumb:rgba(255,255,255,.34);
    --scroll-pill-thumb-hover:rgba(255,255,255,.54);
    --scroll-pill-thumb-active:rgba(255,255,255,.70);
    --scroll-native-touch-thumb:rgba(255,255,255,.56);
  }
  .cvedit[data-doc="lettre"] .cve-letterbody > .cve-prevscroll,
  .cvedit[data-doc="lettre"] .cve-optA .cve-canvas{
    --scroll-pill-thumb:rgba(66,56,38,.40);
    --scroll-pill-thumb-hover:rgba(66,56,38,.58);
    --scroll-pill-thumb-active:rgba(66,56,38,.72);
    --scroll-native-touch-thumb:rgba(66,56,38,.52);
  }

  .btn-kbd{font-family:var(--font-mono);font-size:10px;color:var(--fg-4);background-color:var(--bg-subtle);border:1px solid var(--border-default);padding:1px 5px;border-radius:var(--radius-xs);margin-left:4px}
  /* Icon-only button tooltip — portal'd to <body>, positioned via JS (position:fixed) */
  .btn-tip{
    position:fixed;
    background-color:var(--ink);color:var(--fg-inverse);
    font-family:var(--font-sans);font-size:11.5px;font-weight:500;letter-spacing:0;line-height:1.3;
    padding:6px 10px;border-radius:6px;white-space:nowrap;pointer-events:none;
    box-shadow:var(--shadow-popover);
    z-index:2147483647;
    isolation:isolate;
    will-change:transform,opacity;
  }
  /* Above the button — anchor with bottom edge at top:Y, slide up to settle */
  .btn-tip--above{transform:translate(-50%, -100%)}
  .btn-tip--above{animation: btn-tip-above-in 200ms var(--dur-instant) var(--ease-out) both}
  @keyframes btn-tip-above-in{
    from{opacity:0;transform:translate(-50%, -100%) translateY(4px)}
    to  {opacity:1;transform:translate(-50%, -100%) translateY(0)}
  }
  /* Below the button — anchor with top edge at top:Y, slide down to settle */
  .btn-tip--below{transform:translate(-50%, 0)}
  .btn-tip--below{animation: btn-tip-below-in 200ms var(--dur-instant) var(--ease-out) both}
  @keyframes btn-tip-below-in{
    from{opacity:0;transform:translate(-50%, 0) translateY(-4px)}
    to  {opacity:1;transform:translate(-50%, 0) translateY(0)}
  }
  /* Subtle directional caret — points back at the button */
  .btn-tip::before{
    content:"";position:absolute;left:50%;width:8px;height:8px;
    background-color:var(--ink);transform:translateX(-50%) rotate(45deg);
    border-radius:1px;
  }
  .btn-tip--above::before{bottom:-3px}
  .btn-tip--below::before{top:-3px}

  /* ===== Tags / Chips ===== */
  /* Status-chip — radio-like chip for picking a destination column.
     DS-compliant: subtle surface at rest, dark fill when selected. */
  
  
  
  
  
  
  

  .tag{
    display:inline-flex;align-items:center;gap:5px;padding:2px 8px;
    font-size:11px;font-weight:500;color:var(--ink-2);
    background:var(--surface-2);border:1px solid var(--border-soft);border-radius:6px;
    line-height:1.45;white-space:nowrap;
  }
  .tag .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.75}
  .tag.solid{background:var(--ink);color:var(--fg-inverse);border-color:var(--ink)}
  .tag.accent{background:var(--accent-soft);color:var(--accent-ink);border-color:color-mix(in srgb,var(--accent-ink) 15%,transparent)}
  .tag.accent-strong{background:var(--accent);color:var(--fg-inverse);border-color:var(--accent)}
  .tag.good{background:var(--success-50);color:var(--success-700);border-color:color-mix(in srgb,var(--success-700) 15%,transparent)}
  .tag.warn{background:var(--warning-50);color:var(--warning-700);border-color:color-mix(in srgb,var(--warning-700) 15%,transparent)}
  .tag.bad{background:var(--danger-50);color:var(--danger-700);border-color:color-mix(in srgb,var(--danger-700) 15%,transparent)}
  .tag.info{background:var(--info-soft);color:var(--info-ink);border-color:color-mix(in srgb,var(--info-ink) 15%,transparent)}
  .tag.outline{background:transparent;color:var(--ink-3);border:1px dashed var(--border-strong)}
  /* Atelier : les quatre couleurs d’étiquette décrivent une catégorie, jamais une décoration.
     Elles sont partagées par les écrans applicatifs qui exposent ces mêmes catégories. */
  .tag.cyan{background:var(--tag-cyan);color:var(--tag-cyan-ink);border-color:var(--tag-cyan-border)}
  .tag.amber{background:var(--tag-amber);color:var(--tag-amber-ink);border-color:var(--tag-amber-border)}
  .tag.violet{background:var(--tag-violet);color:var(--tag-violet-ink);border-color:var(--tag-violet-border)}
  .tag.green{background:var(--tag-green);color:var(--tag-green-ink);border-color:var(--tag-green-border)}
  /* Le feed Vault consomme désormais l’atome Tag. Son gabarit compact garde cependant
     ses dimensions historiques, afin que ce raccord ne déplace aucune ligne du journal. */
  .vcj-xtag.tag{height:20px;padding:0 8px;border-radius:6px;background:var(--surface);color:var(--ink-3);font-size:11px;font-weight:500;line-height:normal}
  .vcj-extra .vcj-xtag.tag{height:22px;padding:0 9px;border-radius:5px;font-size:11.5px;font-weight:600}
  .vcj-extra-tags .vcj-xtag.tag{background:var(--tag-cyan);color:var(--tag-cyan-ink);border-color:color-mix(in srgb,var(--tag-cyan-ink) 15%,transparent)}
  .vcj-extra-tags .vcj-xtag.tag:nth-child(3n + 2){background:var(--tag-amber);color:var(--tag-amber-ink);border-color:color-mix(in srgb,var(--tag-amber-ink) 15%,transparent)}
  .vcj-extra-tags .vcj-xtag.tag:nth-child(3n){background:var(--tag-violet);color:var(--tag-violet-ink);border-color:color-mix(in srgb,var(--tag-violet-ink) 15%,transparent)}
  .vcj-extra-skills .vcj-xtag.tag{background:var(--tag-violet);color:var(--tag-violet-ink);border-color:color-mix(in srgb,var(--tag-violet-ink) 15%,transparent)}
  .vcj-extra-stack .vcj-xtag.tag{background:var(--tag-green);color:var(--tag-green-ink);border-color:color-mix(in srgb,var(--tag-green-ink) 15%,transparent)}
  .tag.lg{padding:3px 10px;font-size:12px;border-radius:6px}
  .tag.xs{padding:1px 6px;font-size:10px;font-weight:600;border-radius:3px;font-family:var(--font-sans);letter-spacing:.01em}
  .tag.xs.warn,.tag.xs.bad,.tag.xs.good{text-transform:lowercase}

  /* ===== Logos (company squircles) =====
     Design system: "Avatars utilisateur et logos d'entreprise : carré
     ou rond avec coins arrondis (6–8px), bordure 1px discrète, pas
     de filtre, pas de teinte appliquée." Tous unifiés en gris slate;
     différenciation par initiales uniquement. */
  .logo{
    width:32px;height:32px;border-radius:6px;display:grid;place-items:center;
    font-weight:600;font-size:12px;letter-spacing:-.01em;
    color:var(--ink-2);background:var(--bg-2);
    border:1px solid var(--border);flex:0 0 auto;
    font-variant-numeric:tabular-nums;
  }
  .logo.sm{width:24px;height:24px;font-size:10px;border-radius:6px}
  .logo.md{width:38px;height:38px;font-size:13px;border-radius:8px}
  .logo.lg{width:48px;height:48px;font-size:15px;border-radius:8px}
  .logo.xl{width:64px;height:64px;font-size:20px;border-radius:10px}
  /* All variants — single neutral surface, no tints */
  .logo.c1, .logo.c2, .logo.c3, .logo.c4, .logo.c5,
  .logo.c6, .logo.c7, .logo.c8, .logo.c9, .logo.c10{
    background:var(--bg-2);color:var(--ink-2);border:1px solid var(--border);
  }

  /* ===== Fields ===== */
  .field{display:flex;flex-direction:column;gap:5px}
  .field label{font-size:11px;color:var(--ink-3);font-weight:500;letter-spacing:.01em;text-transform:uppercase}
  .input{
    border:1px solid var(--border-soft);background:var(--surface);border-radius:8px;
    padding:8px 11px;font:inherit;font-size:13.5px;color:var(--ink);width:100%;line-height:1.4;
    transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
  }
  .input:hover{border-color:var(--border-hover)}
  .input:focus,.input:focus-visible{border-color:var(--accent);outline:0;box-shadow:var(--ring-focus)}
  .input.lg{font-size:15px;padding:10px 13px;font-weight:500}
  .input.url{font-family:var(--font-mono);font-size:12px;color:var(--ink-2)}
  .input[readonly]{background:var(--bg-2)}
  .segmented{
    display:inline-flex;gap:0;border:1px solid var(--border-soft);border-radius:8px;padding:3px;background:var(--bg-2);
  }
  .segmented .seg{
    appearance:none;border:0;background:transparent;font:inherit;text-align:inherit;
    padding:5px 11px;font-size:12px;font-weight:500;color:var(--ink-3);border-radius:6px;cursor:pointer;line-height:1.2;
    transform:scale(1);
    transition:background-color var(--dur-fast) var(--ease-out),
               color var(--dur-fast) var(--ease-out),
               transform var(--dur-base) var(--ease-out),
               box-shadow var(--dur-fast) var(--ease-out);
  }
  .segmented .seg:not(.on):hover{background-color:var(--surface);color:var(--ink)}
  .segmented .seg:active{transform:scale(0.965)}
  .segmented .seg.on{background-color:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--border)}
  .segmented .seg:focus-visible{outline:0;box-shadow:var(--ring-focus)}

  /* ===== Kanban ===== */
  /* Kanban header (toolbar + focus banner stays fixed at the top of the middle column) */
  .kb-header{
    background:var(--bg);flex:0 0 auto;z-index:15;
  }

  .kanban-toolbar{
    display:flex;align-items:center;gap:10px;padding:6px 16px;
    background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;
  }
  .kanban-toolbar .left,.kanban-toolbar .right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .kanban-toolbar .right{margin-left:auto}
  
  
  
  
  

  /* Board title (in kanban toolbar) — prominent pill */
  .board-title{
    display:inline-flex;align-items:center;gap:8px;line-height:1;min-width:0;
    padding:7px 14px;border-radius:8px;cursor:pointer;
    background:var(--accent-soft);border:1px solid var(--accent-soft-2);
    transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
    position:relative;color:var(--accent-ink);
  }
  .board-title:hover{background:var(--accent-soft-2);border-color:var(--accent-300)}
  .board-title:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .board-title .bt-ico{
    display:grid;place-items:center;width:18px;height:18px;
    background:var(--accent);color:var(--fg-inverse);border-radius:6px;flex:0 0 auto;
  }
  .board-title .bt-name{
    font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--accent-ink);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px;
  }

  /* Boards popover (compact picker) */
  .boards-popover{
    position:absolute;top:calc(100% + 6px);left:0;z-index:40;
    width:320px;background:var(--surface);border:1px solid var(--border);
    border-radius:13px;box-shadow:var(--shadow-md);
    padding:8px;display:flex;flex-direction:column;gap:2px;
    animation:slideUp var(--dur-fast) var(--ease-out);
  }
  .boards-popover .bp-search{
    display:flex;align-items:center;gap:8px;padding:8px 10px;
    background:var(--bg-2);border:1px solid var(--border);border-radius:8px;
    font-size:12.5px;color:var(--ink-3);margin-bottom:4px;
  }
  .boards-popover .bp-search input{
    border:0;background:transparent;font:inherit;font-size:12.5px;
    color:var(--ink);flex:1;outline:none;
  }
  .boards-popover .bp-item{
    display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:8px;
    cursor:pointer;font-size:13px;color:var(--ink-2);
  }
  .boards-popover .bp-item:hover{background:var(--bg-2);color:var(--ink)}
  .boards-popover .bp-item.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:500}
  .boards-popover .bp-item .ic{color:var(--ink-3);width:14px;height:14px;display:grid;place-items:center;flex:0 0 auto}
  .boards-popover .bp-item.active .ic{color:var(--accent)}
  .boards-popover .bp-item .nm{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .boards-popover .bp-item .cnt{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);background:var(--bg-2);border:1px solid var(--border);padding:1px 6px;border-radius:6px}
  .boards-popover .bp-item.active .cnt{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent-ink);border-color:transparent}
  .boards-popover .bp-sub{
    margin-left:24px;display:flex;flex-direction:column;gap:1px;
    padding:1px 0 3px;border-left:1.5px solid var(--border);padding-left:10px;
  }
  .boards-popover .bp-sub .bp-item{padding:5px 8px;font-size:12px;color:var(--ink-3)}
  .boards-popover .bp-sub .bp-item.active{color:var(--accent-ink)}
  .boards-popover .bp-divider{height:1px;background:var(--border);margin:6px 0}
  .boards-popover .bp-foot{
    display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 4px 2px;margin-top:2px;
  }
  .boards-popover .bp-foot .add{
    display:flex;align-items:center;gap:6px;background:transparent;border:0;
    font:inherit;font-size:12.5px;color:var(--accent-ink);font-weight:500;cursor:pointer;
    padding:5px 6px;border-radius:6px;
  }
  .boards-popover .bp-foot .add:hover{background:var(--accent-soft)}
  .boards-popover .bp-foot .manage{
    background:transparent;border:0;font:inherit;font-size:12px;color:var(--ink-3);
    cursor:pointer;padding:5px 6px;border-radius:6px;
  }
  .boards-popover .bp-foot .manage:hover{background:var(--bg-2);color:var(--ink-2)}

  /* Boards manager — full modal */
  .boards-mgr{
    width:min(720px,100%);max-height:calc(100vh - 64px);
    background:var(--surface);border:1px solid var(--border);border-radius:14px;
    box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column;
    animation:slideUp var(--dur-fast) var(--ease-out);
  }
  .boards-mgr .bm-head{
    padding:14px 18px;border-bottom:1px solid var(--border);background:var(--surface);
    display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  }
  .boards-mgr .bm-head h3{font-size:16px}
  .boards-mgr .bm-head p{font-size:12.5px;color:var(--ink-3);margin-top:2px}
  .boards-mgr .bm-body{padding:14px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}
  .boards-mgr .bm-foot{
    padding:10px 18px;border-top:1px solid var(--border);background:var(--surface-2);
    display:flex;justify-content:space-between;align-items:center;gap:8px;
  }
  .bm-row{
    display:flex;align-items:center;gap:10px;padding:10px 12px;
    background:var(--bg-2);border:1px solid var(--border);border-radius:8px;
  }
  .bm-row.active{background:var(--accent-soft);border-color:var(--accent-soft-2)}
  .bm-row .ic{color:var(--ink-3);width:18px;height:18px;display:grid;place-items:center;flex:0 0 auto}
  .bm-row.active .ic{color:var(--accent)}
  .bm-row .body{flex:1;min-width:0}
  .bm-row .body .nm{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.25}
  .bm-row .body .sub{font-size:11.5px;color:var(--ink-3);margin-top:1px;display:flex;align-items:center;gap:5px}
  .bm-row .actions{display:flex;gap:4px;opacity:.6}
  .bm-row:hover .actions{opacity:1}
  .bm-sub-list{margin:6px 0 6px 28px;padding-left:14px;border-left:1.5px solid var(--border);display:flex;flex-direction:column;gap:4px}
  .bm-sub-list .bm-row{padding:6px 10px;background:var(--surface)}
  .bm-sub-list .bm-row .body .nm{font-size:12.5px;font-weight:500}
  .bm-sub-list .bm-row.active{background:var(--accent-soft)}

  
  
  
  
  
  

  .col-add{
    display:flex;align-items:center;justify-content:center;gap:6px;
    padding:8px;border-radius:8px;border:1px dashed var(--border-strong);background:transparent;
    color:var(--ink-3);font-size:12px;font-weight:500;cursor:pointer;transition: background-color var(--dur-fast) var(--ease-out);
  }
  .col-add:hover{background:var(--surface);color:var(--ink-2)}

  /* dense kanban card */
.kc{
    /* Canon : la carte est LE premier plan — blanche, filetée, jamais
       plus sombre que ce qui la contient. */
    background:var(--tile);border:1px solid var(--border-soft);border-radius:8px;
    padding:12px;display:flex;flex-direction:column;gap:8px;
    box-shadow:var(--shadow-xs);cursor:pointer;
    transform:scale(1);
    transition:transform var(--dur-base) var(--ease-out),
               box-shadow var(--dur-fast) var(--ease-out),
               border-color var(--dur-fast) var(--ease-out);
    position:relative;
  }
  /* Selected card state — repère NEUTRE (les bandeaux/barres bleus sur les tuiles
     sont abandonnés : ne JAMAIS réintroduire de bord/inset accent sur une carte). */
  .kc.selected,.kc[aria-selected="true"]{
    border-color:var(--border-strong);
  }
  .kc.selected:hover,.kc[aria-selected="true"]:hover{
    border-color:var(--ink-3);box-shadow:var(--shadow-sm);
  }
  .list-row.selected,.list-row[aria-selected="true"]{
    background:var(--bg-2);
  }
  .kc:hover{transform:none;box-shadow:var(--shadow-sm);border-color:var(--border-strong)}
  .kc:active{
    transform:scale(0.985);
    box-shadow:inset 0 1px 2px color-mix(in srgb,var(--ink) 12%,transparent);
    border-color:var(--border-strong);
  }
  .kc:focus-visible{outline:0;box-shadow:var(--ring-focus);border-color:var(--accent)}
  /* .kc.priority : plus de bandeau bleu (abandonné). Carte normale, aucun repère accent. */

  /* ── Glisser-déposer (façon Trello) ── */
  .kc[draggable="true"]{cursor:grab}
  .kc[draggable="true"]:active{cursor:grabbing}
  .kc.dragging{opacity:.4;cursor:grabbing;transform:none}
  @keyframes dropslot-in{from{opacity:0;transform:scaleY(.6)}to{opacity:1;transform:scaleY(1)}}

  /* ── Choix d'issue au dépôt en « Terminé » ── */
  .endpick-scrim{position:fixed;inset:0;z-index:70;background:var(--scrim);backdrop-filter:blur(2px);
    display:flex;align-items:center;justify-content:center;padding:24px;animation:endpick-fade var(--dur-fast) var(--ease-out)}
  @keyframes endpick-fade{from{opacity:0}to{opacity:1}}
  .endpick{width:min(420px,92vw);background:var(--surface);border:1px solid var(--border);border-radius:16px;
    box-shadow:var(--shadow-lg);overflow:hidden;animation:endpick-pop var(--dur-base) var(--ease-out)}
  @keyframes endpick-pop{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
  .endpick-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 18px 14px}
  .endpick-eyebrow{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
  .endpick-titles h3{margin:5px 0 4px;font-size:17px;font-weight:600;color:var(--ink);line-height:1.25}
  .endpick-titles p{margin:0;font-size:12.5px;color:var(--ink-3);line-height:1.35}
  .endpick-x{flex-shrink:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;
    border:0;border-radius:8px;background:transparent;color:var(--ink-3);cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}
  .endpick-x:hover{background:var(--bg-2);color:var(--ink)}
  .endpick-opts{display:flex;flex-direction:column;gap:2px;padding:6px 10px 12px}
  .endpick-opt{display:flex;align-items:center;gap:11px;padding:11px 10px;border:0;border-radius:10px;background:transparent;
    cursor:pointer;text-align:left;color:var(--ink);transition:background var(--dur-fast) var(--ease-out)}
  .endpick-opt:hover{background:var(--bg-2)}
  .endpick-label{font-size:13.5px;font-weight:500}
  .endpick-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;background:var(--ink-4)}
  .endpick-dot.good{background:var(--good)}
  .endpick-dot.warn{background:var(--warn)}
  .endpick-dot.bad{background:var(--bad)}
  .endpick-dot.accent{background:var(--accent)}
  .endpick-dot.info{background:var(--info)}

  .kc-head{display:flex;gap:8px;align-items:flex-start;padding-right:30px}
  .kc-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .kc-co{font-weight:600;font-size:13.5px;line-height:1.4;color:var(--ink)}
  .kc-role{
    font-size:12px;color:var(--ink-2);line-height:1.45;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
    overflow:hidden;
  }
  .kc-loc{font-size:11px;color:var(--ink-3);line-height:1.35;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
  .kc-loc .sep{color:var(--ink-5)}
  
  
  .kc-facts{display:flex;min-width:0}
  .kc-facts .row-wrap{gap:5px;min-width:0}

  .kc-score{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:8px}
  .kc-score-label{font-size:10.5px;color:var(--ink-4);font-weight:500}

  .match-row{display:flex;align-items:center;gap:8px}
  .match-bar{flex:1;height:3px;background:var(--bg-2);border-radius:99px;overflow:hidden;border:1px solid var(--border)}
  .kc-score .match-bar{
    position:relative;height:2px;min-height:2px;max-height:2px;
    border:0;border-top:2px solid var(--slate-100);border-radius:0;overflow:visible;
  }
  .kc-score .match-bar i{
    position:absolute;inset-block-start:-2px;inset-inline-start:0;
    height:0;min-height:0;max-height:0;
    border:0;border-top:2px solid var(--slate-400);border-radius:0;background:transparent;
  }
  .match-bar i{display:block;height:100%;border-radius:99px;background:var(--ink)}
  .match-val{font-family:var(--font-mono);font-size:10.5px;color:var(--ink);font-weight:600}
  .match-row.tone-good .match-val{color:var(--good)}
  .match-row.tone-warn .match-val{color:var(--warn)}
  .match-row.tone-bad .match-val{color:var(--bad)}
  .kc-score .match-row .match-val{color:var(--slate-500)}

  
  .ats{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;color:var(--ink-3)}
  .ats-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--ink-4);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--ink) 10%,transparent)}
  .ats-dot.g{background:var(--good)}
  .ats-dot.w{background:var(--warn)}
  .ats-dot.b{background:var(--bad)}

  .kc-foot{display:flex;align-items:center;justify-content:space-between;padding-top:7px;border-top:1px solid var(--hairline);gap:8px}
  .kc-foot-dates{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:11px}
  /* Canon : le mono est réservé aux VALEURS, pas aux libellés. */
  .kc-date-note{font-family:var(--font-sans);font-size:10.5px;letter-spacing:.02em;color:var(--ink-3);text-transform:uppercase}
  .kc-date-note.deadline{letter-spacing:.02em;color:var(--ink-3)}
  .kc-date-note.urgent{color:var(--bad)}
  .kc-foot .stack-icons{display:inline-flex;align-items:center}
  .kc-foot .stack-icons .av{
    width:18px;height:18px;border-radius:999px;border:1.5px solid var(--surface);
    margin-left:-5px;background:var(--ink-4);color:var(--fg-inverse);
  }
  .kc-foot .stack-icons .av:first-child{margin-left:0}
  .kc-foot .stack-icons .av.c1{background:var(--ink-2)}
  .kc-foot .stack-icons .av.c5{background:var(--ink-3)}
  .kc-foot .stack-icons .av.c8{background:var(--ink)}
  .kc-foot .deadline{font-size:11px;font-family:var(--font-mono);color:var(--ink-3)}
  .kc-foot .deadline.urgent{color:var(--bad)}

  /* stat-strip retirée (juin 2026, Landry) — CSS supprimée. Voir CLAUDE.md › Tableau. */

  /* ===== Overlay modal (detail + add) ===== */
  .overlay{
    position:fixed;inset:0;z-index:80;
    background:var(--scrim);backdrop-filter: blur(4px);-webkit-backdrop-filter:blur(4px);
    display:flex;align-items:center;justify-content:center;padding:28px;
    animation:fadeIn var(--dur-fast) var(--ease-out);
  }
  @keyframes fadeIn{from{opacity:0}to{opacity:1}}
  @keyframes slideUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
  .modal{
    background:var(--surface);border:1px solid var(--border);border-radius:16px;
    box-shadow:var(--shadow-lg);overflow:hidden;
    width:min(1100px, 92vw);
    height:min(760px, 88vh);
    display:flex;flex-direction:column;
    animation:slideUp var(--dur-fast) var(--ease-out);
  }
  .modal.expanded{
    width:max(1440px, 98vw);
    height:max(900px, 98vh);
    max-width:calc(100vw - 16px);
    max-height:calc(100vh - 16px);
    border-radius:16px;
  }
  /* ===== Fiche candidature — coquille Workspace (juin 2026) ===== */
  /* Disposition en 2 colonnes (Landry juin 2026) : colonne de gauche (rail) sur TOUTE
     LA HAUTEUR, sans header ni footer ; colonne de droite dédiée = header (sysbar) +
     contenu + footer. Le `.cdet-shell2` passe en display:contents pour que rail et
     contenu deviennent des cellules de cette grille. */
  .cdet-workspace{flex:1;min-height:0;padding:8px;background:var(--bg);display:flex;overflow:hidden}
  .cdet-modal2{padding:0;display:grid;grid-template-columns:288px 1fr;grid-template-rows:auto 1fr auto;grid-template-areas:"rail header" "rail body" "rail footer";width:min(1100px,92vw);height:min(760px,88vh);border:0;border-radius:16px;overflow:hidden;background:var(--bg-surface)}
  .cdet-modal2--workspace{width:100%;height:100%;max-width:none;max-height:none;border:1px solid var(--border-default);box-shadow:none;animation:none}
  .cdet-sysbar{grid-area:header}
  .cdet-sysbar-docs{display:flex;align-items:center;gap:6px;flex-shrink:0}
  .cdet-sysbar-docs .btn.ghost{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--ink-2);border-radius:8px;height:30px;padding:0 11px;white-space:nowrap;transition:border-color .18s var(--ease-out),color .18s var(--ease-out)}
  .cdet-sysbar-docs .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--bg-surface)}
  .cdet-sysbar-docs .btn svg{flex-shrink:0}
  .cdet-sysbar-l{display:flex;align-items:center;gap:9px;min-width:0;flex:1}
  .cdet-sysbar-r{display:flex;align-items:center;gap:4px;flex-shrink:0}
  .cdet-sysback{display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:12px;font-weight:500;color:var(--fg-2);background:var(--bg-surface);border:1px solid var(--border-soft);border-radius:99px;padding:0 9px 0 7px;height:26px;cursor:pointer;transition:background 180ms cubic-bezier(.16,1,.3,1),border-color 180ms cubic-bezier(.16,1,.3,1),color 180ms cubic-bezier(.16,1,.3,1)}
  .cdet-sysback svg{color:var(--fg-3)}
  .cdet-sysback:hover{background:var(--bg-subtle);border-color:var(--border-input);color:var(--fg-1)}
  .cdet-sysback:hover svg{color:var(--fg-2)}
  .cdet-sysbar-sep{width:1px;height:18px;background:var(--border-default);flex:0 0 auto;font-size:0;color:transparent}
  .cdet-sysbar-meta{font-size:11px;color:var(--fg-3);font-family:var(--font-mono)}
  .cdet-banner2{display:flex;align-items:flex-start;gap:14px;padding:16px 20px;flex-shrink:0}
  .cdet-banner2-id{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
  .cdet-banner2-title{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
  .cdet-banner2-title h3{margin:0;font-size:19px;letter-spacing:-.01em;color:var(--fg-1)}
  .cdet-banner2-role{font-size:15px;color:var(--fg-3);font-weight:500}
  
  
  
  
  .cdet-banner2-acts{display:flex;align-items:flex-start;gap:5px;flex-shrink:0}
  .cdet-shell2{display:contents}
  .cdet-railnav{grid-area:rail;border-right:1px solid var(--border-default);background:var(--bg-app);display:flex;flex-direction:column;overflow:hidden;min-height:0}
  /* Identité du poste en tête de la colonne de gauche, sur fond SOMBRE pour isoler la
     société. Mise en page « fiche structurée » (option 2, Landry juin 2026) :
     en-tête logo + société/poste · grille clé-valeur · 3 indicateurs chiffrés en pied
     (Score ATS · Alignement · probabilité d'offre fictive) façon gros chiffre + filet. */
  .cdet-railid{display:flex;flex-direction:column;gap:11px;padding:13px 14px 12px;background:var(--sidebar-bg);flex:0 0 auto;text-align:left}
  /* Logo aligné sur la HAUTEUR du bloc société/poste (Landry juin 2026) : il s'étire
     à la hauteur de l'en-tête et reste carré. */
  .cdet-railid-head{display:flex;align-items:stretch;gap:9px}
  .cdet-railid-head .logo{align-self:stretch;width:auto;height:auto;aspect-ratio:1;min-width:36px;font-size:14px;border-radius:8px}
  .cdet-railid-idblock{min-width:0;display:flex;flex-direction:column;justify-content:center}
  .cdet-railid-name{font-size:12.5px;font-weight:600;color:var(--sidebar-fg-strong);line-height:1.2;letter-spacing:-.01em}
  .cdet-railid-role{font-size:10.5px;color:var(--sidebar-fg);line-height:1.3;margin-top:1px;text-wrap:pretty}
  /* Infos du poste en PASTILLES (Landry juin 2026) : libellé en tooltip (title), valeur
     dans une pilule translucide qui wrap. */
  .cdet-railid-grid{display:flex;flex-wrap:wrap;gap:6px}
  .cdet-railid-kv{display:inline-flex;align-items:center;background:var(--sidebar-hover);border-radius:999px;padding:4px 10px;min-width:0;max-width:100%}
  .cdet-railid-kv--date{background:var(--sidebar-command-hover-bg)}
  .cdet-railid-kv svg{flex:0 0 auto;margin-right:5px;color:var(--sidebar-fg)}
  .cdet-railid-kv .k{display:none}
  .cdet-railid-kv .v{font-size:11px;font-weight:500;color:var(--sidebar-fg);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cdet-idstats{display:flex;align-items:stretch;border-top:1px solid color-mix(in srgb,var(--sidebar-fg-strong) 40%,transparent);padding-top:10px;margin-top:1px}
  .cdet-idstat{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;padding:0 2px;min-width:0}
  .cdet-idstat + .cdet-idstat{border-left:1px solid color-mix(in srgb,var(--sidebar-fg-strong) 40%,transparent)}
  .cdet-idstat .v{font-family:var(--font-mono);font-size:16px;font-weight:600;color:var(--sidebar-fg-strong);line-height:1;font-variant-numeric:tabular-nums}
  /* Jeu de couleurs sémantique des 3 indicateurs (Landry juin 2026) — teintes
     éclaircies pour rester lisibles sur le fond sombre. */
  .cdet-idstat.tone-good .v{color:var(--good)}
  .cdet-idstat.tone-warn .v{color:var(--warn)}
  .cdet-idstat.tone-bad .v{color:var(--bad)}
  .cdet-idstat .l{font-family:var(--font-sans,inherit);font-size:9px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--sidebar-fg-strong);line-height:1.2;white-space:nowrap}
  .cdet-railcoach{display:flex;align-items:flex-start;gap:8px;border:1px solid var(--sidebar-command-border);border-radius:10px;background:var(--sidebar-command-bg);padding:9px 10px;color:var(--sidebar-fg);font-size:11px;line-height:1.35;text-wrap:pretty}
  .cdet-railcoach svg{flex:0 0 auto;margin-top:1px;color:var(--sidebar-fg-muted)}
  .cdet-railgrp{padding:14px}
  /* « Sections » = groupe du milieu : prend l'espace dispo et défile seul si besoin. */
  .cdet-railgrp:not(:last-child){flex:1 1 auto;min-height:0;overflow-y:auto}
  .cdet-railgrp + .cdet-railgrp{border-top:1px solid var(--border-default)}
  /* « Suivi » = dernier groupe : COMPACT et ÉPINGLÉ EN BAS du rail (collé au pied),
     bien SÉPARÉ du groupe « Sections » du dessus — deux éléments distincts (Landry). */
  .cdet-railnav .cdet-railgrp:last-child{flex:0 0 auto;padding:9px 14px 11px}
  .cdet-railnav .cdet-railgrp:last-child .cdet-railgrp-eb{margin-bottom:7px}
  .cdet-railnav .cdet-railgrp:last-child .cdet-railitem{padding:7px 11px}
  .cdet-railgrp-eb{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);font-weight:600;margin-bottom:10px}
  .cdet-railitem{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;border-radius:8px;cursor:pointer;font:inherit;font-size:13px;color:var(--fg-2);background:none;border:none;text-align:left;transition:background var(--dur-fast) var(--ease-out)}
  .cdet-railitem:hover{background:var(--bg-subtle)}
  .cdet-railitem.on{background:var(--fg-1);color:var(--fg-inverse)}
  .cdet-railitem-l{display:flex;align-items:center;gap:9px;min-width:0}
  .cdet-railitem-l span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
  .cdet-railitem.on .cdet-railitem-l span{font-weight:600}
  .cdet-railitem-meta{
    min-width:20px;height:20px;padding:0 6px;display:inline-grid;place-items:center;
    border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--bg-muted);
    font-size:10px;font-weight:600;color:var(--fg-2);line-height:1;flex-shrink:0;font-family:var(--font-mono);
  }
  .cdet-railitem.on .cdet-railitem-meta{color:var(--fg-inverse);border-color:color-mix(in srgb,currentColor 22%,transparent);background:color-mix(in srgb,currentColor 12%,transparent)}
  .cdet-content2{grid-area:body;padding:12px 14px}
  /* Une seule source de marge autour du contenu : le `.cdet-panel` interne n'ajoute
     plus son propre padding (évite le double padding — Landry juin 2026). */
  .cdet-content2 > .cdet-panel{display:flex;flex-direction:column;gap:10px;padding:0}
  .cdet-foot2{grid-area:footer}
  .cdet-foot2-meta{display:flex;align-items:center;gap:18px}
  .cdet-foot2-fm{display:flex;flex-direction:column;gap:2px}
  .cdet-foot2-fm .fl{font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--fg-3);font-weight:600}
  .cdet-foot2-fm .fv{font-size:12.5px;color:var(--fg-2);font-weight:500}
  .cdet-foot2-acts{display:flex;align-items:center;gap:8px}
  .cdet-graduate-foot{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 13px;border-radius:8px;background:var(--accent-500);color:var(--fg-inverse);border:none;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}
  .cdet-graduate-foot:hover{background:color-mix(in srgb,var(--accent-500) 88%,var(--ink))}
  .cdet-rail-graduate-wrap{margin-top:var(--space-3,8px);padding-top:var(--space-3,8px);border-top:1px solid var(--border-default)}
  .cdet-rail-graduate{display:flex;width:100%;min-width:100%;max-width:100%;box-sizing:border-box;height:34px;padding-inline:11px;justify-content:flex-start;box-shadow:var(--shadow-xs)}

  /* Detail header layout fixes — fond sombre type « document workspace » */
  .modal-head{
    padding:10px 20px;display:flex;align-items:flex-start;gap:14px;
    border-bottom:1px solid var(--slate-900);background-color:var(--sidebar-bg);color:var(--sidebar-fg-strong);
  }
  .modal-head .col-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
  .modal-head .col-meta h2{margin:0;font-size:19px;font-weight:600;letter-spacing:-.01em;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--sidebar-fg-strong)}
  .modal-head .col-meta h2 span{color:var(--sidebar-fg)!important}
  .modal-head .breadcrumb{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--sidebar-fg-muted);font-family:var(--font-mono);letter-spacing:.02em;flex-wrap:nowrap;white-space:nowrap;overflow:hidden}
  .modal-head .breadcrumb > *{white-space:nowrap;flex-shrink:0}
  .modal-head .breadcrumb .mono{font-size:11.5px;white-space:nowrap;color:var(--sidebar-fg-muted)}
  .modal-head .tools{display:flex;align-items:center;gap:4px;flex-shrink:0;white-space:nowrap}
  .modal-head .tools .btn{flex-shrink:0;white-space:nowrap}
  .modal-head .ats{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--sidebar-fg);white-space:nowrap;font-family:var(--font-mono)}

  /* Dark header — tags adapt to dark surface */
  .modal-head .tag{background:var(--sidebar-hover);color:var(--sidebar-fg-strong);border-color:transparent}
  .modal-head .tag.good{background:color-mix(in srgb,var(--success-500) 22%,var(--sidebar-bg));color:var(--good);border-color:transparent}
  .modal-head .tag.warn{background:color-mix(in srgb,var(--warning-500) 22%,var(--sidebar-bg));color:var(--warn);border-color:transparent}
  .modal-head .tag.bad{background:color-mix(in srgb,var(--danger-500) 22%,var(--sidebar-bg));color:var(--bad);border-color:transparent}
  .modal-head .tag.accent{background:color-mix(in srgb,var(--accent-500) 28%,var(--sidebar-bg));color:var(--sidebar-fg);border-color:transparent}

  /* Dark header — ghost buttons */
  .modal-head .btn.ghost{color:var(--sidebar-fg);background-color:transparent}
  .modal-head .btn.ghost:hover{background-color:var(--sidebar-hover);color:var(--sidebar-fg-strong)}
  .modal-head .btn.ghost:active{background-color:color-mix(in srgb,var(--sidebar-fg-strong) 10%,transparent);color:var(--sidebar-fg-strong)}

  /* ===== Détail candidature = coquille carnet (entreprise à droite) ===== */
  .cdet-head{align-items:center;padding:8px 14px;gap:10px}
  .cdet-head .cdet-head-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
  .cdet-head .tools .btn{height:28px}
  .cdet-head .breadcrumb{align-items:center;overflow:visible}
  .cdet-head .breadcrumb > svg{color:var(--sidebar-fg-muted);margin-right:1px}
  .cdet-head .cdet-bc-sep{color:var(--sidebar-fg-muted);opacity:.6}
  .cdet-head-div{width:1px;height:16px;background:var(--sidebar-divider);margin:0 2px;flex-shrink:0}
  /* Sélecteur de colonne dans le fil d'Ariane de la fiche candidature */
  .cdet-stage-pick{position:relative;display:inline-flex}
  
  
  
  .cdet-stage-scrim{position:fixed;inset:0;z-index:40}
  .cdet-stage-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:41;min-width:188px;background:var(--surface-elevated);border:1px solid var(--border-strong);border-radius:13px;box-shadow:var(--shadow-popover);padding:6px;display:flex;flex-direction:column;gap:1px}
  .cdet-stage-menu-head{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);padding:5px 8px 6px}
  .cdet-stage-opt{display:flex;align-items:center;justify-content:space-between;gap:8px;background:transparent;border:0;border-radius:8px;padding:7px 8px;cursor:pointer;text-align:left;color:var(--ink)}
  .cdet-stage-opt:hover{background:var(--bg-2)}
  .cdet-stage-opt.on{background:var(--accent-soft);color:var(--accent-ink)}
  .cdet-stage-opt.on > svg{color:var(--accent)}
  .cdet-stage-opt > svg{color:var(--ink-3);flex-shrink:0}
  .cdet-stage-back{display:flex;align-items:center;gap:4px;background:transparent;border:0;padding:4px 8px 2px;cursor:pointer;color:var(--ink-3);font-size:11.5px;font-weight:500;align-self:flex-start}
  .cdet-stage-back:hover{color:var(--ink)}
  /* Le menu est blanc : neutraliser les couleurs « surface sombre » héritées de .modal-head */
  .cdet-stage-menu .tag{background:var(--bg-2);color:var(--ink-2)}
  .cdet-stage-menu .tag.accent{background:var(--accent-soft);color:var(--accent-ink)}
  .cdet-stage-menu .tag.good{background:var(--success-50);color:var(--success-700)}
  .cdet-stage-menu .tag.warn{background:var(--warning-50);color:var(--warning-700)}
  .cdet-stage-menu .tag.bad{background:var(--danger-50);color:var(--danger-700)}
  .cdet-stage-menu .tag.info{background:var(--info-soft);color:var(--info-ink)}
  .cdet-foot-menu-anchor{position:relative;display:inline-flex}
  .cdet-foot-options-btn{width:32px;padding:0;justify-content:center}
  .cdet-foot-menu{top:auto;bottom:calc(100% + 8px);min-width:232px;max-width:min(292px,calc(100vw - 28px));max-height:320px;overflow:auto;z-index:70;gap:2px}
  .cdet-foot-menu.left{left:0;right:auto}
  .cdet-foot-menu.right{right:0;left:auto}
  .cdet-foot-opt{width:100%;font:inherit;font-size:13px;font-weight:500;color:var(--ink-2);padding:8px 9px;justify-content:flex-start}
  .cdet-foot-opt > svg:first-child{color:var(--ink-3)}
  .cdet-foot-opt:hover{color:var(--ink);background:var(--bg-2)}
  .cdet-foot-opt.on{background:var(--accent-soft);color:var(--accent-ink)}
  .cdet-foot-opt.danger{color:var(--danger-700)}
  .cdet-foot-opt.danger:hover{background:var(--danger-50);color:var(--danger-700)}
  .cdet-foot-opt.danger > svg:first-child{color:var(--danger-600)}
  .cdet-foot-opt-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cdet-foot-menu-sep{height:1px;background:var(--border);margin:4px 2px}
  .cdet-head h2{margin:0;font-size:17px;font-weight:600;color:var(--sidebar-fg-strong)}
  .cdet-head h2 span{color:var(--sidebar-fg-muted)!important}
  
  .cdet-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}
  
  
  .cdet-content{flex:1;min-height:0;overflow-y:auto}
  .cdet-rail{width:316px;flex:0 0 auto;border-left:1px solid var(--border);background:var(--surface);overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px}
  .cdet-rail>*{flex-shrink:0}
  @media (max-width:860px){.cdet-rail{display:none}}
  .cdet-banner{background:var(--sidebar-bg);color:var(--sidebar-fg-strong);border-radius:14px;padding:15px}
  
  
  
  
  
  
  .cdet-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .cdet-kpi{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--bg-2);display:flex;flex-direction:column;gap:3px;justify-content:center}
  .cdet-kpi .v{font-size:18px;font-weight:600;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums}
  .cdet-kpi .v.sm{font-size:13px}
  .cdet-kpi .l{font-size:11px;color:var(--ink-3)}
  .cdet-atsdot-inline{display:inline-block;width:13px;height:13px;border-radius:50%;background:var(--ink-4)}
  .cdet-atsdot-inline.g{background:var(--good)}.cdet-atsdot-inline.w{background:var(--warn)}.cdet-atsdot-inline.b{background:var(--bad)}
  .cdet-coach{display:flex;gap:10px;border:1px solid var(--border);border-radius:10px;padding:12px;background:var(--bg-2)}
  
  .cdet-coach strong{font-size:12.5px;color:var(--ink)}
  .cdet-coach p{margin:3px 0 0;font-size:12px;line-height:17px;color:var(--ink-3);text-wrap:pretty}
  
  
  
  
  
  /* Panneaux */
  .cdet-panel{padding:0;display:flex;flex-direction:column;gap:12px}
  .cdet-block{display:flex;flex-direction:column;gap:10px}
  .cdet-block h5{margin:0;display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--ink)}
  .cdet-block h5 svg{color:var(--ink-4)}
  .cdet-block h5 i{font-style:normal;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--ink-4);background:var(--bg-2);border:1px solid var(--border);border-radius:99px;padding:1px 8px}
  .cdet-verdict{display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:13px;padding:14px 15px;background:var(--surface)}
  
  .cdet-verdict.t-good{border-color:color-mix(in srgb,var(--good) 35%,var(--border))}
  
  .cdet-verdict.t-warn{border-color:color-mix(in srgb,var(--warn) 35%,var(--border))}
  
  .cdet-verdict.t-bad{border-color:color-mix(in srgb,var(--bad) 35%,var(--border))}
  
  .cdet-verdict>div{flex:1 1 auto;min-width:0}
  .cdet-verdict strong{font-size:13.5px;color:var(--ink)}
  .cdet-verdict p{margin:2px 0 0;font-size:12.5px;line-height:17px;color:var(--ink-2);text-wrap:pretty}
  .cdet-verdict-score{flex:0 0 auto;font-family:var(--font-mono);font-size:22px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
  .cdet-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  @media (max-width:560px){.cdet-facts{grid-template-columns:1fr}}
  .cdet-fact{border:1px solid var(--border);background:var(--bg-2);border-radius:10px;padding:9px 11px;display:flex;flex-direction:column;gap:2px}
  .cdet-fact .k{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-4)}
  .cdet-fact .v{font-size:13px;color:var(--ink)}
  .cdet-hint{display:flex;align-items:flex-start;gap:6px;margin:0;font-size:11.5px;line-height:16px;color:var(--ink-4);text-wrap:pretty}
  .cdet-hint svg{flex-shrink:0;margin-top:1px;color:var(--accent)}
  .cdet-hint strong{color:var(--ink-2)}
  .cdet-cta{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border-soft);background:var(--surface);border-radius:6px;padding:7px 13px;font:inherit;font-size:12.5px;color:var(--ink);cursor:pointer}
  .cdet-cta:hover{background:var(--bg-2);color:var(--ink)}
  .cdet-checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
  .cdet-checks li{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;line-height:17px;color:var(--ink-2)}
  .cdet-checks li svg{flex-shrink:0;margin-top:1px;color:var(--ink-4)}
  .cdet-checks li.ok svg{color:var(--good)}
  .cdet-checks li.warn svg{color:var(--warn)}
  .cdet-scorebig{font-family:var(--font-mono);font-weight:600;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums}
  .cdet-scorebig .mono{font-size:34px}
  .cdet-scorebig .u{font-size:14px;color:var(--ink-4);margin-left:2px}
  .cdet-atsrow{display:flex;align-items:center;gap:10px;font-size:12.5px;line-height:17px;color:var(--ink-2)}
  .cdet-atsdot{flex:0 0 auto;width:12px;height:12px;border-radius:50%;background:var(--ink-4)}
  .cdet-atsdot.g{background:var(--good)}.cdet-atsdot.w{background:var(--warn)}.cdet-atsdot.b{background:var(--bad)}
  .cdet-prep{display:flex;flex-direction:column;gap:7px}
  .cdet-prep .vjob-check.sm.on,.cdet-prep .vw-step.done .vjob-check{background:var(--ink);border-color:var(--ink)}
  .cdet-graduate{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:0;background:var(--accent);color:var(--fg-inverse);border-radius:10px;padding:10px 14px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm);transition:filter var(--dur-fast,.18s) var(--ease-out)}
  .cdet-graduate:hover{filter:brightness(1.06)}
  .cdet-atsgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  @media (max-width:700px){.cdet-atsgrid{grid-template-columns:1fr}}
  .cdet-checklist{display:flex;flex-direction:column;gap:7px}
  .cdet-missions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  @media (max-width:700px){.cdet-missions{grid-template-columns:1fr}}
  

  .modal-body{display:grid;grid-template-columns:260px 1fr 320px;flex:1;overflow:hidden;background:var(--bg)}
  
  
  
  
  
  
  
  

  /* Detail overlay rails — fonds plus profonds que le centre */
  
  

  /* Rail sub-cards stay white for contrast against the subtle rail bg */
  .detail-confidence,
  .detail-check,
  .detail-mission{background:var(--bg-surface)}

  /* Collapsed rails */
  .modal-body.collapsed-left{grid-template-columns:44px 1fr 320px}
  
  .modal-body.collapsed-left .detail-block{display:none}
  
  .modal-body.collapsed-right{grid-template-columns:260px 1fr 44px}
  
  
  
  .modal-body.collapsed-left.collapsed-right{grid-template-columns:44px 1fr 44px}

  /* Toggle button to collapse/expand left or right rail */
  
  
  
  
  
  
  /* Right-rail toggle defaults: chevron points right when expanded, left when collapsed */
  
  
  

  /* Block in either rail : eyebrow + optional sub + content */
  .detail-block{display:flex;flex-direction:column;gap:8px}
  /* Sticky block : reste visible quand on scrolle dans le rail */
  .detail-block--sticky{
    position:sticky;top:-18px;z-index:2;
    background:var(--bg-muted);
    margin:-18px -14px 0;padding:18px 14px 12px;
    border-bottom:1px solid var(--border-default);
  }
  .modal-body.collapsed-left .detail-block--sticky{display:none}

  /* Sticky eyebrow : reste visible quand on scrolle dans son block
     Top = hauteur approximative du Sections sticky block (≈260px).
     z-index 1 → passe SOUS le Sections block sticky (z-index 2) si chevauchement. */
  .detail-block-eyebrow--sticky{
    position:sticky;top:264px;z-index:1;
    background:var(--bg-muted);
    margin:0 -14px;padding:10px 14px;
    border-bottom:1px solid var(--border-default);
  }
  .modal-body.collapsed-left .detail-block-eyebrow--sticky{position:static;background:transparent;margin:0;padding:0;border:0}
  .detail-block-eyebrow{
    font-family:var(--font-mono);font-size:10.5px;font-weight:600;
    color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;
    display:flex;align-items:center;gap:6px;flex-wrap:nowrap;white-space:nowrap;
  }
  .detail-block-eyebrow .ia{color:var(--accent);font-family:var(--font-mono)}
  .detail-block-sub{font-size:11.5px;color:var(--ink-3);line-height:1.4;margin:-2px 0 4px}

  /* Section-nav items (Entreprise / Préparation / Analyse / Activité / Journal pro)
     Style segmented "tab" pattern — fond conteneur, item actif élevé sur surface blanche */
  .detail-sec{
    display:flex;align-items:center;justify-content:space-between;gap:8px;
    padding:9px 11px;border:1px solid transparent;background-color:transparent;
    border-radius:8px;cursor:pointer;
    font-size:13.5px;font-weight:500;color:var(--ink-2);
    transform:scale(1);
    transition:background-color var(--dur-fast) var(--ease-out),
               border-color var(--dur-fast) var(--ease-out),
               color var(--dur-fast) var(--ease-out),
               box-shadow var(--dur-fast) var(--ease-out),
               transform var(--dur-base) var(--ease-out);
  }
  .detail-sec:hover{background-color:var(--surface);color:var(--ink)}
  .detail-sec:active{transform:scale(0.985)}
  .detail-sec:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .detail-sec[aria-current="true"]{
    background-color:var(--surface);color:var(--fg-1);font-weight:var(--fw-semibold);
    border-color:var(--border-default);box-shadow:var(--shadow-xs);
  }
  .detail-sec[aria-current="true"]:hover{background-color:var(--surface)}
  .detail-sec .sec-right{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;white-space:nowrap}
  .detail-sec .sec-cnt{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);white-space:nowrap}
  .detail-sec[aria-current="true"] .sec-cnt{color:var(--accent-600)}

  /* Confidence card (synthèse en haut de l'analyse annonce) */
  .detail-confidence{
    background:var(--surface);border:1px solid var(--border);border-radius:10px;
    padding:11px 12px;display:flex;flex-direction:column;gap:6px;
  }
  
  
  .detail-confidence-val{font-family:var(--font-mono);font-size:22px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}
  .detail-confidence-val.warn{color:var(--warning-500)}
  .detail-confidence-val.good{color:var(--success-500)}
  .detail-confidence-val.bad{color:var(--danger-500)}
  .detail-confidence .bar{height:4px;border-radius:2px;background:var(--bg-2);overflow:hidden}
  .detail-confidence .bar > i{display:block;height:100%;background:var(--warning-500)}
  .detail-confidence.good .bar > i{background:var(--success-500)}
  .detail-confidence.bad .bar > i{background:var(--danger-500)}
  .detail-confidence-note{font-size:11.5px;color:var(--ink-3);line-height:1.4;margin-top:2px}

  /* Check item (dot + title + sub + optional tag) */
  .detail-check{
    background:var(--surface);border:1px solid var(--border);border-radius:8px;
    padding:9px 10px;display:flex;gap:9px;align-items:flex-start;
  }
  .detail-check .ats-dot{margin-top:4px;flex-shrink:0}
  .detail-check-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
  .detail-check-title{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.25}
  .detail-check-sub{font-size:11.5px;color:var(--ink-3);line-height:1.35}
  .detail-check-tag{margin-top:3px}

  /* Mission card (left rail) */
  .detail-mission{
    background:var(--surface);border:1px solid var(--border);border-radius:8px;
    padding:9px 10px;display:flex;flex-direction:column;gap:4px;
  }
  .detail-mission-title{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.25}
  .detail-mission-sub{font-size:11.5px;color:var(--ink-3);line-height:1.35}

  /* "+ générer plus" CTA in either rail */
  
  
  
  

  /* Right-rail Match ATS panel */
  .detail-ats-head{display:flex;align-items:center;gap:8px;padding:2px 2px 4px;white-space:nowrap}
  .detail-ats-head .mark{
    width:28px;height:28px;border-radius:8px;background:var(--accent);color:var(--fg-inverse);
    display:grid;place-items:center;flex-shrink:0;
  }
  .detail-ats-head h3{margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em}
  
  
  
  .detail-ats-score{font-family:var(--font-mono);font-size:26px;font-weight:600;line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}
  
  
  
  .detail-ats-keywords{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
  
  
  
  

  /* Right-rail coach hint — encart neutre (l'accent tient au petit badge, pas au fond) */
  .detail-coach{
    background:var(--bg-2);border:1px solid var(--border);
    border-radius:10px;padding:12px;display:flex;gap:9px;align-items:flex-start;
  }
  .detail-coach .badge{
    background:var(--accent);color:var(--fg-inverse);font-family:var(--font-mono);
    font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
    padding:3px 7px;border-radius:3px;flex-shrink:0;
  }
  .detail-coach-text{flex:1;font-size:12.5px;color:var(--ink-2);line-height:1.45}
  .detail-coach-text strong{color:var(--ink);font-weight:600}

  /* Center section content (Entreprise display) */
  .detail-section-head{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    margin-bottom:4px;
  }
  .detail-section-head h2{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
  .detail-section-card{
    background:var(--surface);border:1px solid var(--border);border-radius:10px;
    padding:14px 16px;display:flex;flex-direction:column;gap:8px;
  }
  .detail-section-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
  .detail-section-card-head strong{font-size:13.5px;font-weight:600;color:var(--ink);white-space:nowrap}
  .detail-section-card-head .meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);font-weight:500}
  .detail-section-card-sub{font-size:12.5px;color:var(--ink-3);line-height:1.45}
  
  .detail-section-card-list{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-2);line-height:1.45}
  .detail-contact-tile{display:flex;align-items:center;gap:10px}
  .detail-contact-tile .av{
    width:34px;height:34px;border-radius:8px;background:var(--bg-2);color:var(--ink-2);
    border:1px solid var(--border);display:grid;place-items:center;
    font-weight:600;font-size:11.5px;flex-shrink:0;
  }
  .detail-contact-tile .nm{font-size:13px;font-weight:600;color:var(--ink);line-height:1.25}
  .detail-contact-tile .role{font-size:11.5px;color:var(--ink-3);font-family:var(--font-mono);letter-spacing:0;line-height:1.3}
  .detail-contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3,8px);margin-top:var(--space-2,4px)}
  .detail-contact-actions .ct-add-note{
    margin-top:0;padding:5px 9px;gap:6px;
    border-radius:var(--radius-sm,6px);font-size:var(--fs-12,12px);
  }

  /* Picker « Lier un contact existant » (drawer) : ligne cliquable = avatar + identité + action. */
  .ct-link-row{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:8px 10px;border:1px solid transparent;border-radius:10px;background:transparent;font:inherit;cursor:pointer;transition:background .15s var(--ease-out),border-color .15s var(--ease-out)}
  .ct-link-row:hover:not(:disabled){background:var(--bg-2);border-color:var(--border)}
  .ct-link-row:disabled{cursor:default;opacity:.68}
  .ct-link-row .av{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font-weight:600;font-size:11.5px;flex-shrink:0}
  .ct-link-txt{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
  .ct-link-txt .nm{font-size:13px;font-weight:600;color:var(--ink);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ct-link-txt .role{font-size:11.5px;color:var(--ink-3);font-family:var(--font-mono);letter-spacing:0;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ct-link-cta{flex-shrink:0;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--ink-4);background:var(--bg-2)}
  .ct-link-row:hover:not(:disabled) .ct-link-cta{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
  .ct-link-badge{flex-shrink:0;display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--good);white-space:nowrap}

  /* ===== Journal pro section ===== */
  .journal-composer{
    position:relative;background:var(--surface);border:1px solid var(--border-strong);border-radius:16px;
    padding:8px 10px 9px;display:flex;flex-direction:column;gap:0;
    box-shadow:var(--shadow-sm);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);
  }
  .journal-composer:focus-within{
    border-color:color-mix(in srgb,var(--accent) 45%,var(--border-strong));
    box-shadow:0 14px 38px -10px color-mix(in srgb,var(--ink) 24%,transparent),0 0 0 3px var(--accent-soft);
  }
  .journal-composer.is-file-dragging{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),var(--shadow-sm)}
  .journal-composer-dropcue{
    position:absolute;inset:8px;z-index:45;display:flex;align-items:center;justify-content:center;gap:8px;
    border:1.5px dashed var(--accent);border-radius:10px;background:color-mix(in srgb,var(--accent-soft) 94%,var(--surface));
    color:var(--accent-ink);font-size:13px;font-weight:600;pointer-events:none;
  }
  .journal-composer-titlebar{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:0 2px 9px;margin:0 0 12px;border-bottom:1px solid var(--border-strong);
  }
  .journal-composer-titlemain{display:inline-flex;align-items:center;gap:7px;min-width:0;color:var(--ink)}
  .journal-composer-titlemain svg{flex-shrink:0;color:var(--ink-3)}
  .journal-composer-titlebar h3{
    margin:0;font-size:13.5px;line-height:1.25;font-weight:650;color:var(--ink);letter-spacing:-.01em;
  }
  .journal-composer-titlebar > span:last-child{
    display:inline-flex;align-items:center;height:20px;padding:0 7px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2);
    font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;
    color:var(--ink-4);white-space:nowrap;
  }
  .journal-format-row{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    min-height:32px;padding:0 1px 5px;margin-bottom:6px;border-bottom:1px solid var(--border-strong);
  }
  .journal-format-tools{display:flex;align-items:center;gap:2px;min-width:0}
  .journal-format-tools button{
    width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;
    padding:0;border:0;border-radius:6px;background:transparent;color:var(--ink-1);
    cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);
  }
  .journal-format-tools button:hover:not(:disabled){background:var(--bg-2);color:var(--ink)}
  .journal-format-tools button:disabled{opacity:.45;cursor:not-allowed}
  .journal-format-tools button svg{color:currentColor}
  .journal-format-attach{color:var(--accent)!important}
  .journal-format-sep{width:1px;height:16px;background:var(--border-strong);margin:0 3px}
  .journal-composer-context{
    display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;
    min-width:0;font-size:12px;font-weight:500;color:var(--ink-2);
  }
  .journal-composer-context span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
  .journal-composer-context svg{color:var(--ink-3)}
  .journal-date-pop > .jc-pop-menu{top:calc(100% + 8px);bottom:auto}
  .journal-composer-text{
    width:100%;min-height:78px;resize:vertical;
    border:1px solid var(--border-soft);background:var(--bg-2);border-radius:10px;
    padding:9px 11px;font:inherit;font-size:13.5px;line-height:1.45;color:var(--ink);
    box-shadow:none;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out);
  }
  .journal-composer-text:hover{border-color:var(--border-hover)}
  .journal-composer-text:focus{outline:0;border-color:var(--accent);box-shadow:var(--ring-focus);background:var(--bg-2)}
  .journal-composer-text::placeholder{color:var(--ink-3)}
  .journal-composer-foot{
    display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
    padding:6px 1px 0;border-top:0;
  }
  .journal-composer-left,.journal-composer-right{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}
  .journal-plus-pop .jc-pop-menu,.journal-type-pop .jc-pop-menu{bottom:calc(100% + 8px)}
  .journal-piece-count{
    display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 9px;border:1px solid var(--border-soft);
    border-radius:99px;background:var(--bg-2);font-size:12px;color:var(--ink-3);
  }
  .journal-piece-draft-list{
    display:flex;align-items:center;gap:6px;flex-wrap:wrap;
    padding-top:7px;margin-top:7px;border-top:1px dashed var(--border-strong);
  }
  .journal-composer .jc-plus{width:30px;height:30px;border-radius:8px}
  .journal-composer .jc-pill{height:30px;padding:0 9px;border-color:var(--border-soft);border-radius:8px;font-size:12px;background:var(--surface)}
  .journal-composer .btn.primary:not(.icon-only){height:30px;padding:0 12px;border-radius:8px;font-size:12.5px}
  .journal-piece-chip{
    display:inline-flex;align-items:center;gap:6px;max-width:260px;padding:4px 5px 4px 8px;border:1px solid var(--border-soft);
    border-radius:99px;background:var(--surface);font-size:11.5px;color:var(--ink-2);
  }
  .journal-piece-chip > svg{flex-shrink:0;color:var(--ink-4)}
  .journal-piece-chip button{width:18px;height:18px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ink-4);cursor:pointer}
  .journal-piece-chip button:hover{background:var(--bg-2);color:var(--ink)}
  /* Mention inline « @ » (façon Twitter) : liste ancrée SOUS la zone de texte, le focus reste dans
     le textarea (l'utilisateur ne quitte jamais sa frappe). */
  .jc-ta-wrap{position:relative}
  .jc-mention{position:absolute;left:0;top:calc(100% + 4px);z-index:40;width:min(360px,94%);background:var(--surface);border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow-lg);padding:6px;display:flex;flex-direction:column;gap:4px;animation:cveFade .14s var(--ease-out,ease)}
  /* Item que « Entrée » va choisir : surbrillance CANONIQUE d'un item actif de menu flottant
     (= .vc-pop-item.active, .boards-popover .bp-item.active…) : fond --accent-soft + texte
     --accent-ink. JAMAIS de bord/bandeau accent (règle DS, cf. regle-sobriete-visuelle). */
  .jc-il-item.active{background:var(--accent-soft);color:var(--accent-ink)}
  .jc-il-item.active .nm{color:var(--accent-ink)}

  /* Interlocuteur de la note (« à qui on s'est adressé ») · rangée sous la zone de texte. */
  .jc-interloc{position:relative;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}
  .jc-il-label{font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-4)}
  .jc-il-add{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px dashed var(--border-strong);border-radius:99px;background:transparent;font:inherit;font-size:12px;color:var(--ink-3);cursor:pointer;transition:border-color .15s var(--ease-out),color .15s var(--ease-out),background-color .15s var(--ease-out)}
  .jc-il-add:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent)}
  .jc-il-chip{display:inline-flex;align-items:center;gap:7px;padding:3px 6px 3px 4px;border:1px solid var(--border-soft);border-radius:99px;background:var(--surface)}
  .jc-il-av{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:9.5px;flex-shrink:0}
  .jc-il-av.sm{width:18px;height:18px;font-size:8.5px}
  .jc-il-name{font-size:12.5px;font-weight:500;color:var(--ink)}
  .jc-il-x{width:20px;height:20px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ink-4);cursor:pointer}
  .jc-il-x:hover{background:var(--bg-2);color:var(--ink)}
  .jc-il-change{padding:0;border:0;background:transparent;font:inherit;font-size:11.5px;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
  
  
  
  .jc-il-list{max-height:230px;overflow-y:auto;display:flex;flex-direction:column;gap:1px}
  .jc-il-empty{padding:12px 10px;font-size:12.5px;color:var(--ink-4);text-align:center}
  .jc-il-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:7px 9px;border:0;border-radius:8px;background:transparent;font:inherit;cursor:pointer;transition:background-color .13s var(--ease-out)}
  .jc-il-item:hover{background:var(--bg-2)}
  .jc-il-txt{display:flex;flex-direction:column;gap:1px;min-width:0}
  .jc-il-txt .nm{font-size:13px;font-weight:600;color:var(--ink);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .jc-il-txt .role{font-size:11px;color:var(--ink-3);font-family:var(--font-mono);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .jc-il-new{display:flex;align-items:center;gap:8px;width:100%;padding:9px;border:0;border-top:1px solid var(--border);border-radius:0 0 6px 6px;margin-top:1px;background:transparent;font:inherit;font-size:12.5px;font-weight:500;color:var(--accent);cursor:pointer;transition:background-color .13s var(--ease-out)}
  .jc-il-new:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}
  /* Chip interlocuteur sur une entrée du fil. */
  .journal-entry-who{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-top:2px;padding:3px 8px 3px 4px;border:1px solid var(--border-soft);border-radius:99px;background:var(--surface);font:inherit;font-size:11.5px;font-weight:500;color:var(--ink-2);cursor:pointer;transition:border-color .15s var(--ease-out),color .15s var(--ease-out)}
  .journal-entry-who:hover{border-color:var(--accent);color:var(--accent)}
  .journal-entry-who svg{color:var(--ink-4)}
  .journal-entry-who:hover svg{color:var(--accent)}

  .journal-thread{display:flex;flex-direction:column;gap:12px}
  .journal-thread-eyebrow{
    --journal-composer-separation:19.04px;
    position:relative;height:24px;margin-top:var(--journal-composer-separation);
    border:1px solid var(--border-strong);border-radius:var(--radius-sm);
    background:var(--bg-2);box-shadow:var(--shadow-xs);overflow:visible;
  }
  .journal-thread-tab{
    position:absolute;z-index:1;left:var(--space-4,12px);top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;
    gap:var(--space-2,4px);height:30px;padding:0 var(--space-3,8px);border:1px solid var(--border-strong);
    border-radius:var(--radius-md) var(--radius-md) var(--radius-sm) var(--radius-sm);background:var(--surface);
    box-shadow:var(--shadow-xs);font-family:var(--font-mono);font-size:10.5px;font-weight:600;
    color:var(--ink-2);letter-spacing:.02em;
  }
  .journal-thread-tab svg{color:var(--ink-3);flex-shrink:0}
  /* Journal : carte neutre, ton porté par un point coloré dans l'en-tête (pas de rail coloré sur le bord). */
  .journal-entry{
    position:relative;z-index:0;display:flex;gap:0;background:var(--surface);border:1px solid var(--border-strong);
    border-radius:13px;overflow:visible;box-shadow:var(--shadow-xs);
  }
  .journal-entry:hover,.journal-entry:focus-within{z-index:20}
  .journal-entry-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--ink-4)}
  .journal-entry-dot[data-tone="warn"]{background:var(--warning-500)}
  .journal-entry-dot[data-tone="bad"]{background:var(--danger-500)}
  .journal-entry-dot[data-tone="good"]{background:var(--success-500)}
  .journal-entry-dot[data-tone="info"]{background:var(--ink-4)}
  .journal-entry-body{position:relative;flex:1;padding:15px 17px;display:flex;flex-direction:column;gap:12px;min-width:0}
  .journal-entry-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
  .journal-entry-head .he-l{display:flex;align-items:center;gap:8px;min-width:0}
  .journal-entry-head strong{font-size:13.5px;font-weight:600;color:var(--ink)}
  .journal-entry-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--ink-4)}
  .journal-entry-meta-pill{
    display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border:1px solid var(--border-soft);
    border-radius:8px;background:var(--surface);font-family:var(--font-mono);font-size:10.5px;font-weight:600;color:var(--ink-2);
  }
  .journal-entry-meta-pill svg{color:var(--ink-4);flex-shrink:0}
  .journal-entry-meta-date{font-family:var(--font-mono);font-size:10.5px;font-weight:550;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
  .journal-entry-note{margin:0;font-size:14px;line-height:1.55;color:var(--ink);font-weight:450;text-wrap:pretty}
  .journal-entry-body p{margin:0;font-size:13px;line-height:1.55;color:var(--ink-2)}
  .journal-entry-body p strong{font-weight:600;color:var(--ink)}
  .journal-entry-body p em{font-style:normal;font-family:var(--font-mono);font-size:11.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
  .journal-entry-tags{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:2px}
  .journal-entry-foot{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:auto}
  .journal-entry-pill{
    display:inline-flex;align-items:center;gap:5px;min-height:22px;padding:2px 8px;border:1px solid var(--border-soft);
    border-radius:8px;background:var(--bg-2);font-family:var(--font-mono);font-size:10.5px;font-weight:500;
    color:var(--ink-3);white-space:nowrap;
  }
  .journal-entry-pill svg{color:var(--ink-4);flex-shrink:0}
  .journal-entry-pill.is-button{font-family:var(--font-sans);font-size:11.5px;color:var(--ink-2);cursor:pointer}
  .journal-entry-pill.is-button:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
  .journal-entry > .journal-entry-options{position:absolute;right:10px;bottom:10px;z-index:50;opacity:0;pointer-events:auto;transition:opacity var(--dur-fast) var(--ease-out)}
  .journal-entry:hover .journal-entry-options,.journal-entry:focus-within .journal-entry-options,.journal-entry-options:hover{opacity:1}
  .journal-entry-options-btn{
    width:30px;height:30px;display:grid;place-items:center;padding:0;border:1px solid var(--border-soft);
    border-radius:6px;background:var(--surface);color:var(--ink-3);box-shadow:var(--shadow-sm);cursor:pointer;
    transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);
  }
  .journal-entry-options-btn:hover,.journal-entry-options-btn.on{border-color:var(--border-strong);background:var(--bg-2);color:var(--ink)}
  .journal-entry-menu{
    position:absolute;right:0;bottom:calc(100% + 7px);z-index:65;width:178px;background:var(--surface);
    border:1px solid var(--border-strong);border-radius:13px;box-shadow:0 16px 40px -12px color-mix(in srgb,var(--ink) 28.000000000000004%,transparent);
    padding:6px;animation:jc-pop-in var(--dur-fast) var(--ease-out);
  }
  .jc-menu-item.danger{color:var(--bad)}
  .jc-menu-item.danger .jc-menu-ic{color:var(--bad)}
  .journal-entry-edit{display:flex;flex-direction:column;gap:8px}
  .journal-entry-edit-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-bottom:9px;border-bottom:1px solid var(--border)}
  .journal-entry-edit-toolbar > .jc-pop{min-width:0}
  .journal-entry-edit textarea{
    width:100%;min-height:112px;resize:vertical;border:1px solid var(--border-strong);border-radius:10px;background:var(--bg-2);
    padding:11px 12px;font:inherit;font-size:13.5px;line-height:1.55;color:var(--ink);outline:0;
  }
  .journal-entry-edit textarea:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .journal-entry-edit-links{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
  .journal-entry-edit-control{
    display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 9px;border:1px solid var(--border-strong);
    border-radius:8px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:11.5px;font-weight:550;cursor:pointer;
  }
  .journal-entry-edit-control:hover,.journal-entry-edit-control.on{background:var(--bg-2);color:var(--ink);border-color:var(--border-input-hover)}
  .journal-entry-edit-control:disabled{opacity:.45;cursor:not-allowed}
  .journal-entry-edit-assets{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:9px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}
  .journal-entry-edit-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}
  .journal-entry-edit-actions button{
    height:30px;padding:0 11px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);color:var(--ink-2);
    font:inherit;font-size:12px;font-weight:600;cursor:pointer;
  }
  .journal-entry-edit-actions button:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-2);color:var(--ink)}
  .journal-entry-edit-actions button.primary{background:var(--ink);border-color:var(--ink);color:var(--surface)}
  .journal-entry-edit-actions button:disabled{opacity:.45;cursor:not-allowed}
  .journal-entry-pieces{
    flex:0 0 248px;display:flex;flex-direction:column;gap:10px;padding:14px 14px 50px;border-left:1px solid var(--border-strong);
    background:var(--surface-2);min-width:0;border-radius:0 12px 12px 0;
  }
  .journal-entry-pieces-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-family:var(--font-mono);font-size:10px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
  .journal-entry-pieces-head b{font:inherit;color:var(--ink-2)}
  .journal-entry-pieces-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .journal-piece{
    min-width:0;height:82px;padding:7px;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font:inherit;font-size:10.5px;font-weight:600;
    color:var(--ink-3);cursor:pointer;overflow:hidden;text-align:center;transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);
  }
  .journal-piece:hover{border-color:var(--border-strong);background:var(--surface);color:var(--ink)}
  .journal-piece img{width:100%;height:48px;object-fit:cover;border-radius:6px;background:var(--bg-2)}
  .journal-piece-icon{width:36px;height:36px;border-radius:8px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--border);color:var(--ink-4)}
  .journal-piece.k-pdf .journal-piece-icon{background:color-mix(in srgb,var(--bad) 10%,var(--surface));color:var(--bad)}
  .journal-piece.k-link .journal-piece-icon{background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent)}
  .journal-piece span:last-child{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .journal-entry-pieces-more{font-size:11px;color:var(--ink-4)}
  @media (max-width: 900px){
    .journal-entry{flex-direction:column}
    .journal-entry-pieces{flex-basis:auto;border-left:0;border-top:1px solid var(--border)}
  }

  /* ===== Analyse de l'annonce — section centrale riche ===== */
  .analyse-verdict{
    display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:flex-start;
    background:var(--surface);border:1px solid var(--border);border-radius:13px;
    padding:14px 16px;position:relative;
  }
  /* Ton porté par la pastille d'icône uniquement ; score et barre en --ink (DS). */
  .analyse-verdict-icon{
    width:34px;height:34px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;
    background:var(--warning-50);color:var(--warning-700);
  }
  .analyse-verdict.good .analyse-verdict-icon{background:var(--success-50);color:var(--success-700)}
  .analyse-verdict.bad .analyse-verdict-icon{background:var(--danger-50);color:var(--danger-700)}
  .analyse-verdict-body{min-width:0;display:flex;flex-direction:column;gap:4px}
  .analyse-verdict-eyebrow{
    font-family:var(--font-mono);font-size:10.5px;font-weight:600;
    color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;
  }
  .analyse-verdict-body h3{margin:0;font-size:15px;font-weight:600;line-height:1.25;letter-spacing:-.01em;color:var(--ink)}
  .analyse-verdict-body p{margin:0;font-size:12.5px;line-height:1.45;color:var(--ink-2)}
  .analyse-verdict-body p strong{color:var(--ink);font-weight:600}
  .analyse-verdict-score{
    text-align:right;min-width:112px;flex-shrink:0;
    display:flex;flex-direction:column;align-items:flex-end;gap:4px;
  }
  .analyse-verdict-score .lbl{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em}
  .analyse-verdict-score .val{font-family:var(--font-mono);font-size:19px;font-weight:600;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums}
  .analyse-verdict-score .bar{width:104px;height:5px;border-radius:3px;background:var(--bg-2);overflow:hidden}
  .analyse-verdict-score .bar > i{display:block;height:100%;background:var(--ink);border-radius:3px}
  /* Scores compacts dans le bandeau (alignement + fiabilité) — plus de gros chiffre */
  .analyse-verdict-scores{display:flex;gap:16px;flex-shrink:0;padding-top:2px}
  .avs{display:flex;flex-direction:column;gap:4px;min-width:62px}
  .avs .l{font-family:var(--font-mono);font-size:9.5px;font-weight:500;color:var(--ink-3);text-transform:uppercase;letter-spacing:.07em}
  .avs .n{font-family:var(--font-mono);font-size:16px;font-weight:600;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums}
  .avs .b{height:4px;border-radius:2px;background:var(--bg-2);overflow:hidden}
  .avs .b > i{display:block;height:100%;background:var(--ink);border-radius:2px}

  /* Onglets soulignés de l'analyse — annonce conservée · vérifications · missions */
  .analyse-tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--border);margin-top:2px}
  .analyse-tab{position:relative;display:inline-flex;align-items:center;gap:7px;padding:11px 0;margin-right:20px;font-size:13px;font-weight:500;color:var(--ink-3);cursor:pointer;border:none;background:transparent;font-family:inherit;line-height:1.2;white-space:nowrap;transition:color var(--ease-out,.18s) .18s}
  .analyse-tab:hover{color:var(--ink)}
  .analyse-tab.on{color:var(--ink);font-weight:600}
  .analyse-tab.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent-500);border-radius:2px 2px 0 0}
  .analyse-tab svg{color:var(--ink-4)}
  .analyse-tab.on svg{color:var(--ink-3)}
  .analyse-tab .ct{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--ink-3);background:var(--bg-2);border-radius:999px;padding:1px 7px}
  .analyse-tab.on .ct{color:var(--accent-500);background:var(--accent-50)}
  .analyse-tabpanel{display:flex;flex-direction:column;gap:10px}
  /* En-tête de résumé neutre (sections autres que le verdict) : pastille sobre */
  .analyse-verdict.neutral .analyse-verdict-icon{background:var(--bg-2);color:var(--ink-3)}
  /* Alignement + ATS — tableau comparatif permanent, sans bascule entre catégories */
  .cand-compare-table-wrap{overflow-x:auto}
  .cand-compare-table{table-layout:fixed}
  .cand-compare-table th,.cand-compare-table th+th{width:calc(100% / var(--compare-columns))}
  .cand-compare-table th{vertical-align:middle}
  .cand-compare-table th span{display:inline-flex;align-items:center;gap:var(--space-3,8px)}
  .cand-compare-table th svg{flex-shrink:0;color:var(--ink-4)}
  .cand-compare-table th i{display:inline-flex;align-items:center;justify-content:center;min-width:var(--space-4,20px);padding:1px var(--space-2,4px);border-radius:var(--radius-pill);background:var(--bg-muted);font-family:var(--font-mono);font-style:normal;color:var(--ink-3)}
  .cand-compare-table td{background:var(--surface)}
  .cand-compare-table .cdet-checklist{gap:var(--space-3,8px)}
  .cand-compare-table .detail-check{padding:var(--space-3,8px)}

  /* ===== L'offre en clair — décodeur (vues Tableau + Déroulant) ===== */
  .cdec-switch{display:flex;flex-wrap:wrap;gap:8px;align-self:flex-start}
  .cdec-switch button{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);font:inherit;font-size:12.5px;font-weight:500;color:var(--ink-2);cursor:pointer;white-space:nowrap;transition:all .18s var(--ease-out)}
  .cdec-switch button svg{width:15px;height:15px;flex-shrink:0}
  .cdec-switch button:hover{border-color:var(--accent);color:var(--accent)}
  .cdec-switch button.on{background:var(--ink);border-color:var(--ink);color:var(--fg-inverse);font-weight:600}
  .cdec-pill{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;border:1px solid color-mix(in srgb,currentColor 15%,transparent);border-radius:999px;padding:2px 9px;white-space:nowrap;align-self:flex-start}
  .cdec-pill svg{width:12px;height:12px}
  .cdec-pill.done{color:var(--success-700);background:var(--success-50)}
  .cdec-pill.close{color:var(--warning-700);background:var(--warning-50)}
  .cdec-pill.careful{color:var(--danger-700);background:var(--danger-50)}
  .cdec-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;display:inline-block}
  .cdec-dot.g{background:var(--good)} .cdec-dot.w{background:var(--warn)} .cdec-dot.r{background:var(--bad)}
  /* tableau */
  .cdec-table{display:grid;grid-template-columns:minmax(150px,0.9fr) minmax(185px,1.25fr) minmax(185px,1.15fr);border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}
  .cdec-th{padding:8px 12px;background:var(--bg-2);font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:600;border-bottom:1px solid var(--border)}
  .cdec-th.bl,.cdec-tc.bl{border-left:1px solid var(--border)}
  .cdec-tc{padding:10px 12px;border-bottom:1px solid var(--border);font-size:12.5px;line-height:1.45}
  .cdec-tc.last{border-bottom:0}
  .cdec-tc.term{display:flex;flex-direction:column;gap:5px}
  .cdec-tc.term .tt{font-family:var(--font-mono);font-size:11.5px;color:var(--ink);font-weight:500;line-height:1.35}
  .cdec-tc.term .qq{font-family:var(--font-mono);font-size:10px;color:var(--ink-4);line-height:1.45}
  .cdec-tc.plain{color:var(--ink-2)}
  .cdec-tc.angle{display:flex;flex-direction:column;gap:6px}
  .cdec-tc.angle .lk{font-size:11.5px;color:var(--ink-3);line-height:1.4}
  .cdec-info{display:inline-flex;color:var(--ink-4);cursor:help;margin-left:5px;vertical-align:-2px}
  .cdec-info:hover{color:var(--accent-500)}
  .cdec-expect{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border);font-size:12px;color:var(--ink-2);line-height:1.45}
  .cdec-expect > span{display:block;font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin-bottom:3px}
  @media (max-width:480px){.cdec-table{grid-template-columns:1fr}.cdec-th{display:none}.cdec-tc.bl{border-left:0}}
  /* accordéon */
  .cdec-acc{display:flex;flex-direction:column;gap:6px}
  .cdec-accitem{border:1px solid var(--border);border-radius:8px;background:var(--surface);overflow:hidden;transition:border-color var(--ease-out) .18s}
  .cdec-accitem.open{border-color:var(--ink-4)}
  .cdec-accsum{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;border:none;background:transparent;font-family:inherit;text-align:left}
  .cdec-accsum:hover{background:var(--bg-2)}
  .cdec-accsum .term{font-family:var(--font-mono);font-size:12px;color:var(--ink);font-weight:500;flex:1;min-width:0}
  .cdec-accsum .chev{color:var(--ink-3);flex-shrink:0;display:inline-flex;transition:transform var(--ease-out) .2s}
  .cdec-accitem.open .cdec-accsum .chev{transform:rotate(180deg)}
  .cdec-accbody{padding:0 12px 12px 32px;display:flex;flex-direction:column;gap:8px}
  .cdec-accbody .plain{font-size:13px;color:var(--ink);line-height:1.5}
  .cdec-accbody .plain .e,.cdec-accbody .exp .e{display:block;font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin-bottom:3px}
  .cdec-accbody .exp{font-size:13px;color:var(--ink);line-height:1.5}
  .cdec-prov{display:flex;gap:6px;align-items:flex-start;font-family:var(--font-mono);font-size:10px;color:var(--ink-4);line-height:1.45;background:var(--bg-2);border-radius:8px;padding:6px 9px}
  .cdec-prov svg{flex-shrink:0;margin-top:1px}
  .cdec-prov em{font-style:normal;color:var(--ink-2)}
  .cdec-accbody .mine{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--ink-2);line-height:1.45;padding-top:8px;border-top:1px dashed var(--border)}
  .cdec-accbody .mine svg{color:var(--accent-500);flex-shrink:0;margin-top:1px}
  /* « À dire » — partagé par le tableau et le déroulant */
  .cdec-say{display:flex;gap:7px;align-items:flex-start;font-size:11.5px;color:var(--ink-2);line-height:1.45;background:var(--bg-2);border-radius:8px;padding:7px 10px}
  .cdec-say svg{color:var(--ink-4);flex-shrink:0;margin-top:2px}
  .cdec-say b{font-weight:600;color:var(--ink-3)}
  .cdec-say em{font-style:italic;color:var(--ink)}

  /* ===== Décortiquer l'annonce — Le poste en vrai / Entre les lignes / Questions à poser ===== */
  .poste-lead{display:flex;gap:11px;align-items:flex-start;background:var(--accent-50);border:1px solid var(--accent-100);border-radius:10px;padding:12px 14px}
  .poste-lead > svg{color:var(--accent-600);flex-shrink:0;margin-top:2px}
  .poste-lead .e{display:block;font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:var(--accent-700);margin-bottom:3px}
  .poste-lead > div{font-size:14px;line-height:1.5;color:var(--ink);font-weight:500}
  .prio-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  @media (max-width:560px){.prio-grid{grid-template-columns:1fr}}
  .prio-col{display:flex;flex-direction:column;gap:6px}
  .prio-head{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-family:var(--font-mono)}
  .prio-it{font-size:12.5px;color:var(--ink-2);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 11px;line-height:1.35}
  .prio-it.must{color:var(--ink);font-weight:500}
  .lvl-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:8px;overflow:hidden}
  .lvl-row{display:flex;align-items:baseline;gap:12px;padding:9px 13px;background:var(--surface)}
  .lvl-row + .lvl-row{border-top:1px solid var(--border)}
  .lvl-row .l{flex:0 0 64px;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}
  .lvl-row .v{font-size:12.5px;color:var(--ink-2);line-height:1.4}
  .lvl-row .v.real{color:var(--ink);font-weight:500}
  .el-list{display:flex;flex-direction:column;gap:8px}
  .el-item{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:5px}
  .el-phrase{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-3);line-height:1.4}
  .el-means{display:flex;gap:7px;align-items:flex-start;font-size:12.5px;color:var(--ink);line-height:1.45}
  .el-means > svg{color:var(--accent-500);flex-shrink:0;margin-top:2px}
  .ask-list{display:flex;flex-direction:column;gap:8px}
  .ask-item{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
  .ask-gap{font-size:12px;color:var(--ink-2);line-height:1.4}
  .ask-gap .lbl{display:block;font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-4);margin-bottom:2px}
  .ask-q{display:flex;gap:7px;align-items:flex-start;font-size:13px;color:var(--ink);line-height:1.45;padding-top:7px;border-top:1px dashed var(--border)}
  .ask-q > svg{color:var(--accent-500);flex-shrink:0;margin-top:2px}
  .ask-q em{font-style:italic;font-weight:500}
  /* Questions probables — question + réponse (si connue) sinon invite à réfléchir */
  .qprep-list{display:flex;flex-direction:column;gap:8px}
  .qprep{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:7px}
  .qprep-q{display:flex;gap:7px;align-items:flex-start;font-size:13px;font-weight:600;color:var(--ink);line-height:1.4}
  .qprep-q > svg{color:var(--accent-500);flex-shrink:0;margin-top:2px}
  .qprep-a{font-size:12.5px;color:var(--ink-2);line-height:1.5;padding-top:7px;border-top:1px dashed var(--border)}
  .qprep-a .lbl{display:block;font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-4);margin-bottom:3px}
  .qprep-think{display:flex;gap:7px;align-items:flex-start;font-size:12px;color:var(--ink-3);line-height:1.45;padding-top:7px;border-top:1px dashed var(--border)}
  .qprep-think > svg{color:var(--ink-4);flex-shrink:0;margin-top:2px}
  .qprep-think em{font-style:italic}
  /* Se présenter — guide + prompteur */
  .pitch-steps{display:flex;flex-direction:column;gap:9px}
  .pitch-step{display:flex;gap:11px;align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 13px}
  .pitch-step-n{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--bg-2);color:var(--ink-2);font-family:var(--font-mono);font-size:11px;font-weight:600;display:grid;place-items:center}
  .pitch-step-b{min-width:0}
  .pitch-step-l{font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:3px}
  .pitch-step-c{font-size:12.5px;color:var(--ink-2);line-height:1.5}
  .pitch-tips{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:11px 13px}
  .pitch-tips-h{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-family:var(--font-mono);margin-bottom:7px}
  .pitch-tips-h svg{color:var(--accent-500)}
  .pitch-tips ul{margin:0;padding-left:17px;display:flex;flex-direction:column;gap:5px}
  .pitch-tips li{font-size:12px;color:var(--ink-2);line-height:1.45}
  .pitch-prompter{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}
  .pitch-prompter-h{display:flex;align-items:center;gap:7px;padding:9px 15px;background:var(--bg-2);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:600}
  .pitch-prompter-h svg{color:var(--ink-4)}
  .pitch-prompter-body{padding:18px 20px;display:flex;flex-direction:column;gap:14px;max-width:64ch}
  .pitch-prompter-body p{margin:0;font-size:15px;line-height:1.75;color:var(--ink);text-wrap:pretty}
  /* Entreprise — Fiabilité + Qui recrute (ESN/intermédiaire) */
  .emp-health{display:flex;gap:11px;align-items:flex-start;border:1px solid var(--border);border-radius:10px;padding:12px 14px;background:var(--surface)}
  .emp-health > svg{flex-shrink:0;margin-top:1px}
  .emp-health.good > svg{color:var(--success-700)} .emp-health.warn > svg{color:var(--warning-700)} .emp-health.bad > svg{color:var(--danger-700)}
  .emp-health-l{font-size:13px;font-weight:600;color:var(--ink)}
  .emp-health-n{font-size:12px;color:var(--ink-2);line-height:1.45;margin-top:3px}
  .emp-who{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--border);border-radius:10px;padding:13px 14px;background:var(--surface)}
  .emp-who-ic{flex-shrink:0;width:34px;height:34px;border-radius:8px;display:grid;place-items:center}
  .emp-who.good .emp-who-ic{background:var(--success-50);color:var(--success-700)}
  .emp-who.warn .emp-who-ic{background:var(--warning-50);color:var(--warning-700)}
  .emp-who.bad .emp-who-ic{background:var(--danger-50);color:var(--danger-700)}
  .emp-who-b{min-width:0}
  .emp-who-l{font-size:13.5px;font-weight:600;color:var(--ink)}
  .emp-who-chain{display:inline-flex;align-items:center;gap:6px;margin-top:5px;font-family:var(--font-mono);font-size:11.5px;color:var(--ink-2);background:var(--bg-2);border:1px solid var(--border);border-radius:99px;padding:3px 11px}
  .emp-who-chain svg{color:var(--ink-4)}
  .emp-who-chain strong{color:var(--ink);font-weight:600}
  .emp-who-line{font-size:12.5px;color:var(--ink-2);line-height:1.5;margin-top:6px}
  .emp-cvangle{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:11px 13px}
  .emp-cvangle-h{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-family:var(--font-mono);margin-bottom:5px}
  .emp-cvangle-h svg{color:var(--accent-500)}
  .emp-cvangle p{margin:0;font-size:12.5px;color:var(--ink);line-height:1.5}
  /* Alignement — présentation en tableau (mot-clé → état), comme l'ATS */
  
  /* Glossaire — 3e vue de L'offre en clair (option F) */
  .cdec-gloss{display:grid;grid-template-columns:auto 1fr;border:1px solid var(--border);border-radius:10px;overflow:hidden}
  .cdec-gl{display:contents}
  .cdec-gl-t{padding:8px 13px;font-family:var(--font-mono);font-size:11.5px;font-weight:500;color:var(--ink);white-space:nowrap;border-bottom:1px solid var(--border);background:var(--bg-2)}
  .cdec-gl-d{padding:8px 13px;font-size:12.5px;color:var(--ink-2);line-height:1.4;border-bottom:1px solid var(--border);border-left:1px solid var(--border)}
  .cdec-gl:last-child .cdec-gl-t,.cdec-gl:last-child .cdec-gl-d{border-bottom:0}
  .cdec-gl-d{display:flex;flex-direction:column;gap:6px}
  .cdec-gl-d .def{font-size:12.5px;color:var(--ink-2);line-height:1.4}
  .cdec-gl-d .simple{font-size:12px;color:var(--ink);line-height:1.45}
  .cdec-gl-d .simple .lbl{display:block;font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-4);margin-bottom:2px}
  .cdec-gl-d .seen{display:flex;gap:6px;align-items:flex-start;font-size:11.5px;color:var(--success-700);line-height:1.4}
  .cdec-gl-d .seen svg{flex-shrink:0;margin-top:1px}
  /* Aération des onglets décortiqués (Landry : « ça ne respire pas ») */
  .cdet-airy{display:flex;flex-direction:column;gap:18px}
  .prep-stack-section{display:flex;flex-direction:column;gap:10px;padding-top:16px;border-top:1px solid var(--border)}
  .prep-stack-section > h4{display:flex;align-items:center;gap:7px;margin:0;font-size:12px;font-weight:600;color:var(--ink);letter-spacing:0}
  .prep-stack-section > h4 svg{color:var(--ink-4);flex-shrink:0}
  .cdet-airy > .cdet-block{gap:13px}
  .cdet-airy .el-list,.cdet-airy .ask-list,.cdet-airy .qprep-list,.cdet-airy .cdet-checklist{gap:10px}
  .cdet-airy .el-item,.cdet-airy .ask-item,.cdet-airy .qprep,.cdet-airy .detail-check{padding:13px 14px}
  .cdet-airy .el-item{gap:7px}
  .cdet-airy .prio-grid{gap:12px}
  .cdet-airy .prio-it{padding:11px 13px}
  .cdet-airy .lvl-row{padding:11px 14px}

  /* ===== L'annonce conservée — texte original capté, gardé tel quel ===== */
  .annonce{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}
  .annonce-prov{
    display:flex;align-items:center;gap:7px;flex-wrap:wrap;
    padding:8px 13px;background:var(--bg-2);border-bottom:1px solid var(--border);
    font-family:var(--font-mono);font-size:10px;color:var(--ink-3);letter-spacing:.02em;
  }
  .annonce-prov .src{display:inline-flex;align-items:center;gap:5px;color:var(--ink-2);font-weight:600}
  .annonce-prov .src svg,.annonce-prov .keep svg{color:inherit}
  .annonce-prov .sep{color:var(--ink-4)}
  .annonce-prov .keep{margin-left:auto;display:inline-flex;align-items:center;gap:5px;color:var(--success-700)}
  /* Fiche clé/valeur — table compacte, lignes alternées */
  .annonce-fiche{display:grid;grid-template-columns:auto 1fr}
  .annonce-frow{display:contents}
  .annonce-frow .k{
    padding:7px 13px;font-family:var(--font-mono);font-size:10px;font-weight:500;
    text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);white-space:nowrap;
    border-bottom:1px solid var(--border);background:var(--surface);
  }
  .annonce-frow .v{
    padding:7px 13px;font-size:12.5px;color:var(--ink);line-height:1.35;
    border-bottom:1px solid var(--border);border-left:1px solid var(--border);
  }
  .annonce-frow:last-child .k,.annonce-frow:last-child .v{border-bottom:0}
  /* Texte intégral (replié par défaut, retrouvable) */
  .annonce-full{border-top:1px solid var(--border)}
  .annonce-full > summary{
    list-style:none;cursor:pointer;display:flex;align-items:center;gap:7px;
    padding:9px 13px;font-size:12px;font-weight:600;color:var(--ink-2);
  }
  .annonce-full > summary::-webkit-details-marker{display:none}
  .annonce-full > summary svg{color:var(--ink-4)}
  .annonce-full > summary .annonce-note{
    font-family:var(--font-mono);font-size:9.5px;font-weight:500;text-transform:uppercase;
    letter-spacing:.05em;color:var(--ink-4);
  }
  .annonce-full > summary .chev{margin-left:auto;display:inline-flex;color:var(--ink-4);transition:transform var(--ease-out,.2s ease)}
  .annonce-full[open] > summary .chev{transform:rotate(180deg)}
  .annonce-doc{padding:2px 15px 15px;display:flex;flex-direction:column;gap:0}
  .annonce-sec{padding:12px 0;border-top:1px solid var(--border)}
  .annonce-sec:first-child{border-top:0;padding-top:4px}
  .annonce-sec:last-child{padding-bottom:0}
  .annonce-sec h6{margin:0 0 7px;font-size:12px;font-weight:650;color:var(--ink)}
  .annonce-sec p{margin:0;font-size:12.5px;line-height:1.6;color:var(--ink-2);text-wrap:pretty}
  .annonce-sec p+p{margin-top:8px}
  .annonce-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface);font-size:12.5px;color:var(--ink-2)}
  .annonce-table th{width:34%;padding:7px 9px;text-align:left;font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-4);background:var(--bg-2);border-bottom:1px solid var(--border)}
  .annonce-table th+th{width:auto;border-left:1px solid var(--border)}
  .annonce-table td{padding:8px 9px;vertical-align:top;border-top:1px solid var(--border);line-height:1.45}
  .annonce-table tbody tr:first-child td{border-top:0}
  .annonce-table td+td{border-left:1px solid var(--border);color:var(--ink)}
  .annonce-sec ul{margin:0;padding-left:17px;display:flex;flex-direction:column;gap:4px}
  .annonce-sec li{font-size:12.5px;line-height:1.45;color:var(--ink-2)}
  .annonce-srcline{
    display:flex;align-items:center;gap:6px;padding-top:8px;border-top:1px dashed var(--border);
    font-family:var(--font-mono);font-size:10px;color:var(--ink-4);word-break:break-all;
  }
  .annonce-srcline svg{flex-shrink:0}
  .annonce-extlink{appearance:none;border:0;background:transparent;padding:0;margin:0;font:inherit;color:var(--accent-600);text-decoration:none;border-bottom:1px solid color-mix(in oklab,var(--accent-600) 35%,transparent);cursor:pointer}
  .annonce-extlink:hover{color:var(--accent-700);border-bottom-color:var(--accent-600)}
  /* État vide — annonce pas encore captée */
  .annonce-empty{display:flex;align-items:center;gap:13px;padding:14px 15px}
  .annonce-empty > svg{color:var(--ink-4);flex-shrink:0}
  .annonce-empty-t{font-size:13px;font-weight:600;color:var(--ink)}
  .annonce-empty-s{font-size:11.5px;color:var(--ink-3);line-height:1.4;margin-top:2px}
  .annonce-empty .cdet-cta{margin-left:auto;flex-shrink:0}

  /* KPI strip */
  .analyse-kpis{
    display:grid;grid-template-columns:repeat(4, 1fr);gap:1px;
    background:var(--border);border:1px solid var(--border);border-radius:10px;overflow:hidden;
  }
  .analyse-kpi{background:var(--surface);padding:10px 12px;display:flex;flex-direction:column;gap:3px}
  .analyse-kpi .lbl{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em}
  .analyse-kpi .val{font-family:var(--font-mono);font-size:15px;font-weight:600;color:var(--ink);line-height:1.1;font-variant-numeric:tabular-nums}
  .analyse-kpi .val.good{color:var(--success-500)}
  .analyse-kpi .val.warn{color:var(--warning-500)}
  .analyse-kpi .val.bad{color:var(--danger-500)}
  .analyse-kpi .val .u{font-size:14px;font-weight:500;color:var(--ink-3);margin-left:1px}
  .analyse-kpi .sub{font-size:11.5px;color:var(--ink-3);line-height:1.3}

  /* Sections */
  .analyse-section{display:flex;flex-direction:column;gap:10px}
  .analyse-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
  .analyse-section-head h3{margin:0;font-size:15px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
  

  /* Checks grid */
  .analyse-grid{display:grid;grid-template-columns:repeat(2, 1fr);gap:10px}
  
  /* ton via la pastille d'icône, pas de bord gauche coloré (abandonné) */
  
  
  
  
  
  
  
  

  /* Salary benchmark */
  .salary-track{display:flex;flex-direction:column;gap:6px;padding:8px 4px 4px}
  .salary-track-bar{
    position:relative;height:24px;background:var(--bg-2);border-radius:99px;
    border:1px solid var(--border);
  }
  .salary-band{
    position:absolute;top:0;bottom:0;left:33%;right:11%;
    background:var(--success-50);border-radius:99px;
  }
  .salary-marker{position:absolute;top:50%;transform:translate(-50%, -50%)}
  .salary-marker .dot{
    display:block;width:14px;height:14px;border-radius:50%;background:var(--warning-500);
    border:2px solid var(--surface);box-shadow:var(--shadow-sm);
  }
  .salary-marker.median .dot{background:var(--success-500)}
  .salary-marker .lbl{
    position:absolute;top:-22px;left:50%;transform:translateX(-50%);
    font-family:var(--font-mono);font-size:10.5px;color:var(--ink-2);white-space:nowrap;
  }
  .salary-marker.median .lbl{top:auto;bottom:-22px;color:var(--success-700)}
  .salary-scale{
    display:flex;justify-content:space-between;padding:0 4px;
    font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);
  }

  /* Questions à poser */
  .analyse-questions{display:flex;flex-direction:column;gap:8px}
  .analyse-question{
    display:flex;gap:14px;align-items:flex-start;
    background:var(--surface);border:1px solid var(--border);border-radius:10px;
    padding:14px 16px;
  }
  .analyse-question .num{
    font-family:var(--font-mono);font-size:14px;font-weight:600;
    color:var(--accent-500);flex-shrink:0;letter-spacing:.04em;padding-top:2px;
  }
  .analyse-question .body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
  .analyse-question p{margin:0;font-size:13.5px;color:var(--ink);line-height:1.5;font-weight:500}
  .analyse-question .meta{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em}

  @media (max-width:980px){
    .analyse-verdict{grid-template-columns:auto 1fr}
    .analyse-verdict-score{grid-column:1 / -1;align-items:flex-start;text-align:left}
    .analyse-verdict-scores{grid-column:1 / -1;padding-top:6px}
    .analyse-kpis{grid-template-columns:repeat(2, 1fr)}
    .analyse-grid{grid-template-columns:1fr}
  }

  /* gauge */
  .gauge{position:relative;width:140px;height:140px;flex:0 0 140px}
  .gauge svg{width:100%;height:100%;transform:rotate(-90deg)}
  .gauge .lbl{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
  .gauge .lbl .v{font-size:34px;line-height:1;font-weight:600;letter-spacing:-.02em}
  .gauge .lbl .t{font-size:11px;color:var(--ink-3);margin-top:2px;font-family:var(--font-mono);text-transform:uppercase}
  .gauge.sm{width:90px;height:90px;flex:0 0 90px}
  .gauge.sm .lbl .v{font-size:22px}

  /* keyword chips */
  .kw{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;font-size:11px;border-radius:6px;font-weight:500}
  .kw.ok{background:var(--good-soft);color:var(--good-ink)}
  .kw.ko{background:var(--bad-soft);color:var(--bad-ink)}
  .kw.tilde{background:var(--warn-soft);color:var(--warn-ink)}

  /* generic cards / sections */
  /* Canon : une carte est une TUILE — blanche, filetée, un souffle d'ombre. */
  .card{background:var(--tile);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-xs)}
  .card.muted{background:var(--surface-2);box-shadow:none}
  /* Mise en avant calme (KPI, lignes de funnel…) : surbrillance, pas aplat. */
  .card.hi{background:var(--info-soft);border-color:var(--accent-soft)}
  .card.accent{border-color:var(--accent-soft-2);background:var(--accent-soft)}
  .pad{padding:14px}
  .pad-sm{padding:10px}
  .pad-lg{padding:18px}
  .stack{display:flex;flex-direction:column;gap:10px}
  .stack-sm{display:flex;flex-direction:column;gap:6px}
  .stack-lg{display:flex;flex-direction:column;gap:16px}
  .row{display:flex;gap:10px;align-items:center}
  .row-wrap{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .spread{display:flex;justify-content:space-between;align-items:center;gap:10px}
  .grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
  .grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
  @media (max-width:760px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}

  /* progress */
  .pbar{height:6px;background:var(--bg-2);border:1px solid var(--border);border-radius:99px;overflow:hidden}
  .pbar i{display:block;height:100%;background:var(--ink)}

  /* funnel */
  .funnel{display:flex;flex-direction:column;gap:7px}
  .funnel .step{
    display:grid;grid-template-columns:160px 1fr 70px;align-items:center;gap:14px;
    padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:8px;
  }
  .funnel .step .lbl{font-size:13.5px;font-weight:500;color:var(--ink-2)}
  .funnel .step .bar{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden;border:1px solid transparent}
  .funnel .step .bar i{display:block;height:100%;background:var(--accent);border-radius:99px}
  .funnel .step .n{font-family:var(--font-mono);font-size:13px;text-align:right;color:var(--ink);font-weight:600}
  .funnel .step.hi{background:var(--info-soft);border-color:var(--accent-soft)}
  .funnel .step.hi .lbl{color:var(--accent-ink);font-weight:600}

  /* heatmap — 5 nuances de slate */
  .heatmap{display:grid;grid-template-columns:repeat(52,1fr);gap:3px}
  .heatmap i{aspect-ratio:1;border-radius:3px;background:var(--bg-2);border:1px solid transparent}
  .heat-legend{display:inline-flex;gap:6px}
  .heat-legend i{width:12px;height:12px;border-radius:3px;background:var(--bg-2);border:1px solid var(--border)}
  .heatmap i.l1,.heat-legend i.l1{background:color-mix(in srgb,var(--accent) 14%,var(--surface));border-color:color-mix(in srgb,var(--accent) 18%,var(--surface))}
  .heatmap i.l2,.heat-legend i.l2{background:color-mix(in srgb,var(--accent) 28%,var(--surface));border-color:color-mix(in srgb,var(--accent) 34%,var(--surface))}
  .heatmap i.l3,.heat-legend i.l3{background:color-mix(in srgb,var(--accent) 50%,var(--surface));border-color:color-mix(in srgb,var(--accent) 58%,var(--surface))}
  .heatmap i.l4,.heat-legend i.l4{background:color-mix(in srgb,var(--accent) 76%,var(--ink));border-color:color-mix(in srgb,var(--accent) 86%,var(--ink))}
  .heatmap i.l5,.heat-legend i.l5{background:var(--accent-2);border-color:var(--accent-ink)}

  /* career timeline — segments en sémantiques sobres */
  /* =====================================================================
     Carrière — adaptateur Atelier.
     La frise conserve son vocabulaire historique --w-* pour ne pas déplacer
     le composant, mais chaque valeur est reliée au système global.
     ===================================================================== */
  .cr-warm{
    --w-paper:var(--surface); --w-paper-2:var(--surface-2); --w-paper-3:var(--bg-2);
    --w-border:var(--border); --w-border-2:var(--border-strong);
    --w-ink:var(--ink); --w-ink-2:var(--ink-2); --w-ink-3:var(--ink-3);
    --w-coral:var(--accent); --w-coral-2:var(--accent-2); --w-coral-soft:var(--accent-soft);
    --w-edu:var(--warn);     --w-edu-soft:var(--warn-soft);
    --w-work:var(--accent);  --w-work-soft:var(--accent-soft);
    --w-senior:var(--good);  --w-senior-soft:var(--good-soft);
    --w-search:var(--info);  --w-search-soft:var(--info-soft);
    --w-bad:var(--bad);      --w-bad-soft:var(--bad-soft);
    --w-serif:var(--font-sans);
    --w-mono:'Geist Mono',ui-monospace,monospace}
  .view.cr-warm{
    padding-top:0;
    background:var(--bg);
    color:var(--w-ink)}
  /* En-tête de vue, ré-habillé chaud — barre unique collante au scroll */
  /* En-tête de vue — aligné DESIGN SYSTEM SIHAGE : surface blanche, hairline, ombre douce, pills en segmented control */
  /* Header carrière relocalisé (juin 2026, Landry) : on réutilise le gabarit .sec-head de
     l'app (titre + actions) au lieu de l'ancienne barre .cr-bar1. Sticky + bleed pour
     remplir la largeur du conteneur de scroll .view (padding 0 12px 8px en mode warm). */
  .cr-warm .sec-head.cr-sechead{position:sticky;top:0;z-index:20;margin:0 -12px;border-radius:0;flex:0 0 auto}
  .cr-warm .sec-head.cr-sechead .sec-head-r{gap:12px}
  .cr-warm .view-head{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;flex-wrap:nowrap;margin:0 -24px 0;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-xs)}
  .cr-warm .view-head h1{font-family:var(--font-sans);font-weight:600;font-size:16px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink)}
  .cr-warm .view-head .h1-row{gap:10px;flex:0 0 auto}
  .cr-warm .view-head .cr-zpills{flex-wrap:nowrap}
  .cr-warm .view-head .cr-views{margin-left:auto;flex:0 0 auto}
  .cr-warm .view-head .tag,.cr-warm .view-head [class*="tag"]{font-family:var(--font-mono)}

  /* Pills (zoom + vue) : pattern segmented control du DS — conteneur slate, item actif blanc + ombre douce */
  .cr-warm .cr-zpills,.cr-warm .cr-views{display:inline-flex;gap:0;border:1px solid var(--border);border-radius:8px;padding:3px;background:var(--bg-2)}
  .cr-warm .cr-zpill,.cr-warm .cr-viewpill{font-family:var(--font-sans);font-size:12px;font-weight:500;white-space:nowrap;color:var(--ink-3);background:transparent;border:0;border-radius:6px;padding:5px 11px;cursor:pointer;line-height:1.2;box-shadow:none;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .cr-warm .cr-zpill:hover,.cr-warm .cr-viewpill:hover{transform:none;box-shadow:none;background:color-mix(in srgb,var(--ink) 4%,transparent);color:var(--ink)}
  .cr-warm .cr-zpill:active,.cr-warm .cr-viewpill:active{transform:scale(.965);box-shadow:none}
  .cr-warm .cr-zpill.on,.cr-warm .cr-viewpill.on{background:var(--surface);color:var(--ink);border-color:transparent;box-shadow:var(--shadow-sm)}
  .cr-warm .cr-editlink{font-family:var(--font-sans);font-size:13px;white-space:nowrap;color:var(--accent);background:none;border:0;padding:0 1px 1px;cursor:pointer;margin-left:4px}
  .cr-warm .cr-editlink:hover{color:var(--accent-2)}

  /* Barre ZOOM legacy (non utilisée dans la barre fusionnée) */
  .cr-zoombar{display:flex;align-items:center;gap:13px;margin:2px 0 16px;flex-wrap:wrap}
  .cr-zlabel{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--ink-3);text-transform:uppercase}
  .cr-zhint{margin-left:auto;font-family:var(--font-mono);font-size:10px;letter-spacing:.07em;color:var(--ink-3);text-transform:uppercase}

  /* Carte graphique : on retire toute la chrome de design system + remplit la hauteur */
  .view.cr-warm > .cr-stage{flex:1 1 auto;min-height:0;padding-top:18px}
  .cr-stage{display:flex;flex-direction:column}
  .cr-warm .cr-chartcard.card{background:transparent;border:0;box-shadow:none;padding:0;flex:1 1 auto;min-height:280px;display:flex;flex-direction:column}
  /* Frise : couloirs qui grandissent pour occuper la carte */
  .cr-warm .cr-gantt{flex:1 1 auto;min-height:0;max-height:660px;display:flex;flex-direction:column}
  /* Ruban temps navigable : le conteneur défile en X, le ruban interne s'élargit
     avec le zoom ; le coin + les en-têtes de couloirs restent COLLANTS à gauche. */
  .cr-warm .cr-gantt.cr-hscroll{display:block;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth}
  @media (pointer:fine){
    .cr-warm .cr-gantt.cr-hscroll::-webkit-scrollbar{height:10px}
    .cr-warm .cr-gantt.cr-hscroll::-webkit-scrollbar-thumb{background:var(--scroll-pill-thumb);border-radius:99px;border:2px solid var(--w-paper)}
  }
  .cr-warm .cr-gantt-inner{display:flex;flex-direction:column;height:100%;min-width:100%}
  .cr-warm .cr-gantt-inner .cr-gcorner{position:sticky;left:0;z-index:7}
  .cr-warm .cr-gantt-inner .cr-lane-h{position:sticky;left:0;z-index:6;box-shadow:1px 0 0 var(--w-border)}
  .cr-warm .cr-lane{flex:1 1 0;min-height:56px}
  .cr-warm .cr-track{height:100%}
  /* Jalons : bande centrée verticalement dans la carte */
  .cr-warm .cr-arch{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;max-height:560px}

  /* --- FRISE (Gantt papier) --- */
  .cr-gantt{border:1px solid var(--w-border);border-radius:13px;background:var(--w-paper);overflow:hidden;box-shadow:var(--shadow-md)}
  .cr-ghead{display:grid;grid-template-columns:132px 1fr}
  .cr-gcorner{position:relative;overflow:hidden;background:var(--w-paper-3);border-right:1px solid var(--w-border);border-bottom:1px solid var(--w-border);border-top-left-radius:12px;display:flex;flex-direction:column;justify-content:flex-end;gap:3px;padding:12px 14px}
  .cr-corner-ey{font-family:var(--w-mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--w-ink-2)}
  .cr-corner-val{font-family:var(--w-serif);font-weight:700;font-size:18px;line-height:1;color:var(--w-ink)}
  .cr-corner-sub{font-family:var(--w-mono);font-size:10px;color:var(--w-ink-2);letter-spacing:.01em}
  .cr-ghead-r{display:flex;flex-direction:column;min-width:0}
  .cr-mile{position:relative;height:92px;background:var(--w-paper-2);border-bottom:0}
  .cr-mstone{position:absolute;bottom:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer;width:max-content}
  .cr-mstone .t{font-family:var(--w-serif);font-weight:600;font-size:14.5px;color:var(--w-ink);white-space:nowrap;line-height:1.05}
  .cr-mstone .d{font-family:var(--w-mono);font-size:10px;color:var(--w-ink-3)}
  .cr-mstone .ln{width:1.5px;height:15px;background:var(--w-ink);margin-top:4px}
  .cr-mstone .dia{width:14px;height:14px;background:var(--w-coral);border:1px solid var(--w-border);transform:rotate(45deg);margin-top:1px;transition:transform .12s var(--ease-out)}
  .cr-mstone:hover .dia{transform:rotate(45deg) scale(1.14)}
  .cr-mstone.sel .dia{background:var(--w-ink)}
  .cr-mstone.sel .t{text-decoration:underline;text-decoration-color:var(--w-coral);text-underline-offset:3px}
  .cr-years{position:relative;height:30px;background:var(--w-ink);display:block}
  .cr-years span{position:absolute;top:50%;transform:translateY(-50%);font-family:var(--w-mono);font-weight:700;font-size:11px;color:var(--fg-inverse);letter-spacing:.02em}
  .cr-lane{display:grid;grid-template-columns:132px 1fr;border-top:1px solid var(--w-border)}
  .cr-lane:first-child{border-top:0}
  .cr-lane-h{display:flex;align-items:center;justify-content:center;padding:0 10px;font-family:var(--w-serif);font-weight:500;font-size:15px;color:var(--w-ink);border-right:1px solid var(--w-border);text-align:center}
  .cr-lane-h{background:var(--w-paper-3)}
  .cr-lane-h::before{content:"";width:7px;height:7px;border-radius:50%;flex:0 0 auto;margin-right:8px;background:var(--w-ink-3)}
  .cr-lane-h.lane-edu::before{background:var(--w-edu)}
  .cr-lane-h.lane-work::before{background:var(--w-work)}
  .cr-lane-h.lane-senior::before{background:var(--w-senior)}
  .cr-lane-h.lane-search::before{background:var(--w-search)}
  .cr-track{position:relative;height:56px;background-image:repeating-linear-gradient(90deg,transparent,transparent calc(12.5% - 1px),color-mix(in srgb,var(--ink) 7%,transparent) calc(12.5% - 1px),color-mix(in srgb,var(--ink) 7%,transparent) 12.5%)}
  .cr-bar{position:absolute;top:50%;transform:translateY(-50%);height:27px;background:var(--w-paper);border:1px solid var(--w-border-2);border-radius:6px;display:flex;align-items:center;gap:7px;padding:0 11px;font-family:var(--w-mono);font-size:11px;color:var(--w-ink);cursor:pointer;white-space:nowrap;transition:transform .12s var(--ease-out),box-shadow .12s var(--ease-out)}
  .cr-bar .cr-bar-lbl{display:flex;align-items:center;gap:7px;min-width:0;overflow:hidden}
  .cr-bar .cr-bar-lbl>.lbtxt{overflow:hidden;text-overflow:ellipsis}
  .cr-bar:hover{transform:translateY(-50%) translate(-1px,-1px);box-shadow:var(--shadow-md)}
  .cr-bar:hover .cr-bubble{display:flex}
  .cr-bar.sel{box-shadow:0 0 0 2.5px var(--w-coral)}
  .cr-bar.b-edu,.cr-bar.b-work,.cr-bar.b-senior,.cr-bar.b-search{background:var(--w-paper)}
  .cr-bar .det{font-family:var(--w-mono);font-size:9px;opacity:.7}
  .cr-bar.is-gap{background:var(--surface);color:var(--w-bad);border:1.5px dashed var(--w-bad);font-family:var(--w-mono)}
  .cr-bar.is-gap.sel{box-shadow:0 0 0 2.5px var(--w-bad)}
  /* bulle d'aperçu au survol (papier) */
  .cr-bubble{position:absolute;left:50%;bottom:100%;transform:translate(-50%,-6px);width:max-content;max-width:250px;background:var(--w-paper);color:var(--w-ink);border:1px solid var(--w-border);border-radius:8px;padding:9px 12px;flex-direction:column;gap:2px;display:none;pointer-events:none;z-index:6;white-space:normal}
  .cr-bubble:after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--w-ink);margin-top:0}
  .cr-bubble.dn{bottom:auto;top:100%;transform:translate(-50%,6px)}
  .cr-bar:hover .cr-bubble.dn{display:flex;transform:translate(-50%,6px)}
  .cr-bubble.dn:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--w-ink)}
  .cr-bubble strong{font-family:var(--w-serif);font-size:14px;font-weight:600;line-height:1.15}
  .cr-bubble .bb-meta{font-family:var(--w-mono);font-size:9px;color:var(--w-ink-3)}
  .cr-bubble .bb-desc{font-family:var(--w-serif);font-size:12.5px;color:var(--w-ink-2);line-height:1.35;margin-top:3px}

  /* Astuce + légende + coach (sous le graphique) */
  .cr-astuce{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--ink-3);text-transform:uppercase;margin-top:16px}
  .cr-legend{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin-top:14px;padding:11px 16px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-lg)}
  .cr-legend .lg{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-sans);font-size:11px;font-weight:500;letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase}
  .cr-legend .dot{width:9px;height:9px;border-radius:50%;border:1px solid var(--border-strong);flex:0 0 auto}
  .cr-coachbar{position:relative;margin-top:20px;border:1px solid var(--w-border);background:var(--w-coral-soft);border-radius:10px;padding:13px 18px;font-family:var(--w-serif);font-size:15.5px;line-height:1.4;color:var(--w-ink-2)}
  .cr-coachbar:before{content:"";position:absolute;left:30px;top:-9px;width:15px;height:15px;background:var(--w-coral-soft);border-left:1px solid var(--w-border);border-top:1px solid var(--w-border);transform:rotate(45deg)}
  /* Points de vigilance du parcours (trous / en-cours simultanés) · carte sobre, ton porté
     par la seule icône de titre (pas de bord coloré, cf. design system). */
  .cr-gaps{margin-top:16px;border:1px solid var(--w-border);background:var(--surface,#fff);border-radius:10px;padding:12px 15px}
  .cr-gaps-head{display:flex;align-items:center;gap:7px;font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--w-ink-2);margin-bottom:8px}
  .cr-gaps-head svg{color:var(--warn)}
  .cr-gap-item{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--w-border)}
  .cr-gap-item:first-of-type{border-top:0}
  .cr-gap-ic{flex:0 0 auto;color:var(--w-ink-3);margin-top:1px;display:inline-flex}
  .cr-gap-txt{display:flex;flex-direction:column;gap:2px}
  .cr-gap-txt b{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--w-ink)}
  .cr-gap-txt span{font-family:var(--font-sans);font-size:12.5px;line-height:1.45;color:var(--w-ink-3)}
  .cr-gap-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:7px}
  .cr-gap-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border:1px solid var(--border-soft);border-radius:6px;background:var(--surface,#fff);font-family:var(--font-sans);font-size:12px;font-weight:500;color:var(--w-ink-2);cursor:pointer;transition:border-color .18s ease,color .18s ease}
  .cr-gap-btn:hover{border-color:var(--accent);color:var(--accent)}
  .cr-gap-link{display:inline;padding:0;border:0;background:none;font:inherit;color:var(--accent);font-weight:600;cursor:pointer}
  .cr-gap-link:hover{text-decoration:underline}
  .cr-gap-linktxt{font-weight:600;color:var(--w-ink)}
  /* Masquage discret d'un point (Plus tard / ne pas en parler) — jamais imposé. */
  .cr-gap-item{position:relative}
  .cr-gap-txt{flex:1;min-width:0}
  .cr-gap-dismiss{position:relative;flex:0 0 auto}
  .cr-gap-x{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;border-radius:6px;background:none;color:var(--w-ink-3);cursor:pointer;opacity:.55;transition:opacity .18s ease,background .18s ease}
  .cr-gap-x:hover{opacity:1;background:var(--w-coral-soft)}
  .cr-gap-menu{position:absolute;top:26px;right:0;z-index:20;min-width:212px;display:flex;flex-direction:column;gap:2px;padding:5px;border:1px solid var(--w-border);border-radius:8px;background:var(--surface,#fff);box-shadow:0 8px 24px color-mix(in srgb,var(--ink) 12%,transparent)}
  .cr-gap-menu button{display:flex;align-items:center;gap:8px;padding:7px 9px;border:0;border-radius:6px;background:none;font-family:var(--font-sans);font-size:12.5px;color:var(--w-ink-2);text-align:left;cursor:pointer}
  .cr-gap-menu button:hover{background:var(--w-coral-soft);color:var(--w-ink)}
  .cr-gaps-restore{margin-top:9px;width:100%;padding:7px 2px 0;border:0;border-top:1px solid var(--w-border);background:none;font-family:var(--font-sans);font-size:12px;color:var(--w-ink-3);text-align:left;cursor:pointer}
  .cr-gaps-restore:hover{color:var(--accent)}
  .cr-gaps-restore.solo{margin-top:16px;border-top:0;padding:4px 0}

  /* --- JALONS (axe + cartouches) papier --- */
  .cr-arch{position:relative;padding:18px 0}
  /* Ruban navigable : on défile en X, le ruban interne s'élargit avec le zoom
     (les cartouches se désentassent). 76px de marge intérieure pour les cartouches d'extrémité. */
  .cr-warm .cr-jal-scroll{width:100%;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth}
  @media (pointer:fine){
    .cr-warm .cr-jal-scroll::-webkit-scrollbar{height:10px}
    .cr-warm .cr-jal-scroll::-webkit-scrollbar-thumb{background:var(--scroll-pill-thumb);border-radius:99px;border:2px solid var(--w-paper)}
  }
  .cr-band{position:relative;height:280px;box-sizing:border-box;min-width:100%}
  /* Rail interne : insère un espace de coordonnées plus étroit (76px de chaque côté)
     pour que les cartes ancrées au centre (translateX(-50%), 138px de large) ne débordent
     JAMAIS le ruban — le `left:%` se mesure contre ce rail, pas contre la bande pleine
     (le padding ne sert à rien pour des éléments en position:absolute). À « Vue d'ensemble »
     la bande tient donc sans scroll, comme la Frise. */
  .cr-band-rail{position:absolute;left:76px;right:76px;top:0;bottom:0}
  .cr-axis{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:32px;border:1px solid var(--w-border-2);border-radius:8px;background:var(--w-paper);display:flex;overflow:hidden;box-shadow:var(--shadow-sm)}
  .cr-phase{height:100%;display:flex;align-items:center;padding:0 12px;font-family:var(--w-serif);font-size:13px;font-weight:500;color:var(--w-ink);border-right:1px solid var(--w-border);cursor:pointer;transition:filter .15s}
  .cr-phase:last-child{border-right:0}
  .cr-phase::before{content:"";width:7px;height:7px;border-radius:50%;flex:0 0 auto;margin-right:8px;background:var(--w-ink-3)}
  .cr-phase.ph-edu::before{background:var(--w-edu)}
  .cr-phase.ph-work::before{background:var(--w-work)}
  .cr-phase.ph-senior::before{background:var(--w-senior)}
  .cr-phase.ph-search::before{background:var(--w-search)}
  .cr-phase:hover{filter:brightness(.96)}
  .cr-phase.sel{box-shadow:inset 0 0 0 2.5px var(--w-coral)}
  .cr-tick{position:absolute;top:calc(50% + 22px);transform:translateX(-50%);font-family:var(--w-mono);font-size:9px;color:var(--w-ink-3)}
  .cr-tick i{position:absolute;left:50%;top:-18px;width:1.5px;height:12px;background:var(--w-ink)}
  .cr-call{position:absolute;transform:translateX(-50%);width:138px;cursor:pointer}
  .cr-call.up{bottom:calc(50% + 28px)}
  .cr-call.dn{top:calc(50% + 36px)}
  .cr-call .bx{background:var(--w-paper);border:1px solid var(--w-border);border-radius:8px;padding:8px 11px;transition:transform .12s var(--ease-out),box-shadow .12s var(--ease-out)}
  .cr-call:hover .bx{transform:translate(-1px,-1px);box-shadow:var(--shadow-md)}
  .cr-call.sel .bx{box-shadow:0 0 0 2.5px var(--w-coral)}
  .cr-call .bx .t{font-family:var(--w-serif);font-weight:600;font-size:14px;color:var(--w-ink);line-height:1.15}
  .cr-call .bx .yr{font-family:var(--w-mono);font-size:9.5px;color:var(--w-ink-3);margin-top:3px}
  .cr-call .bx .s{font-family:var(--w-serif);font-size:11.5px;color:var(--w-ink-2);margin-top:4px;line-height:1.3}
  .cr-call .lead{position:absolute;left:50%;width:1.5px;background:var(--w-ink)}
  .cr-call.up .lead{top:100%;height:28px}
  .cr-call.dn .lead{bottom:100%;height:36px}
  .cr-call .medal{display:inline-flex;vertical-align:-2px;margin-right:4px;color:var(--w-coral)}

  /* --- RÉCIT vertical papier --- */
  /* Récit : la vue ne scrolle pas globalement — seule la colonne gauche défile,
     le panneau de droite reste totalement figé (rock solid). */
  .view.cr-warm:has(.cr-split){overflow:hidden}
  .view.cr-warm > .cr-split{flex:1 1 0;min-height:0}
  /* Récit en pleine largeur, centré (le dock latéral droit est abandonné : la fiche s'ouvre
     désormais en pop-up modal comme les vues Frise/Jalons). */
  .view.cr-warm:has(.cr-recit){overflow:hidden}
  .view.cr-warm > .cr-recit{flex:1 1 0;min-height:0}
  .cr-recit{max-width:772px;width:100%;margin:0 auto;height:100%;overflow-y:auto;overflow-x:hidden;padding:18px 16px 26px}
  @media (pointer:fine){
    .cr-recit::-webkit-scrollbar{width:9px}
    .cr-recit::-webkit-scrollbar-thumb{background:var(--scroll-pill-thumb);border-radius:99px}
  }
  .cr-split{display:grid;grid-template-columns:minmax(220px,var(--cr-split,50%)) 16px minmax(240px,1fr);gap:8px;align-items:start;padding-top:18px}
  .cr-split > div:first-child{height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px}
  @media (pointer:fine){
    .cr-split > div:first-child::-webkit-scrollbar{width:9px}
    .cr-split > div:first-child::-webkit-scrollbar-thumb{background:var(--scroll-pill-thumb);border-radius:99px}
  }
  .cr-gutter{align-self:stretch;cursor:col-resize;display:flex;align-items:center;justify-content:center;touch-action:none;z-index:6}
  .cr-gutter .grip{width:6px;height:48px;border-radius:99px;background:var(--w-paper-3);border:1px solid var(--w-border);transition:background .15s,box-shadow .15s}
  .cr-gutter:hover .grip{background:var(--w-coral);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent)}
  .cr-story{display:flex;flex-direction:column}
  .cr-phase-head{display:grid;grid-template-columns:74px 28px 1fr;align-items:center;margin:16px 0 2px}
  .cr-phase-head:first-child{margin-top:0}
  .cr-phase-chev{justify-self:center;width:12px;height:9px;background:var(--w-ink);clip-path:polygon(50% 0,100% 100%,0 100%)}
  .cr-phase-body{display:flex;align-items:baseline;gap:9px;border-bottom:1px solid var(--w-border);padding:0 0 6px 4px}
  .cr-phase-tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--w-mono);font-size:9px;text-transform:uppercase;letter-spacing:.06em;border-radius:6px;padding:2px 8px;color:var(--w-ink-2);background:var(--w-paper-3);border:1px solid var(--w-border);flex:0 0 auto}
  .cr-pt-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}
  .cr-phase-name{font-family:var(--w-serif);font-size:16px;font-weight:600;color:var(--w-ink);white-space:nowrap}
  .cr-phase-meta{font-family:var(--w-mono);font-size:9.5px;color:var(--w-ink-3);margin-left:auto}
  .cr-item{display:grid;grid-template-columns:98px 28px 1fr;align-items:start}
  .cr-when{text-align:right;padding:13px 8px 0 0;line-height:1.32}
  .cr-when .y{font-family:var(--w-serif);font-size:20px;font-weight:600;color:var(--w-ink)}
  .cr-when .s{font-family:var(--w-mono);font-size:9px;color:var(--w-ink-3);text-transform:uppercase;letter-spacing:.05em}
  .cr-when-end{font-family:var(--w-mono);font-size:9px;color:var(--w-ink-3);text-transform:uppercase;letter-spacing:.05em}
  .cr-when-dur{margin-top:3px;font-family:var(--w-mono);font-size:9.5px;color:var(--w-ink-2);letter-spacing:.02em;white-space:nowrap}
  .cr-rail{position:relative;display:flex;justify-content:center;align-self:stretch}
  .cr-rail:before{content:"";position:absolute;top:0;bottom:0;width:2px;background:var(--w-ink)}
  .cr-item:last-child .cr-rail:before{height:24px;bottom:auto}
  .cr-node{position:relative;z-index:1;width:13px;height:13px;border-radius:50%;border:2.5px solid var(--w-ink);background:var(--w-paper);margin-top:16px}
  .cr-node.is-gap{border-color:var(--w-bad);background:var(--w-paper);border-radius:3px;transform:rotate(45deg);width:12px;height:12px}
  .cr-node.is-search{border-color:var(--w-coral);background:var(--w-paper)}
  .cr-gaprow .cr-rail:before{background:repeating-linear-gradient(var(--w-bad) 0 4px,transparent 4px 8px)}
  .cr-gaprow.search .cr-rail:before{background:repeating-linear-gradient(var(--w-coral) 0 4px,transparent 4px 8px)}
  .cr-card{margin:8px 0 14px 4px;border:1px solid var(--w-border);border-radius:10px;background:var(--w-paper);padding:11px 13px;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
  .cr-card:hover{transform:none;background:var(--surface-2);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
  .cr-card.sel{background:var(--accent-soft);border-color:var(--border-strong);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}
  .cr-card .top{display:flex;align-items:center;gap:10px;justify-content:space-between}
  .cr-card .top strong{font-family:var(--w-serif);font-size:15.5px;font-weight:600;color:var(--w-ink)}
  .cr-mood{flex:0 0 auto;font-family:var(--w-mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em;border-radius:99px;padding:2px 10px;color:var(--w-ink-3);background:var(--w-paper-3);border:1px solid var(--w-border)}
  .cr-quote{font-family:var(--w-serif);font-size:14px;color:var(--w-ink-2);line-height:1.4;margin:7px 0 0}
  .cr-skills{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px;align-items:center}
  .cr-skills .lbl{font-family:var(--w-mono);font-size:8px;color:var(--w-ink-3);text-transform:uppercase;letter-spacing:.06em;margin-right:2px}
  .cr-skills .tag,.cr-skills [class*="tag"]{font-family:var(--w-mono)}
  .cr-gapbox{margin:7px 0 14px 4px;border:1.5px dashed var(--w-bad);border-radius:8px;background:var(--w-paper);padding:9px 12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;cursor:pointer;transition:box-shadow .14s}
  .cr-gaprow.search .cr-gapbox{border-color:var(--w-coral);background:var(--w-paper)}
  .cr-gapbox:hover{box-shadow:0 4px 12px -6px color-mix(in srgb,var(--ink) 16%,transparent)}
  .cr-gapbox.sel{box-shadow:0 0 0 2.5px var(--w-bad)}
  .cr-gaprow.search .cr-gapbox.sel{box-shadow:0 0 0 2.5px var(--w-coral)}
  
  
  .cr-gap-txt{font-family:var(--w-serif);font-size:13px;color:var(--w-ink-2);flex:1;min-width:120px;line-height:1.3}
  
  

  /* --- Detail (pop-up & dock) papier --- */
  .cr-modal{width:min(1100px,92vw);max-height:min(760px,88vh);display:flex;overflow:hidden}
  .cr-detail.cr-overlay-card{border-radius:16px;box-shadow:var(--shadow-overlay);display:flex;flex-direction:column;width:100%;max-height:100%;overflow:hidden}
  .cr-overlay-card .cr-dhead{border-radius:16px 16px 0 0;flex:0 0 auto}
  .cr-overlay-card .cr-dbody{flex:1 1 auto;min-height:0;overflow-y:auto}
  .cr-overlay-card .cr-foot{flex:0 0 auto;border-top:1px solid var(--w-border);background:var(--w-paper);padding:12px 16px;margin:0}
  /* Positionnement seulement : le visuel vient de l'atome .ui-close-button. */
  .cr-dclose{position:absolute;top:7px;right:11px}
  .cr-overlay-card .cr-eyebrow{padding-right:40px}
  .cr-detail{border:1px solid var(--w-border);border-radius:13px;background:var(--w-paper);overflow:hidden;box-shadow:var(--shadow-md)}
  .cr-below{margin-top:16px}
  .cr-dock{position:static;align-self:stretch;min-height:0;max-height:100%;overflow-y:auto;overflow-x:hidden}
  .cr-dhead{display:flex;align-items:stretch;border-bottom:1px solid var(--w-border);position:relative}
  .cr-dhead .txt{flex:1;min-width:0;padding:10px 16px 11px;display:flex;flex-direction:column;gap:7px}
  .cr-eyebrow{display:flex;align-items:center;gap:8px}
  .cr-chip{font-family:var(--w-mono);font-size:9px;text-transform:uppercase;letter-spacing:.06em;border-radius:6px;padding:2px 8px;background:var(--w-paper);border:1.5px solid currentColor;white-space:nowrap}
  .cr-period{margin-left:auto;font-family:var(--w-mono);font-size:9.5px;color:var(--w-ink-2);background:var(--w-paper);border:1px solid var(--w-border);border-radius:99px;padding:2px 10px;white-space:nowrap}
  .cr-dtitle{font-family:var(--w-serif);font-size:22px;font-weight:600;color:var(--w-ink);line-height:1.1}
  .cr-dsub{font-family:var(--w-serif);font-size:13.5px;color:var(--w-ink-2);line-height:1.35;border-top:1.5px dashed color-mix(in srgb,var(--ink) 25%,transparent);padding-top:8px}
  .cr-dbody{padding:14px 16px;display:grid;grid-template-columns:1fr 1fr;gap:16px 22px;background:var(--w-paper)}
  .cr-dock .cr-dbody{grid-template-columns:1fr}
  .cr-col{display:flex;flex-direction:column;gap:10px;min-width:0}
  .cr-sec{font-family:var(--w-mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--w-ink-3)}
  .cr-field{display:flex;gap:8px;align-items:baseline;font-size:13.5px;font-family:var(--w-serif)}
  .cr-field .k{font-family:var(--w-mono);font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--w-ink-3);flex:0 0 88px}
  .cr-field .v{color:var(--w-ink);flex:1}
  .cr-field .v.empty{color:var(--w-ink-3)}
  .cr-kids{display:flex;flex-direction:column;gap:6px}
  .cr-kid{display:flex;align-items:center;gap:8px;border:1px solid var(--w-border);border-radius:8px;background:var(--w-paper-2);padding:6px 9px}
  .cr-kid .num{font-family:var(--w-mono);font-size:10px;color:var(--w-ink-3);flex:0 0 auto}
  .cr-kid .tx{flex:1;font-family:var(--w-serif);font-size:13.5px;color:var(--w-ink);padding:2px 4px}
  .cr-tags{display:flex;flex-wrap:wrap;gap:6px}
  .cr-tagchip{font-family:var(--w-mono);font-size:10px;color:var(--w-ink-2);background:var(--w-paper-2);border:1px solid var(--w-border);border-radius:99px;padding:2px 9px}
  .cr-foot{grid-column:1/-1;display:flex;flex-direction:column;gap:10px}
  .cr-dock .cr-foot{grid-column:auto}
  .cr-coach{display:flex;gap:10px;align-items:flex-start;padding:11px 13px;background:var(--w-paper-3);border:1px solid var(--w-border);border-radius:8px}
  .cr-coach .ico{width:24px;height:24px;border-radius:6px;background:var(--w-coral);color:var(--fg-inverse);display:grid;place-items:center;flex:0 0 auto;margin-top:1px;border:1px solid var(--w-coral)}
  .cr-coach p{font-family:var(--w-serif);font-size:13.5px;color:var(--w-ink-2);line-height:1.45}
  .cr-coach strong{font-style:normal;font-weight:600}
  .cr-missing{padding:9px 11px;border:1px dashed var(--w-border-2);background:var(--w-paper-3);border-radius:8px;font-family:var(--w-serif);font-size:13px;color:var(--w-ink-2);line-height:1.4}
  /* Actions d'intégration SIHAGE : lien carnet Vault + bouton « Discuter avec l'assistant » (gabarit DS .vdp-btn) */
  .cr-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
  .cr-dock .cr-actions{flex-direction:column;align-items:stretch}
  .cr-openvault{flex:1 1 auto;display:inline-flex;align-items:center;gap:9px;min-width:0;height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--w-border-2);background:var(--w-paper-2);color:var(--w-ink-2);font:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:border-color .15s var(--ease-out),color .15s var(--ease-out),background .15s var(--ease-out)}
  .cr-openvault:hover{border-color:var(--w-coral);color:var(--w-coral);background:var(--w-coral-soft)}
  .cr-openvault svg{color:var(--w-ink-3);flex:0 0 auto}
  .cr-openvault:hover svg{color:var(--w-coral)}
  .cr-openvault .cr-ov-tx{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
  .cr-openvault .cr-ov-tx strong{font-weight:600}
  .cr-openvault svg:last-child{margin-left:auto}
  .cr-actions .cr-asstbtn{flex:0 0 auto;white-space:nowrap}
  .cr-dock .cr-asstbtn{justify-content:center}
  
  @media(max-width:820px){.cr-split{grid-template-columns:1fr}.cr-gutter{display:none}.cr-dock{position:static}.cr-dbody{grid-template-columns:1fr}}

  /* chat */
  .chat{display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--bg-2);border:1px solid var(--border);border-radius:13px;height:100%;min-height:380px}
  .bubble{padding:10px 13px;border-radius:13px;font-size:13.5px;line-height:1.45;color:var(--ink-2);max-width:80%;background:var(--surface);border:1px solid var(--border)}
  .bubble.user{align-self:flex-end;background:var(--ink);color:var(--fg-inverse);border-color:var(--ink)}
  .bubble.acc{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent-soft-2)}
  .asst-scroll .asst-b.user{background:var(--bg-2);color:var(--ink);border-color:var(--border-strong)}
  .asst-sources{margin-top:7px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
  .asst-src-toggle{height:26px;padding:0 8px;border-radius:8px;border:1px solid var(--border-soft);background:var(--surface);color:var(--ink-3);font:inherit;font-size:11.5px;display:inline-flex;align-items:center;gap:5px;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .asst-src-toggle:hover{background:var(--bg-2);border-color:var(--border-strong);color:var(--ink)}
  .asst-src-list{width:100%;display:flex;flex-direction:column;gap:5px;padding:7px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2)}
  .asst-src-item{display:flex;flex-direction:column;gap:2px;padding:7px 8px;border-radius:8px;background:var(--surface);border:1px solid var(--border);font-size:11.5px;line-height:1.35;color:var(--ink-3)}
  .asst-src-kind{font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4)}
  .asst-src-item strong{font-size:12px;font-weight:600;color:var(--ink);line-height:1.3}
  .quick{display:flex;gap:6px;flex-wrap:wrap}
  

  /* Coach — mise en page pleine hauteur (header compact, colonnes jusqu'au bas) */
  .coach-view{display:flex;flex-direction:column;overflow:hidden}
  .coach-view .coach-head{margin-bottom:14px}
  .coach-view .coach-head p{max-width:520px}
  .view.coach-view > .coach-grid{flex:1 1 auto;flex-shrink:1;min-height:0;display:grid;grid-template-columns:1.4fr 1fr;gap:14px;align-items:stretch}
  @media (max-width:880px){.view.coach-view > .coach-grid{grid-template-columns:1fr}}
  
  .coach-chat-id{margin-bottom:12px;flex-shrink:0}
  .coach-chat{flex:1 1 auto;min-height:0}
  .chat.coach-chat{min-height:0}
  .chat-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-bottom:4px}
  .chat-scroll .bubble.user{align-self:flex-end}
  .coach-side{overflow-y:auto}

  /* details for collapsible sections */
  details summary{
    cursor:pointer;list-style:none;font-size:13.5px;font-weight:600;color:var(--ink);
    padding:8px 0;display:flex;align-items:center;gap:8px}
  details summary::-webkit-details-marker{display:none}
  details summary:before{content:"›";color:var(--ink-3);transition: transform var(--dur-fast) var(--ease-out);font-size:18px;line-height:1}
  details[open] summary:before{transform:rotate(90deg)}

  /* mini scroll spy nav for career */
  .career-spy{
    position:sticky;top:64px;z-index:5;background:var(--bg);border-bottom:1px solid var(--border);
    display:flex;gap:0;padding:8px 24px 0}
  .career-spy .item{padding:8px 12px 12px;font-size:13px;color:var(--ink-3);font-weight:500;cursor:pointer;border-bottom:2px solid transparent}
  .career-spy .item.on{color:var(--ink);border-bottom-color:var(--accent)}

  /* wizard add */
  .add-wizard{display:grid;grid-template-columns:220px 1fr;flex:1;overflow:hidden;min-height:0}
  .add-stepper{background:var(--surface-2);padding:18px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:18px;overflow:auto}
  
  .step-n{
    width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
    font-size:11px;font-weight:600;flex:0 0 auto;
    background:var(--surface);color:var(--ink-3);border:1px solid var(--border-strong)}
  
  
  

  /* utility */
  .grow{flex:1}.center{display:grid;place-items:center}
  .nowrap{white-space:nowrap}
  .mt-6{margin-top:6px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}

  /* ===== Activity timeline ===== */
  .act-stream{display:flex;flex-direction:column;gap:0}
  .act-day{display:grid;grid-template-columns:120px 1fr;gap:24px;padding:18px 0;border-top:1px solid var(--border)}
  .act-day:first-child{border-top:0}
  .act-day-label{position:sticky;top:74px;align-self:flex-start;display:flex;flex-direction:column;gap:2px}
  .act-day-label .d{font-size:22px;font-weight:600;letter-spacing:-.02em;line-height:1}
  .act-day-label .m{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-weight:500}
  .act-day-label .n{font-size:11px;color:var(--ink-3);margin-top:6px}
  .act-day-list{display:flex;flex-direction:column;gap:8px}
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  /* ===== Sparkbars (activity period summary) ===== */
  .sparkbars{display:flex;align-items:flex-end;gap:4px;height:54px}
  .sparkbars i{flex:1;border-radius:3px 3px 0 0;background:var(--bg-2);border:1px solid var(--border);min-width:8px;min-height:6px;position:relative}
  .sparkbars i.has{background:var(--accent);border-color:var(--accent-2)}
  .sparkbars i.has.lo{background:var(--accent-300, #82A5DA);border-color:var(--accent-400, #5781C5)}
  .sparkbars i.today{outline:2px solid var(--ink);outline-offset:1px}

  /* ===== Journal note (in activity stream) ===== */
  
  
  
  
  
  
  
  
  
  .note-attach{
    display:inline-flex;align-items:center;gap:6px;padding:5px 9px;
    background:var(--surface);border:1px solid var(--border);border-radius:8px;
    font-size:12px;color:var(--ink-2);max-width:240px;
  }
  .note-attach .ext{font-family:var(--font-mono);font-size:9px;color:var(--ink-3);text-transform:uppercase;background:var(--bg-2);padding:1px 5px;border-radius:3px}
  .note-attach .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .note-attach .rm{background:transparent;border:0;color:var(--ink-4);cursor:pointer;padding:0;display:inline-grid;place-items:center;width:14px;height:14px;border-radius:50%}
  .note-attach .rm:hover{background:var(--bg-2);color:var(--ink-2)}
  
  

  /* Composer */
  .note-composer{
    background:var(--surface);border:1px solid var(--accent-100);border-radius:13px;
    padding:14px;display:flex;flex-direction:column;gap:10px;
    box-shadow:var(--shadow-sm);
  }
  .note-composer .nc-title{
    border:0;font:inherit;font-family:var(--font-sans);font-style:normal;font-weight:600;
    font-size:15px;color:var(--ink);background:transparent;padding:2px 0;letter-spacing:-.01em;
  }
  .note-composer .nc-title:focus{outline:none}
  .note-composer .nc-body{
    border:0;font:inherit;font-size:14px;color:var(--ink-2);background:transparent;
    padding:2px 0;resize:none;min-height:80px;font-family:inherit;line-height:1.55;
  }
  .note-composer .nc-body:focus{outline:none}
  .note-composer .nc-toolbar{
    display:flex;align-items:center;gap:8px;flex-wrap:wrap;
    padding-top:8px;border-top:1px dashed var(--border);
  }
  .note-composer .nc-toolbar .grow{flex:1}
  .note-composer .nc-link{
    display:flex;align-items:center;gap:6px;padding:5px 9px;
    background:var(--bg-2);border:1px solid var(--border-soft);border-radius:8px;
    font-size:12px;color:var(--ink-2);cursor:pointer;
  }
  .note-composer .nc-link:hover{background:var(--surface);border-color:var(--ink-5)}
  .note-composer .nc-link.linked{background:var(--accent-soft);border-color:transparent;color:var(--accent-ink);font-weight:500}

  /* Linked card pill (used in note row footer) */
  
  
  
  
  

  /* Add-note inline button (per day) */
  
  

  /* Link picker dropdown */
  .link-picker{
    position:absolute;z-index:30;background:var(--surface);border:1px solid var(--border);
    border-radius:10px;box-shadow:var(--shadow-md);padding:6px;width:280px;max-height:260px;overflow:auto;
    display:flex;flex-direction:column;gap:1px;
  }
  .link-picker .lp-item{
    display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;cursor:pointer;
    font-size:13px;color:var(--ink-2);
  }
  .link-picker .lp-item:hover{background:var(--bg-2);color:var(--ink)}
  .link-picker .lp-item .role{font-size:11px;color:var(--ink-3);margin-left:auto}
  .link-picker .lp-item.clear{color:var(--bad-ink);font-weight:500;border-top:1px solid var(--border);margin-top:4px;padding-top:9px}
  body[data-density="compact"] .kc{padding:8px;gap:6px}
  body[data-density="compact"] .kc-loc{display:none}
  body[data-density="compact"] .cand-kanban-body{gap:7px;padding:8px}
  body[data-density="compact"] .cand-kanban-board{gap:10px}
  body[data-density="cozy"] .kc{padding:14px;gap:11px}
  body[data-density="cozy"] .cand-kanban-body{gap:12px;padding:12px}
  body[data-density="cozy"] .cand-kanban-board{gap:14px}

  /* tweak-driven hides */
  /* Card field hide rules (driven by data-hide-* on body) */
  body[data-hide-match="1"] .kc .kc-score[data-field="match"]{display:none}
  body[data-hide-ats="1"] .kc .kc-score[data-field="ats"]{display:none}
  body[data-hide-contract="1"] .kc .kc-facts .tag:first-child{display:none}
  body[data-hide-location="1"] .kc-loc{display:none}

  /* Display settings — modal overlay (kanban) */
  .display-overlay{
    position:fixed;inset:0;z-index:60;
    background:var(--scrim);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);
    display:flex;align-items:center;justify-content:center;padding:32px;
    animation:fadeIn var(--dur-fast) var(--ease-out);
  }
  .display-modal{
    width:min(520px, 100%);max-height:calc(100vh - 64px);
    background:var(--surface);border:1px solid var(--border);border-radius:14px;
    box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column;
    animation:slideUp var(--dur-fast) var(--ease-out);
  }
  .display-modal .dm-head{
    padding:14px 18px;border-bottom:1px solid var(--border);background:var(--surface);
    display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  }
  .display-modal .dm-head h3{font-size:16px}
  .display-modal .dm-head p{font-size:12.5px;color:var(--ink-3);margin-top:2px}
  .display-modal .dm-body{padding:14px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}
  .display-modal .dm-foot{
    padding:10px 18px;border-top:1px solid var(--border);background:var(--surface-2);
    display:flex;justify-content:space-between;align-items:center;gap:8px;
  }
  .display-modal h6{
    margin:0;padding:10px 4px 4px;font-size:10.5px;font-weight:600;
    color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;
  }
  .display-modal h6:first-child{padding-top:2px}
  .dp-row{
    display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:8px;
    font-size:13px;color:var(--ink-2);
  }
  .dp-row:hover{background:var(--bg-2)}
  .dp-row .lbl{flex:1;display:flex;align-items:center;gap:8px}
  .dp-row .lbl .ic{color:var(--ink-3);display:grid;place-items:center;width:16px;height:16px}
  .dp-segmented{display:inline-flex;gap:0;border:1px solid var(--border);border-radius:8px;padding:2px;background:var(--bg-2)}
  .dp-segmented .seg{padding:3px 8px;font:inherit;font-size:11px;font-weight:500;color:var(--ink-3);border:0;background:transparent;border-radius:6px;cursor:pointer;line-height:1.2}
  .dp-segmented .seg:hover:not(.on){color:var(--ink)}
  .dp-segmented .seg:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .dp-segmented .seg.on{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--border)}
  .dp-toggle{
    width:32px;height:18px;border-radius:99px;background:var(--surface-3);
    border:1px solid var(--border-strong);position:relative;cursor:pointer;flex:0 0 auto;
    padding:0;
    transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
  }
  .dp-toggle::after{
    content:"";position:absolute;top:1px;left:1px;width:14px;height:14px;border-radius:50%;
    background:var(--surface);box-shadow:var(--shadow-sm);transition: transform var(--dur-fast) var(--ease-out);
  }
  .dp-toggle[aria-pressed="true"]{background:var(--accent);border-color:var(--accent-2)}
  .dp-toggle[aria-pressed="true"]::after{transform:translateX(14px)}
  .dp-toggle:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .dp-divider{height:1px;background:var(--border);margin:6px -4px}
  .dm-foot .reset{
    background:transparent;border:0;font:inherit;font-size:12px;color:var(--ink-3);cursor:pointer;
    padding:5px 8px;border-radius:6px;
  }
  .dm-foot .reset:hover{background:var(--bg-2);color:var(--ink-2)}

  /* responsive */
  @media (max-width:1100px){
    .cand-kanban-board{grid-template-columns:repeat(5,260px)}
  }
  @media (max-width:820px){
    .os-shell{flex-direction:column}
    .side{width:100%;flex:initial;position:static;height:auto;border-right:0;border-bottom:1px solid var(--border)}
    .cand-kanban-board{grid-template-columns:repeat(5,220px)}
    .modal-body{grid-template-columns:1fr}
    
    
    .add-wizard{grid-template-columns:1fr}
    .add-stepper{flex-direction:row;overflow:auto;gap:24px}
  }

  /* ===== Outil « Mes CV » — éditeur alimenté par le Vault ===== */
  .cvedit{flex:1;display:flex;flex-direction:column;min-height:0;background:var(--bg);position:relative}
  /* V4 : les outils plein écran reçoivent le même cadre léger que le Vault */
  .col > .cvedit,.col > .ltedit,.col > .contview,.col > .goalsview{margin:8px;border:1px solid var(--border);border-radius:14px;overflow:hidden}
  /* Outil « Gestion des objectifs » (vue centralisée) */
  .goalsview{flex:1;display:flex;flex-direction:column;min-height:0;background:var(--bg)}
  .vw-goals-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:auto}
  .vw-goals{padding-top:20px}
  .vw-carnet-prog{display:inline-flex;align-items:center;gap:8px}
  .vw-carnet-prog .mono{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}
  .vw-carnet-pbar{width:72px;height:5px;border-radius:99px;background:var(--bg-2);overflow:hidden}
  .vw-carnet-pbar i{display:block;height:100%;border-radius:99px;background:var(--ink)}
  .vw-carnet-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border-soft);background:var(--bg-2);border-radius:99px;padding:2px 9px;font-size:10.5px;font-weight:500;color:var(--ink-3);white-space:nowrap;flex-shrink:0}
  .vw-carnet-chip svg{color:var(--ink-4)}

  /* barre d'onglets de l'outil CV — bouton Assistant fusionné en bout de ligne */
  .cve-top{flex:0 0 auto;position:relative;display:flex;align-items:center;gap:12px;padding:6px 16px 6px 18px;border-bottom:1px solid var(--border);background:var(--surface)}
  
  .cve-crumbs{display:flex;align-items:center;gap:4px;min-width:0;flex:1 1 auto}
  .cve-crumb{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;font:inherit;font-size:13.5px;font-weight:500;color:var(--ink-3);background:transparent;border:0;border-radius:8px;padding:5px 9px;cursor:pointer;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .cve-crumb.mid{flex:0 1 auto;min-width:0}
  .cve-crumb:hover{background:var(--bg-2);color:var(--ink)}
  .cve-crumb > svg{flex:0 0 auto;color:var(--ink-4)}
  .cve-crumb-lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cve-crumb.cur{color:var(--ink);font-weight:600;cursor:default}
  .cve-crumb.cur:hover{background:transparent}
  .cve-crumb.cur > svg{color:var(--accent)}
  .cve-crumb-chev{color:var(--ink-5,var(--border-strong));flex:0 0 auto}
  /* en édition : la campagne reste visible dans le fil d'Ariane */
  .cve-crumb-more{display:inline-flex;align-items:center;max-width:360px;opacity:1;overflow:hidden;position:relative;z-index:2;background:var(--surface);border-radius:8px}
  /* bloc entreprise + sélecteur CV|Lettre, centré dans le header */
  .cve-leaf-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;display:flex;align-items:center}
  .cve-crumb-leaf{display:inline-flex;align-items:center;gap:9px;flex:0 0 auto;padding:3px 4px 3px 9px;border-radius:8px;background:var(--bg-2)}
  .cve-crumb-leaf > .cve-crumb-lbl{font-size:13.5px;font-weight:600;color:var(--ink);max-width:200px}
  .cve-doctoggle{display:inline-flex;align-items:center;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:2px;flex:0 0 auto}
  .cve-doctoggle button{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;font:inherit;font-size:12px;font-weight:600;color:var(--ink-3);padding:4px 10px;border-radius:6px;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .cve-doctoggle button:hover:not(:disabled):not(.on){color:var(--ink)}
  .cve-doctoggle button.on{background:var(--accent-soft);color:var(--accent)}
  .cve-doctoggle button.on svg{color:var(--accent)}
  .cve-doctoggle button svg{color:var(--ink-4);flex:0 0 auto}
  .cve-doctoggle button:disabled{opacity:.4;cursor:not-allowed}
  .cve-dtab-lbl{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
  .cve-dtab-kind{flex:0 0 auto;font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.04em;color:var(--ink-4);background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:1px 4px}
  .cve-dtab-x{flex:0 0 auto;display:grid;place-items:center;width:18px;height:18px;border:0;border-radius:6px;background:transparent;color:var(--ink-4);cursor:pointer}
  .cve-dtab-x:hover{background:var(--bad-soft,#f6e3e1);color:var(--bad,#C4453A)}
  .cve-dtab-end{position:relative;flex:0 0 auto;width:18px;height:18px;display:grid;place-items:center}
  
  .cve-dtab-end .cve-dtab-x{position:absolute;inset:0;opacity:0;transition:opacity var(--dur-fast) var(--ease-out)}
  
  .cve-tabs{display:flex;align-items:center;gap:4px;background:var(--bg-2);border-radius:10px;padding:3px}
  
  .cve-tab{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;font:inherit;font-size:13px;font-weight:600;color:var(--ink-3);padding:7px 14px;border-radius:8px;cursor:pointer;white-space:nowrap;transition:color .15s,background-color .15s}
  .cve-tab:hover{color:var(--ink-2)}
  .cve-tab.on{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--border)}
  .cve-tab.on svg{color:var(--accent)}
  .cve-tab-sub{font-weight:500;font-size:11px;color:var(--ink-3);background:var(--bg-2);border-radius:99px;padding:1px 8px}
  .cve-tab.on .cve-tab-sub{background:var(--accent-soft);color:var(--accent)}
  /* Canon SIH-74 : l'action principale parle la matière pastille, partout. */
  .cve-newcv{display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:13px;font-weight:600;color:var(--action-ink);background:var(--action-bg);border:1px solid var(--action-border);border-radius:8px;padding:8px 14px;cursor:pointer;white-space:nowrap;transition:background-color .15s}
  .cve-newcv:hover{background:var(--action-bg-hover)}
  .cve-newcv-group{display:flex;align-items:center;gap:8px;flex:0 0 auto}
  .cve-newwrap{position:relative;flex:0 0 auto;margin-left:auto}
  .cve-newbackdrop{position:fixed;inset:0;z-index:39}
  .cve-newmenu{position:absolute;top:calc(100% + 7px);right:0;width:288px;background:var(--surface);border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow-lg);padding:6px;z-index:40;animation:lteFocusIn var(--dur-fast) var(--ease-out)}
  .cve-newmenu-cap{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);padding:7px 9px 5px}
  .cve-newmenu button{display:flex;align-items:flex-start;gap:11px;width:100%;text-align:left;border:0;background:transparent;border-radius:8px;padding:9px 9px;cursor:pointer;font:inherit}
  .cve-newmenu button:hover{background:var(--bg-2)}
  .cve-newmenu button .ic{flex:0 0 auto;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:var(--bg-2);color:var(--ink-2)}
  .cve-newmenu button:hover .ic{background:var(--accent-soft);color:var(--accent)}
  .cve-newmenu button b{display:block;font-size:13px;font-weight:600;color:var(--ink)}
  .cve-newmenu button > div > span{display:block;font-size:11.5px;color:var(--ink-3);margin-top:1px;line-height:1.35}
  .cve-newmenu.wide{width:340px}
  .cve-panel-search kbd{flex:0 0 auto;font-family:var(--font-mono);font-size:10px;color:var(--ink-4);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:1px 5px}
  .cve-cmd-empty{font-size:12px;color:var(--ink-3);padding:10px 10px 8px;line-height:1.5}
  .cve-cmd-empty button{font:inherit;font-size:12px;font-weight:600;color:var(--accent);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
  .cve-newmenu-primary{align-items:center !important}
  .cve-newmenu-primary .go{margin-left:auto;color:var(--ink-4);align-self:center}
  .cve-newmenu-primary:hover .go{color:var(--accent)}
  .cve-newmenu-list{max-height:300px;overflow-y:auto;margin-top:2px;border-top:1px solid var(--border);padding-top:4px}
  .cve-newmenu-list button{align-items:center !important}
  .cve-newmenu-list .lg{flex:0 0 auto;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--bg-2);border:1px solid var(--border);font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--ink-2)}
  .cve-newmenu-list .id{flex:1 1 auto;min-width:0}
  .cve-newmenu-list .id b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cve-newmenu-list .id span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cve-newmenu-st{flex:0 0 auto;font-size:10px;font-weight:600;border-radius:99px;padding:2px 8px;white-space:nowrap}
  .cve-newmenu-st.good{color:var(--good-ink);background:var(--good-soft)}
  .cve-newmenu-st.info{color:var(--accent);background:var(--accent-soft)}
  .cve-newmenu-st.warn{color:var(--warn-ink,#8a5208);background:var(--warn-soft,#fbf0dd)}
  .cve-newcv.ghost{background:var(--surface);color:var(--ink-2);border:1px solid var(--border-strong);box-shadow:none}
  .cve-newcv.ghost:hover{background:var(--bg-2);color:var(--ink);border-color:var(--ink-4)}
  .cve-newcv.ghost svg{color:var(--ink-3)}

  /* vue Bibliothèque */
  .cve-lib2{flex:1;min-height:0;overflow:hidden;background:var(--bg)}
  .cve-lib2-scroll{height:100%;overflow-y:auto;padding:16px 30px 40px}
  .cve-lib2-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;max-width:1080px;margin:0 auto 16px}
  .cve-lib2-head.row{align-items:center;gap:16px;margin-bottom:14px}
  .cve-lib2-head.row h2{margin:0;font-size:16px;display:flex;align-items:center;gap:10px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cve-lib2-count{flex:0 0 auto;font-size:13px;color:var(--ink-3);white-space:nowrap}
  .cve-lib2-count b{color:var(--ink);font-weight:600;font-family:var(--font-mono)}
  .cve-info{position:relative;display:inline-flex;align-items:center;margin-left:9px;color:var(--ink-4);cursor:help;vertical-align:middle}
  .cve-info:hover,.cve-info:focus-visible{color:var(--accent);outline:none}
  .cve-info-tip{position:absolute;top:calc(100% + 9px);left:0;width:max-content;max-width:300px;background:var(--sidebar-bg);color:var(--fg-inverse);font-size:12px;font-weight:400;letter-spacing:0;line-height:1.5;padding:10px 13px;border-radius:10px;box-shadow:var(--shadow-lg);opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);z-index:80;text-align:left}
  .cve-info:hover .cve-info-tip,.cve-info:focus-visible .cve-info-tip{opacity:1;transform:translateY(0)}
  .cve-lib2-eye{font-size:11px;font-weight:600;letter-spacing:.09em;color:var(--ink-3)}
  .cve-lib2-head h2{font-size:17px;font-weight:700;letter-spacing:-.02em;color:var(--ink);margin:5px 0 4px}
  .cve-lib2-head p{font-size:13px;color:var(--ink-2);line-height:1.55;max-width:560px}
  .cve-lib2-stats{display:flex;gap:10px;flex:0 0 auto}
  .cve-lib2-stats .st{background:var(--bg-2);border-radius:10px;padding:12px 18px;text-align:center;min-width:92px}
  .cve-lib2-stats .st b{display:block;font-family:var(--font-mono);font-size:26px;font-weight:600;color:var(--ink);line-height:1}
  .cve-lib2-stats .st span{display:block;font-size:11.5px;color:var(--ink-3);margin-top:5px}
  .cve-lib2-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;max-width:1080px;margin:0 auto}
  .cve-lib2-grid.cve-lib2-row{display:flex;grid-template-columns:none;width:100%;max-width:none;margin:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;padding:0 0 8px;scrollbar-gutter:stable}
  .cve-lib2-row > .cve-candsum,.cve-lib2-row > .cve-card{flex:0 0 min(290px,78vw);width:min(290px,78vw);scroll-snap-align:start}
  @media (pointer:fine){
    .cve-lib2-row::-webkit-scrollbar{height:8px}
    .cve-lib2-row::-webkit-scrollbar-track{background:transparent}
    .cve-lib2-row::-webkit-scrollbar-thumb{background:var(--scroll-pill-thumb);border-radius:99px;border:2px solid var(--bg)}
  }
  .cve-libfilter{display:flex;align-items:center;gap:4px;max-width:1080px;margin:0 auto 18px;background:var(--bg-2);border-radius:10px;padding:3px;width:max-content}
  .cve-lib2-head.row .cve-libfilter{margin:0;flex:0 0 auto}
  .cve-libfilter button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink-3);padding:6px 13px;border-radius:8px;cursor:pointer;transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}
  .cve-libfilter button:hover{color:var(--ink-2)}
  .cve-libfilter button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-xs)}
  .cve-libfilter button .cnt{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-4);font-weight:600}
  .cve-libfilter button.on .cnt{color:var(--accent)}
  .cve-card-kind{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:99px;letter-spacing:.01em}
  /* Canon : les rôles documentaires ont leur pastille dédiée (bleu encre
     lavée pour le CV, terracotta pour la lettre) — plus d'emprunt aux
     couleurs de statut. */
  .cve-card-kind.lt{color:var(--doc-letter-ink);background:var(--doc-letter);border:1px solid var(--doc-letter-border)}
  .cve-card-kind.cv{color:var(--doc-cv-ink);background:var(--doc-cv);border:1px solid var(--doc-cv-border)}
  .cve-card-kind svg{flex:0 0 auto}
  .cve-candsum{display:flex;flex-direction:column;gap:12px;min-height:204px;text-align:left;font:inherit;background:var(--surface);border:1px solid var(--border-soft);border-radius:13px;padding:14px;box-shadow:var(--shadow-xs);cursor:pointer;transition:border-color .18s var(--ease-out,ease),box-shadow .18s var(--ease-out,ease),transform .18s var(--ease-out,ease)}
  .cve-candsum:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}
  .cve-candsum-top{display:flex;align-items:center;gap:10px}
  .cve-candsum-ic{width:34px;height:34px;flex:0 0 auto;border-radius:8px;background:var(--bg-2);border:1px solid var(--border);display:grid;place-items:center;color:var(--ink-3)}
  .cve-candsum.tone-good .cve-candsum-ic{color:var(--good-ink);border-color:var(--good);background:var(--good-soft)}
  .cve-candsum.tone-warn .cve-candsum-ic{color:var(--warn-ink);border-color:var(--warn);background:var(--warn-soft)}
  .cve-candsum.tone-bad .cve-candsum-ic{color:var(--bad-ink);border-color:var(--bad);background:var(--bad-soft)}
  .cve-candsum-top b{display:block;font-size:14px;font-weight:600;color:var(--ink);line-height:1.25}
  .cve-candsum-top span:not(.cve-candsum-ic){display:block;font-size:12px;color:var(--ink-3);margin-top:2px}
  .cve-candsum p{margin:0;font-size:12.5px;line-height:1.55;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
  .cve-lib2-row .cve-candsum p{-webkit-line-clamp:8}
  .cve-candsum-kpis{margin-top:auto;display:flex;flex-wrap:wrap;gap:7px;border-top:1px solid var(--border);padding-top:11px}
  .cve-candsum-kpis span{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:99px;background:var(--bg-2);padding:4px 8px;font-size:11px;color:var(--ink-3);white-space:nowrap}
  .cve-candsum-kpis b{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--ink)}
  .cve-sum-scrim{position:fixed;inset:0;z-index:90;background:var(--scrim);backdrop-filter:blur(4px);display:grid;place-items:center;padding:28px;animation:cveFade .18s var(--ease-out,ease)}
  .cve-summodal{box-shadow:var(--shadow-xl,var(--shadow-lg))}
  .cve-sum-rail{grid-area:rail;background:var(--bg-2);border-right:1px solid var(--border);padding:24px 18px;display:flex;flex-direction:column;gap:10px;color:var(--ink-2)}
  .cve-sum-bigic{width:46px;height:46px;border-radius:13px;background:var(--surface);border:1px solid var(--border);display:grid;place-items:center;color:var(--ink-3);margin-bottom:4px}
  .cve-sum-rail.tone-good .cve-sum-bigic{color:var(--good-ink);border-color:var(--good);background:var(--good-soft)}
  .cve-sum-rail.tone-warn .cve-sum-bigic{color:var(--warn-ink);border-color:var(--warn);background:var(--warn-soft)}
  .cve-sum-rail.tone-bad .cve-sum-bigic{color:var(--bad-ink);border-color:var(--bad);background:var(--bad-soft)}
  .cve-sum-rail b{font-size:15px;font-weight:650;color:var(--ink);line-height:1.25}
  .cve-sum-rail > span:not(.cve-sum-bigic){font-size:12.5px;line-height:1.45;color:var(--ink-3)}
  .cve-sum-head{grid-area:header;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid var(--border);background:var(--surface)}
  .cve-sum-head span{display:block;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-4);margin-bottom:4px}
  .cve-sum-head h3{margin:0;font-size:22px;line-height:1.2;color:var(--ink)}
  .cve-sum-body{grid-area:body;overflow:auto;padding:24px;display:flex;flex-direction:column;gap:16px;background:var(--surface)}
  .cve-sum-body section{border:1px solid var(--border);border-radius:13px;background:var(--bg);padding:15px 16px}
  .cve-sum-body h4{margin:0 0 8px;font-size:13px;font-weight:650;color:var(--ink)}
  .cve-sum-body p{margin:0;font-size:14px;line-height:1.7;color:var(--ink-2)}
  .cve-sum-foot{grid-area:footer;display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:16px 24px;border-top:1px solid var(--border);background:var(--surface)}
  .cve-sum-foot span{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:99px;background:var(--bg-2);padding:5px 10px;font-size:12px;color:var(--ink-3)}
  .cve-sum-foot b{font-family:var(--font-mono);color:var(--ink);font-weight:650}
  .cve-sum-journal{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;gap:7px;font:inherit;font-size:12.5px;font-weight:600;color:var(--surface);background:var(--ink);border:1px solid var(--ink);border-radius:8px;padding:8px 12px;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .cve-sum-journal:hover{background:var(--ink-2);border-color:var(--ink-2)}

  /* dossiers (un par tableau) */
  .cve-backfolders{display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink-3);background:transparent;border:0;padding:0;margin:0 auto 14px;cursor:pointer;max-width:1080px;width:100%}
  .cve-backfolders:hover{color:var(--accent)}
  .cve-lib2-crumb{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto}
  .cve-lib2-crumb .cve-backfolders{margin:0;flex:0 0 auto;width:max-content;white-space:nowrap}
  .cve-crumb-sep{color:var(--ink-4);flex:0 0 auto;display:inline-flex;align-items:center}
  .cve-lib2-crumb h2{margin:0;font-size:20px;display:flex;align-items:center;gap:10px;min-width:0;flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cve-h2tag{margin-left:10px;font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--accent);background:var(--accent-soft);border:1px solid color-mix(in srgb,currentColor 15%,transparent);border-radius:99px;padding:3px 10px;vertical-align:middle;white-space:nowrap;flex:0 0 auto}
  .cve-h2tag.arch{color:var(--ink-3);background:var(--bg-2);border-color:var(--border-soft)}
  .cve-folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:14px;max-width:1080px;margin:0 auto}
  .cve-folder{display:flex;align-items:center;gap:15px;text-align:left;background:var(--surface-2);border:1px solid transparent;border-radius:13px;padding:15px 16px;cursor:pointer;font:inherit;transition:background-color .18s var(--ease-out,ease),border-color .18s var(--ease-out,ease),box-shadow .18s var(--ease-out,ease),transform .18s var(--ease-out,ease)}
  .cve-folder:hover{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-md);transform:translateY(-2px)}
  .cve-folder.active{background:var(--bg-2);border-color:var(--border-strong)}
  .cve-folder.arch{background:var(--bg)}
  .cve-folder-vis{position:relative;width:52px;height:46px;flex:0 0 auto}
  .cve-top-sp{flex:1 1 auto}
  .cve-folder-ic{flex:0 0 auto;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--bg-2);color:var(--ink-3)}
  .cve-folder.active .cve-folder-ic{background:var(--bg-2);color:var(--ink-2)}
  .cve-folder-vis .pp{position:absolute;border-radius:8px;border:1px solid var(--border);background:var(--surface)}
  .cve-folder-vis .p3{inset:0 10px 8px 0;background:var(--bg-2);transform:rotate(-5deg)}
  .cve-folder-vis .p2{inset:2px 4px 4px 6px;background:var(--bg-subtle,var(--bg-2));transform:rotate(3deg)}
  .cve-folder-vis .p1{inset:6px 0 0 4px;display:grid;place-items:center;color:var(--ink-3);background:var(--surface)}
  .cve-folder.active .cve-folder-vis .p1{color:var(--ink-3);border-color:var(--border-strong);background:var(--surface)}
  .cve-folder-body{flex:1;min-width:0}
  .cve-folder-top{display:flex;align-items:center;gap:9px;min-width:0}
  .cve-folder-top b{font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.25;white-space:nowrap}
  .cve-folder-badge{flex:0 0 auto;font-size:10px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border-radius:99px;padding:2px 8px}
  .cve-folder-badge.arch{color:var(--ink-3);background:var(--bg-2)}
  .cve-folder-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-3);margin-top:4px;white-space:nowrap}
  .cve-folder-meta b{font-weight:600;color:var(--ink-2)}
  .cve-folder-meta .dot{color:var(--border-strong)}
  .cve-folder-go{flex:0 0 auto;color:var(--ink-4)}
  .cve-folder:hover .cve-folder-go{color:var(--accent)}
  .cve-folder-note{display:flex;align-items:center;gap:8px;max-width:1080px;margin:18px auto 0;font-size:12px;color:var(--ink-3);background:var(--bg-2);border-radius:10px;padding:11px 14px}
  .cve-folder-note svg{flex:0 0 auto;color:var(--ink-3)}

  .cve-card{position:relative;display:flex;flex-direction:column;text-align:left;background:var(--surface);border:1px solid var(--border-soft);border-radius:13px;overflow:hidden;cursor:pointer;transition:border-color .18s var(--ease-out,ease),box-shadow .18s var(--ease-out,ease),transform .18s var(--ease-out,ease);font:inherit}
  .cve-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}
  .cve-card.active{border-color:var(--ink-4)}
  .cve-card-paper{position:relative;height:84px;background:linear-gradient(180deg,var(--surface),var(--surface-2));border-bottom:1px solid var(--border);padding:16px 18px 0;display:flex;flex-direction:column;gap:5px;overflow:hidden}
  .cve-card-paper .ln{height:4px;border-radius:2px;background:var(--border-strong);width:100%}
  .cve-card-paper .ln.w1{width:46%;height:6px;background:var(--ink-4)}
  .cve-card-paper .ln.w2{width:32%;background:var(--accent);opacity:.5}
  .cve-card-paper .ln.w3{width:60%}
  .cve-card-paper .ln.s{margin-top:4px;width:24%;height:3px;background:var(--ink-5,var(--ink-4))}
  .cve-card-body{padding:13px 14px 12px;display:flex;flex-direction:column;gap:10px}
  .cve-card-top{display:flex;align-items:center;gap:10px}
  .cve-card-top .lg{width:34px;height:34px;flex:0 0 auto;border-radius:8px;background:var(--bg-2);border:1px solid var(--border);display:grid;place-items:center;font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--ink-2)}
  .cve-card-top .id{flex:1;min-width:0}
  .cve-card-top .id b{display:block;font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cve-card-top .id span{display:block;font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cve-card-status{flex:0 0 auto;font-size:10.5px;font-weight:600;border-radius:99px;padding:3px 9px;white-space:nowrap}
  .cve-card-status.good{color:var(--good-ink);background:var(--good-soft)}
  .cve-card-status.info{color:var(--accent);background:var(--accent-soft)}
  .cve-card-status.warn{color:var(--warn-ink,#8a5208);background:var(--warn-soft,#fbf0dd)}
  .cve-card-meta{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--ink-3)}
  .cve-card-meta .dot{color:var(--ink-5,var(--border-strong))}
  .cve-card-meta .mono{font-family:var(--font-mono)}
  
  
  .cve-card-link{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:11.5px;font-weight:500;color:var(--accent);background:transparent;border:0;padding:0;cursor:pointer;text-align:left}
  .cve-card-link:hover{text-decoration:underline}
  .cve-card-link.muted{color:var(--ink-4);cursor:default}
  .cve-card-link.muted:hover{text-decoration:none}
  .cve-card-link svg{flex:0 0 auto}
  .cve-card-scores{display:flex;gap:18px;padding:2px 0}
  .cve-card-scores .sc{flex:1;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 8px}
  .cve-card-scores .k{font-size:10.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3)}
  .cve-card-scores .v{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--ink);text-align:right}
  .cve-card-scores .bar{grid-column:1/3;height:4px;border-radius:2px;background:var(--bg-2);overflow:hidden}
  .cve-card-scores .bar i{display:block;height:100%;background:var(--ink);border-radius:2px}
  .cve-card-foot{display:flex;align-items:center;gap:7px;border-top:1px solid var(--border);padding-top:11px;margin-top:1px}
  .cve-card-open{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink);background:var(--bg-2);border:1px solid var(--border-soft);border-radius:8px;padding:7px 10px;cursor:pointer;transition:background-color .15s,border-color .15s}
  .cve-card-open:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
  .cve-card-ic{flex:0 0 auto;width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);color:var(--ink-3);cursor:pointer;transition:color .15s,border-color .15s}
  .cve-card-ic:hover{color:var(--accent);border-color:var(--accent)}
  
  
  
  
  

  /* drawer historique des versions */
  .cve-drawer-scrim{position:absolute;inset:0;background:var(--scrim);display:flex;justify-content:flex-end;z-index:60;animation:cveFade .2s var(--ease-out,ease)}
  @keyframes cveFade{from{opacity:0}to{opacity:1}}
  .cve-drawer{width:min(480px,92vw);background:var(--surface);display:flex;flex-direction:column;box-shadow:var(--shadow-xl,var(--shadow-lg));animation:cveSlide .26s var(--ease-out,ease)}
  @keyframes cveSlide{from{transform:translateX(24px);opacity:.4}to{transform:translateX(0);opacity:1}}
  .cve-drawer-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;border-bottom:1px solid var(--border)}
  .cve-drawer-id{display:flex;align-items:center;gap:11px}
  .cve-drawer-id .lg{width:38px;height:38px;border-radius:8px;background:var(--bg-2);border:1px solid var(--border);display:grid;place-items:center;font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--ink-2)}
  .cve-drawer-id b{display:block;font-size:14.5px;font-weight:700;color:var(--ink)}
  .cve-drawer-id span{display:block;font-size:12px;color:var(--ink-3)}
  .cve-drawer-x{width:34px;height:34px;border:0;background:transparent;border-radius:8px;color:var(--ink-3);cursor:pointer;display:grid;place-items:center}
  .cve-drawer-x:hover{background:var(--bg-2);color:var(--ink)}
  .cve-drawer-body{flex:1;overflow-y:auto;padding:18px}
  /* Encart « canal obligatoire » (création d'un interlocuteur depuis le journal). */
  .cve-channel-note{display:flex;align-items:flex-start;gap:8px;margin-bottom:13px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2);font-size:12px;line-height:1.45;color:var(--ink-3)}
  .cve-channel-note svg{flex-shrink:0;margin-top:1px;color:var(--ink-4)}
  .cve-channel-note em{font-style:normal;font-weight:600;color:var(--ink-2)}
  .cve-drawer-foot{flex:0 0 auto;padding:9px 18px;border-top:1px solid var(--border)}
  .cve-drawer-foot .cve-paction{margin:0;white-space:nowrap}

  /* Vault · création / modification d'un carnet en modale B */
  .vc-carnet-modal-scrim{align-items:center;justify-content:center;padding:24px;background:var(--scrim)}
  .vc-carnet-modal{width:min(1100px,92vw);height:min(760px,88vh);border-radius:16px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;padding:0}
  .vc-carnet-modal-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--surface)}
  .vc-carnet-modal-body{flex:1;min-height:0;overflow-y:auto;padding:18px;background:var(--bg)}
  .vc-carnet-modal-foot{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px 18px;border-top:1px solid var(--border);background:var(--surface)}
  .vc-carnet-form-card{background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:14px 14px 1px;margin-bottom:14px}
  .vc-carnet-form-title{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:13.5px;font-weight:700;color:var(--ink)}
  .vc-carnet-form-title svg{color:var(--accent)}
  .vc-carnet-form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 14px}
  .vc-carnet-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);margin:0 0 13px;cursor:pointer}
  .vc-carnet-warn{font-size:12px;line-height:1.4;color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--bad) 24%,var(--border));border-radius:8px;padding:8px 10px;margin:0 0 13px}
  .vc-carnet-urlrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
  .vc-carnet-urlrow .vdp-btn{height:38px}
  .vc-carnet-urlrow .vdp-btn[disabled]{opacity:.55;cursor:not-allowed;border-color:var(--border);color:var(--ink-3)}
  .vc-carnet-note{font-size:12px;line-height:1.45;color:var(--ink-3);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 18%,var(--border));border-radius:8px;padding:8px 10px;margin:-2px 0 13px}
  .vc-carnet-note.warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 8%,var(--surface));border-color:color-mix(in srgb,var(--warn) 22%,var(--border))}
  .vc-carnet-joblink{border:1px solid var(--border);border-radius:13px;background:var(--surface-2);padding:12px;margin-bottom:13px}
  .vc-carnet-joblink-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}
  .vc-carnet-joblink-head b{display:block;font-size:13.5px;color:var(--ink);margin-bottom:2px}
  .vc-carnet-joblink-head span{display:block;font-size:12px;line-height:1.35;color:var(--ink-3)}
  .vc-carnet-joblink-head .vdp-btn{height:34px;white-space:nowrap;background:var(--surface)}
  .vc-carnet-joblink-status{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}
  .vc-carnet-joblink-status span{display:inline-flex;align-items:center;gap:6px;min-height:24px;border:1px solid var(--border);border-radius:999px;background:var(--surface);padding:3px 9px;font-size:12px;color:var(--ink-2)}
  .vc-carnet-joblink-status svg{color:var(--accent)}
  .vc-carnet-joblink-text{width:100%;box-sizing:border-box;min-height:108px;padding:10px 11px;border-radius:10px;border:1px solid var(--border);background:var(--surface);font:inherit;font-size:13.5px;line-height:1.45;color:var(--ink);outline:none;resize:vertical}
  .vc-carnet-joblink-text:focus{border-color:color-mix(in srgb,var(--accent) 58%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}
  .vc-carnet-joblink-foot{display:flex;align-items:center;gap:7px;margin-top:8px;font-size:11.5px;line-height:1.35;color:var(--ink-3)}
  .vc-carnet-joblink-foot svg{color:var(--accent)}
  .vc-carnet-joblink-foot span{min-width:0;flex:1}
  .vc-carnet-joblink-foot em{font-style:normal;font-family:var(--font-mono);color:var(--ink-4)}
  @media (max-width:760px){
    .vc-carnet-modal-scrim{padding:10px}
    .vc-carnet-modal{width:calc(100vw - 20px);height:calc(100vh - 20px)}
    .vc-carnet-form-grid{grid-template-columns:1fr}
    .vc-carnet-urlrow{grid-template-columns:1fr}
    .vc-carnet-joblink-head{flex-direction:column}
    .vc-carnet-joblink-head .vdp-btn{width:100%;justify-content:center}
  }

  /* timeline */
  .cve-tl{display:flex;flex-direction:column}
  .cve-tlrow{display:grid;grid-template-columns:22px 1fr;gap:12px}
  .cve-tl-node{position:relative;display:flex;justify-content:center;padding-top:6px}
  .cve-tl-node .dot{width:11px;height:11px;border-radius:50%;background:var(--surface);border:2px solid var(--border-strong);z-index:1}
  .cve-tlrow.current .cve-tl-node .dot{border-color:var(--accent);background:var(--accent)}
  .cve-tl-node .line{position:absolute;top:16px;bottom:-12px;width:2px;background:var(--border)}
  
  .cve-tl-top{display:flex;align-items:center;gap:8px}
  .cve-tl-v{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--ink)}
  .cve-tl-cur{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border-radius:99px;padding:2px 7px;white-space:nowrap;flex:0 0 auto}
  .cve-tl-date{margin-left:auto;font-size:11.5px;color:var(--ink-3)}
  .cve-tl-label{font-size:12.5px;color:var(--ink-2);line-height:1.5;margin-top:5px}
  .cve-tl-acts{display:flex;align-items:center;gap:8px;margin-top:9px}
  
  
  .cve-tl-active{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--good-ink)}
  .cve-diff{margin-top:11px;border:1px solid var(--border);border-radius:8px;overflow:hidden}
  .cve-diff-f{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);background:var(--bg-2);padding:6px 10px;border-bottom:1px solid var(--border)}
  
  
  
  
  
  
  /* 3 colonnes : rail d'actions · espace de travail · aperçu */
  .cve-3{flex:1;display:flex;min-height:0}

  /* col 1 — rail d'actions */
  .cve-rail{width:240px;flex:0 0 240px;border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;min-height:0}
  .cve-railscroll{flex:1;overflow-y:auto;padding:14px 12px}
  .cve-railgroup + .cve-railgroup{margin-top:16px}
  .cve-raileye{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);padding:0 8px 9px;display:flex;align-items:center;gap:6px}
  .cve-raileye svg{color:var(--accent)}
  .cve-railitem{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:9px;border:1px solid transparent;border-radius:8px;background:transparent;font:inherit;cursor:pointer;transition:background-color .15s,border-color .15s}
  .cve-railitem + .cve-railitem{margin-top:2px}
  .cve-railitem:hover{background:var(--bg-2)}
  .cve-railitem .ic{flex:0 0 auto;width:30px;height:30px;border-radius:8px;background:var(--bg-2);color:var(--ink-3);display:grid;place-items:center;transition:background-color .15s,color .15s}
  .cve-railitem .tx{min-width:0;flex:1}
  .cve-railitem .tt{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cve-railitem .ds{display:block;font-size:11px;color:var(--ink-4);line-height:1.3;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cve-railitem .badge{flex:0 0 auto;font-family:var(--font-mono);font-size:10px;background:var(--bg-2);border:1px solid var(--border);border-radius:99px;padding:1px 7px;color:var(--ink-3)}
  .cve-railitem.on{background:var(--accent-soft);border-color:var(--accent-soft-2)}
  .cve-railitem.on .ic{background:var(--accent);color:var(--fg-inverse)}
  .cve-railitem.on .tt{color:var(--accent)}
  .cve-railitem.on .ds{color:var(--accent);opacity:.72}
  .cve-railitem.on .badge{background:var(--accent);color:var(--fg-inverse);border-color:transparent}

  /* Lettres : rail icônes seules + tooltips (scopé .iconrail) */
  .cve-rail.iconrail{width:62px;flex:0 0 62px}
  .cve-rail.iconrail .cve-railscroll{padding:12px 0;overflow:visible}
  .cve-rail.iconrail .cve-railgroup + .cve-railgroup{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
  .cve-irail-item{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:3px auto;border:1px solid transparent;border-radius:10px;background:transparent;cursor:pointer;color:var(--ink-3);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .cve-irail-item:hover{background:var(--bg-2);color:var(--ink)}
  .cve-irail-item.on{background:var(--accent-soft);border-color:var(--accent-soft-2);color:var(--accent)}
  .cve-irail-item .dot{position:absolute;top:7px;right:7px;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--surface)}
  .cve-railtip{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%) translateX(-4px);display:flex;flex-direction:column;gap:2px;width:max-content;max-width:212px;background:var(--sidebar-bg);color:var(--sidebar-fg-strong);padding:8px 11px;border-radius:8px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);z-index:80;text-align:left}
  .cve-irail-item:hover .cve-railtip,.cve-irail-item:focus-visible .cve-railtip{opacity:1;transform:translateY(-50%) translateX(0)}
  .cve-railtip .t{font-size:12px;font-weight:600;color:var(--sidebar-fg-strong)}
  .cve-railtip .d{font-size:10.5px;line-height:1.4;color:color-mix(in srgb,var(--sidebar-fg-strong) 70%,transparent)}
  .cve-railtip::before{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:5px solid transparent;border-right-color:var(--sidebar-bg)}

  /* col 2 — espace de travail */
  .cve-mid{width:392px;flex:0 0 392px;border-right:1px solid var(--border);background:var(--bg);display:flex;flex-direction:column;min-height:0}
  /* Lettres : nav en menu header → colonne de travail large & confortable */
  .lte-3 .cve-mid{width:472px;flex:0 0 472px}
  /* Lettres : menu (style Word/Docs) — icônes + noms + tooltips, au-dessus de la barre d'outils */
  .lte-menubar{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-start;gap:1px;flex-wrap:wrap;padding:5px 12px;border-bottom:1px solid var(--border);background:var(--surface)}
  .lte-menu-link{position:relative;flex:0 0 auto;font:inherit;font-size:12.5px;font-weight:500;color:var(--ink-2);background:transparent;border:0;border-radius:8px;padding:7px 11px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}
  
  .lte-menu-link.has-val{align-items:center}
  
  
  
  .lte-menu-link svg{color:var(--ink-4);flex:0 0 auto}
  .lte-menu-link:hover{color:var(--ink);background:var(--bg-2)}
  .lte-menu-link:hover svg{color:var(--ink-3)}
  .lte-menu-link.on{color:var(--accent);background:var(--accent-soft)}
  .lte-menu-link.on svg{color:var(--accent)}
  
  
  
  
  
  
  
  
  /* barre d'outils de la lettre (menu + outils sur la même ligne) */
  .lte-toolrow{flex:0 0 auto;display:flex;align-items:center;flex-wrap:nowrap;gap:6px 8px;padding:6px 14px;border-bottom:1px solid var(--border);background:var(--surface)}
  .lte-toolrow .lte-menubar{flex:1 1 auto;min-width:0;border-bottom:0;background:transparent;padding:0;display:flex;align-items:center;flex-wrap:nowrap;gap:1px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
  .cve-gengrp{position:relative;display:inline-flex}
  .cve-genscrim{position:fixed;inset:0;z-index:40}
  .cve-genpop{position:absolute;top:calc(100% + 6px);right:0;z-index:41;width:340px;max-width:78vw;background:var(--surface);border:1px solid var(--border);border-radius:13px;box-shadow:0 12px 32px color-mix(in srgb,var(--ink) 16%,transparent);padding:12px}
  .cve-genpop-h{font-size:13px;font-weight:600;color:var(--text);margin-bottom:8px}
  .cve-genpop-ta{width:100%;min-height:72px;resize:vertical;font:inherit;font-size:12.5px;color:var(--text);background:var(--bg,#fff);border:1px solid var(--border);border-radius:8px;padding:8px 10px;box-sizing:border-box}
  .cve-genpop-ta:disabled{opacity:.5}
  .cve-genpop-lbl{display:block;font-size:11.5px;color:var(--muted);margin-bottom:4px}
  .cve-genpop-sel{width:100%;font:inherit;font-size:12.5px;color:var(--text);background:var(--bg,#fff);border:1px solid var(--border);border-radius:8px;padding:7px 10px;box-sizing:border-box}
  .cve-genpop-or{font-size:11px;color:var(--muted);text-align:center;margin:8px 0 6px}
  /* Bascule d'environnement CV ⇄ Lettre de motivation (un slide entre les deux) */
  .docenv-bar{display:flex;justify-content:center;padding:12px 14px 4px;flex:0 0 auto}
  
  
  
  
  
  
  .cve-genpop-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}
  .lte-genbar{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);padding:2px 4px}
  .lte-genbar b{color:var(--text);font-weight:600}
  .lte-genbar svg{color:var(--accent);flex:0 0 auto}
  .lte-genbar-rel{position:relative;display:inline-flex}
  .lte-alignpop{position:absolute;top:calc(100% + 8px);left:0;z-index:41;width:340px;max-width:80vw;background:var(--surface);border:1px solid var(--border);border-radius:13px;box-shadow:0 12px 32px color-mix(in srgb,var(--ink) 16%,transparent);padding:14px}
  .lte-alignpop-score{display:flex;align-items:baseline;gap:4px;margin-bottom:10px}
  .lte-alignpop-score b{font-size:26px;font-weight:700;color:var(--text);line-height:1}
  .lte-alignpop-score span{font-size:14px;color:var(--muted)}
  .lte-alignpop-score em{font-style:normal;font-size:12px;color:var(--muted);margin-left:6px}
  .lte-alignpop-sec{margin-top:10px}
  .lte-alignpop-sec .ttl{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin-bottom:5px}
  .lte-alignpop-sec .row{font-size:12.5px;color:var(--text);padding:3px 0;border-top:1px solid var(--border)}
  .lte-alignpop-sec .kws{display:flex;flex-wrap:wrap;gap:5px}
  .lte-alignpop-sec .kw{font-size:11.5px;padding:2px 8px;border-radius:999px;border:1px solid var(--border)}
  .lte-alignpop-sec .kw.ok{color:var(--good-ink);background:var(--good-soft);border-color:var(--good)}
  .lte-alignpop-sec .kw.miss{color:var(--warn-ink);background:var(--warn-soft);border-color:var(--warn)}
  /* Compaction progressive (pilotée en JS via data-density) : la barre rétrécit son contenu pour tenir sur une ligne avant de défiler */
  .lte-toolrow[data-density="1"] .lte-mlink{gap:6px;padding:4px 7px}
  .lte-toolrow[data-density="1"] .lte-mlbl{font-size:12px}
  
  .lte-toolrow[data-density="1"] .lte-mdiv{margin:0 1px;height:22px}
  .lte-toolrow[data-density="2"] .lte-mlink{gap:5px;padding:3px 6px}
  .lte-toolrow[data-density="2"] .lte-mlink > svg{width:15px;height:15px}
  .lte-toolrow[data-density="2"] .lte-mlbl{font-size:11.5px}
  
  .lte-toolrow[data-density="2"] .lte-mdiv{margin:0 1px;height:21px}
  .lte-toolrow[data-density="3"] .lte-mlink{gap:4px;padding:3px 5px}
  .lte-toolrow[data-density="3"] .lte-mlink > svg{width:14px;height:14px}
  .lte-toolrow[data-density="3"] .lte-mlbl{font-size:11px}
  
  .lte-toolrow[data-density="3"] .lte-mdiv{margin:0;height:20px}
  @media (max-width:640px){.lte-toolrow{flex-wrap:wrap}.lte-toolrow .lte-menubar{flex-wrap:wrap;overflow-x:visible}}
  .lte-mlink{display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:12.5px;font-weight:500;color:var(--ink-2);background:transparent;border:0;border-radius:8px;padding:5px 8px;cursor:pointer;white-space:nowrap;transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}
  .lte-mlink.has-val{padding:4px 8px}
  .lte-mlink > svg{flex:0 0 auto;align-self:center}
  .lte-mtxt{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;line-height:1.2;min-width:0}
  .lte-mlbl{font-size:12.5px;font-weight:500}
  
  .lte-mlink svg{color:var(--ink-4);flex:0 0 auto}
  .lte-mlink:hover{background:var(--bg-2);color:var(--ink)}
  .lte-mlink:hover svg{color:var(--ink-3)}
  .lte-mlink.on{background:var(--accent-soft);color:var(--accent)}
  .lte-mlink.on svg{color:var(--accent)}
  
  
  
  .lte-mdiv{width:1px;height:24px;background:var(--border);margin:0 2px;flex:0 0 auto;align-self:center}
  /* menu sectionné en cellules — même langage que les outils à droite */
  .lte-mcell{flex:0 0 auto;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:5px;padding:7px 12px;border-left:1px solid var(--border)}
  .lte-toolrow .lte-menubar > .lte-mcell:first-child{border-left:0}
  .lte-mlist{display:flex;flex-direction:column;gap:1px;flex:1 1 auto;justify-content:center;min-width:0}
  .lte-mitem{display:flex;align-items:center;gap:8px;width:100%;font:inherit;font-size:12.5px;font-weight:500;color:var(--ink-2);background:transparent;border:0;border-radius:6px;padding:4px 9px;cursor:pointer;white-space:nowrap;text-align:left;transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}
  .lte-mitem > svg{color:var(--ink-4);flex:0 0 auto}
  .lte-mitem .lbl{flex:1 1 auto;text-align:left}
  
  .lte-mitem:hover{background:var(--bg-2);color:var(--ink)}
  .lte-mitem:hover > svg{color:var(--ink-3)}
  .lte-mitem.on{background:var(--accent-soft);color:var(--accent)}
  .lte-mitem.on > svg{color:var(--accent)}
  
  .lte-mcap{font-size:9.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-4);text-align:center;white-space:nowrap}
  .lte-toolrow .lte-menubar::-webkit-scrollbar{display:none}
  .lte-toolrow-l,.lte-toolrow-r{display:flex;align-items:center;gap:10px;flex:0 0 auto}
  .lte-toolrow-r{margin-left:auto;gap:8px;padding-left:10px;border-left:1px solid var(--border)}
  .lte-toolrow-r .cve-seg.sm button{white-space:nowrap}
  /* cellules d'outils — chaque contrôle dans sa case, séparées par des filets verticaux */
  .lte-tcell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:7px 16px;border-left:1px solid var(--border)}
  .lte-tcell:first-child{border-left:0}
  .lte-tcell > div:first-child,.lte-tcell > .lte-tcwrap{flex:1 1 auto;display:flex;align-items:center;justify-content:center}
  /* format vertical : Lettre / Message / E-mail empilés, l'actif encadré */
  .lte-fmtv{display:flex;flex-direction:column;gap:2px}
  .lte-fmtv button{font:inherit;font-size:12.5px;font-weight:500;color:var(--ink-3);background:transparent;border:1px solid transparent;border-radius:6px;padding:3px 12px;text-align:center;cursor:pointer;white-space:nowrap;transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .lte-fmtv button:hover{color:var(--ink);background:var(--bg-2)}
  .lte-fmtv button.on{color:var(--ink);font-weight:600;background:var(--surface);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}
  /* zoom vertical : + / 100% / - */
  .lte-zoomv{display:flex;flex-direction:column;align-items:center;gap:1px}
  .lte-zoomv button{width:30px;height:22px;display:grid;place-items:center;border:0;background:transparent;color:var(--ink-2);border-radius:6px;cursor:pointer;transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}
  .lte-zoomv button:hover:not(:disabled){background:var(--bg-2);color:var(--ink)}
  .lte-zoomv button:disabled{opacity:.4;cursor:not-allowed}
  .lte-zoomv span{font-family:var(--font-mono,monospace);font-size:12.5px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;padding:1px 0}
  /* icône seule (plein écran, télécharger) */
  .lte-ticon{display:grid;place-items:center;width:40px;height:40px;border:0;background:transparent;color:var(--ink-2);border-radius:8px;cursor:pointer;transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}
  .lte-ticon:hover{background:var(--bg-2);color:var(--ink)}
  .cve-midhead{flex:0 0 auto;padding:15px 18px 13px;border-bottom:1px solid var(--border);background:var(--surface)}
  .cve-midhead h3{font-size:14.5px;font-weight:700;color:var(--ink);letter-spacing:-.01em;display:flex;align-items:center;gap:8px}
  .cve-midhead-title{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
  .cve-midhead-title h3{min-width:0;margin:0}
  .cve-midhead p{font-size:11.5px;color:var(--ink-3);line-height:1.5;margin-top:3px}
  /* Bouton « ? » qui révèle au survol/focus la phrase explicative du panneau
     (lue une fois, pas besoin qu'elle envahisse l'écran à chaque édition). */
  .cve-midhead h3 > span:first-of-type{flex:1;min-width:0}
  .cve-midhead-hint{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);border-radius:8px;color:var(--ink-3);background:var(--surface);cursor:help;flex:0 0 auto;box-shadow:var(--shadow-xs);transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
  .cve-midhead-hint svg{color:currentColor}
  .cve-midhead-hint:hover{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-soft-2)}
  .cve-midhead-hint:focus{color:var(--accent);background:var(--accent-soft);border-color:var(--accent);outline:none;box-shadow:var(--ring-focus)}
  .cve-midhead-tip{position:absolute;top:calc(100% + 8px);right:-6px;background:var(--ink);color:var(--fg-inverse);font-size:12px;font-weight:400;line-height:1.5;padding:10px 12px;border-radius:8px;width:260px;max-width:80vw;box-shadow:var(--shadow-popover);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out),visibility var(--dur-fast);z-index:30;white-space:normal;text-align:left}
  .cve-midhead-hint:hover .cve-midhead-tip,.cve-midhead-hint:focus .cve-midhead-tip{opacity:1;visibility:visible}
  .cve-midhead-tip::before{content:"";position:absolute;bottom:100%;right:14px;border:6px solid transparent;border-bottom-color:var(--ink)}
  /* Variante INLINE compacte (InfoHint dans un en-tête de carte / titre de section) : pastille
     plus petite, même bulle. `tipleft` ancre la bulle à GAUCHE du « ? » (elle s'étend vers la
     droite) — utile quand le « ? » est près du bord gauche du panneau. */
  .cve-midhead-hint.sm{width:22px;height:22px;border-radius:6px;box-shadow:none}
  .cve-midhead-hint.sm:not(:hover):not(:focus){color:var(--ink-4);border-color:var(--border)}
  .cve-midhead-hint.tipleft .cve-midhead-tip{right:auto;left:-6px}
  .cve-midhead-hint.tipleft .cve-midhead-tip::before{right:auto;left:14px}
  .cve-hcount{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--fg-inverse);background:var(--accent);border-radius:99px;padding:1px 8px}
  .cve-midscroll{flex:1;overflow-y:auto;padding:15px 18px;position:relative}

  /* blocs génériques de panneau */
  .cve-pgroup{margin:16px 0}
  .cve-ptitle{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--ink);margin-bottom:9px}
  .cve-ptitle svg{color:var(--good)}
  .cve-ptitle.warn svg{color:var(--warn)}
  .cve-ptitle .cnt{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);background:var(--bg-2);border:1px solid var(--border);border-radius:99px;padding:1px 7px;margin-left:auto}
  .cve-paction{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px;border:0;border-radius:10px;background:var(--accent);color:var(--fg-inverse);font:inherit;font-size:13px;font-weight:600;cursor:pointer;margin-top:6px;transition:background-color .15s}
  .cve-paction:hover{background:var(--accent-600)}

  /* mots-clés offre */
  .cve-kw{display:flex;flex-wrap:wrap;gap:6px}
  .cve-kw span{display:inline-flex;align-items:center;gap:4px;font-size:11px;border-radius:99px;padding:3px 9px;border:1px solid var(--border);color:var(--ink-2);background:var(--surface)}
  .cve-kw span.hit{color:var(--good-ink);border-color:transparent;background:var(--good-soft)}
  .cve-kw span.miss{color:var(--bad-ink);border-color:transparent;background:var(--bad-soft)}

  /* score ATS */
  .cve-atsscore{display:flex;align-items:center;gap:16px;padding:15px 16px;border:1px solid var(--border);border-radius:13px;background:var(--surface);margin-bottom:14px}
  .cve-atsnum{font-family:var(--font-mono);font-size:32px;font-weight:700;color:var(--ink);line-height:1;flex:0 0 auto}
  .cve-atsnum span{font-size:14px;color:var(--ink-4);font-weight:500}
  .cve-atsbar{flex:1;min-width:0}
  .cve-atsbar .lab{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--ink-3);margin-bottom:6px}
  .cve-atsbar .track{height:7px;border-radius:99px;background:var(--bg-2);overflow:hidden}
  .cve-atsbar .track i{display:block;height:100%;background:var(--ink);border-radius:99px}
  .cve-check{display:flex;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;margin-bottom:7px;background:var(--surface)}
  .cve-check .dot{flex:0 0 auto;width:22px;height:22px;border-radius:6px;display:grid;place-items:center}
  .cve-check .dot.ok{background:var(--good-soft);color:var(--good)}
  .cve-check .dot.warn{background:var(--warn-soft);color:var(--warn)}
  .cve-check .ttl{font-size:12.5px;font-weight:600;color:var(--ink)}
  .cve-check .sub{font-size:11px;color:var(--ink-3);line-height:1.45;margin-top:2px}

  /* conseils du coach */
  .cve-tip{border:1px solid var(--border);border-radius:10px;padding:12px 13px;margin-bottom:9px;background:var(--surface)}
  .cve-tip .h{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:var(--ink)}
  .cve-tip .h .ic{flex:0 0 auto;width:26px;height:26px;border-radius:8px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}
  .cve-tip p{font-size:11.5px;color:var(--ink-2);line-height:1.55;margin-top:8px}
  .cve-tipfoot{display:flex;gap:8px;margin-top:11px}

  /* correction */
  .cve-fix{border:1px solid var(--border);border-radius:10px;padding:11px 12px;margin-bottom:8px;background:var(--surface)}
  .cve-fix .cat{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--warn)}
  .cve-fix .line{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;line-height:1.4;margin-top:6px;color:var(--ink-2)}
  .cve-fix .line svg{color:var(--ink-4);flex:0 0 auto}
  .cve-fix .del{color:var(--bad);text-decoration:line-through;text-decoration-color:var(--bad-soft)}
  .cve-fix .ins{color:var(--good-ink);font-weight:600}
  .cve-fix .note{font-size:11px;color:var(--ink-3);margin-top:6px;line-height:1.45}
  .cve-fix .foot{display:flex;gap:8px;margin-top:10px}

  /* traduction */
  .cve-lang{display:flex;align-items:center;gap:11px;padding:11px 12px;border:1px solid var(--border-soft);border-radius:10px;margin-bottom:8px;background:var(--surface);cursor:pointer;transition:border-color .15s,background-color .15s}
  .cve-lang:hover{border-color:var(--border-strong)}
  .cve-lang.on{border-color:var(--accent);background:var(--accent-soft)}
  .cve-lang .flag{flex:0 0 auto;width:32px;height:24px;border-radius:6px;background:var(--bg-2);color:var(--ink-3);display:grid;place-items:center;font-family:var(--font-mono);font-size:11px;font-weight:600}
  .cve-lang.on .flag{background:var(--accent);color:var(--fg-inverse)}
  .cve-lang .nm{font-size:13px;font-weight:600;color:var(--ink)}
  .cve-lang .st{font-size:11px;color:var(--ink-3);margin-top:1px}
  .cve-lang .chk{margin-left:auto;color:var(--accent);display:inline-flex}
  .cve-langdone{display:flex;align-items:flex-start;gap:11px;padding:13px 14px;border:1px solid var(--good);background:var(--good-soft);border-radius:10px}
  
  .cve-langdone b{font-size:13px;color:var(--good-ink)}
  .cve-langdone>div>span{display:block;font-size:11.5px;color:var(--ink-2);line-height:1.5;margin-top:2px}

  /* col 3 — aperçu */
  .cve-prev{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0;background:var(--bg-2)}
  .cve-prevhead{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 22px;border-bottom:1px solid var(--border);background:var(--surface)}
  .cve-prevlabel{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink-2)}
  .cve-prevlabel svg{color:var(--ink-3)}
  .cve-prevhead-r{display:flex;align-items:center;gap:12px}
  .cve-prevscroll{flex:1;overflow-y:auto;padding:26px 30px}

  /* Lettres : éditeur une colonne (lettre pleine largeur) + tiroir d'édition */
  .cve-letter1{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--subtle,var(--bg-2))}
  .cve-letter1 > .cve-prevhead{gap:14px}
  .cve-prevhead .lte-menubar{flex:1 1 auto;min-width:0;border-bottom:0;background:transparent;padding:0;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .cve-prevhead .lte-menubar::-webkit-scrollbar{display:none}
  .cve-prevhead-r{flex:0 0 auto}
  .cve-letterbody{flex:1;min-height:0;display:flex;position:relative}
  
  @keyframes lteDrawerIn{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:translateX(0)}}
  
  /* header du tiroir — même bleu que l'onglet de menu sélectionné (accent-soft) */
  
  
  
  
  
  
  
  .cve-letterbody > .cve-prevscroll{flex:1;min-width:0;background:#D2D7E0}
  /* fonds d'aperçu avec effet de profondeur (dégradé radial + ombre interne) */
  .cvedit[data-doc="cv"] .cve-letterbody > .cve-prevscroll{background:radial-gradient(115% 85% at 50% -8%,#565B61 0%,#2B2E33 82%);box-shadow:inset 0 18px 44px rgba(0,0,0,.42),inset 0 -14px 38px rgba(0,0,0,.3)}
  .cvedit[data-doc="lettre"] .cve-letterbody > .cve-prevscroll{background:radial-gradient(115% 85% at 50% -8%,#EADEC4 0%,#BCA878 80%);box-shadow:inset 0 18px 42px rgba(86,68,32,.34),inset 0 -14px 36px rgba(86,68,32,.24)}
  @media (max-width:1080px){}

  /* ── Piste 1 · Inspecteur de section ───────────────────────────────────── */
  /* Inspecteur ancré à DROITE : le document reste la pièce maîtresse, à gauche. */
  
  /* Barre d'outils flottante : flèche (sélection) · crayon (édition) · œil (aperçu). */
  .cve-tools{position:absolute;top:12px;left:14px;z-index:8;display:flex;align-items:center;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:3px 5px;box-shadow:var(--shadow-sm,0 2px 8px color-mix(in srgb,var(--ink) 16%,transparent))}
  .cve-tools button{width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--ink-2);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .cve-tools button:hover{background:var(--accent-soft);color:var(--accent)}
  .cve-tools button.on{background:var(--accent-soft);color:var(--accent)}
  .cve-tools .sep{width:1px;height:16px;background:var(--border);margin:0 3px}
  /* Sections cliquables du document (mode flèche) : survol = liseré + label, actif = liseré. */
  .cve-cv .cve-secsel{cursor:pointer;position:relative}
  .cve-cv .cve-secsel:hover{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
  .cve-cv .cve-secsel.secactive{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
  .cve-cv .cve-secsel:hover::after{content:attr(data-seclabel);position:absolute;left:0;top:0;transform:translateY(-100%);margin-top:-5px;background:var(--accent);color:#fff;font-size:10px;font-weight:600;line-height:1;padding:3px 7px;border-radius:6px;white-space:nowrap;pointer-events:none;z-index:9}
  /* Titre de section : affiche déjà son nom → pas de tooltip data-seclabel superposé.
     On rétablit le trait horizontal à droite du titre (défini l.8249 sur .cve-cvsec::after). */
  .cve-cv .cve-cvsec.cve-secsel:hover::after,.cve-cv .cve-f3-title.cve-secsel:hover::after{content:"";position:static;transform:none;margin:0;padding:0;background:transparent;color:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;letter-spacing:inherit;border-radius:0;white-space:normal;z-index:auto;flex:1;height:0;border-top:1px solid var(--doc-rule,var(--border-default))}

  /* ── Piste 1 · Inspecteurs par section (chips, sélection, cartes) ──────── */
  .cve-pchip{font-size:12px;padding:4px 11px;border:1px solid var(--border-soft);border-radius:999px;background:var(--surface);color:var(--ink-2);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .cve-pchip:hover{border-color:var(--accent)}
  .cve-pchip.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
  .cve-insprow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 2px;border-bottom:1px solid var(--border)}
  .cve-insplbl{font-size:12.5px;color:var(--ink-2);font-weight:500;display:inline-flex;align-items:center;gap:6px}
  .cve-inspcount{font-size:12px;font-family:var(--font-mono,ui-monospace);color:var(--ink-3)}
  .cve-inspcard{border:1px solid var(--border);border-radius:10px;padding:8px 10px;margin-top:8px;background:var(--surface);transition:opacity var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
  .cve-inspcard.dragging{opacity:.45}
  .cve-inspcard.off{opacity:.5}
  .cve-inspcard-h{display:flex;align-items:center;gap:8px}
  .cve-insgrip{flex:none;color:var(--ink-3);cursor:grab;display:inline-flex}
  .cve-ck{flex:none;width:18px;height:18px;border-radius:6px;border:1.5px solid var(--border);background:var(--surface);color:var(--fg-inverse);display:grid;place-items:center;cursor:pointer;padding:0;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .cve-ck:hover{border-color:var(--accent)}
  .cve-ck:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  .cve-ck.on{background:var(--accent);border-color:var(--accent)}
  .cve-ck.sm{width:16px;height:16px;border-radius:3px}
  .cve-inspcard-id{flex:1;min-width:0;cursor:pointer}
  .cve-inspcard-id .r{font-size:13px;font-weight:500;color:var(--ink);line-height:1.3}
  .cve-inspcard-id .o{font-size:11.5px;color:var(--ink-3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cve-inspcard-id .o .w{font-family:var(--font-mono,ui-monospace)}
  .cve-letter-formcard{border:1px solid var(--border);border-radius:10px;padding:11px 12px;margin-top:10px;background:var(--surface)}
  .cve-letter-form-title,.cve-letter-form-field>span{display:block;font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.35}
  .cve-letter-form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(148px,.55fr);gap:10px;margin-top:8px}
  .cve-letter-form-field{display:block;min-width:0}
  .cve-letter-form-field>span{margin-bottom:6px}
  .cve-letter-form-field .cve-finput,.cve-letter-form-field .cve-fdate{display:block;width:100%;margin:0;min-height:38px;box-sizing:border-box}
  .cve-letter-subject-mode{margin-top:8px}
  .cve-letter-subject-mode+.cve-finput,.cve-letter-subject-mode+.cve-letter-form-preview{margin-top:9px}
  .cve-letter-form-preview{margin:0;padding:8px 10px;border-radius:8px;background:var(--bg-2);font-size:12.5px;line-height:1.45;color:var(--ink-2)}
  .cve-letter-form-help{margin:7px 0 0;font-size:11.5px;line-height:1.45;color:var(--ink-3)}
  @media (max-width:720px){.cve-letter-form-grid{grid-template-columns:1fr}}
  .cve-fieldcard{display:block}
  .cve-fieldcard .cve-finput{margin-top:7px}
  .cve-inspchev{flex:none;width:24px;height:24px;border:0;background:transparent;color:var(--ink-3);border-radius:6px;cursor:pointer;display:grid;place-items:center}
  .cve-inspchev:hover{background:var(--accent-soft);color:var(--accent)}
  .cve-toolfam{border:1px solid var(--border);border-radius:10px;background:var(--surface);margin-top:8px;padding:8px 10px;transition:opacity var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .cve-toolfam.off{opacity:.55}
  .cve-toolfam-head{display:flex;align-items:flex-start;gap:8px}
  .cve-toolfam-id{flex:1;min-width:0;cursor:pointer}
  .cve-toolfam-id .r{font-size:13px;font-weight:600;color:var(--ink);line-height:1.25}
  .cve-toolfam-id .o{font-size:11.5px;color:var(--ink-3);line-height:1.35;margin-top:2px}
  .cve-toolfam-count{display:inline-flex;margin-top:5px;font-size:11px;color:var(--ink-3);font-family:var(--font-mono,ui-monospace)}
  .cve-toolsubs{display:flex;flex-direction:column;gap:3px;margin:8px 0 0 26px;padding-top:7px;border-top:1px solid var(--border)}
  .cve-toolsub{display:flex;align-items:center;gap:7px;width:100%;border:0;background:transparent;color:var(--ink-2);font:inherit;font-size:12.5px;line-height:1.25;text-align:left;padding:4px 0;border-radius:6px;cursor:pointer}
  .cve-toolsub:hover{color:var(--ink)}
  .cve-toolsub.off{color:var(--ink-3);text-decoration:line-through}
  .cve-toolsub > span:last-child{min-width:0;display:flex;flex-direction:column;gap:1px}
  .cve-toolsub-main{min-width:0;display:flex;flex:1;flex-direction:column;gap:1px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;padding:0;cursor:pointer}
  .cve-toolsub-main:hover strong{color:var(--ink)}
  .cve-toolsub.off .cve-toolsub-main{text-decoration:line-through}
  .cve-toolsub strong{font-size:12.5px;font-weight:600;color:currentColor}
  .cve-toolsub em{font-style:normal;font-size:11.2px;line-height:1.35;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cve-inspbul{padding:8px 2px 2px 26px}
  .cve-bulrow{display:flex;align-items:flex-start;gap:8px;padding:3px 0}
  .cve-bulrow .t{font-size:12px;color:var(--ink-2);line-height:1.4}
  .cve-bulrow.off .t{text-decoration:line-through;color:var(--ink-3)}
  /* Vue focus « item » (niveau 2) — édition d'une expérience isolée dans le panneau droite. */
  .cve-focusinsp{gap:0}
  .cve-focusinsp-hd{padding:12px 0 8px;border-bottom:1px solid var(--border);margin-bottom:2px}
  .cve-focusinsp-role{font-size:15px;font-weight:600;color:var(--ink);line-height:1.35;margin:0 0 4px}
  .cve-focusinsp-role.editable{display:inline-flex;align-items:center;gap:7px;cursor:text;padding:2px 6px;margin-left:-6px;border-radius:6px;transition:background-color var(--dur-fast) var(--ease-out)}
  .cve-focusinsp-role.editable svg{color:var(--muted,var(--ink-3));flex:none}
  .cve-focusinsp-role.editable:hover{background:var(--surface-2)}
  .cve-focusinsp-role.editable:hover svg{color:var(--accent)}
  .cve-focusinsp-meta{font-size:12.5px;color:var(--ink-2);margin:0}
  .cve-focusinsp-when{font-family:var(--font-mono,ui-monospace);font-size:11.5px;color:var(--ink-3);margin:3px 0 0}
  .cve-focusinsp-bullets{display:flex;flex-direction:column;gap:2px;padding:8px 0 4px}
  .cve-focusinsp-bullets .cve-bulrow{align-items:center;padding:6px 0}
  .cve-focusinsp-bullets .cve-bulrow .t{flex:1;min-width:0;font-size:12.5px;line-height:1.5;color:var(--ink-2);cursor:text;padding:2px 4px;border-radius:3px}
  .cve-focusinsp-bullets .cve-bulrow .t:hover{background:var(--surface-2);color:var(--ink)}
  .cve-focusinsp-bullets .cve-bulrow.off .t{color:var(--ink-3);text-decoration:line-through}
  /* Enfants d'une FAMILLE (compétences / atouts, niveau 2) : libellé + sous-texte. */
  .cve-focusinsp-bullets .cve-bulrow .t strong{display:block;font-weight:600;color:var(--ink)}
  .cve-focusinsp-bullets .cve-bulrow .t em{display:block;font-style:normal;font-size:11.2px;line-height:1.35;color:var(--ink-3);margin-top:1px}
  .cve-focusinsp-bullets .cve-bulrow.off .t strong{color:var(--ink-3)}
  .cve-focusinsp-bullets .cve-bulrow.editing .cve-finput{flex:1;min-width:0}
  .cve-bul-editbtn{flex:none;width:22px;height:22px;background:transparent;border:0;border-radius:6px;color:var(--muted,var(--ink-3));cursor:pointer;display:grid;place-items:center;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .cve-bul-editbtn:hover{background:var(--surface-2);color:var(--accent)}
  .cve-bul-editin{flex:1;min-width:0;font:inherit;font-size:12.5px;line-height:1.5;color:var(--ink);background:var(--surface,#fff);border:1px solid var(--accent);border-radius:6px;padding:6px 8px;resize:vertical;min-height:64px;outline:0;box-shadow:var(--ring-focus,none)}
  .cve-focusinsp-add{display:flex;align-items:center;gap:8px;margin:8px 0 0;padding-top:8px;border-top:1px dashed var(--border)}
  .cve-focusinsp-add .cve-finput{width:100%;min-width:0}
  .cve-toolsearch{position:relative;flex:1;min-width:0}
  .cve-toolmenu{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;max-height:198px;overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-lg);padding:4px}
  .cve-toolmenu button{width:100%;display:flex;align-items:center;gap:7px;border:0;border-radius:6px;background:transparent;color:var(--ink-2);font:inherit;font-size:12.5px;text-align:left;padding:7px 8px;cursor:pointer}
  .cve-toolmenu button:hover{background:var(--bg-2);color:var(--ink)}
  .cve-toolmenu-empty{padding:8px;color:var(--ink-3);font-size:12px}
  .cve-panel-search{display:flex;align-items:center;gap:8px;margin:8px 0 10px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink-3);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
  .cve-panel-search.cve-panel-search--cmd{margin:0 0 4px;background:var(--bg-2);border-radius:8px}
  .cve-panel-search--tool{margin:0}
  .cve-panel-search:focus-within{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .cve-panel-search input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:inherit;font-size:12.5px;line-height:1.3;outline:0}
  .cve-panel-search input::placeholder{color:var(--ink-3)}
  .cve-panel-search > button{flex:none;width:22px;height:22px;display:grid;place-items:center;border:0;border-radius:6px;background:transparent;color:var(--ink-3);cursor:pointer}
  .cve-panel-search > button:hover{background:var(--bg-2);color:var(--ink)}
  .cve-focusinsp-addbtn{flex:none;width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--fg-inverse);cursor:pointer;transition:opacity var(--dur-fast) var(--ease-out)}
  .cve-focusinsp-addbtn:hover{opacity:.9}
  .cve-focusinsp-addbtn:disabled{opacity:.4;cursor:not-allowed;background:var(--muted,var(--ink-3));border-color:var(--muted,var(--ink-3))}
  .cve-focusinsp-actions{display:flex;flex-direction:column;gap:2px;margin:10px 0 0;border-top:1px solid var(--border);padding-top:10px}
  .cve-focusinsp-act{display:inline-flex;align-items:center;gap:8px;background:transparent;border:0;color:var(--accent);cursor:pointer;font-size:12.5px;font-weight:500;padding:8px 6px;border-radius:6px;text-align:left}
  .cve-focusinsp-act:hover{background:var(--surface-2)}
  .cve-inspadd{margin-top:14px;border-top:1px solid var(--border);padding-top:10px}
  .cve-addrow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0}
  .cve-addrow .t{font-size:12.5px;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cve-hfield{padding:9px 0;border-bottom:1px solid var(--border)}
  .cve-hfield.off{opacity:.55}
  .cve-hfield-top{display:flex;align-items:center;gap:8px}
  .cve-hfield-top .ic{color:var(--ink-3);display:inline-flex}
  .cve-hfield-top .lbl{flex:1;font-size:12.5px;font-weight:500;color:var(--ink-2)}
  /* Ligne d'un sous-item d'en-tête : valeur (encadré cliquable + crayon) à gauche,
     toggle slide (afficher/masquer sur le CV) à droite. Pattern unique pour TOUTES
     les lignes du HeaderInspector (cf. sketch Landry). */
  .cve-hfield-row{display:flex;align-items:center;gap:10px;margin-top:5px}
  .cve-hfield-row > .cve-hfield-val,.cve-hfield-row > .cve-finput,.cve-hfield-row > .cve-ftext{flex:1;margin-top:0;min-width:0}
  .cve-hfield-row > .cve-hfield-select{flex:1;min-width:0}
  .cve-hfield-row > .cve-toggle{flex:0 0 auto}
  .cve-hfield-select{margin-top:5px;width:100%;min-height:32px;padding:6px 28px 6px 9px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;cursor:pointer}
  .cve-hfield-select:hover{border-color:var(--border-hover)}
  .cve-hfield-select:focus-visible{border-color:var(--accent);outline:none;box-shadow:var(--ring-focus)}
  .cve-hfield-select:disabled{cursor:not-allowed;color:var(--ink-3);background:var(--surface-2)}
  .cve-hfield-val{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:5px;padding:6px 9px;border:1px solid var(--border-soft);border-radius:8px;font-size:13px;color:var(--ink);cursor:pointer;background:var(--surface)}
  .cve-hfield-val:hover{border-color:var(--accent)}
  .cve-hfield-val:hover svg{color:var(--accent)}
  .cve-hfield-val > span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cve-hfield-val .ph{color:var(--ink-3)}
  .cve-hfield-val svg{color:var(--ink-3);flex:none;transition:color var(--dur-fast) var(--ease-out)}
  .cve-hfield .cve-fdate{margin-top:6px}
  .cve-hdragfield{position:relative;padding:2px 0 2px 24px;border-left:2px solid transparent;transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}
  .cve-hdragfield.off{opacity:.62}
  .cve-hdragfield.dragging{border-left-color:var(--accent);background:var(--accent-soft)}
  .cve-hdragfield.target{border-left-color:var(--accent);background:var(--bg)}
  .cve-hdraghandle{position:absolute;left:0;top:12px;display:flex;align-items:center;justify-content:center;width:18px;height:28px;border:0;border-radius:6px;background:transparent;color:var(--ink-3);cursor:grab;opacity:.42;transition:opacity var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .cve-hdragfield:hover .cve-hdraghandle,.cve-hdraghandle:focus-visible,.cve-hdragfield.dragging .cve-hdraghandle,.cve-hdragfield.target .cve-hdraghandle{opacity:1;color:var(--accent);background:var(--accent-soft)}
  .cve-hdraghandle:active{cursor:grabbing}
  .cve-hdragbody{min-width:0}
  .cve-hdragbody > .cve-hfield{padding:0;border-bottom:0}
  .cve-hdragbody > .cve-hfield + .cve-hfield{margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}
  /* Barre d'actions sous un champ d'en-tête (compat ascendante — la plupart des lignes
     utilisent maintenant `.cve-hfield-row` à la place). */
  .cve-hfield-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:6px;flex-wrap:wrap}
  
  
  
  /* Flash de mise au point quand un sous-item du CV est sélectionné (mode Sélection) :
     anneau accent qui s'atténue progressivement, sans bouger la mise en page. */
  @keyframes cveFocusFlash{0%{box-shadow:0 0 0 0 var(--accent-soft);background:var(--accent-soft)}100%{box-shadow:0 0 0 0 transparent;background:transparent}}
  .cve-focusflash{animation:cveFocusFlash 1.4s var(--ease-out) forwards;border-radius:8px}
  .cve-cvrole.cve-restyleflash,
  .cve-accroche.cve-restyleflash,
  .cve-exp.cve-restyleflash .role,
  .cve-exp.cve-restyleflash li,
  .lte-p.cve-restyleflash,
  .lte-sign.cve-restyleflash,
  .lte-email-body p.cve-restyleflash,
  .lte-msg-box p.cve-restyleflash{
    background-color:color-mix(in srgb,var(--accent) 28%,transparent);
    border-radius:6px;
    box-decoration-break:clone;
    -webkit-box-decoration-break:clone;
  }
  .cve-curationflash{
    background-color:color-mix(in srgb,var(--accent) 18%,transparent);
    border-radius:8px;
    box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent);
    box-decoration-break:clone;
    -webkit-box-decoration-break:clone;
    transition:background-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out);
  }
  .cve-toolgrp span .cve-curationflash{padding:1px 3px;margin:-1px -3px}
  @media (prefers-reduced-motion: reduce){
    .cve-cvrole.cve-restyleflash,
    .cve-accroche.cve-restyleflash,
    .cve-exp.cve-restyleflash .role,
    .cve-exp.cve-restyleflash li,
    .lte-p.cve-restyleflash,
    .lte-sign.cve-restyleflash,
    .lte-email-body p.cve-restyleflash,
    .lte-msg-box p.cve-restyleflash{background-color:color-mix(in srgb,var(--accent) 22%,transparent)}
    .cve-curationflash{transition:none}
  }
  /* Chips de variantes (en-tête) + toggle Version IA/Ma saisie (exp) */
  .cve-chiprow{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
  .cve-pchip.ghost{border-style:dashed;color:var(--ink-3)}
  .cve-pchip.ghost:hover{color:var(--accent)}
  .cve-inspcard-when{flex:none;font-family:var(--font-mono,ui-monospace);font-size:11px;color:var(--ink-3);white-space:nowrap;margin-right:2px}
  /* Pied d'inspecteur : aperçu en direct + Annuler/Appliquer (ancré en bas) */
  
  
  
  .cve-insp-prev{margin-bottom:9px}
  .cve-insp-prev .lbl{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:500;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}
  .cve-insp-prevbox{background:var(--accent-soft);border:1px solid var(--border);border-radius:8px;padding:7px 9px;max-height:66px;overflow:hidden}
  .cve-pvline{font-size:11.5px;color:var(--ink-2);line-height:1.5}
  .cve-pvlist{display:flex;flex-direction:column;gap:2px}
  .cve-pvrow{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--ink-2)}
  .cve-pvrow .r{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cve-pvrow .n{flex:none;color:var(--ink-3);font-family:var(--font-mono,ui-monospace);font-size:10.5px}
  .cve-pvtags{display:flex;flex-wrap:wrap;gap:4px}
  .cve-pvempty{font-size:11.5px;color:var(--ink-3);font-style:italic}
  .cve-insp-acts{display:flex;justify-content:flex-end;gap:8px}
  /* Mode contour bleu : sections du CV doucement soulignées (cliquables) */
  .cve-cv.docmode,.cve-cv.docmode .cve-page-sheet,.lte-letter.docmode,.lte-msgwrap.docmode,.lte-emailwrap.docmode{outline:1.5px dashed color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:-14px;border-radius:2px}
  /* SIH-68 · le pointillé dit SUR QUOI on agit.
     · onglet « Sections » → une cible par section (ci-dessous, .selmode) ;
     · Régénérer / Ton & longueur / Langue / Mise en page → la cible est le document ENTIER,
       donc UN seul contour, tout autour de la feuille (.docmode). Deux périmètres différents
       ne peuvent pas porter le même signal, sinon le client croit régler une section. */
  /* Le contour se dessine À L'INTÉRIEUR de la feuille (offset négatif) : dehors, il tomberait
     sur le canevas sombre du CV ou le bureau beige de la lettre, où l'encre d'accent ne se voit
     pas. Dans la marge du document, il se lit sur les deux, sans toucher au texte. */
  /* CV PAGINÉ : la feuille blanche visible est `.cve-page-sheet` (positionnée, dessinée APRÈS
     le contour de son parent, qu'elle recouvrait). Chaque page porte donc son propre contour. */
  .cve-cv.selmode .cve-secsel{outline:1px dashed color-mix(in srgb,var(--accent) 30%,transparent);outline-offset:3px;border-radius:6px}
  .cve-cv.selmode .cve-secsel:hover{outline:2px solid var(--accent);outline-offset:3px}
  .cve-cv .cve-secsel.secactive{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}

  /* ═══════════ Option A · châssis tokenisé (header + 2 sidebars + footer) ═══════════ */
  .cve-optA{display:flex;flex-direction:column;height:100%;min-height:560px;background:var(--bg)}
  .cve-hd{flex:0 0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:8px 12px;background:var(--surface);border-bottom:1px solid var(--border)}
  .cve-hd-l{display:flex;align-items:center;gap:8px;min-width:0}
  .cve-hd-c{display:flex;align-items:center;justify-content:center;gap:2px}
  .cve-hd-title{font-size:12px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
  .cve-hd-r{display:flex;align-items:center;gap:8px;justify-content:flex-end}
  /* SIH-68 · l'identité du document, au centre de l'en-tête, en LECTURE seulement : elle nomme
     ce qu'on regarde. Le poste et l'entreprise viennent de la candidature liée. */
  .cve-hd-docid{display:inline-flex;align-items:baseline;gap:6px;min-width:0;font-size:12px;color:var(--ink-3);white-space:nowrap}
  .cve-hd-docid b{font-weight:600;color:var(--ink)}
  .cve-hd-docsep{color:var(--ink-4)}
  .cve-hd-docrole{min-width:0;overflow:hidden;text-overflow:ellipsis}
  .cve-hd-docorg{font-weight:600;color:var(--ink-2)}
  .cve-optA .cve-gengrp{position:relative}
  .cve-optA .cve-newcv{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--action-border);background:var(--action-bg);color:var(--action-ink);font:inherit;font-size:12px;font-weight:500;padding:6px 11px;border-radius:8px;cursor:pointer}
  .cve-body2{flex:1 1 auto;min-height:0;display:flex;background:var(--bg)}
  /* Le chrome « Option A » hérite exclusivement du système Atelier global. */
  .cve-side{flex:0 0 auto;display:flex;flex-direction:column;min-height:0}
  .cve-side-r{border-left:1px solid var(--border)}
  /* ── SIH-68 · les TROIS niveaux du volet de travail ────────────────────────────────
     Le volet empile trois choses de nature différente ; sans hiérarchie elles se
     ressemblent et le fil d'Ariane se confond avec le menu.
     1. le MENU — où je travaille (fond creusé, entrée active remontée sur la surface)
     2. le FIL D'ARIANE — où j'en suis dedans (plus petit, plus calme)
     3. le CONTENU — ce que je règle (seule zone qui défile) */
  .cve-side-menu{flex:0 0 auto;display:flex;align-items:center;gap:2px;flex-wrap:nowrap;overflow:hidden;padding:9px 8px;background:var(--bg-2);border-bottom:1px solid var(--border)}
  .cve-side-menu-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;background:transparent;color:var(--ink-3);font:inherit;font-size:12.5px;padding:7px 8px;border-radius:8px;cursor:pointer;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .cve-side-menu-btn:hover{color:var(--ink);background:var(--surface)}
  .cve-side-menu-btn.on{background:var(--surface);color:var(--ink);font-weight:600;border-color:var(--border);box-shadow:var(--shadow-xs)}
  .cve-side-menu-btn.on svg{color:var(--accent)}
  .cve-side-menu-btn svg{flex:none;color:var(--ink-4)}
  /* Le menu tient TOUJOURS sur une ligne : quand la place manque, les libellés s'effacent
     et il ne reste que les icônes (le nom revient au survol). Jamais de retour à la ligne,
     qui ferait du bruit dans une barre de navigation. */
  .cve-side-menu.compact .cve-side-menu-btn{padding:7px 9px}
  /* Les libellés les plus longs (« Langue & format ») laissent ainsi ~20 px de marge à 620 px. */
  .cve-side-menu.compact .cve-side-menu-btn span{display:none}
  .cve-side-hd{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:12px 14px 11px;border-bottom:1px solid var(--border)}
  .cve-side-hd .t{flex:1;display:flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--ink);min-width:0;letter-spacing:-.01em}
  .cve-side-hd .t svg{color:var(--accent);flex:none}
  .cve-side-bd{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}
  .cve-side .cve-midhead{background:transparent;border-bottom:1px solid var(--border);padding:11px 12px}
  .cve-side .cve-midhead h3{color:var(--ink)}
  .cve-side .cve-midhead h3 svg{color:var(--accent)}
  .cve-side .cve-midhead p{color:var(--ink-3)}
  .cve-side .cve-midscroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:10px 12px}
  .cve-side .cve-finput,.cve-side .cve-ftext,.cve-side .cve-fdate{background:var(--surface);color:var(--ink);border-color:var(--border-default)}
  .cve-side .cve-ck{background:transparent}
  .cve-side .cve-ck.on{background:var(--accent);border-color:var(--accent);color:var(--fg-inverse)}
  .cve-side .cve-pchip{background:transparent;color:var(--ink-2);border-color:var(--border-default)}
  .cve-side .cve-pchip.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
  .cve-side .cve-pchip.ghost{border-style:dashed;color:var(--ink-3)}
  .cve-side .cve-hfield-val{background:var(--surface)}
  .cve-side .cve-insp-prevbox{background:var(--accent-soft)}

  .cve-side .cve-inspcard,.cve-side .cve-toolfam,.cve-side .cve-card,.cve-side .cve-expcard,.cve-side .cve-vcard,.cve-side .cve-reform,.cve-side .cve-editbox,.cve-side .cve-secrow{background:var(--surface);border-color:var(--border)}
  .cve-side .cve-insert{background:var(--accent);border-color:var(--accent);color:var(--fg-inverse)}
  .cve-side .cve-ghost{background:var(--surface);color:var(--ink-2);border-color:var(--border-strong)}
  .cve-side .cve-suggest{color:var(--accent);border-color:var(--accent)}
  .cve-side .cve-seg.sm{background:var(--bg-2)}
  .cve-secroot{padding:8px 10px;display:flex;flex-direction:column;gap:3px;overflow-y:auto}
  .cve-secroot-row{display:flex;align-items:center;gap:9px;width:100%;border:1px solid var(--border-soft);background:var(--surface);color:var(--ink);font:inherit;font-size:12.5px;padding:9px 11px;border-radius:8px;cursor:pointer;text-align:left;transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}
  .cve-secroot-row:hover{border-color:var(--accent);background:var(--bg-2)}
  .cve-secroot-row .ic{color:var(--accent);display:inline-flex;flex:none}
  .cve-secroot-row .l{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
  .cve-secroot-row .l b{font-weight:600;line-height:1.25}
  .cve-secroot-row .l small{font-size:11px;font-weight:400;color:var(--ink-3);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cve-secroot-row.off{opacity:.58}
  .cve-secroot-row .c{font-family:var(--font-mono,ui-monospace);font-size:11px;color:var(--accent)}
  .cve-secroot-row > svg:last-child{color:var(--ink-3);flex:none}
  /* Respiration symétrique dans l'aperçu : le document ne doit jamais toucher le footer. */
  .cve-optA .cve-canvas{flex:1 1 auto;min-width:0;min-height:0;overflow-y:auto;padding:26px 30px;position:relative;display:flex;flex-direction:column;align-items:center;background:radial-gradient(115% 85% at 50% -8%,#565B61 0%,#2B2E33 82%);box-shadow:inset 0 18px 44px rgba(0,0,0,.42),inset 0 -14px 38px rgba(0,0,0,.3)}
  .cve-tools [data-tip]{position:relative}
  .cve-tools [data-tip]:hover::after{content:attr(data-tip);position:absolute;top:calc(100% + 9px);left:50%;transform:translateX(-50%);width:204px;background:var(--ink);color:var(--fg-inverse);border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px;font-size:11px;line-height:1.45;font-weight:400;text-align:left;z-index:20;box-shadow:var(--shadow-popover);pointer-events:none}
  .cve-tools [data-tip]:hover::before{content:"";position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%) rotate(45deg);width:9px;height:9px;background:var(--ink);border-left:1px solid var(--border-strong);border-top:1px solid var(--border-strong);z-index:21;pointer-events:none}
  .cve-ft{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface);border-top:1px solid var(--border)}
  .cve-ft-offer{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-2);font:inherit;font-size:12px;padding:6px 12px;border-radius:8px;cursor:pointer}
  .cve-ft-offer:hover{background:var(--bg-2)}
  .cve-ft-info{margin-left:auto;font-size:11px;color:var(--ink-3)}

  /* ── GOAL · corrections éditeur (sidebar large · CV centré · pilule sticky · overlays) ── */
  /* Colonne du DOCUMENT : le bandeau d'état le coiffe, l'aperçu prend le reste. En colonne
     (et non en ligne) depuis SIH-68, pour que le bandeau s'arrête là où le volet commence. */
  .cve-optA .cve-canvas-wrap{position:relative;flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
  /* La lettre retrouve son bureau beige historique, indépendant du thème app. */
  .cvedit[data-doc="lettre"] .cve-optA .cve-canvas{background:radial-gradient(115% 85% at 50% -8%,#EADEC4 0%,#BCA878 80%);box-shadow:inset 0 18px 42px rgba(86,68,32,.34),inset 0 -14px 36px rgba(86,68,32,.24)}
  .cve-optA .cve-tools{position:sticky;top:10px;left:auto;margin:0 auto 14px;align-self:center;z-index:12}
  .cve-cv .cve-secsel:hover{outline:2.5px solid var(--accent,#3b66b0);outline-offset:3px;border-radius:6px}
  .cve-cv .cve-secsel.secactive{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px;box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 20%,transparent)}
  .cve-optA .cve-zoom{display:flex;align-items:center;border:1px solid var(--border);border-radius:8px;overflow:hidden}
  .cve-optA .cve-zoom button{border:0;background:transparent;color:var(--ink-2);font:inherit;font-size:11px;padding:6px 8px;cursor:pointer}
  .cve-optA .cve-zoom button:hover:not(:disabled){background:var(--bg-2)}
  .cve-optA .cve-zoom button:disabled{opacity:.4;cursor:default}
  .cve-optA .cve-zoom .val{min-width:42px;text-align:center;color:var(--ink-3)}
  .cve-editmode{height:34px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:12px;font-weight:600;padding:0 11px;cursor:pointer;white-space:nowrap}
  .cve-editmode:hover{background:var(--bg-2)}
  .cve-editmode.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
  /* SIH-68 · rien à modifier encore (document pas généré) : l'interrupteur reste VISIBLE et
     éteint, avec son explication au survol — le cacher ferait croire à un bug. */
  .cve-editmode:disabled{opacity:.5;cursor:not-allowed}
  /* SIH-68 · commandes indisponibles PENDANT l'édition (quitter le document, produire un
     fichier). Visibles et éteintes, avec leur raison au survol : les cacher ferait croire à un
     bug, les laisser actives ferait perdre le fil — ou télécharger un document périmé. */
  [data-edit-blocked]{opacity:.45;cursor:not-allowed}
  .cve-bc{display:inline-flex;align-items:center;gap:3px;border:0;background:transparent;color:var(--accent);font:inherit;font-size:12px;padding:0;cursor:pointer;white-space:nowrap}
  .cve-bc:hover{color:var(--accent-2);text-decoration:underline}
  .cve-bc-sep{color:var(--ink-3);margin:0 1px}
  .cve-bc-cur{display:inline-flex;align-items:center;gap:5px;color:var(--ink);font-weight:500;min-width:0}
  .cve-bc-cur svg{color:var(--accent);flex:none}
  .cve-inspcount,.cve-secroot-row .c{font-family:inherit}
  .cve-editwrap{position:relative}
  .cve-offov{position:fixed;inset:0;z-index:60;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:20px}
  .cve-offcard{width:100%;max-width:560px;max-height:86vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-overlay)}
  /* « Ce qu'on a fait » : grande modale TAILLE B avec rail de sections — réutilise le
     gabarit .cdet-modal2 (cf. modale candidature). Petits compléments visuels : */
  .cdet-done-title{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--fg-1,var(--ink))}
  .cdet-done-logo{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;background:color-mix(in srgb,var(--fg-inverse) 12%,transparent);color:var(--fg-inverse);flex:0 0 auto}
  .cdet-content2 .cve-midhead{padding:4px 2px 14px;border:0;background:none}
  .cdet-content2 .cve-pgroup:first-child{margin-top:0}
  .cve-offhd{display:flex;align-items:center;gap:11px;padding:14px 16px;border-bottom:1px solid var(--border)}
  .cve-offhd .lg{width:40px;height:40px;flex:none;border-radius:10px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:600;font-size:14px}
  .cve-offhd .id{flex:1;min-width:0}
  .cve-offhd .id .co{font-weight:600;font-size:15px;color:var(--ink)}
  .cve-offhd .id .ro{font-size:13px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cve-offx{width:30px;height:30px;flex:none;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--ink-3);cursor:pointer}
  .cve-offx:hover{background:var(--bg-2)}
  .cve-offbd{padding:14px 16px;overflow-y:auto}
  .cve-offey{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin:14px 0 6px;font-weight:500}
  .cve-offbd>.cve-offey:first-child{margin-top:0}
  .cve-offsum{font-size:13px;color:var(--ink-2);line-height:1.6;margin:0}
  .cve-offcards{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:14px 0}
  .cve-offmc{background:var(--bg-2);border-radius:10px;padding:11px 13px}
  .cve-offmc .l{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3)}
  .cve-offmc .n{font-size:24px;font-weight:600;color:var(--ink);margin-top:3px}
  .cve-offmc .n span{font-size:13px;color:var(--ink-3)}
  .cve-offmc .bar{height:5px;border-radius:3px;background:var(--border);margin-top:7px;overflow:hidden}
  .cve-offmc .bar i{display:block;height:100%;background:var(--accent);border-radius:3px}
  .cve-offmr{display:flex;gap:7px;font-size:13px;color:var(--ink-2);padding:4px 0;line-height:1.5}
  .cve-offmr svg{color:var(--accent);flex:none;margin-top:1px}
  .cve-offkw{display:flex;flex-wrap:wrap;gap:6px}
  .cve-offkw .hit{display:inline-flex;align-items:center;gap:4px;font-size:12px;background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:3px 10px}
  .cve-offft{display:flex;align-items:center;gap:10px;padding:12px 16px;border-top:1px solid var(--border)}
  .cve-offft .hint{flex:1;font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:6px;min-width:0}
  .cve-offft .acts{display:flex;gap:8px;flex:none}

  /* ══════════ MODALE C · famille « décision » (SIH-63, décision Landry 2026-07-31) ══════════
     TROISIÈME famille de pop-up, créée volontairement. Le POURQUOI de chaque parti pris de mise
     en page est écrit UNE fois, dans l'organisme qui la porte :
     app/_ui/modules/ui/organisms/DecisionModal.jsx. Ne pas le recopier ici — la copie qui
     vivait à cet endroit avait déjà menti sur la largeur au bout de deux itérations.
     Ci-dessous, seulement les valeurs. Zéro couleur, ombre ou rayon inventés : tout vient des
     tokens (regle-sobriete-visuelle). */
  .mdc-ov{position:fixed;inset:0;z-index:80;background:var(--scrim);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:24px 24px min(9vh,96px)}
  .mdc{width:min(720px,92vw);max-height:88vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-overlay)}
  /* UNE SEULE COLONNE : en-tête, corps et liste partagent le même bord gauche (26 px). L'icône,
     posée en colonne à gauche du titre, imposait sa gouttière (83 px mesurés) à tout le corps —
     un tiers de carte restait vide sous elle, et chaque rangée y ajoutait sa propre icône. */
  .mdc-hd{flex:0 0 auto;padding:20px 20px 0 26px}
  .mdc-top{display:flex;align-items:center;gap:13px;margin-bottom:16px}
  /* La MARQUE du sujet : l'écusson de l'entreprise quand la décision porte sur un dossier réel,
     sinon l'icône d'état seule. Un pictogramme abstrait flottant ne disait rien du dossier ;
     les initiales l'ancrent, comme sur la carte du tableau et dans l'éditeur. */
  .mdc-mark{position:relative;display:inline-flex;flex:none}
  .mdc-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--accent-soft);color:var(--accent)}
  .mdc.warn .mdc-ic{background:var(--warn-soft);color:var(--warn-ink)}
  /* L'état se pose SUR la marque : il nomme la nature du moment sans voler la vedette au sujet. */
  .mdc-badge{position:absolute;right:-6px;bottom:-6px;display:grid;place-items:center;width:22px;height:22px;border-radius:8px;background:var(--surface);border:1px solid var(--border);color:var(--ink-3);box-shadow:0 0 0 2px var(--surface)}
  .mdc.warn .mdc-badge{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 35%,var(--border))}
  .mdc-t{margin:0 6px 0 0;font-size:19px;font-weight:600;line-height:1.3;letter-spacing:-.005em;color:var(--ink);max-width:34ch}
  .mdc-s{flex:1;min-width:0;margin:0;font-size:13px;line-height:1.45;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* Faits du dossier : UNE ligne de texte gris, séparateurs inline — jamais des pastilles. */
  .mdc-facts{margin:7px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink-4)}
  .mdc-facts .sep{display:inline-block;padding:0 7px;color:var(--ink-5)}
  .mdc-facts .sep::before{content:'·'}
  /* La fermeture ferme la première ligne : poussée à droite par la marge automatique, sans
     élément vide en guise de cale quand le sujet n'a pas de sous-titre. */
  .mdc-x{flex:none;margin-left:auto;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:9px;background:transparent;color:var(--ink-3);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}
  .mdc-x:hover:not(:disabled){background:var(--bg-2);color:var(--ink)}
  .mdc-x:disabled{opacity:.5;cursor:default}
  /* Respiration GÉNÉREUSE entre la question et ce qu'elle entraîne : c'est la séparation la plus
     large de la carte, parce que c'est le seul vrai changement de propos. */
  .mdc-bd{flex:1 1 auto;min-height:0;overflow-y:auto;padding:22px 26px 26px}
  .mdc-ey{font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:500;color:var(--ink-3);margin:0 0 10px}
  /* Les conséquences sont la SUBSTANCE : plus grandes que le sous-titre, qui n'est qu'un rappel
     de contexte. Marqueur en encre méta, pas en accent — la hiérarchie vient de l'air et de la
     taille, jamais de l'encre (DESIGN.md). Intervalle SERRÉ à l'intérieur de la liste. */
  .mdc-row{display:flex;gap:11px;align-items:flex-start;font-size:15px;line-height:1.5;color:var(--ink-2);padding:5px 0}
  .mdc-row svg{flex:none;margin-top:3px;color:var(--ink-3)}
  .mdc-row.warn{color:var(--ink)}
  .mdc-row.warn svg{color:var(--warn)}
  /* Un DOCUMENT nommé : l'icône type l'objet (elle porte une information, contrairement à un
     pictogramme posé à côté d'une phrase), le nom porte l'encre, la méta reste du texte gris
     inline — jamais une pastille (DESIGN.md). */
  .mdc-doc{display:flex;align-items:flex-start;gap:11px;padding:10px 0;font-size:15px;line-height:1.5}
  .mdc-doc svg{flex:none;margin-top:2px;color:var(--ink-3)}
  .mdc-doc .b{min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
  .mdc-doc .n{font-weight:500;color:var(--ink)}
  .mdc-doc .m{font-size:12.5px;color:var(--ink-4)}
  /* Le TITRE réel du document — celui du fichier envoyé. Mono, parce que c'est un nom de
     fichier et pas de la prose ; sur sa propre ligne, tronqué proprement s'il déborde. */
  .mdc-doc .f{flex-basis:100%;min-width:0;font-family:var(--font-mono);font-size:12px;line-height:1.45;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mdc-doc + .mdc-doc{border-top:1px solid var(--border-soft)}

  /* Prose (pop-up qui rappelle un fait plutôt que d'énumérer) : même corps que la liste. */
  .mdc-p{margin:0;font-size:15px;line-height:1.6;color:var(--ink-2)}
  .mdc-p + .mdc-p{margin-top:12px}
  .mdc-row b,.mdc-p b{font-weight:500;color:var(--ink)}
  /* Précision de fin : recule d'un cran, et se détache par l'air. */
  .mdc-note{margin:18px 0 0;font-size:13.5px;line-height:1.55;color:var(--ink-3)}
  /* L'UNIQUE filet de la carte : il annonce la zone de choix. */
  .mdc-ft{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:16px 26px;border-top:1px solid var(--border);background:var(--surface-2)}
  .mdc-ft .l{display:flex;gap:8px;min-width:0}
  .mdc-ft .r{display:flex;gap:8px;flex:none;margin-left:auto}
  /* ÉTROIT : trois actions ne tiennent pas côte à côte et retomberaient en escalier ragged.
     On empile pleine largeur, décision d'abord — elle passe sous le pouce, et l'ordre de lecture
     reste « ce que je fais » puis « ce que je reporte ». */
  @media (max-width:560px){
    .mdc-ov{padding:14px}
    .mdc-bd{padding:18px 20px 22px}
    .mdc-hd{padding:16px 16px 0 20px}
    .mdc-ft{flex-direction:column-reverse;align-items:stretch;gap:8px;padding:14px 20px}
    /* Empilé, l'ordre doit rester « ce que je réponds » puis « ce que je peux aller faire »,
       décision en tête, sous le pouce. Les deux groupes s'inversent donc ENSEMBLE : sans le
       column-reverse sur les décisions, la principale se retrouvait prise en sandwich. */
    .mdc-ft .l{flex-direction:column;width:100%;gap:8px}
    .mdc-ft .r{flex-direction:column-reverse;width:100%;margin:0;gap:8px}
    .mdc-ft button{width:100%;justify-content:center}
  }

  /* ── Verrou « candidature envoyée » (SIH-59) ──────────────────────────────
     Deux ajouts au système, assumés et validés sur maquette.

     1. [data-locked] · l'état ÉTEINT d'une action de production. Le bouton n'est
        volontairement PAS `disabled` : un bouton mort ne dit rien au client, celui-ci
        reste cliquable pour ouvrir l'explication. Les cacher ferait croire à un bug,
        les laisser actives ferait perdre le fil par accident.
     2. .cve-docstate · le bandeau d'état du document, sous le header. Il reprend les
        tons sémantiques existants (ambre figé / vert en préparation) : aucun filet
        coloré sur une carte, aucune nouvelle couleur (regle-sobriete-visuelle). */
  [data-locked]{color:var(--ink-5);border-color:var(--border-soft);cursor:pointer}
  [data-locked] svg{color:var(--ink-5)}
  .cve-editmode[data-locked],.cve-editmode[data-locked]:hover{background:var(--surface);color:var(--ink-5);border-color:var(--border-soft)}
  .cve-optA .cve-newcv[data-locked],.cve-optA .cve-newcv[data-locked]:hover{background:var(--bg-2);color:var(--ink-5);border-color:var(--border-soft)}

  .cve-docstate{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:7px 14px;font-size:12px;border-bottom:1px solid var(--border);background:var(--warn-soft);color:var(--warn-ink)}
  .cve-docstate svg{flex:none;color:currentColor}
  .cve-docstate .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cve-docstate .t b{font-weight:600}
  .cve-docstate.on{background:var(--good-soft);color:var(--good-ink)}
  /* La porte de sortie reste discrète : c'est une reprise volontaire, pas un appel à cliquer. */
  .cve-docstate-out{flex:none;border:0;background:transparent;font:inherit;font-size:12px;color:currentColor;text-decoration:underline;text-underline-offset:2px;cursor:pointer;padding:2px 4px;border-radius:6px;transition:background-color var(--dur-fast) var(--ease-out)}
  .cve-docstate-out:hover{background:color-mix(in srgb,currentColor 12%,transparent)}
  /* Conséquences énumérées dans la pop-up de confirmation. */
  .cve-lockrow{display:flex;gap:8px;font-size:13px;color:var(--ink-2);line-height:1.5;padding:5px 0}
  .cve-lockrow svg{color:var(--accent);flex:none;margin-top:2px}
  .cve-lockrow.warn svg{color:var(--warn)}

  /* ── Option A · compléments de chrome (header, tiroirs, pied) ─────────────
     Ce bloc était l'écran anti-thème-sombre : il redéclarait en clair tout ce que
     le châssis « Option A » posait déjà plus haut. Depuis la tokenisation (SIH-44),
     les deux moitiés disaient la même chose ; les 71 redéclarations sans effet ont
     été purgées (SIH-9). Ne restent ici que les règles qui CHANGENT vraiment
     quelque chose par rapport au châssis — chacune est un ajout ou un écart assumé.
     Le DOCUMENT au centre garde sa couleur (CV gris · lettre beige). */
  /* « L'offre » remontée dans le header (haut-gauche) : bouton clair bordé. */
  .cve-hd-offer{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-2);font:inherit;font-size:12px;font-weight:500;padding:5px 11px;border-radius:8px;cursor:pointer;white-space:nowrap;margin-right:8px;flex:0 0 auto;transition:border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .cve-hd-offer:hover{border-color:var(--accent);color:var(--accent)}
  .cve-hd-offer .cve-ft-ext{color:var(--ink-4)}
  /* Dans l'éditeur, le bouton « mode édition » prend la bordure pleine (pas soft). */
  .cve-optA .cve-editmode{border:1px solid var(--border);color:var(--ink-2);background:var(--surface)}
  .cve-optA .cve-editmode:hover{background:var(--bg-2);border-color:var(--border-strong);color:var(--ink)}
  .cve-optA .cve-editmode.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
  .cve-optA .cve-newcv{border:1px solid var(--border)}
  /* Les tiroirs latéraux posent une surface blanche par-dessus le fond de l'éditeur. */
  .cve-side{background:var(--surface)}
  .cve-side .cve-midhead h3 .cve-midhead-hint svg{color:currentColor}
  /* Cases à cocher et pastilles : surface pleine dans les tiroirs (le châssis les met à plat). */
  .cve-side .cve-ck{background:var(--surface);border-color:var(--border-strong)}
  .cve-side .cve-pchip{background:var(--surface)}
  .cve-secroot-row{border:1px solid var(--border)}
  .cve-ft-offer .co{color:var(--accent)}

  .cve-align{font-size:11.5px;color:var(--ink-3);white-space:nowrap}
  .cve-align b{color:var(--good);font-size:14px;font-weight:700}
  .cve-dl{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:0;border-radius:99px;background:var(--sidebar-bg);color:var(--sidebar-fg-strong);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
  .cve-dl:hover{background:var(--sidebar-bg-2)}
  
  .cve-dlwrap{position:relative}
  
  

  /* aperçu : zoom + plein écran + tooltip d'alignement */
  .cve-zoom{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:2px}
  .cve-zoom button{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:0;background:transparent;color:var(--ink-2);border-radius:6px;cursor:pointer}
  .cve-zoom button:hover:not(:disabled){background:var(--bg-2);color:var(--ink)}
  .cve-zoom button:disabled{opacity:.35;cursor:not-allowed}
  .cve-zoom span{min-width:38px;text-align:center;font-family:var(--font-mono,monospace);font-size:11px;color:var(--ink-2);font-variant-numeric:tabular-nums}
  .cve-zoom button.val{width:auto;min-width:42px;padding:0 7px;font-family:var(--font-mono,monospace);font-size:11px;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
  .cve-fmtopt{display:flex;align-items:flex-start;gap:11px;width:100%;text-align:left;padding:12px;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface);cursor:pointer;margin-bottom:8px;transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}
  .cve-fmtopt:hover{background:var(--bg-2)}
  .cve-fmtopt.on{border-color:var(--accent);background:var(--accent-soft)}
  .cve-fmtopt .cve-vchip{flex:0 0 auto;margin-top:1px}
  .cve-fmtopt-tx{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 auto}
  .cve-fmtopt-tx b{font-size:13px;font-weight:600;color:var(--ink)}
  .cve-fmtopt-tx span{font-size:12px;color:var(--ink-3);line-height:1.45}
  .cve-fmtopt-ck{color:var(--accent);flex:0 0 auto;margin-top:2px}
  .cve-alignpct{position:relative;display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--good);cursor:default;outline:none}
  .cve-alignpct > svg{color:var(--good)}
  .cve-alignpct b{color:var(--good);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}
  .cve-aligntip{position:absolute;top:calc(100% + 9px);right:0;width:248px;display:flex;flex-direction:column;gap:3px;background:var(--sidebar-bg);color:var(--sidebar-fg-strong);padding:10px 12px;border-radius:8px;box-shadow:var(--shadow-lg);opacity:0;transform:translateY(-4px);transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);pointer-events:none;z-index:70;text-align:left}
  .cve-alignpct:hover .cve-aligntip,.cve-alignpct:focus-visible .cve-aligntip{opacity:1;transform:translateY(0)}
  .cve-aligntip .t{font-size:12px;font-weight:600;color:var(--sidebar-fg-strong)}
  .cve-aligntip .s{font-size:11px;line-height:1.5;color:color-mix(in srgb,var(--sidebar-fg-strong) 72%,transparent)}

  /* plein écran : le MÊME éditeur (barre à pastilles + tiroir + aperçu) en overlay pleine page */
  .cve-letter1.lte-fs{position:fixed;inset:0;z-index:var(--z-modal,200);background:var(--subtle,var(--bg-2));animation:lteFocusIn var(--dur-slow) var(--ease-out)}
  @keyframes lteFocusIn{from{opacity:0}to{opacity:1}}
  .cve-letter1.lte-fs .lte-toolrow{box-shadow:var(--shadow-xs)}
  .cve-letter1.lte-fs .cve-prevscroll{padding:46px 40px 72px}
  .cve-letter1.lte-fs .lte-letter{width:794px}
  @media (max-width:1080px){.cve-letter1.lte-fs .cve-prevscroll{padding:30px 22px 56px}}

  /* aperçu PDF — la lettre telle qu'elle sera imprimée / envoyée */
  .lte-pdf{position:fixed;inset:0;z-index:calc(var(--z-modal,200) + 5);display:flex;flex-direction:column;background:#3a3d43;animation:lteFocusIn var(--dur-base) var(--ease-out)}
  .lte-pdf-bar{flex:0 0 auto;height:56px;display:flex;align-items:center;gap:10px;padding:0 16px;background:var(--sidebar-bg);box-shadow:var(--shadow-md)}
  .lte-pdf-title{display:flex;align-items:center;gap:9px;font-family:var(--font-mono,monospace);font-size:13px;font-weight:600;color:var(--sidebar-fg-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .lte-pdf-title svg{color:color-mix(in srgb,var(--sidebar-fg-strong) 70%,transparent);flex:0 0 auto}
  .lte-pdf-title .sub{font-family:var(--font-sans);font-size:11.5px;color:color-mix(in srgb,var(--sidebar-fg-strong) 55.00000000000001%,transparent);font-weight:500;margin-left:8px}
  .lte-pdf-bar .sp{flex:1 1 auto}
  .lte-pdf-act{display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:12.5px;font-weight:600;color:var(--sidebar-fg-strong);background:color-mix(in srgb,var(--sidebar-fg-strong) 10%,transparent);border:1px solid color-mix(in srgb,var(--sidebar-fg-strong) 16%,transparent);border-radius:8px;padding:8px 13px;cursor:pointer;flex:0 0 auto;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out)}
  .lte-pdf-act:hover{background:color-mix(in srgb,var(--sidebar-fg-strong) 18%,transparent)}
  .lte-pdf-act.primary{background:var(--accent);border-color:transparent}
  .lte-pdf-act.primary:hover{background:var(--accent);filter:brightness(1.08)}
  .lte-pdf-zoom{display:flex;align-items:center;gap:2px;background:color-mix(in srgb,var(--sidebar-fg-strong) 10%,transparent);border:1px solid color-mix(in srgb,var(--sidebar-fg-strong) 16%,transparent);border-radius:8px;padding:2px;flex:0 0 auto}
  .lte-pdf-zoom button{display:grid;place-items:center;min-width:28px;height:28px;padding:0 6px;border:0;border-radius:6px;background:transparent;color:var(--sidebar-fg-strong);cursor:pointer;font:inherit;font-size:12px;font-weight:600;transition:background-color var(--dur-fast) var(--ease-out)}
  .lte-pdf-zoom button.val{font-family:var(--font-mono,monospace);min-width:52px;letter-spacing:.01em;white-space:nowrap;line-height:1}
  .lte-pdf-zoom button:hover:not(:disabled){background:color-mix(in srgb,var(--sidebar-fg-strong) 16%,transparent)}
  .lte-pdf-zoom button:disabled{opacity:.4;cursor:not-allowed}
  .lte-pdf-ghost{display:grid;place-items:center;width:32px;height:32px;border:1px solid color-mix(in srgb,var(--sidebar-fg-strong) 16%,transparent);border-radius:8px;background:color-mix(in srgb,var(--sidebar-fg-strong) 10%,transparent);color:var(--sidebar-fg-strong);cursor:pointer;flex:0 0 auto;transition:background-color var(--dur-fast) var(--ease-out)}
  .lte-pdf-ghost:hover{background:color-mix(in srgb,var(--sidebar-fg-strong) 20%,transparent)}
  .lte-pdf-sep{width:1px;height:24px;background:color-mix(in srgb,var(--sidebar-fg-strong) 18%,transparent);flex:0 0 auto;margin:0 3px}
  .lte-pdf-scroll{flex:1;min-height:0;overflow:auto;padding:42px 24px 64px;display:flex;flex-direction:column;align-items:center}
  .lte-pdf-doc{width:auto;max-width:100%}
  .lte-pdf .lte-letter{margin:0;border:0;border-radius:3px;box-shadow:0 22px 70px rgba(0,0,0,.5)}
  .lte-pdf .cve-cv{margin:0;border-radius:3px;box-shadow:0 22px 70px rgba(0,0,0,.5)}
  .lte-pdf .lte-emailwrap,.lte-pdf .lte-msgwrap{margin:0}
  .lte-pdf .lte-email,.lte-pdf .lte-msg{box-shadow:0 22px 70px rgba(0,0,0,.5)}
  .lte-pdf .lte-legendwrap{display:none}
  .lte-pdf .mark{background:transparent !important;border:0 !important;padding:0 !important;border-radius:0 !important;color:inherit !important}
  .lte-pdf .cve-cvph{display:none !important}
  /* Document « propre » : aucun surlignage d'aide à l'édition dans l'aperçu d'envoi */
  .lte-pdf .lte-add{background:transparent !important;border:0 !important;border-bottom:0 !important;padding:0 !important;border-radius:0 !important;color:inherit !important}
  .lte-pdf .cve-addmark{color:inherit !important;font-weight:inherit !important;background:transparent !important}
  .lte-pdf .cve-as-skill.add{background:transparent !important;padding:0 !important;margin:0 !important;border-radius:0 !important}
  .lte-pdf .cve-as-skill.add b{color:inherit !important}
  .lte-pdf .cve-exp.focus{background:transparent !important;box-shadow:none !important}
  .lte-pdf .cve-editflag{display:none !important}
  /* Version manuelle rendue dans l'aperçu PDF : neutraliser l'échelle de l'éditeur */
  .lte-pdf .cve-pdfmanual .cve-cvwrap{height:auto !important}
  .lte-pdf .cve-pdfmanual .cve-cvscale{transform:none !important}
  @media (max-width:820px){.lte-pdf-title .sub{display:none}}

  /* bibliothèque de CV */
  .cve-lib{display:flex;align-items:stretch;gap:6px;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--surface);overflow-x:auto;flex:0 0 auto}
  .cve-libadd{flex:0 0 auto;width:34px;border:1px dashed var(--border-strong);border-radius:8px;background:transparent;color:var(--ink-3);cursor:pointer;display:grid;place-items:center}
  .cve-libadd:hover{color:var(--accent);border-color:var(--accent)}

  /* barre d'outils de l'aperçu */
  .cve-prevtools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
  .cve-seg.sm{display:inline-flex;background:var(--bg-2);border-radius:8px;padding:2px}
  .cve-seg.sm button{border:0;background:transparent;font:inherit;font-size:11.5px;font-weight:600;color:var(--ink-3);padding:5px 11px;border-radius:6px;cursor:pointer}
  .cve-seg.sm button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
  /* dropdowns compacts (format d'envoi, zoom) — un bouton qui ouvre un menu vertical */
  .cve-dd{position:relative}
  .cve-ddmenu{position:absolute;top:calc(100% + 6px);right:0;min-width:152px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:6px;z-index:40;animation:ddpop var(--dur-fast) var(--ease-out)}
  @keyframes ddpop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
  .cve-dditem{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;background:transparent;border-radius:8px;padding:8px 10px;cursor:pointer;font:inherit;font-size:12.5px;font-weight:500;color:var(--ink-2)}
  .cve-dditem:hover{background:var(--bg-2);color:var(--ink)}
  .cve-dditem svg{color:var(--ink-3);flex:0 0 auto}
  .cve-dditem > span{flex:1}
  .cve-dditem.on{color:var(--accent);font-weight:600}
  .cve-dditem.on svg{color:var(--accent)}
  .cve-dditem .tick{color:var(--accent)}
  /* ruban d'outils (style Word) — groupes avec libellé sous chaque groupe */
  .lte-ribbonrow{padding:0;align-items:stretch;gap:0}
  .lte-ribbon{display:flex;align-items:stretch;gap:0;width:100%;min-width:0}
  .lte-rgroup{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 7px 4px;flex:0 0 auto;min-width:0}
  .lte-rgroup + .lte-rgroup{border-left:1px solid var(--border)}
  .lte-rcol{display:flex;flex-direction:column;gap:1px;width:100%;flex:1 1 auto;justify-content:center}
  .lte-rcap{font-size:10px;line-height:1;color:var(--ink-4);letter-spacing:.02em;text-align:center;white-space:nowrap}
  .lte-rsmall{display:flex;align-items:center;gap:6px;width:100%;font:inherit;font-size:12px;font-weight:500;color:var(--ink-2);background:transparent;border:0;border-radius:6px;padding:4px 7px;cursor:pointer;white-space:nowrap;transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}
  .lte-rsmall svg{color:var(--ink-4);flex:0 0 auto}
  .lte-rsmall .lbl{flex:1 1 auto;text-align:left}
  
  .lte-rsmall:hover{background:var(--bg-2);color:var(--ink)}
  .lte-rsmall:hover svg{color:var(--ink-3)}
  .lte-rsmall.on{background:var(--accent-soft);color:var(--accent)}
  .lte-rsmall.on svg{color:var(--accent)}
  .lte-rbigs{display:flex;align-items:stretch;gap:2px;flex:1 1 auto}
  .lte-rfill{display:flex;align-items:center;justify-content:center;flex:1 1 auto}
  .lte-rfill .cve-seg.sm button{white-space:nowrap}
  .lte-rbig{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:58px;font:inherit;color:var(--ink-2);background:transparent;border:0;border-radius:8px;padding:6px 8px;cursor:pointer;white-space:nowrap;transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}
  .lte-rbig svg{color:var(--ink-3)}
  .lte-rbig .cap{display:inline-flex;align-items:center;gap:2px;font-size:11.5px;font-weight:500;color:inherit}
  .lte-rbig .cap svg{color:var(--ink-4)}
  .lte-rbig:hover{background:var(--bg-2);color:var(--ink)}
  .lte-rbig:hover svg{color:var(--ink-2)}
  .lte-rbig.on{background:var(--accent-soft);color:var(--accent)}
  .lte-rbig.on svg,.lte-rbig.on .cap svg{color:var(--accent)}
  .lte-ribbon .cve-dd,.lte-ribbon .cve-dlwrap{display:flex}
  .cve-tplsel{font:inherit;font-size:11.5px;color:var(--ink-2);border:1px solid var(--border-soft);border-radius:8px;padding:6px 9px;background:var(--surface);cursor:pointer}
  .cve-ptgl{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:11.5px;color:var(--ink-3);border:1px solid var(--border-soft);border-radius:8px;padding:6px 9px;background:var(--surface);cursor:pointer}
  .cve-ptgl:hover{border-color:var(--border-strong)}
  .cve-ptgl.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

  /* menu télécharger */
  .cve-dlwrap{position:relative}
  .cve-dlmenu{position:absolute;top:calc(100% + 6px);right:0;width:250px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:6px;z-index:30}
  /* Popover « Disposition du menu » */
  .lte-menucfg{position:absolute;top:calc(100% + 6px);right:0;width:248px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:7px;z-index:40;animation:lteMenuCfgIn .16s var(--ease-out)}
  @keyframes lteMenuCfgIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
  .lte-menucfg-h{font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--ink-3);padding:5px 8px 7px}
  .lte-menucfg-sub{font-size:9.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-4);padding:9px 8px 5px;margin-top:3px;border-top:1px solid var(--border)}
  
  
  
  
  
  
  
  
  
  .cve-dlcheck{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:600;color:var(--good-ink);background:var(--good-soft);border-radius:8px;padding:8px 10px;margin-bottom:4px}
  .cve-dlitem{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:transparent;border-radius:8px;padding:8px 10px;cursor:pointer;font:inherit}
  .cve-dlitem:hover{background:var(--bg-2)}
  .cve-dlitem svg{color:var(--ink-3);flex:0 0 auto}
  .cve-dlitem b{display:block;font-size:12.5px;color:var(--ink)}
  .cve-dlitem span{display:block;font-size:11px;color:var(--ink-3)}
  .cve-dlname{font-family:var(--font-mono);font-size:10px;color:var(--ink-4);padding:8px 10px 4px;border-top:1px solid var(--border);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

  /* Sous-dossiers par entreprise (bibliothèque Lettre & CV) */
  .cve-candgrps{display:flex;flex-direction:column;gap:22px;max-width:1080px;margin:0 auto}
  .cve-candgrp{display:flex;flex-direction:column;gap:13px}
  .cve-candgrp-head{display:flex;align-items:center;gap:12px;padding-bottom:11px;border-bottom:1px solid var(--border)}
  .cve-candgrp-lg{flex:0 0 auto;width:34px;height:34px;border-radius:8px;display:grid;place-items:center;background:var(--bg-2);border:1px solid var(--border);font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--ink-2)}
  .cve-candgrp-id{flex:1 1 auto;min-width:0}
  .cve-candgrp-id b{display:block;font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.25}
  .cve-candgrp-id span{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-3);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cve-candgrp-id .dot{color:var(--border-strong)}
  .cve-candgrp-dl{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;padding:7px 12px;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}
  .cve-candgrp-dl:hover{background:var(--bg-2);border-color:var(--ink-4)}
  .cve-candgrp-dl svg{color:var(--ink-3)}
  .cve-dlscrim{position:fixed;inset:0;z-index:25}
  .cve-dlall{width:286px}
  .cve-dlall-hd{padding:3px 8px 9px}
  .cve-dlall-hd b{display:block;font-size:13px;font-weight:600;color:var(--ink)}
  .cve-dlall-hd span{display:block;font-size:11px;color:var(--ink-3);margin-top:3px;line-height:1.4}
  .cve-dlall-list{display:flex;flex-direction:column;gap:1px;border-top:1px solid var(--border);padding-top:5px;margin-bottom:8px}
  .cve-dlchk{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:8px;cursor:pointer;position:relative}
  .cve-dlchk:hover{background:var(--bg-2)}
  .cve-dlchk input{position:absolute;opacity:0;width:0;height:0}
  .cve-dlchk .box{flex:0 0 auto;width:17px;height:17px;border-radius:6px;border:1.5px solid var(--border-strong);display:grid;place-items:center;color:var(--fg-inverse);background:var(--surface);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .cve-dlchk .box svg{opacity:0}
  .cve-dlchk.on .box{background:var(--accent);border-color:var(--accent)}
  .cve-dlchk.on .box svg{opacity:1}
  .cve-dlchk input:focus-visible + .box{box-shadow:var(--ring-focus)}
  .cve-dlchk .ft{color:var(--ink-3);flex:0 0 auto}
  .cve-dlchk .k{font-size:11px;font-weight:600;color:var(--ink-3);width:40px;flex:0 0 auto}
  .cve-dlchk .fmt{font-size:12.5px;color:var(--ink);flex:1 1 auto;display:flex;align-items:center;gap:7px}
  .cve-dlchk .core{font-size:9.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border-radius:99px;padding:1px 7px}
  .cve-dlall-main{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:0;background:var(--accent);color:var(--fg-inverse);border-radius:8px;padding:9px 11px;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;transition:background-color var(--dur-fast) var(--ease-out)}
  .cve-dlall-main:hover{background:var(--accent-600,#345a9c)}
  .cve-dlall-main:disabled{opacity:.5;cursor:not-allowed}

  /* photo · modèles · 2 pages */
  .cve-photo{width:58px;height:58px;border-radius:8px;background:var(--bg-2);border:1px solid var(--border);display:grid;place-items:center;color:var(--ink-4);margin-bottom:9px;overflow:hidden}
  .cve-photo.has-img{background:var(--ink)}
  .cve-photo img{width:100%;height:100%;object-fit:cover;display:block}
  .cve-cv.two{min-height:1123px}
  .cve-cv--compact .cve-exp{margin-bottom:10px}
  .cve-cv--compact .cve-cvsec{margin:15px 0 8px}
  .cve-cv--compact .cve-accroche{margin:12px 0 6px}
  .cve-cv--compact .cve-exp ul{gap:3px}
  /* impeccable-disable-next-line side-tab: accent de section du document bicolore, pas un onglet latéral */
  .cve-cv--bicol .cve-cvsec{color:var(--ink);border-left:3px solid var(--border-strong);padding-left:9px}
  .cve-cv--bicol .cve-cvsec::after{display:none}
  /* Modèle « deux colonnes » RÉEL : contenu principal (exp/formations/compétences) à gauche,
     atouts/langues/centres d'intérêt en colonne latérale (au lieu d'un pied 3-colonnes). */
  .cve-cv--bicol .cve-cols{grid-template-columns:1fr 208px;gap:28px;align-items:start}
  .cve-cv--bicol .cve-foot3{grid-template-columns:1fr;gap:16px;margin-top:0;padding-top:0;border-top:0}

  /* CTA boucle Vault */
  .cve-vaultcta{display:inline-flex;align-items:center;gap:7px;margin-top:12px;font:inherit;font-size:12px;font-weight:600;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-soft-2);border-radius:8px;padding:8px 12px;cursor:pointer}
  .cve-vaultcta:hover{background:var(--accent);color:var(--fg-inverse);border-color:var(--accent)}
  .cve-vaultcta:hover svg{color:var(--fg-inverse)}

  /* Surface canonique du document : sa géométrie reste fixe. Le zoom de l'éditeur
     est une transformation visuelle portée par ZoomViewport ; il ne participe jamais
     aux retours à la ligne ni à la pagination. */
  .cve-cvwrap{width:100%;min-width:0;display:flex;justify-content:center;align-items:flex-start;overflow:hidden}
  .cve-cvscale{width:794px;align-self:flex-start}

  /* états appliqué / traité (coach & correction) */
  .cve-done{display:inline-flex;align-items:center;gap:7px;margin-top:11px;font-size:12px;font-weight:600;color:var(--good-ink)}
  .cve-done.muted{color:var(--ink-3)}
  .cve-done .undo{margin-left:6px;font:inherit;font-size:11.5px;font-weight:500;color:var(--ink-3);background:none;border:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
  .cve-done .undo:hover{color:var(--accent)}
  .cve-tip.applied{background:var(--good-soft);border-color:transparent}
  .cve-tip.applied .h .ic{background:var(--good);color:var(--fg-inverse)}
  .cve-fix.applied{border-color:transparent;background:var(--good-soft)}
  .cve-fix.kept{opacity:.6}
  .cve-allclear{display:flex;align-items:center;justify-content:center;gap:9px;padding:18px;border:1px dashed var(--border-strong);border-radius:10px;color:var(--ink-3);font-size:12.5px;font-weight:500;margin-top:4px}
  .cve-allclear svg{color:var(--good)}

  /* offre ciblée — carte d'identité */
  .cve-offer{border:1px solid var(--border);border-radius:13px;background:var(--surface);padding:13px 14px;margin-bottom:4px}
  .cve-offer-top{display:flex;align-items:center;gap:11px}
  
  
  .cve-offer-id{flex:1;min-width:0}
  .cve-offer-id .t{font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.3}
  .cve-offer-id .c{font-size:12px;color:var(--ink-3);margin-top:1px}
  .cve-offer-edit{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:11.5px;color:var(--ink-3);background:var(--bg-2);border:1px solid var(--border-soft);border-radius:8px;padding:5px 9px;cursor:pointer}
  .cve-offer-edit:hover{color:var(--accent);border-color:var(--accent-soft-2);background:var(--accent-soft)}
  .cve-offer-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:11px;padding-top:11px;border-top:1px solid var(--border-default)}
  .cve-offer-meta span{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-2)}
  .cve-offer-meta svg{color:var(--ink-3)}
  .cve-offerref{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);margin-bottom:4px}

  /* boîte « ce que l'IA a compris » */
  .cve-ptitle.neutral svg{color:var(--ink-3)}
  .cve-aibox{font-size:12px;line-height:1.6;color:var(--ink-2);background:var(--bg-2);border:1px solid var(--border-default);border-radius:10px;padding:11px 13px}
  .cve-misslist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
  .cve-misslist li{position:relative;padding-left:18px;font-size:12px;line-height:1.5;color:var(--ink-2)}
  .cve-misslist li::before{content:"";position:absolute;left:3px;top:7px;width:5px;height:5px;border-radius:50%;background:var(--ink-4)}
  .cve-kw span.req{color:var(--ink);border-color:var(--border-strong);background:var(--surface);font-weight:600}
  .cve-kw span.req svg{color:var(--ink)}
  .cve-skilllegend{display:flex;align-items:center;gap:6px;margin-top:9px;font-size:11px;color:var(--ink-4)}
  .cve-skilllegend svg{color:var(--ink-4)}

  /* match — score + dimensions */
  .cve-matchscore{display:flex;align-items:center;gap:15px;padding:14px 16px;border:1px solid var(--border);border-radius:13px;background:var(--surface);margin-bottom:16px}
  .cve-ring{flex:0 0 auto;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--ink) calc(var(--p,0)*1%),var(--bg-2) 0)}
  .cve-ring span{width:56px;height:56px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-family:var(--font-mono);font-size:19px;font-weight:700;color:var(--ink)}
  .cve-ring span i{font-style:normal;font-size:11px;color:var(--ink-4);font-weight:500;margin-left:1px}
  .cve-matchverdict .v{font-size:14px;font-weight:700;color:var(--ink)}
  .cve-matchverdict .s{font-size:11.5px;color:var(--ink-3);line-height:1.5;margin-top:3px}
  .cve-scoresub{font-size:11.5px;color:var(--ink-3);line-height:1.55;margin:-8px 0 16px}
  .cve-why100{border:1px solid var(--border);border-radius:10px;background:var(--bg-2);padding:12px 13px;margin-top:6px}
  .cve-why100-h{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink)}
  .cve-why100-h svg{color:var(--ink-3)}
  .cve-why100 p{font-size:11.5px;color:var(--ink-2);line-height:1.55;margin-top:7px}
  .cve-why100-next{display:flex;align-items:flex-start;gap:8px;margin-top:11px;padding-top:11px;border-top:1px solid var(--border-default)}
  .cve-why100-next svg{flex:0 0 auto;color:var(--accent);margin-top:2px}
  .cve-why100-next b{display:block;font-size:11.5px;color:var(--ink)}
  .cve-why100-next span{display:block;font-size:11px;color:var(--ink-3);line-height:1.5;margin-top:2px}
  .cve-dim{margin-bottom:11px}
  .cve-dim .lab{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--ink-2);margin-bottom:5px}
  .cve-dim .lab b{font-family:var(--font-mono);color:var(--ink);font-weight:600}
  .cve-dim .lab b em{font-style:normal;color:var(--good-ink);font-size:10.5px;font-weight:600;margin-left:5px}
  .cve-dim .track{height:6px;border-radius:99px;background:var(--bg-2);overflow:hidden}
  .cve-dim .track i{display:block;height:100%;background:var(--ink);border-radius:99px}
  .cve-mrow{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.5;color:var(--ink-2);padding:7px 0}
  .cve-mrow + .cve-mrow{border-top:1px solid var(--border-default)}
  .cve-mrow svg{flex:0 0 auto;color:var(--good);margin-top:2px}
  .cve-gap{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:7px;background:var(--surface)}
  .cve-gap .g{font-size:12.5px;font-weight:600;color:var(--ink)}
  .cve-gap .fix{display:flex;align-items:flex-start;gap:6px;font-size:11.5px;color:var(--ink-3);line-height:1.5;margin-top:5px}
  .cve-gap .fix svg{flex:0 0 auto;color:var(--accent);margin-top:2px}

  /* chemin vers 100 % — étapes */
  .cve-step{border:1px solid var(--border);border-radius:10px;padding:11px 13px;margin-bottom:8px;background:var(--surface);transition:background-color .15s,border-color .15s}
  .cve-step.done{background:var(--good-soft);border-color:transparent}
  .cve-step-h{display:flex;align-items:center;gap:9px}
  .cve-step-ic{flex:0 0 auto;width:24px;height:24px;border-radius:8px;background:var(--bg-2);color:var(--ink-3);display:grid;place-items:center}
  .cve-step.done .cve-step-ic{background:var(--good);color:var(--fg-inverse)}
  .cve-step-t{flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--ink)}
  .cve-step-gain{flex:0 0 auto;font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:99px;padding:2px 8px}
  .cve-step.done .cve-step-gain{color:var(--good-ink);background:transparent;text-transform:uppercase;letter-spacing:.05em;font-size:10px}
  .cve-step-tag{display:inline-flex;align-items:center;margin-top:9px;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);background:var(--bg-2);border:1px solid var(--border-soft);border-radius:99px;padding:2px 8px}
  .cve-step-detail{font-size:11.5px;color:var(--ink-2);line-height:1.55;margin-top:8px}
  .cve-step-detail.muted{color:var(--ink-3)}
  .cve-step-foot{display:flex;gap:8px;margin-top:10px}
  .cve-step-done{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px;font-weight:600;color:var(--good-ink);margin-top:9px}
  .cve-step-done .undo{margin-left:auto;font:inherit;font-size:11.5px;font-weight:500;color:var(--ink-3);background:none;border:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
  .cve-step-done .undo:hover{color:var(--accent)}

  /* panneau « Ce qu'on a fait » */
  .cve-vwhy{display:flex;align-items:flex-start;gap:6px;font-size:11.5px;color:var(--ink-3);line-height:1.5;margin-top:8px}
  .cve-vwhy svg{flex:0 0 auto;color:var(--accent);margin-top:2px}
  .cve-usedtag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--good-ink);background:var(--good-soft);border:1px solid color-mix(in srgb,var(--good-ink) 15%,transparent);border-radius:8px;padding:6px 11px}
  .cve-drop{border:1px dashed var(--border-strong);border-radius:10px;padding:10px 12px;margin-bottom:8px;background:var(--bg)}
  .cve-drop-h{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2);font-weight:500}
  .cve-drop-h b{font-weight:600;color:var(--ink)}
  .cve-drop-h svg{color:var(--ink-4);flex:0 0 auto}
  .cve-drop-why{font-size:11px;color:var(--ink-3);line-height:1.45;margin:5px 0 9px}
  .cve-ghost.sm{padding:5px 9px;font-size:11.5px}
  .cve-ghost:disabled{opacity:.55;cursor:default}
  .cve-reform{border:1px solid var(--border);border-radius:10px;padding:11px 12px;margin-bottom:8px;background:var(--surface);position:relative}
  .cve-reform.off{opacity:.6}
  .cve-reform-k{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent)}
  .cve-reform-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;line-height:1.4;margin-top:6px;color:var(--ink-2);padding-right:54px}
  .cve-reform-line svg{color:var(--ink-4);flex:0 0 auto}
  .cve-reform-line .del{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--border-strong)}
  .cve-reform-line .ins{color:var(--good-ink);font-weight:600}
  .cve-reform-why{font-size:11px;color:var(--ink-3);line-height:1.45;margin-top:6px}
  .cve-reform-undo{position:absolute;top:11px;right:12px;font:inherit;font-size:11.5px;font-weight:500;color:var(--ink-3);background:none;border:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
  .cve-reform-undo:hover{color:var(--accent)}
  .cve-disc{display:flex;align-items:flex-start;gap:8px;font-size:11.5px;color:var(--ink-3);line-height:1.5;background:var(--bg-2);border-radius:10px;padding:10px 12px;margin:6px 0 12px}
  .cve-disc svg{flex:0 0 auto;color:var(--good);margin-top:1px}
  .cve-mlink{display:inline-flex;align-items:center;gap:6px;margin-top:9px;font:inherit;font-size:12px;font-weight:600;color:var(--accent);background:none;border:0;cursor:pointer;padding:0}
  .cve-mlink:hover{text-decoration:underline}
  .cve-mlink svg{color:var(--accent)}

  /* expériences éditables (panneau « Ce qu'on a fait ») */
  .cve-expcard{border:1px solid var(--border);border-radius:10px;padding:12px 13px;margin-bottom:9px;background:var(--surface)}
  .cve-expcard-r{font-size:13px;font-weight:700;color:var(--ink);line-height:1.3}
  .cve-expcard-o{font-size:11.5px;color:var(--ink-3);margin-top:2px}
  .cve-expbullet{font-size:11.5px;line-height:1.5;color:var(--ink-2);margin-top:9px}
  .cve-expbullet.locate{cursor:pointer;border-radius:6px;transition:background-color .15s}
  .cve-expbullet.locate:hover{background:var(--bg-2)}
  .cve-editflag{display:inline-block;margin-left:7px;font-size:9.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--warn);background:var(--warn-soft);border-radius:99px;padding:1px 7px;vertical-align:1px}
  .cve-expcard .cve-ghost.sm{margin-top:10px}
  .cve-editbox{margin-top:10px}
  .cve-ftext.sm{min-height:66px;font-size:12px;line-height:1.5}
  .cve-editfoot{display:flex;gap:8px;margin-top:8px}
  /* Récap « Ce qu'on a fait » par section (en-tête, formations, compétences, forces…) */
  .cve-recap{display:flex;flex-direction:column;gap:0}
  .cve-recap-li{display:flex;gap:12px;align-items:baseline;font-size:12px;line-height:1.5;padding:7px 0;border-top:1px solid var(--border-default)}
  .cve-recap-li:first-child{border-top:0}
  .cve-recap-li .k{flex:0 0 92px;color:var(--ink-3);font-weight:500;display:flex;align-items:center;gap:6px}
  .cve-recap-li .k svg{color:var(--ink-4)}
  .cve-recap-li .v{flex:1 1 auto;min-width:0;color:var(--ink);word-break:break-word}
  /* Dossier des versions générées (T6) */
  .cve-versions{display:flex;flex-direction:column;gap:4px}
  .cve-versions.compact{gap:6px}
  .cve-tonevers{padding-top:2px}
  .cve-verrow{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);padding:9px 11px;cursor:pointer;font:inherit;transition:border-color .15s var(--ease-out),background-color .15s var(--ease-out)}
  .cve-verrow:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-2)}
  .cve-verrow.on{border-color:var(--accent-soft-2,var(--accent-soft));background:var(--accent-soft);cursor:default}
  .cve-verrow .l{font-size:12.5px;font-weight:600;color:var(--ink);flex:0 0 auto}
  .cve-verrow .m{font-size:11.5px;color:var(--ink-3);flex:1 1 auto;min-width:0}
  .cve-verrow .a{font-size:11px;font-weight:600;color:var(--accent);display:inline-flex;align-items:center;gap:5px;flex:0 0 auto}
  /* Refonte panneau Langue 2026-07-18 : ligne de version = zone « Afficher » + bouton ⋯ options.
     Tuile agrandie (padding + relief) pour accueillir le menu et respirer. */
  .cve-verrow2{position:relative;display:flex;align-items:stretch;gap:0;width:100%;border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:visible;transition:border-color .15s var(--ease-out),background-color .15s var(--ease-out)}
  .cve-verrow2:hover{border-color:var(--border-strong)}
  .cve-verrow2.on{border-color:var(--accent-soft-2,var(--accent-soft));background:var(--accent-soft)}
  .cve-verrow2.menuopen{border-color:var(--accent);z-index:3}
  .cve-verrow-apply{display:flex;align-items:center;gap:10px;flex:1 1 auto;min-width:0;text-align:left;border:0;background:transparent;padding:11px 12px;cursor:pointer;font:inherit;border-radius:10px 0 0 10px}
  .cve-verrow-apply:hover:not(:disabled){background:var(--bg-2)}
  .cve-verrow2.on .cve-verrow-apply:hover:not(:disabled){background:transparent}
  .cve-verrow-apply:disabled{cursor:default}
  .cve-verrow-apply .l{font-size:12.5px;font-weight:600;color:var(--ink);flex:0 0 auto}
  .cve-verrow-apply .m{font-size:11.5px;color:var(--ink-3);flex:1 1 auto;min-width:0}
  .cve-verrow-apply .a{font-size:11px;font-weight:600;color:var(--accent);display:inline-flex;align-items:center;gap:5px;flex:0 0 auto}
  .cve-verrow-opt{display:flex;align-items:center;border-left:1px solid var(--border);flex:0 0 auto}
  .cve-verrow2.on .cve-verrow-opt{border-left-color:var(--accent-soft-2,var(--accent-soft))}
  .cve-verrow-optbtn{width:34px;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:transparent;color:var(--ink-3);cursor:pointer;border-radius:0 10px 10px 0}
  .cve-verrow-optbtn:hover:not(:disabled){background:var(--bg-2);color:var(--ink)}
  .cve-vermenu{position:absolute;top:calc(100% + 4px);right:0;min-width:240px;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow-lg,0 10px 30px color-mix(in srgb,var(--ink) 12%,transparent));padding:5px;z-index:6;display:flex;flex-direction:column;gap:2px}
  .cve-vermenu-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;background:transparent;padding:8px 9px;border-radius:8px;font:inherit;font-size:12.5px;color:var(--ink-2);cursor:pointer}
  .cve-vermenu-item:hover:not(:disabled){background:var(--bg-2);color:var(--ink)}
  .cve-vermenu-item svg{color:var(--ink-3);flex:0 0 auto}
  .cve-vermenu-item:hover:not(:disabled) svg{color:var(--ink-2)}
  .cve-vermenu-item.danger{color:var(--bad)}
  .cve-vermenu-item.danger svg{color:var(--bad)}
  .cve-vermenu-item.danger:hover:not(:disabled){background:color-mix(in srgb,var(--bad) 8%,var(--surface));color:var(--bad)}
  .cve-vermenu-intent,.cve-vermenu-confirm{display:flex;flex-direction:column;gap:8px;padding:8px}
  .cve-vermenu-intent label,.cve-vermenu-confirm span{font-size:12px;color:var(--ink-2);font-weight:600}
  .cve-vermenu-intent textarea{width:100%;min-height:58px;resize:vertical;border:1px solid var(--border-soft);border-radius:8px;padding:7px 9px;font:inherit;font-size:12px;color:var(--ink)}
  .cve-vermenu-intent-act{display:flex;align-items:center;justify-content:flex-end;gap:8px}
  .cve-vermenu-del{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12px;font-weight:600;color:var(--fg-inverse);background:var(--bad);border:1px solid var(--bad);border-radius:8px;padding:6px 11px;cursor:pointer}
  .cve-vermenu-del:hover{filter:brightness(.94)}
  .cve-vaultcta.sm{margin-top:0;padding:6px 11px;font-size:12px}
  /* ── Brique « bouton d'options ⋯ » PAR SECTION (chantier options par section, 2026-07-18) ── */
  .cve-secopt-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
  .cve-secopt-bar .cve-secopt-title{font-weight:600;font-size:13px;color:var(--ink)}
  .cve-secopt{position:relative;display:inline-flex;flex:0 0 auto}
  .cve-secopt-btn{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--border-soft);background:var(--surface);color:var(--ink-3);border-radius:6px;cursor:pointer;transition:background .15s var(--ease-out),color .15s var(--ease-out),border-color .15s var(--ease-out)}
  .cve-secopt-btn:hover,.cve-secopt-btn[aria-expanded="true"]{background:var(--bg-2);color:var(--ink);border-color:var(--ink-4)}
  .cve-secopt-menu{position:absolute;top:calc(100% + 5px);right:0;min-width:252px;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow-lg,0 10px 30px color-mix(in srgb,var(--ink) 12%,transparent));padding:5px;z-index:8;display:flex;flex-direction:column;gap:2px}
  .cve-secopt-menu.left{right:auto;left:0}
  /* Menu ancré en position:fixed (mesure JS, cf. SectionOptions) : échappe à l'overflow du panneau,
     recadré dans le viewport. z60 = au-dessus des cartes, sous le dock assistant (z85, qui décale le
     shell). Le conteneur fixe porte lui-même maxHeight+overflow (style inline) → on NEUTRALISE le
     scroll interne des sous-menus pour ne pas doubler la barre de défilement (architecte). */
  .cve-secopt-menu.fixed{position:fixed;top:auto;right:auto;z-index:60}
  .cve-secopt-menu.fixed .cve-secopt-checklist,
  .cve-secopt-menu.fixed .cve-secopt-reorder{max-height:none;overflow:visible}
  .cve-secopt-h{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);font-weight:700;padding:6px 9px 3px}
  .cve-secopt-div{height:1px;background:var(--border);margin:3px 4px}
  .cve-secopt-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;background:transparent;padding:8px 9px;border-radius:8px;font:inherit;font-size:12.5px;color:var(--ink-2);cursor:pointer}
  .cve-secopt-item:hover:not(:disabled){background:var(--bg-2);color:var(--ink)}
  .cve-secopt-item .l{flex:1;min-width:0}
  .cve-secopt-item svg{color:var(--ink-3);flex:0 0 auto}
  .cve-secopt-item:hover:not(:disabled) svg{color:var(--ink-2)}
  .cve-secopt-item.danger{color:var(--bad)}
  .cve-secopt-item.danger svg{color:var(--bad)}
  .cve-secopt-item.danger:hover:not(:disabled){background:color-mix(in srgb,var(--bad) 8%,var(--surface));color:var(--bad)}
  .cve-secopt-back{display:flex;align-items:center;gap:7px;width:100%;text-align:left;border:0;background:transparent;padding:7px 9px;border-radius:8px;font:inherit;font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer}
  .cve-secopt-back:hover{background:var(--bg-2);color:var(--ink)}
  .cve-secopt-back svg{color:var(--ink-3);flex:0 0 auto}
  .cve-secopt-checklist{display:flex;flex-direction:column;gap:1px;max-height:284px;overflow-y:auto;padding-top:3px;margin-top:3px;border-top:1px solid var(--border)}
  .cve-secopt-check{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;background:transparent;padding:7px 9px;border-radius:8px;font:inherit;font-size:12.5px;color:var(--ink-2);cursor:pointer}
  .cve-secopt-check:hover:not(:disabled){background:var(--bg-2);color:var(--ink)}
  .cve-secopt-check .l{flex:1;min-width:0}
  .cve-ck.sm{width:16px;height:16px;flex:0 0 auto}
  .cve-secopt-reorder{display:flex;flex-direction:column;gap:1px;max-height:288px;overflow-y:auto;padding-top:3px;margin-top:3px;border-top:1px solid var(--border)}
  .cve-secopt-rerow{display:flex;align-items:center;gap:9px;padding:5px 9px;border-radius:8px;font-size:12.5px;color:var(--ink-2)}
  .cve-secopt-rerow .l{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cve-secopt-reord-act{display:inline-flex;gap:3px;flex:0 0 auto}
  .cve-secopt-reord-act button{width:26px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--border-soft);background:var(--surface);color:var(--ink-3);border-radius:6px;cursor:pointer}
  .cve-secopt-reord-act button:hover:not(:disabled){background:var(--bg-2);color:var(--ink)}
  .cve-secopt-reord-act button:disabled{opacity:.4;cursor:default}
  .cve-secopt-custom{padding:5px 4px 2px;margin-top:3px;border-top:1px solid var(--border)}
  .cve-secopt-custom .cve-insprow{padding:5px 5px;gap:8px}
  .cve-secopt-menu:has(.cve-secopt-custom),.cve-secopt-menu:has(.cve-secopt-reorder){min-width:284px}
  /* ⋯ PAR ÉLÉMENT dans une carte d'inspecteur (niveau 2) */
  .cve-inspcard-puces{font-size:11px;color:var(--ink-3);white-space:nowrap;flex:0 0 auto}
  .cve-inspcard-h .cve-secopt{margin-left:2px}
  .cve-inspcard-h .cve-secopt-btn{width:26px;height:26px;border-radius:8px}
  .cve-inspcard{overflow:visible}
  .cve-inspcard-h .cve-secopt-menu{z-index:12}
  /* ⋯ d'un ITEM/CARTE révélé au survol (remplace tout ✎ isolé — Landry 07-18) */
  .cve-secopt.hover{flex:0 0 auto}
  .cve-secopt.hover .cve-secopt-btn{width:24px;height:24px;border:0;background:transparent;color:var(--ink-3);opacity:0;transition:opacity .12s var(--ease-out),background .12s var(--ease-out),color .12s var(--ease-out)}
  .cve-hfield:hover .cve-secopt.hover .cve-secopt-btn,
  .cve-inspcard:hover .cve-secopt.hover .cve-secopt-btn,
  .cve-flabel:hover .cve-secopt.hover .cve-secopt-btn,
  .cve-factrow:hover .cve-secopt.hover .cve-secopt-btn,
  .cve-secopt.hover.open .cve-secopt-btn,
  .cve-secopt.hover .cve-secopt-btn:focus-visible{opacity:1}
  .cve-secopt.hover .cve-secopt-btn:hover{background:var(--bg-2);color:var(--ink)}
  .cve-hfield-val--ro{cursor:default}
  /* Bouton contextuel « Générer le CV en <langue> » (langue sans version encore) */
  .cve-genlang{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:12px;font:inherit;font-size:13px;font-weight:600;color:var(--fg-inverse);background:var(--accent);border:1px solid var(--accent);border-radius:10px;padding:11px 14px;cursor:pointer;transition:filter .15s var(--ease-out)}
  .cve-genlang:hover:not(:disabled){filter:brightness(1.06)}
  .cve-genlang:disabled{opacity:.6;cursor:default}
  .cve-genlang svg{color:var(--fg-inverse)}
  .cve-genlang-has{display:flex;align-items:center;gap:7px;margin-top:12px;font-size:12px;color:var(--ink-3)}
  .cve-genlang-has svg{color:var(--good)}
  .cve-langfile{display:flex;align-items:center;gap:10px;width:100%;margin-top:12px;text-align:left;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface);padding:10px 11px;cursor:pointer;font:inherit;transition:border-color .15s var(--ease-out),background-color .15s var(--ease-out)}
  .cve-langfile:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-2)}
  .cve-langfile.on{border-color:var(--accent-soft-2,var(--accent-soft));background:var(--accent-soft);cursor:default}
  .cve-langfile .ic{width:26px;height:26px;border-radius:8px;background:var(--bg-2);color:var(--ink-3);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
  .cve-langfile .txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}
  .cve-langfile .txt b{font-size:12.5px;color:var(--ink)}
  .cve-langfile .txt em{font-style:normal;font-size:11.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cve-langfile .act{font-size:11px;font-weight:700;color:var(--accent);display:inline-flex;align-items:center;gap:5px;flex:0 0 auto}
  .cve-langnotes{margin-top:24px;padding-top:10px;border-top:1px solid var(--border)}
  .cve-langnotes .cve-disc{margin-top:6px}
  .cve-langaction{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:12px;border:1px dashed var(--border-strong);border-radius:10px;background:var(--bg-2)}
  .cve-langaction b{display:block;font-size:12.5px;color:var(--ink);margin-bottom:2px}
  .cve-langaction span{display:block;font-size:11.5px;color:var(--ink-3);line-height:1.45}
  .cve-improvebox{margin-top:10px;padding:10px 0 0;border-top:1px solid var(--border)}
  .cve-improvebox label{display:block;font-size:11.5px;font-weight:700;color:var(--ink-2);margin-bottom:6px}
  .cve-improvebox textarea{width:100%;min-height:78px;resize:vertical;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:12.5px;line-height:1.45;padding:10px 11px;outline:none}
  .cve-improvebox textarea:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .cve-improveactions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
  .cve-inlinebtn{display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:12px;font-weight:600;color:var(--ink-2);background:var(--surface);border:1px solid var(--border-soft);border-radius:8px;padding:8px 11px;cursor:pointer}
  .cve-inlinebtn:hover:not(:disabled){border-color:var(--border-hover);background:var(--bg-2)}
  .cve-inlinebtn:disabled{opacity:.55;cursor:not-allowed}

  .cve-vintro{display:flex;gap:11px;padding:12px 13px;background:var(--accent-soft);border:1px solid var(--accent-soft-2);border-radius:10px;margin-bottom:14px}
  .cve-vintro .ic{flex:0 0 auto;width:34px;height:34px;border-radius:8px;background:var(--accent);color:var(--fg-inverse);display:grid;place-items:center}
  .cve-vintro strong{font-size:13px;color:var(--ink)}
  .cve-vintro p{font-size:12px;color:var(--ink-3);line-height:1.5;margin-top:2px}
  .cve-vfilter{display:flex;align-items:center;gap:8px;margin-bottom:12px}
  .cve-vfilter .target{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-2);background:var(--surface);border:1px solid var(--border-default);border-radius:8px;padding:7px 11px}
  .cve-vfilter .target svg{color:var(--accent)}
  .cve-vfilter .target b{color:var(--ink)}
  .cve-vfilter .sort{margin-left:auto;font-size:11.5px;color:var(--ink-3)}

  .cve-vcard{border:1px solid var(--border);border-radius:10px;padding:12px 13px;margin-bottom:9px;background:var(--surface);transition:border-color .15s,box-shadow .15s}
  .cve-vcard:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}
  .cve-vcard.inserted{border-color:var(--good);background:var(--surface)}
  .cve-vcard.flash{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);transition:box-shadow .25s,border-color .25s}
  .cve-vtop{display:flex;align-items:flex-start;gap:9px}
  .cve-vchip{flex:0 0 auto;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:var(--bg-2);color:var(--ink-3)}
  .cve-vcard h4{font-size:13px;font-weight:600;line-height:1.3;flex:1}
  .cve-vmatch{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;color:var(--ink-3)}
  .cve-vmatch .bar{width:34px;height:5px;border-radius:99px;background:var(--bg-2);overflow:hidden}
  .cve-vmatch .bar i{display:block;height:100%;background:var(--accent);border-radius:99px}
  .cve-vsrc{font-size:11px;color:var(--ink-3);margin-top:6px}
  .cve-vbullet{font-size:12px;color:var(--ink-2);line-height:1.5;margin-top:8px}
  .cve-vfoot{display:flex;align-items:center;gap:8px;margin-top:10px}
  .cve-insert{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:0;border-radius:8px;background:var(--accent);color:var(--fg-inverse);font:inherit;font-size:12px;font-weight:600;cursor:pointer}
  .cve-insert:hover{background:var(--accent-600)}
  .cve-insert.done{background:var(--good-soft);color:var(--good);cursor:default}
  .cve-ghost{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);font:inherit;font-size:12px;color:var(--ink-3);cursor:pointer}
  .cve-ghost:hover{background:var(--bg-2);color:var(--ink-2)}

  .cve-fgroup{margin-bottom:18px}
  .cve-flabel{font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:7px;display:flex;align-items:center;justify-content:space-between}
  /* Label cliquable (Langues, Centres d'intérêt) avec petit crayon discret à droite —
     ouvre Mon Profil sur la bonne fiche. Pattern unique (cf. lignes du HeaderInspector). */
  .cve-flabel-edit{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;border:1px solid var(--border-soft);background:var(--surface);color:var(--ink-3);cursor:pointer;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .cve-flabel-edit:hover{color:var(--accent);border-color:var(--accent)}
  .cve-suggest{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:11.5px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-soft-2);border-radius:8px;padding:5px 9px;cursor:pointer}
  .cve-finput,.cve-ftext{width:100%;border:1px solid var(--border-default);border-radius:8px;padding:10px 12px;font:inherit;font-size:13px;color:var(--ink);background:var(--surface);outline:none}
  .cve-ftext{min-height:96px;resize:vertical;line-height:1.55}
  .cve-finput:focus,.cve-ftext:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .cve-frow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;border:1px solid var(--border);border-radius:10px;margin-bottom:8px}
  .cve-frow .fk{font-size:12.5px;color:var(--ink-3)}
  .cve-frow .fv{font-size:13px;color:var(--ink);font-weight:500}
  .cve-toggle{width:38px;height:22px;border-radius:99px;background:var(--accent);position:relative;flex:0 0 auto;border:0;cursor:pointer}
  .cve-toggle::after{content:"";position:absolute;top:2px;left:18px;width:18px;height:18px;border-radius:50%;background:var(--surface);transition:left .18s var(--ease-out)}
  .cve-toggle.off{background:var(--border-strong)}
  .cve-toggle.off::after{left:2px}
  .cve-seclist{display:flex;flex-direction:column;gap:2px}
  .cve-secitem{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:8px;color:var(--ink-2);font-size:13px;font-weight:500}
  .cve-secitem:hover{background:var(--bg-2)}
  .cve-secitem.on{background:var(--accent-soft);color:var(--accent)}
  .cve-secitem .ico{width:26px;height:26px;border-radius:8px;background:var(--bg-2);color:var(--ink-3);display:grid;place-items:center;flex:0 0 auto}
  .cve-secitem.on .ico{background:var(--accent);color:var(--fg-inverse)}
  .cve-secitem .cnt{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--ink-4)}

  /* aperçu CV */
  .cve-cv{position:relative;width:794px;max-width:100%;margin:0 auto;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-lg);padding:44px 46px;min-height:1123px}
  /* 1 page : la feuille a une hauteur fixe — le contenu est resserré (zoom) pour y tenir */
  .cve-cv:not(.two){height:1123px;overflow:hidden}
  /* 2 pages : la hauteur (= pages×1123) est posée en inline ; les feuilles sont
     rendues comme surfaces séparées, façon éditeur de document. */
  .cve-cv.two{overflow:visible;background:transparent;border-color:transparent;box-shadow:none}
  .cve-cv.two .cve-fitwrap{position:relative;z-index:2}
  .cve-page-sheet{position:absolute;left:0;right:0;height:1123px;z-index:0;pointer-events:none;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-lg)}
  .cve-pagespacer{width:100%;flex:0 0 auto}
  /* Espace de bureau entre deux feuilles : repère d'éditeur, jamais contenu du CV. */
  .cve-pagebreak{position:absolute;left:0;right:0;z-index:1;background:transparent;border:0;box-shadow:none;pointer-events:none}
  .cve-pagebreak .lbl{position:absolute;right:26px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;color:rgba(255,255,255,.70);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:3px 8px}
  .cve-pagenum{display:none}
  /* Sortie A4 canonique : mêmes blocs que le CV édité, avec une séparation
     visuelle réelle à l'écran. Le @media print masque ces repères. */
  .cve-cv.cve-output .cve-page-sheet{border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-lg)}
  .cve-cv.cve-output .cve-pagebreak{display:block}

  html.sihage-document-print-route,
  body.sihage-document-print-route{background:#5f666f;overflow:hidden;height:100%;min-height:0}
  body.sihage-document-print-route .os-shell,
  body.sihage-document-print-route .col{height:100vh;height:100dvh;min-height:0;max-height:100vh;max-height:100dvh;overflow:hidden}
  .doc-print-route{position:relative;isolation:isolate;height:100vh;height:100dvh;min-height:0;overflow:auto;overscroll-behavior:contain;background:#5f666f;color:var(--ink);font-family:var(--font-sans,system-ui,sans-serif)}
  .doc-print-toolbar{position:sticky;top:0;z-index:50;isolation:isolate;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 18px;background:var(--sidebar-bg);color:var(--sidebar-fg-strong);box-shadow:0 8px 22px color-mix(in srgb,var(--ink) 24%,transparent);transform:translateZ(0)}
  .doc-print-toolbar div{display:flex;min-width:0;flex-direction:column;gap:2px}
  .doc-print-toolbar strong{font-size:13px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .doc-print-toolbar span{font-size:11px;color:color-mix(in srgb,var(--sidebar-fg-strong) 68%,transparent)}
  .doc-print-toolbar-actions{display:flex!important;min-width:auto!important;flex-direction:row!important;align-items:center;gap:12px}
  .doc-layout-gate{position:relative;min-height:100%}
  .doc-layout-gate-content{position:relative;z-index:1}
  .doc-layout-gate-content[data-obscured="true"]{filter:blur(10px);transform:translateZ(0);user-select:none;pointer-events:none}
  .doc-layout-gate-placeholder{position:absolute;z-index:2;inset:0;min-height:100%;background:var(--bg-2)}
  .doc-layout-gate-placeholder.is-obscuring{display:grid;place-items:center;background:rgba(31,35,42,.62);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
  .cve-save-state{position:absolute;z-index:3;right:12px;top:12px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm,6px);background:var(--surface);color:var(--ink-3);font:11px/1.2 var(--font-mono)}
  .cve-save-state.is-error{color:var(--danger-500);border-color:color-mix(in srgb,var(--danger-500) 28%,var(--border))}
  .doc-print-toolbar .btn{height:34px;border-radius:8px;background:var(--surface);color:var(--sidebar-bg);border-color:var(--sidebar-fg-strong);box-shadow:0 1px 0 color-mix(in srgb,var(--sidebar-fg-strong) 18%,transparent) inset,0 8px 18px color-mix(in srgb,var(--ink) 18%,transparent)}
  .doc-print-toolbar .btn:not(.icon-only){min-width:92px;padding:0 15px;font-size:12.5px;font-weight:650}
  .doc-print-toolbar .btn:hover{background:var(--surface-2);border-color:var(--surface-2)}
  .doc-print-toolbar .btn.ghost{width:34px;padding:0;margin-left:10px;background:color-mix(in srgb,var(--sidebar-fg-strong) 10%,transparent);color:var(--sidebar-fg-strong);border-color:color-mix(in srgb,var(--sidebar-fg-strong) 18%,transparent);box-shadow:none}
  .doc-print-toolbar .btn.ghost:hover{background:color-mix(in srgb,var(--sidebar-fg-strong) 16%,transparent);border-color:color-mix(in srgb,var(--sidebar-fg-strong) 24%,transparent);color:var(--sidebar-fg-strong)}
  .doc-print-stage{position:relative;z-index:0;width:794px;margin:18px auto 28px;background:transparent}
  .doc-print-stage .cve-output-surface>.cve-cvwrap,
  .doc-print-stage .cve-output-surface>.cve-cvscale{width:794px;overflow:visible}
  .doc-print-stage .cve-cv{margin:0;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-lg)}
  .doc-print-stage .cve-cv.cve-output{background:#fff}
  /* CV PAGINÉ (.two, feuilles .cve-page-sheet) : la « feuille unique » n'existe plus — le blanc,
     le bord et l'ombre appartiennent aux feuilles ; le fond du canvas doit rester visible dans
     l'écart entre les pages (même rendu que l'éditeur et la modale B). Sans ceci, les règles
     ci-dessus (héritées du snapshot non paginé) recouvraient l'écart d'un fond blanc continu. */
  .doc-print-stage .cve-cv.two,
  .doc-html-preview-stage .cve-cv.two{background:transparent;border:0;border-radius:0;box-shadow:none}
  .doc-print-stage .lte-letter,
  .doc-print-stage .lte-emailwrap,
  .doc-print-stage .lte-msgwrap{margin:0 auto;border:0;border-radius:0;box-shadow:none;background:#fff}
  .doc-print-stage--letter .cve-editwrap{width:794px;margin:0 auto;background:transparent}
  .doc-print-stage--letter .lte-letter{width:794px;max-width:none;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-lg);-webkit-box-decoration-break:clone;box-decoration-break:clone}

  @media print{
    @page{size:A4;margin:0}
    html.sihage-document-print-route,
    html.sihage-document-print-route body{background:#fff !important;margin:0 !important;width:794px !important;min-height:0 !important;height:auto !important;overflow:visible !important}
    body.sihage-document-print-route *{visibility:hidden !important}
    body.sihage-document-print-route .doc-print-route,
    body.sihage-document-print-route .doc-print-route *{visibility:visible !important}
    body.sihage-document-print-route .doc-print-toolbar{display:none !important}
    body.sihage-document-print-route,
    body.sihage-document-print-route #__next,
    body.sihage-document-print-route .os-shell,
    body.sihage-document-print-route .col,
    body.sihage-document-print-route main,
    body.sihage-document-print-route .doc-print-route{width:794px !important;height:auto !important;min-height:0 !important;max-height:none !important;overflow:visible !important}
    body.sihage-document-print-route .os-shell,
    body.sihage-document-print-route .col{display:block !important}
    body.sihage-document-print-route .doc-print-route{position:absolute !important;left:0 !important;top:0 !important;right:auto !important;bottom:auto !important;display:block !important;background:#fff !important}
    body.sihage-document-print-route .doc-print-stage{width:794px !important;margin:0 !important;background:#fff !important}
    body.sihage-document-print-route .doc-print-stage .cve-cvwrap,
    body.sihage-document-print-route .doc-print-stage .cve-cvscale{height:auto !important;overflow:visible !important}
    body.sihage-document-print-route .doc-print-stage,
    body.sihage-document-print-route .doc-print-stage *{-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important}
    body.sihage-document-print-route .cve-cv{width:794px !important;max-width:none !important;height:auto !important;min-height:0 !important;margin:0 !important;border:0 !important;border-radius:0 !important;box-shadow:none !important;background:#fff !important;overflow:visible !important}
    body.sihage-document-print-route .doc-print-stage .lte-letter,
    body.sihage-document-print-route .doc-print-stage .lte-emailwrap,
    body.sihage-document-print-route .doc-print-stage .lte-msgwrap{margin:0 !important;border:0 !important;border-radius:0 !important;box-shadow:none !important;background:#fff !important}
    body.sihage-document-print-route .doc-print-stage .lte-letter{width:794px !important;max-width:none !important;min-height:1123px !important}
    body.sihage-document-print-route .cve-cv.two .cve-fitwrap{page-break-inside:auto !important;break-inside:auto !important}
    /* Le vrai saut de page (.cve-pagespacer → break-after:page) est IGNORÉ à l'intérieur d'un
       conteneur CSS grid. Le corps du CV (.cve-cols) est un grid → sans ceci, un CV de 2 pages
       s'imprime tassé sur 1 page (le saut n'agit pas) : l'impression ne suit plus l'éditeur.
       On le repasse en flux bloc à l'impression (colonne unique 1fr → aucun changement visuel,
       seul le découpage en pages redevient effectif). Solution d'origine (commit f4c40af7)
       perdue lors du passage à la route print dédiée ; on la restaure ici. */
    body.sihage-document-print-route .cve-cols{display:block !important}
    body.sihage-document-print-route .cve-page-sheet,
    body.sihage-document-print-route .cve-pagebreak,
    body.sihage-document-print-route .cve-pagenum{display:none !important}
    body.sihage-document-print-route .cve-pagespacer{display:block !important;height:0 !important;break-after:page !important;page-break-after:always !important}
    body.sihage-document-print-route .cve-pagespacer + .cve-contsec,
    body.sihage-document-print-route .cve-pagespacer + .cve-cvsec,
    body.sihage-document-print-route .cve-pagespacer + .cve-unit{padding-top:44px !important}
  }
  /* ── Bouton Éditer + édition directe du document ── */
  .cve-editwrap{position:relative}
  /* Version manuelle (HTML figé) : les anciens wrappers externes ne doivent pas
     imposer leur transform. Le calage intrinsèque de `.cve-fitwrap` appartient en
     revanche à la révision officielle et reste identique dans l'éditeur, la modale B
     et l'impression. La feuille peut grandir avant sa pagination stable. */
  .cve-manual .cve-cvwrap{height:auto !important;overflow:visible !important}
  .cve-manual .cve-cvscale{transform:none !important}
  .cve-manual .cve-cv{height:auto !important;min-height:1123px;overflow:visible !important;
  background-image:repeating-linear-gradient(to bottom, transparent 0, transparent 1122px, var(--border) 1122px, var(--border) 1123px) !important}
  /* Version manuelle paginée (2 pages) : on retire le repère gradient au profit des vraies coupures */
  .cve-manual .cve-cv.two{background:transparent !important;background-image:none !important;border-color:transparent !important;box-shadow:none !important;overflow:visible !important}
  /* Réglages de mise en page (panneau Sections) */
  .cve-layblock{display:flex;flex-direction:column;gap:11px;padding:12px 13px;background:var(--bg-2);border:1px solid var(--border);border-radius:10px;margin-bottom:14px}
  .cve-layrow{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .cve-laylbl{font-size:12.5px;color:var(--ink-2);font-weight:500}
  .cve-stepper{display:inline-flex;align-items:center;gap:2px;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;padding:2px}
  .cve-stepper button{width:26px;height:24px;border:0;background:transparent;border-radius:6px;display:grid;place-items:center;color:var(--ink-2);cursor:pointer}
  .cve-stepper button:hover:not(:disabled){background:var(--bg-2);color:var(--ink)}
  .cve-stepper button:disabled{opacity:.35;cursor:not-allowed}
  .cve-stepper span{min-width:78px;text-align:center;font-size:12px;font-weight:600;color:var(--ink)}
  /* Contrôle Taille du texte : chip « Ajuster » + stepper en % (graduel comme le zoom) */
  .cve-sizectl{display:inline-flex;align-items:center;gap:7px}
  .cve-sizectl .cve-stepper span{min-width:52px}
  .cve-fschip{border:1px solid var(--border-soft);background:var(--surface);font:inherit;font-size:11.5px;font-weight:600;color:var(--ink-3);padding:5px 11px;border-radius:8px;cursor:pointer}
  .cve-fschip:hover{color:var(--ink);background:var(--bg-2)}
  .cve-fschip.on{background:var(--accent-soft);border-color:var(--accent-soft-2,var(--accent-soft));color:var(--accent)}
  .cve-swatches{display:inline-flex;gap:7px}
  .cve-swatch{width:22px;height:22px;border-radius:50%;border:2px solid var(--surface);background:var(--sw);cursor:pointer;box-shadow:0 0 0 1px var(--border-strong);padding:0;transition:box-shadow .15s var(--ease-out)}
  .cve-swatch:hover{box-shadow:0 0 0 1px var(--ink-4)}
  .cve-swatch.on{box-shadow:0 0 0 2px var(--sw)}
  /* Interligne du CV (data-lh sur .cve-cv) */
  .cve-cv[data-lh="serre"] .cve-accroche{line-height:1.4}
  .cve-cv[data-lh="serre"] .cve-exp li{line-height:1.32}
  .cve-cv[data-lh="serre"] .cve-contact{line-height:1.45}
  .cve-cv[data-lh="aere"] .cve-accroche{line-height:1.95}
  .cve-cv[data-lh="aere"] .cve-exp li{line-height:1.78}
  .cve-cv[data-lh="aere"] .cve-contact{line-height:1.9}
  /* Interligne appliqué aussi à la version manuelle (via le conteneur live) */
  .lte-zoomwrap[data-cvlh="serre"] .cve-accroche{line-height:1.4}
  .lte-zoomwrap[data-cvlh="serre"] .cve-exp li{line-height:1.32}
  .lte-zoomwrap[data-cvlh="aere"] .cve-accroche{line-height:1.95}
  .lte-zoomwrap[data-cvlh="aere"] .cve-exp li{line-height:1.78}
  /* Espacement des blocs du CV (data-sp sur .cve-cv ; data-cvsp sur le conteneur pour la version manuelle) */
  .cve-cv[data-sp="serre"] .cve-accroche,.lte-zoomwrap[data-cvsp="serre"] .cve-accroche{margin:10px 0 6px}
  .cve-cv[data-sp="serre"] .cve-cvsec,.lte-zoomwrap[data-cvsp="serre"] .cve-cvsec{margin:13px 0 7px}
  .cve-cv[data-sp="serre"] .cve-exp,.lte-zoomwrap[data-cvsp="serre"] .cve-exp{margin-bottom:9px}
  .cve-cv[data-sp="serre"] .cve-edu,.lte-zoomwrap[data-cvsp="serre"] .cve-edu{margin-bottom:7px}
  .cve-cv[data-sp="serre"] .cve-cols,.lte-zoomwrap[data-cvsp="serre"] .cve-cols{margin-top:12px}
  .cve-cv[data-sp="serre"] .cve-foot3,.lte-zoomwrap[data-cvsp="serre"] .cve-foot3{margin-top:12px}
  .cve-cv[data-sp="aere"] .cve-accroche,.lte-zoomwrap[data-cvsp="aere"] .cve-accroche{margin:22px 0 13px}
  .cve-cv[data-sp="aere"] .cve-cvsec,.lte-zoomwrap[data-cvsp="aere"] .cve-cvsec{margin:30px 0 16px}
  .cve-cv[data-sp="aere"] .cve-exp,.lte-zoomwrap[data-cvsp="aere"] .cve-exp{margin-bottom:24px}
  .cve-cv[data-sp="aere"] .cve-edu,.lte-zoomwrap[data-cvsp="aere"] .cve-edu{margin-bottom:18px}
  .cve-cv[data-sp="aere"] .cve-cols,.lte-zoomwrap[data-cvsp="aere"] .cve-cols{margin-top:26px}
  .cve-cv[data-sp="aere"] .cve-foot3,.lte-zoomwrap[data-cvsp="aere"] .cve-foot3{margin-top:26px}
  /* Aides du panneau Mise en page */
  .cve-laytip{display:flex;align-items:flex-start;gap:7px;font-size:11.5px;line-height:1.45;color:var(--ink-3);margin:9px 2px 0;text-wrap:pretty}
  .cve-laytip svg{flex:0 0 auto;margin-top:2px;color:var(--ink-4)}
  /* Lettre — taille du texte & interligne (var --lt-fs / --lt-lh). Consommees depuis le wrapper
     editeur (.lte-zoomwrap/.lte-pdf-doc) ET depuis la RACINE du document
     (.lte-letter/.lte-msgwrap/.lte-emailwrap) ou lmVars est desormais bake. Le snapshot est ainsi
     AUTO-SUFFISANT : la route print et la modale B rendent la meme mise en page que l'editeur,
     sans dependre du wrapper (parite CV, dont data-lh vit sur la racine du document). */
  .lte-zoomwrap .lte-p,.lte-pdf-doc .lte-p,.lte-letter .lte-p{font-size:calc(13px * var(--lt-fs,1));line-height:var(--lt-lh,1.7)}
  .lte-zoomwrap .lte-lmeta,.lte-pdf-doc .lte-lmeta,.lte-letter .lte-lmeta,.lte-zoomwrap .lte-lobj,.lte-pdf-doc .lte-lobj,.lte-letter .lte-lobj,.lte-zoomwrap .lte-lref,.lte-pdf-doc .lte-lref,.lte-letter .lte-lref{font-size:calc(13px * var(--lt-fs,1))}
  .lte-zoomwrap .lte-letter .lte-sign,.lte-pdf-doc .lte-letter .lte-sign,.lte-letter .lte-sign{font-size:calc(13px * var(--lt-fs,1))}
  .lte-zoomwrap .lte-from .n,.lte-pdf-doc .lte-from .n,.lte-letter .lte-from .n{font-size:calc(15px * var(--lt-fs,1))}
  .lte-zoomwrap .lte-from .l,.lte-pdf-doc .lte-from .l,.lte-letter .lte-from .l{font-size:calc(13px * var(--lt-fs,1))}
  .lte-zoomwrap .lte-to,.lte-pdf-doc .lte-to,.lte-letter .lte-to{font-size:calc(13px * var(--lt-fs,1))}
  .lte-zoomwrap .lte-to .org,.lte-pdf-doc .lte-to .org,.lte-letter .lte-to .org{font-size:calc(15px * var(--lt-fs,1))}
  .lte-zoomwrap .lte-msg-box,.lte-zoomwrap .lte-email-body,.lte-pdf-doc .lte-msg-box,.lte-pdf-doc .lte-email-body,.lte-msgwrap .lte-msg-box,.lte-emailwrap .lte-email-body{font-size:calc(13px * var(--lt-fs,1))}
  /* (Ancienne UI de bascule « version assistant ⇄ votre version » retirée : un seul
     document désormais. Seul  .cve-editdoc.editing{cursor:text;outline:none}
  .cve-editdoc.editing .cve-cv,.cve-editdoc.editing .lte-letter,.cve-editdoc.editing .lte-msg,.cve-editdoc.editing .lte-email{outline:2px dashed var(--accent);outline-offset:6px}
  /* ── Panneau Sections : date de naissance + accordéon des sections ── */
  .cve-fdate{border:1px solid var(--border-strong);border-radius:8px;padding:6px 10px;font:inherit;font-size:12.5px;color:var(--ink);background:var(--surface);margin-top:5px;outline:none}
  .cve-fdate:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .cve-letter-date-pop{width:100%;min-width:0}
  .cve-date-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;cursor:pointer}
  .cve-date-trigger > span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cve-date-trigger.on{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .cve-frow .fv.sub{font-size:11px;color:var(--ink-4);margin-top:5px;text-wrap:pretty}
  .cve-secblock{border:1px solid var(--border);border-radius:8px;margin-bottom:6px;overflow:hidden;background:var(--surface)}
  .cve-secblock>.cve-secitem{cursor:pointer;border-radius:0;margin:0;width:100%}
  .cve-secitem.dim{opacity:.55}
  .cve-secitem .chev{display:inline-flex;color:var(--ink-4);margin-left:2px}
  .cve-toggle.sm{transform:scale(.85);flex-shrink:0}
  .cve-secbody{border-top:1px solid var(--border);padding:8px 10px;display:flex;flex-direction:column;gap:2px;background:var(--bg-2)}
  .cve-secrow{display:flex;align-items:flex-start;gap:8px;padding:6px;border-radius:8px}
  .cve-secrow:hover{background:var(--surface)}
  .cve-secrow.off .b{opacity:.45;text-decoration:line-through;text-decoration-color:var(--ink-5)}
  .cve-secrow .b{flex:1 1 auto;min-width:0;cursor:default}
  .cve-secrow .b[title]{cursor:text}
  .cve-secrow .m{font-size:12.5px;font-weight:500;color:var(--ink);line-height:17px;text-wrap:pretty}
  .cve-secrow .s{font-size:11px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cve-secrow .acts{display:flex;align-items:center;gap:4px;flex-shrink:0;margin-top:1px}
  .cve-secrow .acts button:not(.cve-toggle){border:0;background:transparent;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;color:var(--ink-4);cursor:pointer;opacity:0;transition:opacity .18s var(--ease-out)}
  .cve-secrow:hover .acts button:not(.cve-toggle){opacity:1}
  .cve-secrow .acts button:not(.cve-toggle):hover{background:var(--bg-2);color:var(--ink)}
  .cve-secrow .cve-finput.sm{font-size:12.5px;padding:5px 9px;flex:1 1 auto;min-width:0}
  .cve-secnote{margin:4px 2px 2px;font-size:11px;color:var(--ink-4);text-wrap:pretty}
  
  
  .cve-profile-pop{box-shadow:var(--shadow-lg)}
  .cve-profile-pop>.cve-profile-list{flex:1;min-height:0;overflow:auto;padding:18px 24px 0;gap:16px}
  .cve-profile-body{flex:1;min-height:0;display:grid;grid-template-columns:280px 1fr;overflow:hidden;background:var(--surface)}
  
  
  
  
  
  
  
  
  .cve-profile-list{min-width:0;overflow:auto;padding:22px 24px;display:flex;flex-direction:column;gap:14px}
  .cve-profile-listhead{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--border);padding-bottom:14px}
  .cve-profile-listhead span{display:block;font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4)}
  .cve-profile-listhead h4{margin:2px 0 0;font-size:18px;line-height:1.2;color:var(--ink)}
  .cve-profile-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
  .cve-profile-item{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--border-soft);border-radius:10px;background:var(--bg);padding:11px 12px;min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
  .cve-profile-item:hover{border-color:var(--border-strong);background:var(--surface);box-shadow:var(--shadow-xs)}
  .cve-profile-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  .cve-profile-item>div{flex:1;min-width:0}
  .cve-profile-item b{display:block;font-size:13px;font-weight:650;color:var(--ink);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cve-profile-item p{margin:3px 0 0;font-size:11.5px;line-height:1.45;color:var(--ink-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .cve-profile-go{flex:0 0 auto;margin-top:2px;color:var(--ink-4)}
  .cve-profile-back{align-self:flex-start;border:1px solid var(--border-soft);border-radius:8px;background:var(--bg-2);color:var(--ink-2);font:inherit;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:7px;padding:7px 10px;cursor:pointer}
  .cve-profile-back:hover{background:var(--surface);border-color:var(--border-strong);color:var(--ink)}
  .cve-profile-detail{display:flex;flex-direction:column;gap:14px;min-height:100%;height:100%;flex:1}
  .cve-profile-detail-head{display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid var(--border);padding-bottom:14px}
  .cve-profile-detail-head>div{min-width:0}
  .cve-profile-detail-head span:not(.vpf-ic){display:block;font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4)}
  .cve-profile-detail-head h4{margin:2px 0 0;font-size:20px;line-height:1.15;color:var(--ink)}
  .cve-profile-detail-head p{margin:5px 0 0;font-size:12.5px;line-height:1.45;color:var(--ink-3)}
  .cve-profile-intro{margin:0;font-size:13px;line-height:1.6;color:var(--ink-2);max-width:760px;text-wrap:pretty}
  .cve-profile-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .cve-profile-field{border:1px solid var(--border);border-radius:10px;background:var(--bg);padding:12px;min-width:0}
  .cve-profile-field.is-readonly{background:var(--surface);border-color:var(--border)}
  .cve-profile-field>span{display:block;font-size:11px;font-weight:650;color:var(--ink-3);margin-bottom:6px}
  .cve-profile-field strong{display:block;font-size:14px;line-height:1.35;color:var(--ink);font-weight:650}
  .cve-profile-field p{margin:0;font-size:12px;line-height:1.55;color:var(--ink-3);text-wrap:pretty}
  .cve-profile-source{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:35px}
  .cve-profile-source i{font-style:normal;font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-4);background:var(--bg-2);border:1px solid var(--border);border-radius:6px;padding:2px 7px;white-space:nowrap}
  .cve-profile-combo{position:relative}
  .cve-profile-pick{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;cursor:pointer}
  .cve-profile-pick span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
  .cve-profile-menu{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:80;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);overflow:hidden}
  .cve-profile-menu-search{width:100%;height:36px;border:0;border-bottom:1px solid var(--border);background:var(--surface);color:var(--ink);font:inherit;font-size:13px;outline:none;padding:0 11px}
  .cve-profile-menu-list{max-height:212px;overflow:auto;padding:4px}
  .cve-profile-menu-list button,.cve-profile-menu-list span{display:flex;width:100%;min-height:32px;align-items:center;border:0;background:transparent;border-radius:8px;color:var(--ink-2);font:inherit;font-size:12.5px;text-align:left;padding:7px 8px}
  .cve-profile-menu-list button{cursor:pointer}
  .cve-profile-menu-list button:hover{background:var(--bg-2);color:var(--ink)}
  .cve-profile-menu-list button.on{background:var(--accent-soft);color:var(--accent-ink)}
  .cve-profile-menu-list span{color:var(--ink-4);cursor:default}
  .cve-profile-chiprow{display:flex;flex-wrap:wrap;gap:6px}
  .cve-profile-chip{display:inline-flex;align-items:center;border:1px solid var(--border-soft);border-radius:999px;background:var(--bg-2);color:var(--ink-2);font:inherit;font-size:11.5px;font-weight:600;line-height:1;padding:6px 9px;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .cve-profile-chip:not(button){cursor:default}
  button.cve-profile-chip:hover{background:var(--surface);border-color:var(--border-hover)}
  .cve-profile-chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
  .cve-profile-input,.cve-profile-area{width:100%;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;line-height:1.4;padding:9px 10px;outline:none}
  .cve-profile-input:focus,.cve-profile-area:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .cve-profile-area{resize:vertical;min-height:76px}
  .cve-profile-detail-actions{margin:auto -24px 0;padding:11px 24px;min-height:58px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--border);background:var(--surface-2)}
  .cve-profile-detail-actions-left{min-width:0;flex:1;display:flex;align-items:center;gap:8px}
  .cve-profile-detail-actions-main{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:8px}
  
  
  
  @media (max-width:900px){
    .cve-profile-body{grid-template-columns:1fr}
    
    .cve-profile-detail-grid{grid-template-columns:1fr}
    .cve-profile-detail-actions{justify-content:flex-start;flex-wrap:wrap}
    .cve-profile-detail-actions-left,.cve-profile-detail-actions-main{flex:1 1 100%;justify-content:flex-start;flex-wrap:wrap}
  }
  .cve-cvhead{display:flex;justify-content:space-between;gap:24px;border-bottom:2px solid var(--ink);padding-bottom:16px}
  .cve-cvhead.three{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start;border-bottom:0;padding-bottom:0}
  .cve-hcol{display:flex;flex-direction:column;gap:6px}
  .cve-hcol.name{gap:3px;min-width:0}
  .cve-hcol .row{display:flex;align-items:flex-start;gap:8px;min-width:0;font-size:11.5px;color:var(--ink-2);white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.35}
  .cve-hcol .row[draggable="true"]{cursor:grab}
  .cve-hcol .row[draggable="true"]:active{cursor:grabbing}
  .cve-hcol .row.dragging{opacity:.72;outline:1.5px solid var(--accent);outline-offset:3px;border-radius:6px;background:var(--accent-soft)}
  .cve-hcol .row.target{outline:1.5px solid var(--accent);outline-offset:3px;border-radius:6px;background:var(--accent-soft)}
  .cve-hcol .row svg{color:var(--ink-3);flex:0 0 auto}
  .cve-name{font-family:var(--doc-title-font,var(--doc-font,inherit));font-size:26px;font-weight:700;letter-spacing:-.01em;color:var(--doc-heading,var(--ink));min-width:0;overflow-wrap:break-word;word-break:break-word;hyphens:auto}
  .cve-cvrole{font-size:15px;font-weight:600;color:var(--doc-role-accent,var(--accent));margin-top:3px;min-width:0;overflow-wrap:break-word}
  .cve-contact{font-size:11.5px;color:var(--ink-2);line-height:1.7;text-align:right;flex:0 0 auto;min-width:200px}
  .cve-contact .row{display:flex;align-items:center;gap:7px;justify-content:flex-end;white-space:nowrap}
  .cve-contact svg{color:var(--ink-3)}
  .cve-accroche{font-size:12px;line-height:1.65;color:var(--ink-2);margin:16px 0 8px}
  .cve-cvsec{font-family:var(--doc-title-font,var(--doc-font,inherit));font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--doc-heading,var(--ink));margin:22px 0 12px;display:flex;align-items:center;gap:10px}
  .cve-cvsec::after{content:"";flex:1;height:0;border-top:1px solid var(--doc-rule,var(--border-default));background:transparent}
  .cve-contsec{margin:0 0 12px}
  /* Frise — colonne ultra-fine 60px à gauche, dates EMPILÉES en très petit
     (sur deux lignes via le <br> du JSX) et durée en GRAS dessous, le tout aligné
     à GAUCHE de la colonne (lecture occidentale). Barre verticale fine séparant la
     colonne du contenu. Mois abrégés à 3 lettres (jan., fév., sep., …), `auj.`
     pour « aujourd'hui ». */
  .cve-exp,.cve-edu{display:grid;grid-template-columns:72px 1fr;gap:14px;margin-bottom:14px;border-radius:8px;transition:background-color .3s var(--ease-out,ease),box-shadow .3s var(--ease-out,ease)}
  .cve-exp .when,.cve-edu .when{
    font-family:var(--doc-font,inherit);font-size:9px;color:var(--ink-3);
    line-height:1.35;letter-spacing:-.01em;
    padding-top:2px;padding-right:10px;text-align:left;
    border-right:1px solid var(--doc-rule,var(--border-default));align-self:stretch;
  }
  /* Dans le format empilé, la flèche « → » n'a plus de sens (le saut de ligne
     fait la séparation visuelle entre début et fin). */
  .cve-exp .when .datesep,.cve-edu .when .datesep{display:none}
  .cve-exp .when .dur,.cve-edu .when .dur{
    display:block;margin-top:4px;font-family:var(--doc-font,inherit);
    font-size:10px;font-weight:700;color:var(--ink);letter-spacing:0;
    white-space:nowrap;
  }

  /* === Thème « inline » (v4c) : pas de colonne dates à gauche, la date est intégrée
     dans la ligne meta (org · lieu · dates) sous le rôle, la durée affichée à droite
     sur la même ligne. Pilotable via `layout.theme = "inline"` (défaut). =========== */
  .cve-exp.cve-exp--inline,
  .cve-edu.cve-edu--inline{display:block;grid-template-columns:none;gap:0}
  /* La durée n'est plus poussée à droite (flex:1 sur meta-line) — elle suit la
     meta-line, alignée à gauche avec un petit gap. Lecture continue gauche→droite,
     pas d'espace mort entre l'org et la durée. */
  .cve-exp--inline .meta-row,
  .cve-edu--inline .meta-row{display:flex;align-items:baseline;gap:12px;justify-content:flex-start;margin-top:2px}
  .cve-exp--inline .meta-line,
  .cve-edu--inline .meta-line{flex:0 1 auto;min-width:0;font-size:11.5px;line-height:1.45;color:var(--ink-3)}
  .cve-exp--inline .meta-line .dates,
  .cve-edu--inline .meta-line .dates{font-family:var(--doc-font,inherit);font-size:10.5px;color:var(--ink-2)}
  .cve-exp--inline .meta-line .dates .datesep,
  .cve-edu--inline .meta-line .dates .datesep{color:var(--ink-4,#9aa0aa)}
  .cve-exp--inline .meta-line .sep,
  .cve-edu--inline .meta-line .sep{color:var(--ink-4,#9aa0aa);margin:0 2px}
  .cve-exp--inline .meta-line .org{color:var(--ink);font-weight:600}
  .cve-exp--inline .meta-line .loc{color:var(--ink-3)}
  .cve-edu--inline .meta-line .d-org{color:var(--ink-3);font-weight:400}
  .cve-exp--inline .meta-row .dur,
  .cve-edu--inline .meta-row .dur{
    flex:0 0 auto;font-family:var(--doc-font,inherit);font-size:10px;
    font-style:italic;color:var(--ink-4,#9aa0aa);
  }
  .cve-exp--inline ul{margin-top:5px}
  .cve-edu--inline{margin-bottom:7px}
  .cve-exp.focus{background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent),0 0 0 8px var(--accent-soft)}
  .cve-addmark{color:var(--accent-600);font-weight:600}
  .cve-as-skill.add{background:var(--accent-soft);border-radius:8px;padding:6px 9px;margin:-2px -9px}
  .cve-as-skill.add b{color:var(--accent-700)}
  .cve-exp .role{font-size:13px;font-weight:600;color:var(--doc-role-accent,var(--accent))}
  .cve-exp .org{font-size:12.5px;color:var(--ink);font-weight:600;margin-top:1px}
  .cve-exp .org span{font-weight:400;color:var(--ink-3)}
  .cve-exp ul{list-style:none;margin:7px 0 0;padding:0;display:flex;flex-direction:column;gap:5px}
  .cve-exp li{font-size:11.5px;line-height:1.5;color:var(--ink-2);padding-left:0;position:relative}
  .cve-exp li::before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:currentColor;margin-right:8px;vertical-align:2px}
  .cve-cvph{border:1.5px dashed var(--border-strong);border-radius:8px;padding:14px;text-align:center;color:var(--ink-4);font-size:12px;display:flex;align-items:center;justify-content:center;gap:8px}
  .cve-skills{display:flex;flex-wrap:wrap;gap:6px}
  .cve-skill{font-size:11px;color:var(--ink-2);background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:4px 9px}

  /* Modèle deux colonnes (d'après le CV fourni) */
  .cve-cols{display:grid;grid-template-columns:1fr;gap:0;margin-top:18px}
  .cve-main2{min-width:0}
  .cve-edu .d-role{font-size:12.5px;font-weight:600;color:var(--doc-heading,var(--ink))}
  .cve-edu .d-cur{font-size:9.5px;font-weight:600;color:var(--warn);background:var(--warn-soft);border-radius:99px;padding:1px 7px;margin-left:6px;text-transform:uppercase;letter-spacing:.03em}
  /* À l'impression / dans l'aperçu PDF : « en cours » redevient un texte normal entre parenthèses */
  .lte-pdf .cve-edu .d-cur{background:none;border-radius:0;padding:0;margin-left:5px;font-size:12px;font-weight:400;color:var(--ink-2);text-transform:none;letter-spacing:0}
  .lte-pdf .cve-edu .d-cur::before{content:"("}
  .lte-pdf .cve-edu .d-cur::after{content:")"}
  .cve-edu .d-org{font-size:11.5px;color:var(--ink-3);margin-top:1px}
  .cve-aside{background:var(--bg-2);border-radius:8px;padding:16px 16px 18px;align-self:start}
  .cve-as-contact{display:flex;flex-direction:column;gap:5px;padding-bottom:14px;border-bottom:1px solid var(--border);margin-bottom:14px}
  .cve-as-contact.head{padding-bottom:0;border-bottom:0;margin-bottom:0;align-items:flex-end;text-align:right;flex:0 0 auto}
  .cve-as-contact.head .row{justify-content:flex-end;white-space:nowrap}
  .cve-as-contact .row{display:flex;align-items:center;gap:7px;font-size:11px;line-height:1.4;color:var(--ink-2)}
  .cve-as-contact svg{color:var(--ink-3);flex:0 0 auto}
  .cve-as-title{font-family:var(--doc-title-font,var(--doc-font,inherit));font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--doc-heading,var(--accent));margin:16px 0 9px}
  .cve-as-title:first-of-type{margin-top:0}
  .cve-as-skill{margin-bottom:9px}
  .cve-as-skill b{display:block;font-size:11.5px;font-weight:600;color:var(--ink)}
  .cve-as-skill span{display:block;font-size:10.5px;line-height:1.45;color:var(--ink-3);margin-top:1px}
  .cve-as-skill span.tools{color:var(--ink-2)}
  
  
  .cve-as-lang{font-size:11px;color:var(--ink-3);margin-bottom:5px}
  .cve-as-lang b{color:var(--ink);font-weight:600}
  .cve-as-int{font-size:10.5px;line-height:1.5;color:var(--ink-3)}
  @media (max-width:560px){.cve-cols{grid-template-columns:1fr}}
  .cve-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px 22px}
  .cve-info-grid>.cve-pagespacer,.cve-info-grid>.cve-contsec,
  .cve-toolgrid>.cve-pagespacer,.cve-toolgrid>.cve-contsec{grid-column:1/-1}
  /* Compétences sur 3 colonnes (data-skillcols) — pour condenser et tenir sur une page */
  .cve-cv[data-skillcols="3"] .cve-info-grid,.lte-zoomwrap[data-cvskillcols="3"] .cve-info-grid{grid-template-columns:1fr 1fr 1fr;gap:6px 16px}
  .cve-cv[data-skillcols="3"] .cve-as-skill span,.lte-zoomwrap[data-cvskillcols="3"] .cve-as-skill span{font-size:10px;line-height:1.35}
  .cve-toolgrid{display:grid;grid-template-columns:1fr 1fr;gap:7px 22px;margin-bottom:12px}
  .cve-toolgrp{margin-bottom:6px}
  .cve-toolgrp b{display:block;font-size:11.5px;font-weight:600;color:var(--ink)}
  .cve-toolgrp span{display:inline;font-size:10.5px;line-height:1.45;color:var(--ink-2);margin-top:1px}
  .cve-cv[data-skillcols="3"] .cve-toolgrid,.lte-zoomwrap[data-cvskillcols="3"] .cve-toolgrid{grid-template-columns:1fr 1fr 1fr;gap:6px 16px}
  .cve-cv[data-skillcols="3"] .cve-toolgrp span,.lte-zoomwrap[data-cvskillcols="3"] .cve-toolgrp span{font-size:10px;line-height:1.35}
  .cve-foot3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:22px}
  /* Titres du pied (Atouts / Langues / Centres d'intérêt) : filet inline à droite
     du titre, sur la même ligne. Définition partagée avec `.cve-cvsec::after` pour
     un rendu strictement identique (vrai filet de bordure, stable au zoom/export). */
  .cve-f3-title{display:flex;align-items:center;gap:10px;font-family:var(--doc-title-font,var(--doc-font,inherit));font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--doc-heading,var(--ink));margin-bottom:9px}
  .cve-f3-title::after{content:"";flex:1;height:0;border-top:1px solid var(--doc-rule,var(--border-default));background:transparent}
  .cve-f3-li{font-size:12px;font-weight:600;color:var(--accent);margin-bottom:5px}
  .cve-f3-lang{margin-bottom:9px}
  .cve-f3-lang b{display:block;font-size:12.5px;font-weight:600;color:var(--accent)}
  .cve-f3-lang span{display:block;font-size:11.5px;color:var(--ink-3);margin-top:1px}
  .cve-f3-b{display:flex;flex-direction:column;gap:1px;margin-bottom:4px;color:var(--ink)}
  .cve-f3-b b{font-size:12.5px;font-weight:600;color:var(--accent);line-height:1.18}
  .cve-f3-b ul{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}
  .cve-f3-b li{font-size:10.8px;font-weight:500;color:var(--ink-2);line-height:1.22;padding-left:9px;position:relative}
  .cve-f3-b li::before{content:"";position:absolute;left:0;top:.58em;width:3px;height:3px;border-radius:50%;background:currentColor}
  .cve-f3-list{display:flex;flex-direction:column;gap:4px;margin-top:4px}
  .cve-f3-b--secondary{margin-bottom:0}
  .cve-f3-b--secondary ul{display:none}
  .cve-f3-ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
  .cve-f3-ul li{font-size:11.5px;line-height:1.45;color:var(--ink-2);padding-left:0;position:relative}
  .cve-f3-ul li::before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:currentColor;margin-right:8px;vertical-align:2px}
  @media (max-width:560px){.cve-foot3{grid-template-columns:1fr}}
  @media (max-width:1080px){.cve-mid{flex-basis:340px;width:340px}}
  @media (max-width:1080px){.lte-3 .cve-mid{flex-basis:420px;width:420px}}
  @media (max-width:920px){.cve-rail{width:200px;flex-basis:200px}.cve-mid{flex-basis:300px;width:300px}}

  /* ===== Outil « Lettres de motivation » ===== */
  .ltedit{flex:1;display:flex;flex-direction:column;min-height:0;background:var(--bg)}
  .lte-aibar{display:flex;align-items:center;gap:10px;flex:0 0 auto;padding:9px 22px;background:linear-gradient(180deg,var(--surface),var(--surface-2));border-bottom:1px solid var(--border);flex-wrap:wrap}
  .lte-ailabel{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-soft-2);border-radius:99px;padding:5px 10px}
  .lte-aitools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .lte-aitool{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid var(--border-soft);background:var(--surface);border-radius:8px;font:inherit;font-size:12.5px;font-weight:500;color:var(--ink-2);cursor:pointer;transition:border-color .15s,background-color .15s,color .15s}
  .lte-aitool:hover{border-color:var(--accent-soft-2);background:var(--accent-soft);color:var(--accent)}
  .lte-aitool svg{color:var(--accent)}
  .lte-aitool.feat{background:var(--accent);border-color:var(--accent);color:var(--fg-inverse)}
  .lte-aitool.feat svg{color:var(--fg-inverse)}
  .lte-aibar-doc{margin-left:auto;display:flex;align-items:center;gap:12px}

  .lte-body{flex:1;display:grid;grid-template-columns:minmax(400px,42%) 1fr;min-height:0}
  .lte-left{border-right:1px solid var(--border);background:var(--surface);min-height:0;overflow-y:auto;padding:18px}
  .lte-right{background:var(--subtle,var(--bg-subtle));min-height:0;overflow-y:auto;padding:26px 30px}

  
  
  
  

  .lte-block{margin-bottom:18px}
  .lte-bh{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);margin-bottom:9px;display:flex;align-items:center;gap:7px}
  .lte-bh svg{color:var(--accent)}
  .lte-bh-sub{margin-left:auto;font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink-4)}

  .lte-offer{border:1px solid var(--border);border-radius:13px;padding:13px;background:var(--surface)}
  .lte-offer-top{display:flex;align-items:center;gap:10px}
  
  .lte-offer-top .org{font-size:14px;font-weight:600;color:var(--ink)}
  .lte-offer-top .role{font-size:12px;color:var(--ink-3)}
  .lte-offer-snip{margin-top:10px;font-size:12px;line-height:1.55;color:var(--ink-2);background:var(--bg-2);border-radius:8px;padding:10px 11px}
  .lte-kws{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
  .lte-kw{font-size:10.5px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-soft-2);border-radius:99px;padding:2px 8px}

  
  
  

  .lte-proof{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--border-soft);border-radius:10px;padding:11px 12px;margin-bottom:8px;background:var(--surface);cursor:pointer;transition:border-color .15s}
  .lte-proof:hover{border-color:var(--border-strong)}
  .lte-proof.on{border-color:var(--accent);background:var(--accent-soft)}
  .lte-proof .check{flex:0 0 auto;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--border-strong);display:grid;place-items:center;color:var(--fg-inverse);margin-top:1px}
  .lte-proof.on .check{background:var(--accent);border-color:var(--accent)}
  .lte-proof .b2{flex:1;min-width:0}
  .lte-proof h4{font-size:13px;font-weight:600;line-height:1.3}
  .lte-proof .src{font-size:11px;color:var(--ink-3);margin-top:3px}
  .lte-proof .match{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);flex:0 0 auto;margin-top:1px}

  .lte-openers{display:flex;flex-direction:column;gap:7px}
  .lte-opener{text-align:left;border:1px solid var(--border-soft);border-radius:10px;padding:10px 12px;background:var(--surface);font:inherit;font-size:12px;line-height:1.5;color:var(--ink-2);cursor:pointer}
  .lte-opener:hover{border-color:var(--accent-soft-2);background:var(--accent-soft)}
  .lte-opener.on{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}
  .lte-opener .tag{font-size:10px;color:var(--accent);font-weight:600;display:block;margin-bottom:3px;text-transform:uppercase;letter-spacing:.04em}

  .lte-legendwrap{display:flex;justify-content:center;margin-top:14px}
  .lte-legend{display:inline-flex;align-items:center;gap:7px;font-size:11px;color:var(--ink-3);background:var(--surface);border:1px solid var(--border);border-radius:99px;padding:6px 12px}
  .lte-legend i{width:18px;height:11px;border-radius:3px;background:var(--accent-soft);border-bottom:1.5px solid var(--accent-soft-2);display:inline-block}

  .lte-letter{width:794px;max-width:100%;margin:0 auto;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-lg);padding:54px 58px;min-height:1123px;font-size:13px;line-height:1.7;color:var(--ink-2)}
  .lte-lhead{display:flex;justify-content:space-between;gap:30px}
  .lte-from{display:flex;flex-direction:column;align-items:flex-start}
  .lte-from .n{font-size:15px;font-weight:700;color:var(--doc-ink,var(--ink))}
  .lte-from .l{font-size:13px;color:var(--doc-ink,var(--ink-2));line-height:1.6;margin-top:3px}
  .lte-to{text-align:right;font-size:13px;color:var(--doc-ink,var(--ink-2));line-height:1.6}
  .lte-to .org{font-size:15px;font-weight:600;color:var(--doc-ink,var(--ink))}
  /* Marqueur « info manquante » : affordance d'édition (jamais inventé), masquée à l'impression/PDF. */
  .lte-missing{font:inherit;font-size:12px;color:var(--bad,#C4453A);background:var(--bad-soft,#FCEEED);border:1px solid var(--bad,#C4453A);border-radius:6px;padding:2px 8px;margin-top:3px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:background-color var(--dur-fast,.18s) var(--ease-out,ease)}
  .lte-missing::before{content:"⚠";font-size:11px}
  .lte-missing:hover{background:color-mix(in srgb,var(--bad,#C4453A) 16%,transparent)}
  .lte-pdf-doc .lte-missing{display:none}
  @media print{.lte-missing{display:none}}
  .lte-lmeta{margin:26px 0 8px;font-size:13px;color:var(--doc-ink,var(--ink-2));text-align:left}
  .lte-lobj{margin:18px 0 22px;font-size:13px;font-weight:600;color:var(--doc-ink,var(--ink))}
  .lte-lobj span{font-weight:400;color:var(--ink-2)}
  .lte-lobj.has-ref{margin-bottom:3px}
  .lte-lref{margin:0 0 22px;font-size:13px;font-weight:600;color:var(--doc-ink,var(--ink))}
  .lte-lref span{font-weight:400;color:var(--ink-2)}
  .lte-p{font-size:13px;line-height:1.7;margin-bottom:15px}
  .lte-letter .lte-sign{font-size:13px;margin-top:15px}
  .lte-letter .mark,.lte-msg-box .mark,.lte-email-body .mark{background:var(--accent-soft);padding:1px 2px;border-radius:3px;transition:background-color .3s var(--ease-out,ease)}
  .lte-letter .mark.focus,.lte-msg-box .mark.focus,.lte-email-body .mark.focus{background:var(--accent);color:#fff}
  .lte-letter .lte-add,.lte-msg-box .lte-add,.lte-email-body .lte-add{background:var(--good-soft);border-bottom:1.5px solid var(--good);padding:1px 2px;border-radius:2px;color:var(--good-ink)}

  /* e-mail de candidature */
  .lte-emailwrap{width:600px;max-width:100%;margin:0 auto}
  .lte-email{background:#fff;border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow-sm);overflow:hidden}
  .lte-email-hd{padding:6px 16px 8px;background:var(--surface);border-bottom:1px solid var(--border)}
  /* Eyebrow e-mail (parité format Message, refonte 2026-07-18) : « E-MAIL » à gauche + société
     à droite, séparé des champs À/Objet en dessous. */
  .lte-email-hd-top{display:flex;align-items:center;justify-content:space-between;padding:5px 0 8px;border-bottom:1px solid var(--border)}
  .lte-email-hd-top .lab{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
  .lte-email-hd-top .cnt{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-4)}
  .lte-email-hd .row{display:flex;gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--border-default)}
  .lte-email-hd .row:last-child{border-bottom:0}
  .lte-email-hd .k{flex:0 0 auto;min-width:54px;padding-right:8px;font-size:11px;font-weight:600;color:var(--ink-4);text-transform:uppercase;letter-spacing:.04em}
  .lte-email-hd .v{font-size:12.5px;color:var(--ink-2);min-width:0}
  .lte-email-hd .obj .v{font-weight:600;color:var(--ink)}
  .lte-email-body{padding:18px;font-size:13px;line-height:1.65;color:var(--ink-2)}
  .lte-email-body p{margin-bottom:12px}
  .lte-email-sign{margin-top:18px;font-size:12.5px;line-height:1.6;color:var(--ink-2)}
  .lte-email-sign b{color:var(--ink);font-weight:600}
  .lte-email-sign .t{color:var(--ink-3);font-size:12px}
  .lte-email-att{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px;border-top:1px solid var(--border);background:var(--bg-2)}
  .lte-att{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-2);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 10px}
  .lte-att svg{color:var(--ink-3)}
  .lte-recname{display:inline-flex;align-items:center;gap:5px;cursor:pointer;border-radius:6px;padding:1px 4px;margin:-1px -4px;transition:background-color .15s}
  .lte-recname:hover{background:var(--accent-soft);color:var(--accent)}
  .lte-recname svg{color:var(--ink-4)}
  .lte-recname:hover svg{color:var(--accent)}

  /* message court (plateformes) */
  .lte-msgwrap{width:560px;max-width:100%;margin:0 auto}
  .lte-msg{background:#fff;border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow-sm);overflow:hidden}
  .lte-msg-head{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;border-bottom:1px solid var(--border);background:var(--surface)}
  .lte-msg-head .lab{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
  .lte-msg-head .cnt{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-4)}
  .lte-msg-head .cnt.over{color:var(--bad,var(--danger-500))}
  .lte-msg-box{padding:18px;font-size:13px;line-height:1.65;color:var(--ink-2);min-height:300px}
  .lte-msg-box p{margin-bottom:12px}
  .lte-msg-box p:last-child{margin-bottom:0}
  
  .lte-msg-cv{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:500;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-soft-2);border-radius:8px;padding:7px 11px}
  .lte-msg-copy{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:12.5px;font-weight:600;color:#fff;background:var(--accent);border:0;border-radius:8px;padding:8px 14px;cursor:pointer;transition:background-color .15s}
  .lte-msg-copy:hover{background:var(--accent-600)}
  .lte-msg-hint{display:flex;align-items:flex-start;gap:8px;font-size:11.5px;color:var(--ink-3);line-height:1.5;background:var(--bg-2);border-radius:10px;padding:11px 13px;margin-top:14px}
  .lte-msg-hint svg{flex:0 0 auto;color:var(--ink-3);margin-top:1px}
  .lte-sign{margin-top:26px}
  .lte-sign .name{font-weight:600;color:var(--ink);margin-top:6px}
  @media (max-width:980px){.lte-body{grid-template-columns:1fr}.lte-left{border-right:0;border-bottom:1px solid var(--border)}}

  /* ===== Outil « Contacts » ===== */
  .contview{flex:1;display:flex;min-height:0;background:var(--bg)}
  .ct-body{flex:1;display:grid;grid-template-columns:340px 1fr;min-height:0}
  .ct-list{border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;min-height:0}
  .ct-lhead{padding:14px 16px 10px;display:flex;flex-direction:column;gap:10px;flex:0 0 auto}
  .ct-ltitle{display:flex;align-items:center;justify-content:space-between}
  .ct-ltitle h1{font-size:19px;font-weight:600;letter-spacing:-.01em}
  .ct-ltitle .cnt{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);background:var(--bg-2);border:1px solid var(--border);padding:1px 7px;border-radius:99px}
  .ct-search{display:flex;align-items:center;gap:8px;background:var(--bg-2);border:1px solid var(--border-soft);border-radius:8px;padding:8px 11px;color:var(--ink-3)}
  .ct-search:focus-within{border-color:var(--accent);background:var(--surface);box-shadow:var(--ring-focus)}
  .ct-search input{border:0;background:transparent;outline:none;font:inherit;font-size:13px;color:var(--ink);flex:1}
  .ct-seg{display:flex;gap:3px;background:var(--bg-2);border-radius:8px;padding:3px}
  .ct-seg button{flex:1;border:0;background:transparent;border-radius:8px;padding:6px 4px;font:inherit;font-size:11.5px;font-weight:600;color:var(--ink-3);cursor:pointer;white-space:nowrap}
  .ct-seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
  .ct-lscroll{flex:1;overflow-y:auto;padding:6px 8px 16px}
  .ct-grp{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-4);padding:12px 10px 6px;display:flex;align-items:center;gap:7px}
  .ct-citem{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:0;background:transparent;border-radius:10px;padding:9px 10px;cursor:pointer}
  /* Canon : une sélection de LISTE est neutre (état de position, pas une
     action). Sur liste blanche : survol = creux visible, sélection = même
     creux + filet — jamais de bleu. */
  .ct-citem:hover{background:var(--bg-2)}
  .ct-citem.on{background:var(--bg-2);box-shadow:inset 0 0 0 1px var(--border-strong)}
  .ct-av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:600;color:var(--fg-inverse);flex:0 0 auto}
  /* Avatar personne + petit badge logo entreprise (favicon) en coin. */
  .ct-av-wrap{position:relative;flex:0 0 auto;display:inline-flex}
  .ct-av-co{position:absolute;right:-2px;bottom:-2px;width:17px;height:17px;border-radius:6px;background:var(--surface);border:1px solid var(--border);object-fit:cover;box-shadow:var(--shadow-sm)}
  .ct-ci-body{flex:1;min-width:0}
  .ct-ci-name{display:block;font-size:13.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ct-ci-sub{display:block;font-size:11.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
  .ct-stage-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}

  .ct-detail{min-height:0;overflow-y:auto;background:var(--surface);padding:26px 30px 40px}
  .ct-dcard{max-width:680px;margin:0 auto}
  .ct-dhero{display:flex;align-items:center;gap:16px}
  .ct-dav{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;font-size:26px;font-weight:600;color:var(--fg-inverse);flex:0 0 auto;box-shadow:var(--shadow-md)}
  .ct-dhero h2{font-size:23px;font-weight:600;letter-spacing:-.01em}
  .ct-drole{font-size:14px;color:var(--ink-2);margin-top:2px}
  .ct-dco{font-size:13px;color:var(--ink-3);margin-top:2px;display:flex;align-items:center;gap:7px}
  .ct-cologo{width:18px;height:18px;border-radius:6px;background:var(--surface);border:1px solid var(--border);object-fit:cover;flex:0 0 auto}
  .ct-co-link{border:0;background:transparent;font:inherit;font-size:13px;color:var(--ink-2);cursor:pointer;padding:0;border-radius:3px;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:2px;transition:text-decoration-color var(--dur-fast,.18s) var(--ease-out),color var(--dur-fast,.18s) var(--ease-out)}
  .ct-co-link:hover{color:var(--accent);text-decoration-color:var(--accent)}
  .ct-src-pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);border:1px solid var(--accent-soft-2);border-radius:99px;padding:3px 10px;margin-top:9px}
  .ct-added{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-4);margin-top:8px}
  /* Filtre par entreprise (chip effaçable sous les segments). */
  .ct-cofilter{display:flex;align-items:center;gap:8px;margin-top:8px;padding:6px 8px 6px 9px;background:var(--surface);border:1px solid var(--border);border-radius:8px}
  .ct-cofilter img{width:18px;height:18px;border-radius:6px;background:var(--surface);border:1px solid var(--border);object-fit:cover;flex:0 0 auto}
  .ct-cofilter-name{flex:1;min-width:0;font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ct-cofilter .cnt{font-family:var(--font-mono);font-size:9.5px;background:var(--bg-2);border:1px solid var(--border);padding:1px 6px;border-radius:99px;color:var(--ink-3);flex:0 0 auto}
  .ct-cofilter-x{flex:0 0 auto;border:0;background:transparent;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;color:var(--ink-4);cursor:pointer}
  .ct-cofilter-x:hover{background:var(--bg-2);color:var(--ink-2)}
  .ct-quick{display:flex;gap:9px;margin:18px 0 4px}
  .ct-qbtn{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:11px 0;background:var(--surface);border:1px solid var(--border-soft);border-radius:13px;color:var(--accent-ink);font:inherit;font-size:11.5px;font-weight:600;cursor:pointer}
  .ct-qic{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center}
  .ct-qbtn:hover{background:var(--bg-2);border-color:var(--accent-soft-2)}
  .ct-sec{margin-top:20px}
  .ct-sec-h{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);margin-bottom:8px;padding-left:2px;display:flex;align-items:center;gap:7px}
  .ct-sec-h .cnt{text-transform:none;letter-spacing:0;background:var(--bg-2);border:1px solid var(--border);padding:1px 6px;border-radius:99px;font-size:9.5px;color:var(--ink-3)}
  .ct-glist{background:var(--surface);border:1px solid var(--border);border-radius:13px;overflow:hidden}
  .ct-grow{display:flex;align-items:center;gap:12px;padding:12px 15px;position:relative}
  .ct-grow + .ct-grow::before{content:"";position:absolute;left:52px;right:0;top:0;height:1px;background:var(--border)}
  .ct-gic{width:30px;height:30px;border-radius:8px;background:var(--bg-2);color:var(--ink-3);display:grid;place-items:center;flex:0 0 auto}
  .ct-gic.has-logo{background:var(--surface);border:1px solid var(--border);overflow:hidden;padding:0}
  .ct-gic.has-logo img{width:18px;height:18px;object-fit:contain}
  .ct-gt{flex:1;min-width:0}
  .ct-gl{display:block;font-size:11px;color:var(--ink-3)}
  .ct-gv{display:block;font-size:14px;color:var(--ink);word-break:break-word}
  .ct-gv.link{color:var(--accent)}
  .ct-link-card{display:flex;align-items:center;gap:13px;background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:13px 15px}
  .ct-lc-logo{width:40px;height:40px;border-radius:10px;background:var(--bg-2);border:1px solid var(--border);display:grid;place-items:center;font-weight:700;color:var(--ink-2);flex:0 0 auto}
  .ct-lc-logo.has-logo{background:var(--surface);overflow:hidden;padding:0}
  .ct-lc-logo.has-logo img{width:24px;height:24px;object-fit:contain}
  .ct-lc-body{flex:1;min-width:0}
  .ct-lc-role{font-size:13.5px;font-weight:600}
  .ct-lc-meta{font-size:12px;color:var(--ink-3);margin-top:2px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
  .ct-lc-stage{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;border-radius:99px;padding:3px 9px}
  .ct-lc-open{border:1px solid var(--border-2);background:var(--surface);border-radius:8px;padding:7px 11px;font:inherit;font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
  .ct-tl{position:relative;padding-left:22px}
  .ct-tl::before{content:"";position:absolute;left:6px;top:4px;bottom:4px;width:2px;background:var(--border)}
  .ct-tl-it{position:relative;padding:0 42px 14px 0;border-radius:8px}
  .ct-tl-it::before{content:"";position:absolute;left:-19px;top:3px;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--bg)}
  .ct-tl-it.editing{outline:2px solid var(--accent-soft);outline-offset:2px}
  /* Échanges DÉRIVÉS du journal de candidature (rattachés via l'interlocuteur) : pastille + teinte
     distinctes, non éditables ici (ils appartiennent à la candidature). */
  .ct-tl-journal{margin-top:2px}
  .ct-tl-it-journal::before{background:var(--ink-4)}
  .ct-tl-origin{display:inline-flex;align-items:center;gap:5px;margin-right:7px;padding:1px 7px;border-radius:99px;background:var(--bg-2);font-size:10.5px;font-weight:600;color:var(--ink-3);vertical-align:1px}
  .ct-tl-origin svg{color:var(--ink-4)}
  .ct-tw{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3)}
  .ct-td{font-size:13px;color:var(--ink-2);margin-top:2px;word-break:break-word}
  /* Rendu markdown d'une note (synthèse d'appel collée en markdown → texte formaté). */
  .ct-td .ct-md-p{margin:0 0 4px}
  .ct-td .ct-md-p:last-child{margin-bottom:0}
  .ct-td .ct-md-h{font-weight:600;color:var(--ink);margin:7px 0 3px;line-height:1.35}
  .ct-td .ct-md-h:first-child{margin-top:0}
  .ct-td .ct-md-h1{font-size:14px}
  .ct-td .ct-md-h2{font-size:13.5px}
  .ct-td .ct-md-h3,.ct-td .ct-md-h4{font-size:13px}
  .ct-td ul,.ct-td ol{margin:3px 0 5px;padding-left:20px}
  .ct-td li{margin:1px 0}
  .ct-td strong{font-weight:600;color:var(--ink)}
  .ct-td em{font-style:italic}
  .ct-td code{font-family:var(--font-mono);font-size:12px;background:var(--bg-2);padding:1px 4px;border-radius:3px}
  .ct-td a{color:var(--accent);text-decoration:underline}
  /* Actions par note (modifier / supprimer) révélées au survol. */
  .ct-tl-actions{position:absolute;top:-2px;right:0;display:flex;gap:2px;opacity:0;transition:opacity .15s var(--ease-out)}
  .ct-tl-it:hover .ct-tl-actions,.ct-tl-it.editing .ct-tl-actions{opacity:1}
  .ct-tl-actions button{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:6px;background:transparent;color:var(--ink-4);cursor:pointer;transition:background-color .15s var(--ease-out),color .15s var(--ease-out)}
  .ct-tl-actions button:hover{background:var(--bg-2);color:var(--ink)}
  .ct-tl-actions button:last-child:hover{color:var(--bad,#C4453A)}
  /* Composeur de note en ligne (esprit journal de bord, contexte contact). */
  .ct-note-composer{margin-top:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2,#FAFBFC);transition:border-color .18s var(--ease-out),box-shadow .18s var(--ease-out)}
  .ct-note-composer:focus-within{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .ct-note-composer.editing{border-color:var(--accent)}
  .ct-note-composer .jc-rte-toolbar{padding:5px 8px 6px;margin:0;border-bottom:1px solid var(--border)}
  .ct-note-composer .jc-tsep{width:1px;height:18px;background:var(--border);margin:0 4px}
  .ct-note-input.jc-input{min-height:56px;max-height:220px;overflow-y:auto;padding:9px 11px;font-size:13.5px;line-height:1.5}
  .ct-note-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-top:1px solid var(--border)}
  .ct-note-date{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3)}
  .ct-note-date input{border:0;background:transparent;font:inherit;font-size:12px;color:var(--ink-2);padding:2px 2px;cursor:pointer}
  .ct-note-actions{display:flex;gap:8px}
  /* Bouton d'ouverture de la modale de note (ajout) — pas de zone de saisie permanente. */
  .ct-add-note{display:inline-flex;align-items:center;gap:7px;margin-top:10px;padding:8px 13px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface,#fff);font-family:var(--font-sans);font-size:12.5px;font-weight:500;color:var(--ink-2);cursor:pointer;transition:border-color .18s var(--ease-out),color .18s var(--ease-out),background-color .18s var(--ease-out)}
  .ct-add-note:hover{border-color:var(--accent);color:var(--accent)}
  .ct-add-note:focus-visible{outline:0;box-shadow:var(--ring-focus)}
  /* Modale « rouvrir la note en grand » — gabarit taille B, composeur qui remplit la hauteur. */
  .ct-note-modal{width:min(1100px,92vw);height:min(760px,88vh);display:flex;flex-direction:column;background:var(--surface);border-radius:16px;box-shadow:0 24px 60px -18px color-mix(in srgb,var(--ink) 34%,transparent),0 6px 18px -8px color-mix(in srgb,var(--ink) 20%,transparent);overflow:hidden}
  .ct-note-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px 12px;border-bottom:1px solid var(--border);flex:0 0 auto}
  .ct-note-composer.in-modal{flex:1 1 auto;min-height:0;width:100%;max-width:860px;margin:0 auto;border:0;border-radius:0;background:transparent;box-shadow:none;display:flex;flex-direction:column;padding:14px 22px 18px}
  .ct-note-composer.in-modal:focus-within{box-shadow:none}
  .ct-note-composer.in-modal .jc-rte-toolbar{padding:0 0 8px;border-bottom:1px solid var(--border);flex:0 0 auto}
  .ct-note-composer.in-modal .ct-note-input{flex:1 1 auto;min-height:0;max-height:none;padding:14px 2px;font-size:14px;line-height:1.55}
  .ct-note-composer.in-modal .ct-note-foot{border-top:1px solid var(--border);padding:12px 0 0;flex:0 0 auto}
  @media (max-width:920px){.ct-body{grid-template-columns:260px 1fr}}
  /* Tâches confiées (lien inverse depuis le gestionnaire d'objectifs) */
  .ct-tasks{display:flex;flex-direction:column;gap:6px}
  .ct-task{display:flex;align-items:center;gap:10px;text-align:left;border:1px solid var(--border-soft);background:var(--bg-2);border-radius:10px;padding:9px 11px;cursor:pointer;transition:border-color var(--dur-fast,.18s) var(--ease-out),background-color var(--dur-fast,.18s) var(--ease-out)}
  .ct-task:hover{border-color:var(--border-strong);background:var(--surface)}
  .ct-task-dot{flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--ink-4)}
  .ct-task-dot.s-todo{background:var(--info,#6B7079)}
  .ct-task-dot.s-doing{background:var(--accent,#3B66B0)}
  .ct-task-dot.s-review{background:var(--warn,#C97A11)}
  .ct-task-dot.s-done{background:var(--good,#2D9A6B)}
  .ct-task-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
  .ct-task-t{font-size:13px;font-weight:500;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ct-task-m{font-size:11px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ct-task svg{color:var(--ink-4);flex-shrink:0}
  .ct-task:hover svg{color:var(--accent)}
  .ct-task-foot{margin-top:8px;font-size:11px;color:var(--ink-4);text-wrap:pretty}

  /* ============================================================================
     Journal de bord — saisie « façon chat » (hifi-journal-chat.jsx)
     ========================================================================== */
  /* Barre flottante ancrée en bas du feed (sticky) */
  .jc-barwrap{position:sticky;bottom:0;left:0;right:0;flex-shrink:0;margin-top:auto;padding:4px 24px 4px;z-index:20;
    background:linear-gradient(to top, var(--bg) 62%, color-mix(in srgb,var(--bg) 0%, transparent) 100%);pointer-events:none}
  /* Au focus / saisie, on redonne un peu d'air pour bien détacher l'éditeur du feed */
  .jc-barwrap:has(.jc-bar.expanded){padding-top:14px;padding-bottom:12px}
  .jc-barwrap > *{pointer-events:auto}
  .jc-composer-shell{position:relative;width:min(960px,calc(100% - 48px));margin:0 auto;
    --jc-control-height:32px;--jc-action-height:34px;--jc-rail-control-height:26px;--jc-mini-control-height:28px}
  body[data-side="expanded"] .jc-composer-shell{width:min(820px,calc(100% - 88px))}
  /* Composer (planche G) : blanc chaud + hairline, radius 14 — l'ombre portée lourde
     disparaît, la surface interactive se distingue par son hairline, pas par son relief. */
  .jc-bar{position:relative;z-index:2;margin:0 auto;background:var(--surface);border:1px solid var(--border-strong);
    border-radius:14px;box-shadow:none;
    padding:12px 12px 10px;transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
  /* État au repos (pas de saisie, pas de focus) → barre compacte et discrète.
     Au focus / saisie, on retrouve l'éditeur complet (.expanded / .active). */
  .jc-bar:not(.expanded){
    padding:var(--space-2) 6px var(--space-2) var(--space-4);border-radius:var(--radius-lg);
    box-shadow:none;display:flex;align-items:center;gap:var(--space-3)
  }
  .jc-bar:not(.expanded) .jc-input{
    font-size:14px;line-height:1.4;padding:3px 0;flex:1;min-width:0
  }
  .jc-bar:not(.expanded) .jc-text-shell{flex:1;min-width:0}
  .jc-bar:not(.expanded) .jc-input::placeholder{color:var(--ink-3)}
  .jc-bar:not(.expanded) .jc-rte-toolbar,
  .jc-bar:not(.expanded) .jc-suggest,
  .jc-bar:not(.expanded) .jc-chips,
  .jc-bar:not(.expanded) .jc-controls > .jc-plus-pop,
  .jc-bar:not(.expanded) .jc-controls > .jc-pills,
  .jc-bar:not(.expanded) .jc-actions > .jc-collapse,
  .jc-bar:not(.expanded) .jc-actions > .jc-enrich{display:none}
  .jc-bar:not(.expanded) .jc-controls{padding:0;gap:0;margin:0;border-top:0;flex-shrink:0}
  .jc-bar:not(.expanded) .jc-actions{gap:0}
  .jc-bar:not(.expanded) .jc-save-arrow{
    width:var(--jc-mini-control-height);height:var(--jc-mini-control-height)
  }
  .jc-bar:not(.expanded).active{border-color:color-mix(in srgb,var(--accent) 45%,var(--border-strong));box-shadow:0 0 0 3px var(--accent-soft)}
  .jc-rest-type{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;color:var(--ink-3)}
  .jc-rest-type > svg{color:var(--ink-3)}
  .jc-rest-type > button{height:26px;padding:0 9px;border:1px solid var(--accent-soft-2);border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-ink);font:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
  .jc-rest-type > button:hover{background:var(--accent-soft-2);border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}
  .jc-input{width:100%;border:0;outline:0;resize:none;background:transparent;font-family:var(--font-sans);
    font-size:14px;line-height:1.5;color:var(--ink);padding:6px 8px 2px;max-height:280px;overflow-y:auto}
  .jc-input::placeholder{color:var(--ink-4)}
  .jc-text-shell{position:relative;min-width:0}
  /* Éditeur complet : une surface basse au repos, qui grandit avec le texte. Le focus réel
     reste volontairement invisible : le caret suffit et aucun clic ne change l'apparence. */
  .jc-bar.expanded{padding:0 var(--space-4) var(--space-3);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}
  .jc-bar.awaiting-input .jc-text-shell::before{content:"";position:absolute;z-index:1;left:0;top:6px;width:2px;height:20px;
    border-radius:99px;background:var(--ink-2);pointer-events:none;animation:jc-caret-blink 1.05s steps(1,end) infinite}
  .jc-bar.expanded.awaiting-input .jc-text-shell::before{left:12px;top:18px}
  .jc-bar.awaiting-input .jc-input{caret-color:transparent}
  @keyframes jc-caret-blink{0%,46%{opacity:1}47%,100%{opacity:0}}
  @media (prefers-reduced-motion:reduce){.jc-bar.awaiting-input .jc-text-shell::before{animation:none}}
  .jc-bar.expanded .jc-input{min-height:72px;padding:18px var(--space-4) var(--space-2);overflow-y:hidden}
  .jc-rte-toolbar{display:flex;align-items:center;gap:2px;flex-wrap:nowrap;padding:2px 4px 8px;margin-bottom:4px;border-bottom:1px solid var(--border)}
  /* Scopé aux enfants directs : ne doit PAS toucher les boutons des popovers (Tags/date)
     ni leurs items de menu, sinon ils sont écrasés en carrés 30×30. */
  .jc-rte-toolbar > button{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:0;
    background:transparent;border-radius:8px;color:var(--ink-2);cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}
  .jc-rte-toolbar > button:hover{background:var(--bg-2);color:var(--ink)}
  .jc-rte-toolbar > button.on{background:var(--accent-soft);color:var(--accent-ink)}
  .jc-rte-attach{color:var(--accent) !important}
  .jc-rte-sep{width:1px;height:18px;background:var(--border);margin:0 4px}
  .jc-rte-spacer{flex:1 1 auto;min-width:6px}
  /* Boutons texte de la barre d'outils (Tags / date) — approche compacte.
     Stylés en autonomie (plus rattachés à « .jc-rte-toolbar button »). */
  .jc-rte-text{display:inline-flex;align-items:center;width:auto;height:30px;padding:0 10px;gap:5px;
    border:0;background:transparent;border-radius:8px;cursor:pointer;color:var(--ink-2);
    font-family:var(--font-sans);font-size:12.5px;font-weight:500;white-space:nowrap;
    transition:background var(--dur-fast) var(--ease-out)}
  .jc-rte-text:hover,.jc-rte-text.on{background:var(--bg-2);color:var(--ink)}
  .jc-rte-text > svg{color:var(--ink-3)}
  .jc-rte-text.on > svg{color:var(--accent-ink)}
  .jc-rte-count{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;
    border-radius:99px;background:var(--accent-soft);color:var(--accent-ink);font-size:10.5px;font-weight:600}
  /* Pastille date très compacte */
  .jc-rte-date{height:26px;padding:0 7px;gap:4px;font-size:11.5px;
    font-variant-numeric:tabular-nums;color:var(--ink-2)}
  .jc-rte-date > svg{color:var(--ink-3)}
  /* Options de période en grille compacte (menu « Quand ? ») */
  .jc-when-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:6px 8px}
  .jc-when-chip{height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-soft);
    background:var(--bg-2);color:var(--ink-2);border-radius:8px;font-size:11.5px;font-weight:500;cursor:pointer;
    font-variant-numeric:tabular-nums;transition:all var(--dur-fast) var(--ease-out)}
  .jc-when-chip:hover{border-color:var(--border-hover);color:var(--ink);background:var(--surface)}
  .jc-when-chip.sel{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}
  /* Choix libre date + heure dans le menu « Quand ? » */
  .jc-date-custom{padding:6px 10px 8px;display:flex;flex-direction:column;gap:6px}
  .jc-date-custom-lbl{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:500;color:var(--ink-2);white-space:nowrap}
  .jc-date-custom-lbl > svg{color:var(--ink-3)}
  
  
  

  /* Calendrier maison (menu « Quand ? ») — aligné au design SIHAGE */
  .jc-cal{padding:6px}
  .jc-cal-back{display:inline-flex;align-items:center;gap:3px;border:0;background:transparent;cursor:pointer;
    color:var(--ink-3);font-family:var(--font-sans);font-size:11.5px;font-weight:500;
    padding:4px 4px 6px;border-radius:6px;transition:color var(--dur-fast) var(--ease-out)}
  .jc-cal-back:hover{color:var(--ink)}
  .jc-cal-back > svg{color:var(--ink-4)}
  .jc-cal-head{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:0 2px 6px}
  .jc-cal-title{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--ink);text-transform:capitalize;
    border:0;background:transparent;cursor:pointer;padding:4px 8px;border-radius:8px;transition:background var(--dur-fast) var(--ease-out)}
  .jc-cal-title:hover{background:var(--bg-2)}
  .jc-cal-title > svg{color:var(--ink-4)}
  /* Vue choix d'année — grille de 12 ans (paginée par décennie) */
  .jc-year-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:2px 0}
  .jc-year-cell{height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;
    background:transparent;border-radius:8px;color:var(--ink-2);font-size:12.5px;font-weight:500;cursor:pointer;
    font-variant-numeric:tabular-nums;transition:all var(--dur-fast) var(--ease-out)}
  .jc-year-cell:hover{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent)}
  .jc-year-cell.today{border-color:var(--border-strong);color:var(--ink);font-weight:600}
  .jc-year-cell.sel{background:var(--accent);color:var(--fg-inverse);border-color:var(--accent);font-weight:600}
  .jc-cal-nav{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:0;
    background:transparent;border-radius:8px;color:var(--ink-2);cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}
  .jc-cal-nav:hover{background:var(--bg-2);color:var(--ink)}
  .jc-cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:2px}
  .jc-cal-dow > span{height:20px;display:inline-flex;align-items:center;justify-content:center;
    font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--ink-4)}
  .jc-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
  .jc-cal-day{height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;
    background:transparent;border-radius:8px;color:var(--ink-2);font-size:12px;font-weight:500;cursor:pointer;
    font-variant-numeric:tabular-nums;transition:all var(--dur-fast) var(--ease-out)}
  .jc-cal-day:hover{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent)}
  .jc-cal-day.today{border-color:var(--border-strong);color:var(--ink);font-weight:600}
  .jc-cal-day.sel{background:var(--ink);border-color:var(--ink);color:var(--fg-inverse);font-weight:600}
  .jc-cal-day.sel:hover{background:var(--ink);color:var(--fg-inverse)}
  .jc-cal-time{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;
    padding-top:8px;border-top:1px solid var(--border)}
  .jc-cal-time-lbl{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:500;color:var(--ink-2)}
  .jc-cal-time-lbl > svg{color:var(--ink-3)}
  .jc-time-input{width:96px;height:30px;padding:0 8px;border:1px solid var(--border-soft);border-radius:8px;
    background:var(--surface);color:var(--ink);font-family:var(--font-mono);font-size:12.5px;
    font-variant-numeric:tabular-nums;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out)}
  .jc-time-input:hover{border-color:var(--border-hover)}
  .jc-time-input:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring-focus)}
  .jc-tagpop{padding:2px}
  .jc-tagpop .jc-tagzone-chips{padding:4px 6px 2px}
  .jc-tagpop .jc-tagzone-sugg{padding:6px 6px 2px}
  .jc-zone-lbl{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:10px;
    letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);flex-shrink:0}
  .jc-zone-lbl > svg{color:var(--ink-4)}
  .jc-tplrow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:8px 4px 2px}
  .jc-tpl{border:1px dashed var(--border-strong);background:transparent;border-radius:8px;padding:4px 10px;font-size:12px;
    color:var(--ink-2);cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}
  .jc-tpl:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}
  .jc-tagzone{display:flex;flex-direction:column;gap:7px;padding:10px 4px 2px}
  .jc-tagzone-chips{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
  .jc-taginput{flex:1;min-width:120px;border:0;outline:0;background:transparent;font-family:var(--font-sans);
    font-size:12.5px;color:var(--ink);padding:4px 2px}
  .jc-taginput::placeholder{color:var(--ink-4)}
  .jc-tagzone-sugg{display:flex;flex-wrap:wrap;gap:6px}

  .jc-chips{display:flex;flex-wrap:wrap;gap:6px;padding:6px 6px 2px}
  .jc-chip{display:inline-flex;align-items:center;gap:5px;background:var(--bg-2);border:1px solid var(--border-soft);
    border-radius:8px;padding:3px 6px 3px 8px;font-size:11.5px;font-weight:500;color:var(--ink-2);max-width:220px}
  .jc-chip > svg:first-child{color:var(--ink-3);flex-shrink:0}
  .jc-chip.tag{color:var(--accent-ink);background:var(--accent-soft);border-color:transparent}
  .jc-chip.tag > svg:first-child{color:var(--accent)}
  .jc-chip.cand > svg:first-child{color:var(--ink-2)}
  .jc-chip button{display:inline-flex;border:0;background:transparent;cursor:pointer;color:var(--ink-4);padding:0;margin-left:1px}
  .jc-chip button:hover{color:var(--ink)}
  .jc-chip.sm{font-size:10.5px;padding:2px 7px;gap:4px}

  .jc-suggest{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:6px 8px 0}
  .jc-suggest-lbl{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--ink-3);font-family:var(--font-mono)}
  .jc-suggest-lbl > svg{color:var(--accent)}
  .jc-suggest-tag{display:inline-flex;align-items:center;gap:3px;border:1px dashed var(--border-strong);background:transparent;
    border-radius:8px;padding:2px 7px;font-size:11.5px;color:var(--ink-2);cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}
  .jc-suggest-tag:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}
  .jc-suggest-tag > svg{color:var(--ink-4)}

  .jc-controls{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-1) 0 0}
  /* Pastilles alignées à gauche, toujours sur une ligne. Pas d'overflow:hidden ici — il rognait
     les popovers (les dossiers ne s'ouvraient pas) ; la troncature se fait sur .jc-pill-lbl. */
  .jc-pills{flex:1;min-width:0;display:flex;align-items:center;justify-content:flex-start;gap:6px;flex-wrap:nowrap}
  .jc-actions{flex-shrink:0;display:flex;align-items:center;gap:var(--space-2);align-self:flex-end}
  .jc-collapse{height:34px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--ink-3);font:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .jc-collapse:hover{background:var(--bg-2);color:var(--ink)}
  .jc-pill{flex-shrink:0}
  .jc-pills > .jc-pop{min-width:0;flex:0 1 auto}
  .jc-pills > .jc-pop:first-child{flex-shrink:0}        /* type : toujours lisible */
  .jc-pills > .jc-pop-shrink{min-width:44px}            /* carnet : peut se réduire */
  .jc-pills > .jc-pop .jc-pill{max-width:100%}
  .jc-spacer{flex:1 1 auto;min-width:8px}
  /* Rail secondaire sous la zone de saisie : contexte de rangement à gauche, date à droite.
     Le fond neutre plus soutenu distingue clairement cette couche sans concurrencer l'écriture. */
  /* Planche G (lot 3) : couche secondaire en remplissage doux — plus de bord ni d'ombre
     portée, la profondeur vient du seul ton crème. */
  .jc-context-rail{position:relative;z-index:1;min-height:36px;height:auto;margin:-6px 14px 0;
    display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;column-gap:var(--space-3);row-gap:var(--space-2);padding:var(--space-3) var(--space-3) var(--space-1);
    background:var(--bg-2);border:0;border-radius:0 0 14px 14px;
    box-shadow:none}
  .jc-context-left{display:flex;align-items:center;gap:4px;min-width:0}
  .jc-context-btn,.jc-context-date{height:var(--jc-rail-control-height);display:inline-flex;align-items:center;justify-content:center;gap:5px;
    border:1px solid transparent;border-radius:var(--radius-lg);background:transparent;color:var(--fg-2);
    font-family:var(--font-sans);font-size:12px;font-weight:500;white-space:nowrap;cursor:pointer;
    transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .jc-context-btn{padding:0 8px}
  .jc-context-btn:hover,.jc-context-btn.on,.jc-context-date:hover,.jc-context-date.on{background:var(--surface);border-color:var(--border-default);color:var(--ink)}
  .jc-context-btn > svg{width:13px;height:13px;color:var(--ink-3);flex-shrink:0}
  .jc-context-btn > svg:last-child:not(:first-child){width:10px;height:10px;color:var(--ink-4)}
  .jc-context-carnet .vc-carnet-logo-wrap{display:inline-flex;flex:0 0 auto}
  .jc-context-carnet,.jc-context-tags.empty{width:var(--jc-rail-control-height);padding:0}
  .jc-context-tags span{max-width:150px;overflow:hidden;text-overflow:ellipsis}
  .jc-context-date{padding:0 7px;font-size:11.5px;font-variant-numeric:tabular-nums}
  .jc-context-date > svg{width:13px;height:13px;color:var(--ink-3);flex-shrink:0}
  @media (max-width:640px){
    .jc-context-rail{margin-inline:8px;padding-inline:8px}
    .jc-context-date span{display:none}
    .jc-context-date{width:var(--jc-rail-control-height);padding:0}
    .jc-composer-shell,body[data-side="expanded"] .jc-composer-shell{width:100%}
    .jc-bar.expanded .jc-input{padding-inline:8px}
  }
  
  /* Ligne d'aide affichée au démarrage de la conversation (plus dans la barre) */
  .jc-intro{display:flex;align-items:center;justify-content:center;gap:6px;text-align:center;font-size:11.5px;
    color:var(--ink-4);padding:2px 12px 6px;text-wrap:pretty}
  .jc-intro > svg{color:var(--accent);flex-shrink:0}
  .jc-intro b{color:var(--ink-3);font-weight:600}
  .jc-plus{width:var(--jc-control-height);height:var(--jc-control-height);flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);
    border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-2);cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}
  .jc-plus:hover,.jc-plus.on{background:var(--bg-2);color:var(--ink);border-color:var(--ink-4)}

  .jc-pill{display:inline-flex;align-items:center;gap:5px;height:var(--jc-control-height);padding:0 9px;border-radius:var(--radius-md);
    border:1px solid var(--border-soft);background:var(--bg-2);color:var(--ink-2);font-size:12.5px;font-weight:500;cursor:pointer;
    max-width:200px;transition:all var(--dur-fast) var(--ease-out)}
  .jc-pill:hover,.jc-pill.on{border-color:var(--border-hover);color:var(--ink);background:var(--surface)}
  .jc-pill > svg:first-child{color:var(--ink-3);flex-shrink:0}
  .jc-pill-lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .jc-pill > svg:last-child{color:var(--ink-4);flex-shrink:0}

  .jc-savedirect{border:0;background:transparent;color:var(--ink-3);font-size:12.5px;font-weight:500;cursor:pointer;
    padding:6px 8px;border-radius:8px;white-space:nowrap;transition:all var(--dur-fast) var(--ease-out)}
  .jc-savedirect:hover{color:var(--ink);background:var(--bg-2)}
  .jc-send{width:38px;height:38px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:10px;
    border:0;background:var(--ink);color:var(--fg-inverse);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}
  .jc-send:hover:not(:disabled){background:var(--accent);transform:translateY(-1px)}
  .jc-send:disabled{background:var(--ink-5);cursor:not-allowed}
  /* Deux gestes de la barre : Enregistrer (note seule) · Enrichir avec l'assistant (sauvegarde + discussion) */
  .jc-save{height:var(--jc-action-height);flex-shrink:0;display:inline-flex;align-items:center;padding:0 var(--space-4);border-radius:var(--radius-md);
    border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-2);
    font-family:var(--font-sans);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;
    transition:all var(--dur-fast) var(--ease-out)}
  .jc-save:hover:not(:disabled){background:var(--bg-2);color:var(--ink);border-color:var(--ink-4)}
  .jc-save:disabled{opacity:.45;cursor:not-allowed}
  .jc-save-arrow{width:var(--jc-action-height);padding:0;justify-content:center;border:0;border-radius:var(--radius-pill);
    background:var(--accent);color:var(--fg-inverse)}
  .jc-save-arrow:hover:not(:disabled){background:var(--accent-600);color:var(--fg-inverse);transform:translateY(-1px)}
  .jc-save-arrow:disabled{background:var(--ink-4);color:var(--fg-inverse);opacity:.58}
  .jc-enrich{height:var(--jc-action-height);flex-shrink:0;display:inline-flex;align-items:center;gap:7px;padding:0 var(--space-4);border-radius:var(--radius-md);
    border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-2);
    font-family:var(--font-sans);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;
    transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .jc-enrich:hover:not(:disabled){background:var(--bg-2);border-color:var(--ink-4);color:var(--ink)}
  .jc-enrich:disabled{background:var(--bg-subtle);border-color:var(--border-default);cursor:not-allowed;color:var(--ink-4)}

  
  
  
  

  /* Popovers (menus des pastilles + « + ») */
  .jc-pop{position:relative}
  .jc-pop-menu{position:absolute;bottom:calc(100% + 8px);z-index:60;background:var(--surface);border:1px solid var(--border-strong);
    border-radius:13px;box-shadow:0 16px 40px -12px color-mix(in srgb,var(--ink) 28.000000000000004%,transparent);padding:6px;min-width:200px;
    animation:jc-pop-in var(--dur-fast) var(--ease-out)}
  .jc-pop-menu.left{left:0}.jc-pop-menu.right{right:0}
  /* Mode `fixed` (sélecteur de date des tâches) : ancré au viewport par JS, il
     échappe à l'overflow:hidden du modal et se rabat au-dessus si l'espace
     manque (retour Landry). Les positions viennent du style inline ; on
     neutralise juste les ancrages CSS, et on borne la largeur au viewport. */
  .jc-pop-menu.fixed{left:auto;right:auto;top:auto;bottom:auto;box-sizing:border-box;max-width:calc(100vw - 20px);overscroll-behavior:contain}
  .jc-pop-menu.fixed[data-jc-pop-scope="composer"]{z-index:100}
  /* Quand le panneau plafonne et défile : onglets Date/Durée épinglés en haut,
     pied Effacer/OK épinglé en bas — toujours visibles. */
  .win-dp-pop > .jc-pop-menu.fixed .win-dp-tabs{position:sticky;top:0;z-index:2;background:var(--surface)}
  .win-dp-pop > .jc-pop-menu.fixed .win-dp-foot{position:sticky;bottom:0;z-index:2;background:var(--surface)}
  /* Sélecteur de date des tâches (début/échéance) : ouvre VERS LE BAS (en-tête du
     détail, pas la barre du journal qui ouvre vers le haut). */
  .win-dp-pop{position:relative;display:inline-flex}
  .win-dp-pop > .jc-pop-menu{top:calc(100% + 8px);bottom:auto}
  .win-dp{display:flex;flex-direction:column}
  .win-dp-quick{display:flex;flex-direction:column;gap:1px}
  .win-dp-quick .jc-menu-item{padding:7px 9px}
  .win-dp-qd{flex:0 0 auto;font-family:var(--font-mono);font-size:11px;color:var(--ink-4);font-variant-numeric:tabular-nums;white-space:nowrap}
  .win-dp-cal{padding:4px 2px 2px}
  .win-dp-remrow .win-dp-remval{flex:0 0 auto;font-size:11.5px;color:var(--ink-3)}
  .win-dp-remrow > svg:last-child{color:var(--ink-4);transition:transform var(--dur-fast) var(--ease-out)}
  .win-dp-remrow.on > svg:last-child{transform:rotate(180deg)}
  .win-dp-remlist{display:flex;flex-direction:column;gap:1px;padding:2px 0 0}
  .win-dp-clear{color:var(--bad)}
  .win-dp-clear .jc-menu-ic{color:var(--bad)}
  /* Onglets Date / Durée (TickTick) + champs Début/Fin + pied Effacer/OK. */
  .win-dp-tabs{display:flex;gap:2px;background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:2px;margin:2px 2px 8px}
  .win-dp-tabs button{flex:1;border:0;background:transparent;border-radius:8px;padding:6px 10px;font:inherit;font-size:12.5px;font-weight:500;color:var(--ink-3);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
  .win-dp-tabs button:hover{color:var(--ink)}
  .win-dp-tabs button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
  .win-dp-fields{display:flex;flex-direction:column;gap:6px;padding:0 2px 2px}
  .win-dp-field{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--border-soft);background:var(--surface);border-radius:8px;padding:8px 11px;font:inherit;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
  .win-dp-field:hover{border-color:var(--ink-4)}
  .win-dp-field.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
  .win-dp-field-l{font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4)}
  .win-dp-field-v{font-size:13px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
  .win-dp-field-v.empty{color:var(--ink-4);font-weight:500}
  .win-dp-field-v.over{color:var(--bad)}
  .win-dp-remsub{font-size:10px;color:var(--ink-4);margin-left:6px;font-weight:500}
  /* Ligne « Heure » (Landry, juin 2026) — une tâche peut être due un après-midi précis. */
  .win-dp-timerow{display:flex;align-items:center;gap:8px;padding:7px 9px}
  .win-dp-time-l{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:var(--ink-2);flex:1 1 auto}
  .win-dp-time-l > svg{color:var(--ink-4)}
  .win-dp-time{border:1px solid var(--border-strong);border-radius:8px;padding:4px 8px;font:inherit;font-size:12.5px;color:var(--ink);background:var(--surface);outline:none;font-variant-numeric:tabular-nums}
  .win-dp-time:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
  .win-dp-time-x{flex:0 0 auto;width:24px;height:24px;padding:0;border:0;background:transparent;border-radius:6px;display:grid;place-items:center;color:var(--ink-4);cursor:pointer}
  .win-dp-time-x:hover{background:var(--bg-2);color:var(--bad)}
  .win-dp-time-add{display:inline-flex;align-items:center;gap:5px;border:1px dashed var(--border-strong);background:transparent;border-radius:8px;padding:5px 10px;font:inherit;font-size:12px;color:var(--ink-3);cursor:pointer}
  .win-dp-time-add:hover{border-color:var(--ink-4);color:var(--ink);background:var(--bg-2)}
  .win-dp-foot{display:flex;gap:8px;padding:9px 2px 2px;margin-top:4px;border-top:1px solid var(--border)}
  .win-dp-eff{flex:1;border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;padding:8px;font:inherit;font-size:12.5px;font-weight:500;color:var(--ink-2);cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}
  .win-dp-eff:hover{background:var(--bg-2)}
  .win-dp-ok{flex:1;border:0;background:var(--accent);color:var(--fg-inverse);border-radius:8px;padding:8px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:filter var(--dur-fast) var(--ease-out)}
  .win-dp-ok:hover{filter:brightness(1.06)}
  @keyframes jc-pop-in{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
  .jc-sub .jc-pop-menu{bottom:auto;top:-6px;left:calc(100% + 6px)}
  .jc-menu-head{font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);padding:6px 9px 7px}
  .jc-menu-sep{height:1px;background:var(--border);margin:5px 6px}
  .jc-menu-scroll{max-height:240px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}
  .jc-menu-empty{padding:10px 11px 12px;font-size:12px;line-height:1.45;color:var(--ink-3)}
  .jc-menu-item{display:flex;align-items:center;gap:9px;width:100%;border:0;background:transparent;border-radius:8px;
    padding:8px 9px;font-size:13px;color:var(--ink);cursor:pointer;text-align:left;transition:background var(--dur-fast) var(--ease-out)}
  .jc-menu-item:hover{background:var(--bg-2)}
  .jc-menu-item.sel{background:var(--accent-soft);color:var(--accent-ink);font-weight:500}
  .jc-menu-item.sel > svg:last-child{color:var(--accent)}
  .jc-menu-item > svg:last-child{margin-left:auto;color:var(--ink-4)}
  .jc-menu-ic{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;background:var(--bg-2);color:var(--ink-2);flex-shrink:0}
  .jc-menu-item:hover .jc-menu-ic{background:var(--surface)}
  .jc-menu-carnet-logo,.jc-menu-item:hover .jc-menu-carnet-logo{background:transparent}
  .jc-menu-carnet-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .jc-menu-hint{margin-left:auto;font-size:11px;color:var(--ink-4)}
  .jc-menu-stack{display:flex;flex-direction:column;gap:1px;min-width:0}
  .jc-menu-stack b{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .jc-menu-stack span{font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .jc-menu-logo{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:var(--bg-2);border:1px solid var(--border);font-size:11px;font-weight:700;color:var(--ink-2);flex-shrink:0}
  .jc-menu-av{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:var(--fg-inverse);font-size:10.5px;font-weight:700;flex-shrink:0}

  /* ── Conversation plein écran ── */
  
  @keyframes jc-fade{from{opacity:0}to{opacity:1}}
  
  
  /* Deux colonnes : discussion (gauche) + synthèse (droite) */
  
  .jc-main{flex:1;min-width:0;display:flex;flex-direction:column}
  .jc-aside{width:320px;flex-shrink:0;border-left:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;min-height:0}
  .jc-aside-head{display:flex;align-items:flex-start;gap:10px;padding:16px 16px 12px;border-bottom:1px solid var(--border)}
  .jc-aside-titles{display:flex;flex-direction:column;gap:2px;min-width:0}
  .jc-aside-titles strong{font-size:13.5px;font-weight:600;color:var(--ink)}
  .jc-aside-titles span{font-size:11.5px;color:var(--ink-4);line-height:1.4}
  .jc-ava.sm{width:26px;height:26px;border-radius:8px}
  .jc-aside-scroll{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:16px}
  .jc-aside-sec{display:flex;flex-direction:column;gap:8px}
  .jc-aside-t{font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
  .jc-aside-prose{margin:0;font-size:12.5px;line-height:1.55;color:var(--ink-2);text-wrap:pretty}
  
  
  @media (max-width:820px){.jc-aside{display:none}}
  @keyframes jc-modal-in{from{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:none}}
  
  
  
  
  
  
  
  
  
  
  

  .jc-thread{flex:1;overflow-y:auto;padding:22px 22px 8px;display:flex;flex-direction:column;gap:16px;scroll-behavior:smooth}
  .jc-msg{display:flex;gap:11px;max-width:100%;animation:jc-msg-in var(--dur-base) var(--ease-out)}
  @keyframes jc-msg-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  .jc-msg.user{justify-content:flex-end}
  .jc-msg.user .jc-bubble{background:var(--ink);color:var(--fg-inverse);border-radius:15px 15px 4px 15px;max-width:78%}
  .jc-ava{width:30px;height:30px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:8px;
    background:var(--accent-soft);color:var(--accent);align-self:flex-start;margin-top:2px}
  .jc-ava.lg{width:34px;height:34px;border-radius:10px}
  .jc-coach-col{display:flex;flex-direction:column;gap:9px;min-width:0;max-width:84%}
  .jc-bubble{background:var(--surface);border:1px solid var(--border);border-radius:4px 15px 15px 15px;
    padding:11px 14px;font-size:14px;line-height:1.5;color:var(--ink);text-wrap:pretty}
  
  .jc-msg.user .jc-chip.sm{background:color-mix(in srgb,var(--fg-inverse) 14.000000000000002%,transparent);border-color:transparent;color:color-mix(in srgb,var(--fg-inverse) 92%,transparent)}
  .jc-msg.user .jc-chip.sm > svg{color:color-mix(in srgb,var(--fg-inverse) 70%,transparent)}

  .jc-typing{display:inline-flex;gap:4px;align-items:center;padding:14px}
  /* Pulsation d'opacité — le bounce (translateY) est banni par regle-animation-fluide. */
  .jc-typing span{width:7px;height:7px;border-radius:50%;background:var(--ink-4);animation:jc-pulse 1.2s var(--ease-out) infinite}
  .jc-typing span:nth-child(2){animation-delay:.16s}.jc-typing span:nth-child(3){animation-delay:.32s}
  @keyframes jc-pulse{0%,60%,100%{opacity:.4}30%{opacity:1}}

  /* Carte synthèse STAR */
  
  
  
  
  .jc-star{display:flex;flex-direction:column;gap:1px;border-radius:10px;overflow:hidden;border:1px solid var(--border)}
  .jc-srow{display:grid;grid-template-columns:88px 1fr;gap:10px;padding:9px 12px;background:var(--bg)}
  .jc-srow + .jc-srow{border-top:1px solid var(--border)}
  .jc-sk{font-size:11px;font-weight:600;color:var(--ink-3);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.03em;padding-top:1px}
  .jc-sv{font-size:13px;color:var(--ink);line-height:1.45;text-wrap:pretty}
  .jc-srow.soft .jc-sv,.jc-srow.ask .jc-sv{color:var(--ink-4);font-style:normal}
  .jc-srow.ask{background:var(--warning-50)}
  .jc-srow.ask .jc-sk{color:var(--warning-700)}
  

  /* Questions à choix rapide (multi-sélection) */
  

  /* Récapitulatif */
  .jc-recap{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:15px 16px;width:100%}
  .jc-recap-head{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--good);margin-bottom:6px}
  .jc-recap-lead{font-size:12.5px;color:var(--ink-3);line-height:1.5;margin:0 0 13px;text-wrap:pretty}
  .jc-recap-lead b{color:var(--ink-2);font-weight:600}
  .jc-recap-block{margin-bottom:14px}
  .jc-recap-bt{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--ink-2);margin-bottom:8px}
  .jc-recap-bt > svg{color:var(--ink-3)}
  .jc-recap-opt{margin-left:6px;font-size:10.5px;font-weight:500;color:var(--ink-4);font-family:var(--font-mono)}
  .jc-recap-title{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:6px}
  .jc-recap-entrytext{margin:0 0 8px;font-size:13px;line-height:1.5;color:var(--ink-2);text-wrap:pretty}
  .jc-recap-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--ink-3)}
  .jc-recap-meta b{color:var(--ink-2);font-weight:600;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;margin-right:4px}
  .jc-recap-tasks{display:flex;flex-direction:column;gap:6px}
  .jc-recap-task{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink-2);cursor:pointer;
    padding:8px 10px;border:1px solid var(--border-soft);border-radius:8px;transition:all var(--dur-fast) var(--ease-out)}
  .jc-recap-task.on{border-color:var(--ink-4);background:var(--bg-2);color:var(--ink)}
  .jc-recap-task input{position:absolute;opacity:0;pointer-events:none}
  .jc-recap-check{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:6px;
    border:1.5px solid var(--ink-4);color:transparent;flex-shrink:0;transition:all var(--dur-fast) var(--ease-out)}
  .jc-recap-task.on .jc-recap-check{background:var(--ink);border-color:var(--ink);color:var(--fg-inverse)}
  
  .jc-recap-skip{border:0;background:transparent;color:var(--ink-3);font-size:12.5px;cursor:pointer;padding:6px 4px}
  .jc-recap-skip:hover{color:var(--ink)}

  /* Clôture douce + pistes de continuation (l'entrée est déjà enregistrée) */
  .jc-done{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:15px 16px;width:100%}
  .jc-done-head{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--good);margin-bottom:6px}
  .jc-done-lead{font-size:12.5px;color:var(--ink-2);line-height:1.5;margin:0 0 13px;text-wrap:pretty}
  .jc-done-pl{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}
  
  .jc-piste{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;
    padding:7px 11px;font-size:12.5px;color:var(--ink-2);cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}
  .jc-piste:hover:not(:disabled){border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}
  .jc-piste:disabled{opacity:.5;cursor:default}
  .jc-piste > svg{color:var(--ink-4)}
  .jc-piste:hover:not(:disabled) > svg{color:var(--accent)}

  
  .jc-bar.mini{box-shadow:none;border-radius:14px;padding:8px 8px 6px}
  .jc-bar.mini.active{box-shadow:0 0 0 3px var(--accent-soft)}
  .jc-bar.mini .jc-input{font-size:14px}
  .jc-bar.mini .jc-controls{padding:4px 2px 0}

/* ── Boutons de réglages déplacés au CENTRE du footer de l'éditeur ──────────────
   (le header ne garde que « Sections du CV » côté droit). Footer en 3 colonnes :
   récap IA à gauche · réglages centrés · info à droite. Comme les réglages sont
   désormais en bas, le menu de téléchargement et les tooltips s'ouvrent VERS LE HAUT. */
.cve-ft{display:grid;grid-template-columns:1fr auto 1fr;gap:10px}
.cve-ft-offer{justify-self:start}
.cve-ft-tools{justify-self:center;display:inline-flex;align-items:center;justify-content:center;width:560px;gap:6px}
.cve-ft-info{justify-self:end;margin-left:0;white-space:nowrap}
.cve-ft .cve-dlwrap{position:relative}
.cve-ft .cve-dlmenu{top:auto;bottom:calc(100% + 6px)}
.cve-ft-action{padding-inline:10px}
.cve-ft-action span,.cve-editmode span{white-space:nowrap}
.cve-ft-tools .cve-zoom{padding:2px 4px 2px 7px;gap:2px}
.cve-ft-tools .cve-zoom .cve-zoom-lbl{min-width:auto;margin-right:3px;font-family:var(--font-sans,inherit);font-size:12px;font-weight:600;color:var(--ink-2);font-variant-numeric:normal}
/* trait vertical qui sépare le groupe « modes » (sélection · édition · aperçu)
   des contrôles de vue (zoom · ajuster · télécharger) */
.cve-ft-sep{flex:0 0 auto;width:1px;height:22px;background:var(--border-strong,#D7DCE2);margin:0 4px;border-radius:1px}
/* un tooltip stylé sur CHAQUE bouton du footer (icônes ET boutons de zoom),
   ouvert vers le HAUT puisque la barre est en bas de l'éditeur */
.cve-ft-tools .cve-zoom{overflow:visible}
.cve-ft-tools button[title]{position:relative}
.cve-ft-tools button[title]:hover::after{content:attr(title);position:absolute;top:auto;right:auto;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);background:var(--ink);color:var(--sidebar-fg-strong);font-size:11px;font-weight:500;line-height:1.3;padding:5px 9px;border-radius:6px;white-space:nowrap;pointer-events:none;z-index:60;box-shadow:0 4px 14px color-mix(in srgb,var(--ink) 22%,transparent)}
/* Télécharger isolé en bas à DROITE, bouton noir (action de sortie principale) */
.cve-ft-dlwrap{justify-self:end}
.cve-ft-dl{display:inline-flex;align-items:center;gap:7px;border:0;background:var(--ink);color:var(--fg-inverse);font:inherit;font-size:12px;font-weight:600;padding:8px 14px;border-radius:8px;cursor:pointer;white-space:nowrap;transition:filter var(--dur-fast,.15s) var(--ease-out,ease)}
.cve-ft-dl:hover{filter:brightness(1.55)}
.cve-ft-dl svg{flex:0 0 auto}
/* « Sections de la lettre » : affordance de sélection sur le document lettre
   (les règles équivalentes du CV sont scopées .cve-cv) */
.lte-letter .cve-secsel{cursor:pointer;position:relative;transition:outline-color var(--dur-fast,.15s) var(--ease-out,ease)}
.lte-letter .cve-secsel:hover{outline:2.5px solid var(--accent,#3b66b0);outline-offset:4px;border-radius:6px}
.lte-letter .cve-secsel.secactive{outline:3px solid var(--accent);outline-offset:4px;border-radius:6px;box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 18%,transparent)}
.lte-letter .cve-secsel:hover::after{content:attr(data-seclabel);position:absolute;left:0;top:0;transform:translateY(-100%);margin-top:-6px;background:var(--accent,#3b66b0);color:#fff;font-size:10px;font-weight:600;line-height:1;padding:3px 7px;border-radius:6px;white-space:nowrap;pointer-events:none;z-index:9}
/* Mode Sélection actif : indice persistant « ces blocs sont sélectionnables »
   (miroir du CV .cve-cv.selmode — cohérence entre les deux éditeurs) */
/* Miroir CV : la cible est le document entier → un seul contour, tout autour. */
.lte-letter.selmode .cve-secsel{outline:1px dashed color-mix(in srgb,var(--accent) 30%,transparent);outline-offset:4px;border-radius:6px}
.lte-letter.selmode .cve-secsel:hover{outline:2.5px solid var(--accent,#3b66b0);outline-offset:4px}
/* Mode Édition (crayon) : le cadre pointillé du CV était rogné par .cve-cvwrap
   (overflow:hidden). On le laisse déborder en édition, comme la lettre. */
.cve-editdoc.editing .cve-cvwrap{overflow:visible}
@media (max-width:760px){.cve-ft-info{display:none}}

/* Footer robuste au zoom / aux fenêtres étroites : les OUTILS (icônes) restent
   centrés et de taille fixe ; les libellés latéraux « L'offre… » et « Télécharger »
   se replient en icônes seules quand la place manque → jamais de débordement, jamais
   de bouton coupé ni d'icônes décentrées. (Le footer fait toute la largeur de
   l'éditeur, donc on se cale sur la largeur de fenêtre.) */
.cve-ft-tools{flex:0 0 auto}
.cve-crumb-return{width:30px;height:30px;justify-content:center;padding:0;flex:0 0 auto}
.cve-crumb-return .cve-crumb-lbl{display:none}
.cve-ft-offer .cve-ft-lbl,.cve-ft-dl .cve-ft-lbl{white-space:nowrap}
/* SIH-68 · UN SEUL volet, à droite (le volet gauche n'existe plus). Sa largeur se déduit du
   DOCUMENT, pas d'un pourcentage : le CV garde les 854 px qu'il faut à une page A4 entière à
   100 % (794 px + les marges du canevas), le volet prend le reste, borné entre 520 et 620 px.
   → 1374 px d'éditeur et au-delà : volet 620, tout le surplus va au document. En dessous, le
   volet tient son plancher de 520 px — toujours plus large que ce qu'il faisait avant — et
   c'est le document qui cède, récupérable par « Ajuster la largeur ». Exprimé en FLEXBOX et non en unités de conteneur (`cqi`) à dessein : un
   `container-type` sur `.cve-body2` créerait du containment et rattacherait les menus
   `.cve-secopt-menu.fixed` du volet à ce bloc au lieu du viewport. Le flex mesure en plus la
   place RÉELLE, quelle que soit la largeur du rail de l'application. */
.cve-body2 .cve-side{width:auto;flex:0 1 620px;min-width:520px}
/* Le document réclame 854 px de base et récupère TOUT le surplus (flex-grow). Quand la place
   manque, les deux cèdent ensemble jusqu'à ce que le volet touche son plancher de 520 px, puis
   le document absorbe le reste — `min-width:0` garantit qu'on ne déborde JAMAIS à l'horizontale,
   quelle que soit la largeur de fenêtre ou l'état du rail de l'application. Le zoom « Ajuster la
   largeur » reste la porte de sortie du client sur les petits écrans. */
.cve-optA .cve-canvas-wrap{flex:1 1 854px;min-width:0}
/* LISIBILITÉ DES RAILS DE L'ÉDITEUR (retour Landry 2026-07-19, relevé 3 fois : inspecteur droit,
   liste droite, puis rail gauche). Les rails se sont élargis mais texte/contrôles/icônes n'avaient
   pas suivi → texte minuscule + espace gâché. SOURCE UNIQUE = `.cve-body2 .cve-side` (les DEUX rails
   `-l` réglages + `-r` sections, CV ET lettre) plutôt qu'une rustine par côté → tout futur rail/onglet
   hérite (reco cofondateur PATTERN-2 ; évite l'oubli du prochain maillon). JAMAIS `.cve-cv` : le papier
   est un FRÈRE de `.cve-side` dans `.cve-body2`, jamais un descendant → la taille ne peut pas fuir dans
   le rendu (parité écran/PDF + convergence snapshot garanties structurellement, architecte CONFIRMED). */
.cve-body2 .cve-side .cve-midscroll{padding:16px 22px}
.cve-body2 .cve-side .cve-insplbl{font-size:14px}
.cve-body2 .cve-side .cve-flabel,.cve-body2 .cve-side .cve-laylbl{font-size:14px}
.cve-body2 .cve-side .cve-hfield-top .lbl{font-size:14px}
.cve-body2 .cve-side .cve-hfield-val{font-size:14.5px;padding:9px 12px}
.cve-body2 .cve-side .cve-secnote{font-size:13px;line-height:1.55}
.cve-body2 .cve-side .cve-finput,.cve-body2 .cve-side .cve-ftext,.cve-body2 .cve-side .cve-fdate{font-size:14.5px}
.cve-body2 .cve-side .cve-secopt-title{font-size:14.5px}
.cve-body2 .cve-side .cve-seg.sm button{font-size:13px;padding:6px 12px}
.cve-body2 .cve-side .cve-pchip{font-size:13px;padding:5px 12px}
/* Niveau LISTE « Sections du CV » (le menu principal du panneau, rail droit) : lignes plus grandes/
   aérées, texte + compteur plus lisibles, icônes plus grosses ET plus épaisses. */
.cve-body2 .cve-side .cve-secroot{padding:12px 16px;gap:7px}
.cve-body2 .cve-side .cve-secroot-row{padding:15px 16px;font-size:15px;gap:13px;border-radius:13px}
.cve-body2 .cve-side .cve-secroot-row .l,.cve-body2 .cve-side .cve-secroot-row .l b{font-size:15px}
.cve-body2 .cve-side .cve-secroot-row .c{font-size:13.5px}
.cve-body2 .cve-side .cve-secroot-row .ic svg{width:20px;height:20px;stroke-width:2.1}
.cve-body2 .cve-side .cve-secroot-row > svg:last-child{width:19px;height:19px;stroke-width:2.1}
.cve-body2 .cve-side .cve-inspcount{font-size:13.5px}
/* Icônes du panneau plus épaisses/visibles (champs, cartes) */
.cve-body2 .cve-side .cve-hfield-top .ic svg,.cve-body2 .cve-side .cve-inspcard .ic svg{stroke-width:2.1}
/* Bulle d'info ⓘ (point d'interrogation) : trop petite pour se lire (Landry) → agrandie + épaissie.
   Couvre le ⓘ du header de panneau (.cve-bc-hint) ET les ⓘ inline de carte (.sm), les deux rails. */
.cve-body2 .cve-side .cve-midhead-hint{width:32px;height:32px}
.cve-body2 .cve-side .cve-midhead-hint svg{width:19px;height:19px;stroke-width:2.2}
.cve-body2 .cve-side .cve-midhead-hint.sm{width:27px;height:27px}
.cve-body2 .cve-side .cve-midhead-hint.sm svg{width:17px;height:17px}
/* Échelle typographique des SOUS-SECTIONS CV. Les tailles ne vivent plus dans les composants :
   Accroche, Expériences, Formations, Compétences, Outils, Atouts, Langues et Centres d'intérêt
   héritent des mêmes rôles sémantiques. Le scope `.cve-cv-editor` évite d'étendre cette décision
   à l'éditeur de lettre sans validation explicite. */
.cve-cv-editor .cve-side-r{
  --cve-rail-copy:14.5px;
  --cve-rail-subcopy:13px;
  --cve-rail-eyebrow:11.5px;
  --cve-rail-badge:11px;
  --cve-rail-title:15.5px;
}
.cve-cv-editor .cve-side-r .cve-rail-copy{font-size:var(--cve-rail-copy);line-height:1.45}
.cve-cv-editor .cve-side-r .cve-rail-subcopy{font-size:var(--cve-rail-subcopy);line-height:1.45}
.cve-cv-editor .cve-side-r .cve-rail-eyebrow{font-size:var(--cve-rail-eyebrow)}
.cve-cv-editor .cve-side-r .cve-rail-badge{font-size:var(--cve-rail-badge)}
.cve-cv-editor .cve-side-r .cve-rail-action{font-size:var(--cve-rail-subcopy)}
.cve-cv-editor .cve-side-r .cve-rail-action-sm{font-size:var(--cve-rail-eyebrow)}
.cve-cv-editor .cve-side-r .cve-inspcard-id .r{font-size:var(--cve-rail-copy)}
.cve-cv-editor .cve-side-r .cve-inspcard-id .o{font-size:var(--cve-rail-subcopy);line-height:1.4}
.cve-cv-editor .cve-side-r .cve-bulrow .t{font-size:var(--cve-rail-subcopy)}
.cve-cv-editor .cve-side-r .cve-focusinsp-role{font-size:var(--cve-rail-title)}
.cve-cv-editor .cve-side-r .cve-focusinsp-meta{font-size:var(--cve-rail-copy)}
.cve-cv-editor .cve-side-r .cve-focusinsp-when{font-size:var(--cve-rail-subcopy)}
.cve-cv-editor .cve-side-r .cve-focusinsp-bullets .cve-bulrow .t{font-size:var(--cve-rail-copy)}
.cve-cv-editor .cve-side-r .cve-focusinsp-bullets .cve-bulrow .t em{font-size:var(--cve-rail-subcopy)}
.cve-cv-editor .cve-side-r .cve-bul-editin{font-size:var(--cve-rail-copy)}
.cve-cv-editor .cve-side-r .cve-panel-search input{font-size:var(--cve-rail-copy)}
.cve-cv-editor .cve-side-r .cve-focusinsp-act{font-size:var(--cve-rail-subcopy)}
.cve-cv-editor .cve-side-r .cve-insert{font-size:var(--cve-rail-subcopy)}
.cve-cv,.lte-letter,.lte-msgwrap,.lte-emailwrap,.cve-pdfmanual{font-family:var(--doc-font,Calibri,'Segoe UI',Arial,sans-serif);color:var(--doc-ink,var(--ink-2))}
.cve-cvsec::after,.cve-f3-title::after{border-top-color:var(--doc-rule,var(--border-default))}
.cve-foot3{border-color:var(--doc-rule,var(--border-default))}
.lte-lobj span,.lte-lref span,.lte-p,.lte-letter .lte-sign,.lte-email-body,.lte-msg-box{color:var(--doc-ink,var(--ink-2))}
.lte-letter h1,.lte-letter h2,.lte-letter h3,.lte-emailwrap h1,.lte-emailwrap h2,.lte-emailwrap h3{font-family:var(--doc-title-font,var(--doc-font,inherit));color:var(--doc-heading,var(--doc-ink,var(--ink)))}
.cve-exp .when,.cve-edu .when{font-family:var(--doc-font,Calibri,'Segoe UI',Arial,sans-serif)}
.cve-fontgrp{padding:8px 4px 3px;font-size:11px;letter-spacing:0;color:var(--ink-4)}
.cve-fontitem{display:flex;align-items:center;gap:9px;width:100%;border:1px solid transparent;background:transparent;border-radius:8px;padding:7px 8px;color:var(--ink-2);font:inherit;text-align:left;cursor:pointer}
.cve-fontitem:hover{background:var(--bg-2);border-color:var(--border)}
.cve-fontitem.on{background:var(--accent-soft);border-color:var(--accent-soft-2,var(--accent-soft));color:var(--accent)}
.cve-fontsample{display:grid;place-items:center;flex:0 0 auto;width:46px;height:30px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:15px;font-weight:600;color:var(--ink)}
.cve-fontitem.compact .cve-fontsample{width:68px;font-size:12px;font-weight:500}
.cve-fontmeta{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}
.cve-fontmeta b{font-size:12.5px;font-weight:600;color:var(--ink)}
.cve-fontmeta em{font-style:normal;font-size:11px;color:var(--ink-3)}
.cve-fontitem>svg{flex:0 0 auto;color:var(--accent)}
.cve-fontchoices{display:flex;flex-direction:column;gap:4px}
.cve-themegrid{display:flex;flex-direction:column;gap:3px}
.cve-themeitem{display:flex;align-items:center;gap:9px;width:100%;border:1px solid transparent;background:transparent;border-radius:8px;padding:7px 8px;color:var(--ink-2);font:inherit;text-align:left;cursor:pointer}
.cve-themeitem:hover{background:var(--bg-2);border-color:var(--border)}
.cve-themeitem.on{background:var(--accent-soft);border-color:var(--accent-soft-2,var(--accent-soft));color:var(--accent)}
.cve-themeswatch{width:30px;height:30px;flex:0 0 auto;border-radius:8px;background:var(--sw);border:1px solid var(--border-strong);box-shadow:inset 0 0 0 5px #fff}
.cve-themeitem>svg{flex:0 0 auto;color:var(--accent)}
@media (max-width:720px){
  .cve-ft{gap:6px}
  .cve-ft-offer .cve-ft-lbl,.cve-ft-offer .cve-ft-ext{display:none}
  .cve-ft-offer{padding:6px 9px}
  .cve-ft-action span,.cve-ft-tools .cve-zoom .cve-zoom-lbl{display:none}
  .cve-ft-action{padding-inline:8px}
  .cve-ft-tools{width:auto}
  .cve-body2 .cve-side{width:min(92vw,420px);flex-basis:min(92vw,420px);min-width:0}
}
@media (max-width:560px){
  .cve-ft-dl .cve-ft-lbl{display:none}
  .cve-ft-dl{padding:8px 11px}
}

/* Zoom du document : le wrapper extérieur de ZoomViewport. À 100 % il est neutre
   (aucun style inline) ; quand on zoome, il reçoit width/height = taille réelle × zoom
   (réservation de la zone défilable) et l'intérieur passe en transform: scale(). */
.lte-zoomouter{position:relative;flex:0 0 auto;min-width:0}
.lte-zoomouter>.lte-zoomwrap{will-change:transform}

/* ===== Échanges pro · croquis reconstruit ===== */
.ep-page{height:100%;min-height:0;display:flex;flex-direction:column;background:var(--bg,#F6F7F9);color:var(--ink,#171A1F);overflow:hidden}
.ep-appbar{min-height:56px;flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:8px 16px 8px 18px;border-bottom:1px solid var(--border,#DDE2EA);background:var(--surface,#fff);box-shadow:var(--shadow-xs,0 1px 2px color-mix(in srgb,var(--ink) 3%,transparent));z-index:4}
.ep-crumbs{display:flex;align-items:center;gap:7px;min-width:0}
.ep-crumb{height:31px;display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--ink-3,#667085);font:inherit;font-size:13px;font-weight:620;padding:0 6px;border-radius:8px;min-width:0;cursor:pointer}
.ep-crumb:hover{background:var(--bg-2,#F1F3F6);color:var(--ink,#171A1F)}
.ep-crumb.cur{height:38px;max-width:520px;color:var(--ink,#171A1F);font-weight:700;cursor:default}
.ep-crumb span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ep-crumb-leaf{display:flex;min-width:0;flex-direction:column;gap:1px;line-height:1.15}
.ep-crumb-title{font-size:13px;color:var(--ink,#171A1F)}
.ep-crumb-sub{font-size:10.8px;font-weight:560;color:var(--ink-4,#8A94A6)}
.ep-crumb-sep{color:var(--ink-4,#8A94A6);flex:0 0 auto}
.ep-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:max-content}
.ep-new{height:32px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--border,#DDE2EA);border-radius:8px;background:var(--surface,#fff);color:var(--ink-2,#303642);font:inherit;font-size:12.5px;font-weight:650;cursor:pointer;white-space:nowrap}
.ep-new{background:var(--accent,#3B66B0);border-color:var(--accent,#3B66B0);color:var(--fg-inverse);padding:0 13px}

.ep-new:hover{filter:brightness(.97)}
.ep-grid{position:relative;flex:1 1 auto;height:auto;min-height:0;display:block;overflow:hidden}
.ep-doc-tools{position:absolute;top:14px;right:16px;z-index:11;display:inline-flex;align-items:center;gap:6px}
.ep-doc-tool,.ep-share-btn{height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--border,#DDE2EA);border-radius:10px;background:var(--surface,#fff);box-shadow:var(--shadow-xs,0 1px 2px color-mix(in srgb,var(--ink) 3%,transparent));color:var(--ink-2,#303642);font:inherit;font-size:12.5px;font-weight:650;padding:0 11px;cursor:pointer;white-space:nowrap}
.ep-doc-tool.icon,.ep-share-btn.icon{width:34px;padding:0}
.ep-doc-tool.on{background:var(--accent-soft,#EDF3FF);border-color:var(--accent-soft-2,#C8D9F8);color:var(--accent,#3B66B0)}
.ep-doc-tool:hover,.ep-share-btn:hover{background:var(--bg-2,#F1F3F6);border-color:var(--border-strong,#CBD3DF)}
.ep-autosave{height:28px;display:inline-flex;align-items:center;border:1px solid var(--border,#DDE2EA);border-radius:999px;background:color-mix(in srgb,var(--surface) 92%,transparent);padding:0 10px;color:var(--ink-4,#8A94A6);font-size:11px;font-weight:650;white-space:nowrap}
.ep-rail-drawer{position:absolute;top:60px;bottom:14px;width:300px;z-index:10;opacity:0;pointer-events:none;transition:opacity .16s var(--ease-out,cubic-bezier(.2,.8,.2,1)),transform .16s var(--ease-out,cubic-bezier(.2,.8,.2,1))}
.ep-rail-drawer.evidence{right:14px;width:330px;transform:translateX(10px)}
.ep-rail-drawer.utility{right:14px;width:286px;transform:translateX(10px)}
.ep-rail-drawer.open{opacity:1;pointer-events:auto;transform:translateX(0)}
.ep-rail-drawer .ep-rail{height:100%;border:1px solid var(--border,#DDE2EA);border-radius:13px;box-shadow:var(--shadow-lg,0 16px 40px color-mix(in srgb,var(--ink) 14.000000000000002%,transparent));overflow:hidden}
.ep-evidence-panel{height:100%;display:flex;flex-direction:column;border:1px solid var(--border,#DDE2EA);border-radius:13px;background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:var(--shadow-lg,0 16px 40px color-mix(in srgb,var(--ink) 14.000000000000002%,transparent));overflow:hidden}
.ep-evidence-head{height:48px;display:grid;grid-template-columns:minmax(0,1fr) 32px;align-items:center;gap:8px;padding:7px 8px 7px 10px;border-bottom:1px solid var(--border,#DDE2EA);background:var(--surface,#fff)}
.ep-evidence-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;border:1px solid var(--border,#DDE2EA);border-radius:8px;background:var(--bg-2,#F1F3F6);padding:3px}
.ep-evidence-tabs button{height:28px;border:0;border-radius:8px;background:transparent;color:var(--ink-3,#667085);font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.ep-evidence-tabs button.on{background:var(--surface,#fff);color:var(--accent,#3B66B0);box-shadow:var(--shadow-xs,0 1px 2px color-mix(in srgb,var(--ink) 3%,transparent))}
.ep-evidence-body{flex:1;min-height:0;overflow:hidden}
.ep-evidence-view{height:100%;min-height:0}
.ep-evidence-view[hidden]{display:none}
.ep-evidence-panel .ep-rail{height:100%;border:0;border-radius:0;box-shadow:none;background:transparent}
.ep-evidence-panel .ep-rail-head{display:none}
.ep-utility-panel{height:100%;display:flex;flex-direction:column;gap:16px;border:1px solid var(--border,#DDE2EA);border-radius:13px;background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:var(--shadow-lg,0 16px 40px color-mix(in srgb,var(--ink) 14.000000000000002%,transparent));padding:15px;overflow:auto}
.ep-utility-panel header{padding-bottom:10px;border-bottom:1px solid var(--border,#DDE2EA)}
.ep-utility-panel h2{margin:0;font-size:14px;line-height:1.25;font-weight:760;color:var(--ink,#171A1F)}
.ep-utility-panel p{margin:4px 0 0;font-size:11.5px;line-height:1.45;color:var(--ink-4,#8A94A6)}
.ep-utility-panel section{display:flex;flex-direction:column;gap:8px}
.ep-utility-panel h3{margin:0;font-size:11.5px;line-height:1.25;font-weight:760;color:var(--ink-3,#667085)}
.ep-segment{display:grid;grid-template-columns:1fr 1fr;gap:4px;border:1px solid var(--border,#DDE2EA);border-radius:10px;background:var(--bg-2,#F1F3F6);padding:3px}
.ep-segment button{height:30px;border:0;border-radius:8px;background:transparent;color:var(--ink-3,#667085);font:inherit;font-size:12px;font-weight:680;cursor:pointer}
.ep-segment button.on{background:var(--surface,#fff);color:var(--ink,#171A1F);box-shadow:var(--shadow-xs,0 1px 2px color-mix(in srgb,var(--ink) 3%,transparent))}
.ep-option-row{min-height:36px;display:flex;align-items:center;gap:9px;width:100%;border:1px solid var(--border,#DDE2EA);border-radius:8px;background:var(--surface,#fff);color:var(--ink-2,#303642);font:inherit;font-size:12.5px;font-weight:650;text-align:left;padding:0 10px;cursor:pointer}
.ep-option-row.on{border-color:var(--accent-soft-2,#C8D9F8);background:var(--accent-soft,#EDF3FF);color:var(--accent,#3B66B0)}
.ep-option-row:hover{background:var(--bg-2,#F1F3F6);border-color:var(--border-strong,#CBD3DF)}
.ep-canvas-theme-list{display:flex;flex-direction:column;gap:6px}
.ep-canvas-theme{min-height:38px;display:flex;align-items:center;gap:9px;width:100%;border:1px solid var(--border,#DDE2EA);border-radius:8px;background:var(--surface,#fff);color:var(--ink-2,#303642);font:inherit;font-size:12.5px;font-weight:650;text-align:left;padding:0 10px;cursor:pointer}
.ep-canvas-theme:hover{background:var(--bg-2,#F1F3F6);border-color:var(--border-strong,#CBD3DF)}
.ep-canvas-theme.on{border-color:var(--accent-soft-2,#C8D9F8);background:var(--accent-soft,#EDF3FF);color:var(--accent,#3B66B0)}
.ep-canvas-theme svg{margin-left:auto;color:currentColor;flex:0 0 auto}
.ep-canvas-swatch{width:24px;height:24px;flex:0 0 auto;border-radius:8px;border:1px solid var(--border-strong,#CBD3DF);background:var(--sw);box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--surface) 88%,transparent)}
.ep-rail{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--surface,#fff)}
.ep-facts,.ep-side{border:0}
.ep-rail-head{height:58px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:13px 13px 9px;border-bottom:1px solid var(--border,#DDE2EA)}
.ep-rail-head h2{margin:0;font-size:13px;line-height:1.25;font-weight:760;color:var(--ink,#171A1F)}
.ep-rail-head span,.ep-rail-head p{display:block;margin:2px 0 0;font-size:11px;color:var(--ink-4,#8A94A6)}
.ep-icon-static{width:27px;height:27px;display:grid;place-items:center;border:1px solid var(--border,#DDE2EA);border-radius:8px;color:var(--ink-4,#8A94A6);background:var(--surface,#fff)}
.ep-fact-scroll{flex:1;min-height:0;overflow:auto;padding:9px 10px 12px}
.ep-fact-group{border-bottom:1px solid var(--border,#DDE2EA);padding:7px 0 9px}
.ep-fact-group:last-child{border-bottom:0}
.ep-fact-group header{height:24px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--ink,#171A1F)}
.ep-fact-group header span{font-size:12px;font-weight:760}
.ep-fact-group header svg{color:var(--ink-4,#8A94A6)}
.ep-fact{width:100%;display:flex;align-items:flex-start;gap:7px;border:0;border-radius:8px;background:transparent;padding:6px 5px;text-align:left;color:var(--ink,#171A1F);font:inherit;cursor:pointer}
.ep-fact:hover{background:var(--bg-2,#F1F3F6)}
.ep-fact-text{display:flex;min-width:0;flex-direction:column;gap:2px}
.ep-fact-text b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:11.8px;line-height:1.25;font-weight:690;color:var(--ink,#171A1F)}
.ep-fact-text small{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;font-size:10.7px;line-height:1.25;color:var(--ink-4,#8A94A6)}
.ep-check{width:15px;height:15px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--border-strong,#CBD3DF);border-radius:3px;background:var(--surface,#fff);color:var(--accent,#3B66B0);margin-top:1px}
.ep-check.checked{background:var(--accent,#3B66B0);border-color:var(--accent,#3B66B0);color:var(--fg-inverse)}
.ep-empty-line{border:1px dashed var(--border,#DDE2EA);border-radius:8px;background:var(--bg-2,#F1F3F6);padding:8px;font-size:11.5px;color:var(--ink-4,#8A94A6)}
.ep-facts-foot{min-height:44px;display:flex;align-items:center;gap:9px;padding:8px 12px;border-top:1px solid var(--border,#DDE2EA);background:var(--surface,#fff)}
.ep-facts-foot button{height:28px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border,#DDE2EA);border-radius:8px;background:var(--surface,#fff);padding:0 8px;color:var(--ink-3,#667085);font:inherit;font-size:11.5px;font-weight:650;cursor:pointer}
.ep-facts-foot button:hover{background:var(--bg-2,#F1F3F6)}
.ep-facts-foot strong{margin-left:auto;font-size:11.5px;color:var(--ink-3,#667085);font-weight:700}
.ep-stage{position:absolute;inset:0;min-width:0;min-height:0;display:flex;justify-content:center;align-items:stretch;overflow-x:hidden;overflow-y:auto;padding:28px 52px 30px;background:var(--bg,#F6F7F9)}
.ep-canvas-swatch.theme-night,.ep-stage.theme-night{background:color-mix(in srgb,var(--sidebar-bg) 12%,var(--bg))}
.ep-canvas-swatch.theme-sand,.ep-stage.theme-sand{background:color-mix(in srgb,var(--brand-ivory) 58%,var(--bg))}
.ep-canvas-swatch.theme-mist,.ep-stage.theme-mist{background:var(--bg-2)}
.ep-stage.theme-night,.ep-stage.theme-sand,.ep-stage.theme-mist{box-shadow:none}
.ep-paper{width:min(980px,100%);min-height:100%;display:flex;flex-direction:column;border:1px solid var(--border,#DDE2EA);border-radius:10px;background:var(--surface,#fff);box-shadow:var(--shadow-sm,0 1px 2px color-mix(in srgb,var(--ink) 4%,transparent));overflow:hidden}
.ep-stage.theme-night .ep-paper,.ep-stage.theme-sand .ep-paper,.ep-stage.theme-mist .ep-paper{box-shadow:var(--shadow-lg);border-color:var(--border)}
.ep-paper-head{min-height:86px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 34px 15px;border-bottom:1px solid var(--border,#DDE2EA)}
.ep-paper-head h1{margin:0;font-size:22px;line-height:1.2;font-weight:760;letter-spacing:0;color:var(--ink,#171A1F)}
.ep-paper-summary{margin:7px 0 0;max-width:540px;font-size:12.5px;line-height:1.45;color:var(--ink-3,#667085)}
.ep-empty-doc{flex:1;min-height:360px;display:grid;place-items:center;align-content:center;gap:12px;padding:28px 34px;text-align:center;color:var(--ink-3,#667085)}
.ep-empty-doc > span{width:64px;height:74px;display:grid;place-items:center;border:1px dashed var(--border-strong,#CBD3DF);border-radius:10px;background:var(--bg,#F6F7F9);color:var(--ink-4,#8A94A6)}
.ep-empty-doc h2{margin:0;font-size:17px;line-height:1.3;font-weight:700;color:var(--ink,#171A1F)}
.ep-empty-doc p{margin:0;max-width:320px;font-size:13px;line-height:1.5;color:var(--ink-3,#667085)}
.ep-preview-list{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:18px 34px 10px}
.ep-preview-card{border:1px solid var(--border,#DDE2EA);border-radius:8px;background:var(--surface,#fff);padding:12px}
.ep-preview-card header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}
.ep-preview-card h2{margin:0;font-size:13px;line-height:1.25;font-weight:760;color:var(--ink,#171A1F)}
.ep-preview-card header span{height:23px;display:inline-flex;align-items:center;border:1px solid var(--border,#DDE2EA);border-radius:999px;background:var(--bg,#F6F7F9);padding:0 8px;font-size:10.8px;font-weight:650;color:var(--ink-3,#667085);white-space:nowrap}
.ep-lines{display:flex;flex-direction:column;gap:8px;padding-left:4px}
.ep-lines i{height:7px;border-radius:999px;background:var(--border,#DDE2EA);opacity:.9}
.ep-lines i.short{width:64%}
.ep-paper-foot{display:grid;grid-template-columns:minmax(0,1fr) 190px;align-items:end;gap:16px;padding:14px 34px 18px;border-top:1px solid var(--border,#DDE2EA);background:var(--surface,#fff)}
.ep-paper-foot p{margin:0;font-size:12px;line-height:1.45;color:var(--ink-4,#8A94A6)}
.ep-paper-foot button{height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:8px;background:var(--accent,#3B66B0);color:var(--fg-inverse);padding:0 13px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.ep-paper-foot button:disabled{opacity:.46;cursor:not-allowed}
.ep-note .ep-paper-head{min-height:112px;display:block;padding:34px 56px 18px;border-bottom:0}
.ep-note{width:min(1040px,100%);align-self:flex-start;min-height:100%}
.ep-note.wide{width:min(1160px,100%)}
.ep-note .ep-paper-head h1{font-size:24px;line-height:1.15}
.ep-note .ep-paper-summary{margin-top:7px;color:var(--ink-3,#667085)}
.ep-note .ep-paper-head:after{content:"";display:block;height:1px;margin-top:20px;background:var(--border-strong,#CBD3DF)}
.ep-generated-list{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:24px;padding:4px 56px 40px}
.ep-note .ep-generated-list{flex:0 0 auto;min-height:auto;overflow:visible}
.ep-note-section{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:22px;border:0;background:transparent;padding:0;overflow:visible}
.ep-note.hide-sources .ep-note-section{grid-template-columns:minmax(0,1fr) 42px}
.ep-note.hide-sources .ep-note-sources{display:none}
.ep-note-section h2{margin:0 0 9px;font-size:14px;line-height:1.25;font-weight:760;color:var(--accent,#3B66B0)}
.ep-note-content{min-width:0}
.ep-note-body{display:flex;flex-direction:column;gap:8px}
.ep-note-body p{margin:0;font-size:13.4px;line-height:1.7;color:var(--ink-2,#303642)}
.ep-note-section textarea{width:100%;min-height:132px;border:1px solid var(--border,#DDE2EA);border-radius:8px;outline:0;resize:vertical;background:var(--surface,#fff);color:var(--ink-2,#303642);font:inherit;font-size:13.4px;line-height:1.7;padding:11px 12px}
.ep-note-section textarea:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}
.ep-note-margin{position:relative;display:flex;align-items:flex-start;flex-direction:column;gap:10px;padding-top:28px;border-left:1px solid var(--border,#DDE2EA);padding-left:10px}
.ep-note-sources{display:flex;flex-direction:column;gap:6px}
.ep-note-sources small{height:23px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border,#DDE2EA);border-radius:8px;background:var(--surface,#fff);padding:0 8px;font-size:10.5px;font-weight:650;color:var(--ink-3,#667085);white-space:nowrap}
.ep-note-actions{display:inline-flex;align-items:center;gap:5px;opacity:0;transition:opacity .14s var(--ease-out,cubic-bezier(.2,.8,.2,1))}
.ep-note-section:hover .ep-note-actions,.ep-note-section:focus-within .ep-note-actions,.ep-note-section.editing .ep-note-actions{opacity:1}
.ep-note-actions button{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--border,#DDE2EA);border-radius:999px;background:var(--surface,#fff);color:var(--ink-3,#667085);box-shadow:var(--shadow-xs,0 1px 2px color-mix(in srgb,var(--ink) 3%,transparent));cursor:pointer}
.ep-note-actions button:hover{background:var(--bg-2,#F1F3F6);color:var(--ink-2,#303642)}
.ep-note-actions .ep-note-hide{width:26px;height:26px;border-radius:8px;box-shadow:none}
.ep-side-head{height:66px}
.ep-side-section{padding:14px 13px;border-bottom:1px solid var(--border,#DDE2EA)}
.ep-side-section h3{margin:0 0 10px;font-size:12.5px;font-weight:760;color:var(--ink,#171A1F)}
.ep-source-counts{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;margin:0}
.ep-source-counts dt{display:flex;align-items:center;gap:8px;min-width:0;font-size:12px;color:var(--ink-3,#667085)}
.ep-source-counts dd{margin:0;font-size:12px;font-weight:760;color:var(--ink,#171A1F)}
.ep-link{display:inline-flex;margin-top:12px;border:0;background:transparent;color:var(--accent,#3B66B0);font:inherit;font-size:11.5px;font-weight:700;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.ep-source-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.ep-source-list span{font-size:11.5px;line-height:1.3;color:var(--ink-3,#667085)}
.ep-side-note{margin:10px 0 0;font-size:11.8px;line-height:1.45;color:var(--ink-3,#667085)}
.ep-setup-summary .ep-source-counts dd{max-width:128px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ep-missing{margin:0;padding:0 0 0 14px;display:flex;flex-direction:column;gap:8px}
.ep-missing li{font-size:12px;line-height:1.4;color:var(--ink-3,#667085)}
.ep-source-total{margin-top:auto;padding:10px 13px;font-size:11px;color:var(--ink-4,#8A94A6)}
.ep-library{flex:1;min-height:0;overflow:auto;background:var(--bg,#F6F7F9);padding:30px 30px 44px}
.ep-library-inner{max-width:960px;margin:0 auto}
.ep-library-root{max-width:720px}
.ep-library-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:22px}
.ep-library-head h1{margin:0;font-size:22px;line-height:1.2;font-weight:760;color:var(--ink,#171A1F)}
.ep-library-head p{margin:6px 0 0;font-size:13px;line-height:1.45;color:var(--ink-3,#667085)}
.ep-library-trail{display:flex;align-items:center;gap:6px;margin-bottom:8px;color:var(--ink-4,#8A94A6);font-size:12px;font-weight:650}
.ep-library-trail button{border:0;background:transparent;color:var(--ink-3,#667085);font:inherit;font-size:12px;font-weight:650;padding:0;cursor:pointer}
.ep-library-trail button:hover{color:var(--ink,#171A1F);text-decoration:underline;text-underline-offset:3px}
.ep-folder-grid{display:grid;grid-template-columns:1fr;gap:12px}
.ep-folder-card{display:flex;align-items:center;gap:16px;width:100%;min-height:88px;border:1px solid var(--border,#DDE2EA);border-radius:13px;background:var(--surface,#fff);padding:16px 17px;text-align:left;color:var(--ink,#171A1F);font:inherit;cursor:pointer;box-shadow:var(--shadow-xs);transition:border-color var(--dur-fast,.15s) var(--ease-out,ease),box-shadow var(--dur-fast,.15s) var(--ease-out,ease)}
.ep-folder-card:hover{border-color:var(--border-strong,#CBD3DF);box-shadow:var(--shadow-sm)}
.ep-folder-ico{width:44px;height:44px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--border,#DDE2EA);border-radius:10px;background:var(--bg-2,#F1F3F6);color:var(--ink-3,#667085)}
.ep-folder-main{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px}
.ep-folder-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:740;color:var(--ink,#171A1F)}
.ep-folder-main small{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;line-height:1.35;color:var(--ink-3,#667085)}
.ep-folder-main em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal;font-size:11.5px;color:var(--ink-4,#8A94A6)}
.ep-doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px;max-width:920px;margin:0 auto}
.ep-doc-card{display:flex;align-items:center;gap:14px;width:100%;min-height:86px;border:1px solid var(--border,#DDE2EA);border-radius:13px;background:var(--surface,#fff);padding:14px 15px;text-align:left;color:var(--ink,#171A1F);font:inherit;cursor:pointer;box-shadow:var(--shadow-xs);transition:border-color var(--dur-fast,.15s) var(--ease-out,ease),box-shadow var(--dur-fast,.15s) var(--ease-out,ease)}
.ep-doc-card:hover{border-color:var(--border-strong,#CBD3DF);box-shadow:var(--shadow-sm)}
.ep-doc-ico{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--border,#DDE2EA);border-radius:10px;background:var(--bg-2,#F1F3F6);color:var(--accent,#3B66B0)}
.ep-doc-main{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.ep-doc-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:720;color:var(--ink,#171A1F)}
.ep-doc-main small,.ep-doc-main em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal;font-size:12px;color:var(--ink-3,#667085)}
.ep-doc-main em{font-size:11.5px;color:var(--ink-4,#8A94A6)}
.ep-libempty{min-height:360px;display:grid;place-items:center;align-content:center;gap:10px;border:1px dashed var(--border,#DDE2EA);border-radius:14px;background:var(--surface,#fff);text-align:center;color:var(--ink-3,#667085)}
.ep-libempty span{width:56px;height:56px;display:grid;place-items:center;border:1px solid var(--border,#DDE2EA);border-radius:14px;background:var(--bg-2,#F1F3F6);color:var(--ink-4,#8A94A6)}
.ep-libempty h2{margin:0;font-size:17px;color:var(--ink,#171A1F)}
.ep-libempty p{margin:0;font-size:13px}
.ep-libempty button{height:34px;display:inline-flex;align-items:center;gap:7px;border:0;border-radius:8px;background:var(--accent,#3B66B0);color:var(--fg-inverse);font:inherit;font-size:12.5px;font-weight:700;padding:0 13px;cursor:pointer}
.ep-wizard{flex:1;min-height:0;overflow:auto;background:var(--bg,#F6F7F9);padding:26px 28px 34px}
.ep-wizard-card{min-height:100%;display:flex;flex-direction:column;border:1px solid var(--border,#DDE2EA);border-radius:14px;background:var(--surface,#fff);box-shadow:var(--shadow-sm);overflow:hidden}
.ep-wizard-top{height:86px;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,520px);align-items:center;gap:20px;padding:0 28px;border-bottom:1px solid var(--border,#DDE2EA)}
.ep-wizard-top p{margin:0 0 4px;font-size:11.5px;font-weight:720;color:var(--accent,#3B66B0)}
.ep-wizard-top h1{margin:0;font-size:22px;line-height:1.2;font-weight:760;color:var(--ink,#171A1F)}
.ep-wizard-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ep-wizard-steps span{height:36px;display:flex;align-items:center;justify-content:center;gap:7px;border-radius:999px;background:var(--bg-2,#F1F3F6);color:var(--ink-4,#8A94A6);font-family:var(--font-mono);font-size:12px;font-weight:720}
.ep-wizard-steps span.on{background:var(--accent-soft,#EDF3FF);color:var(--accent,#3B66B0)}
.ep-wizard-steps small{font-family:inherit;font-size:11.5px;font-weight:650}
.ep-wizard-grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(360px,.95fr) minmax(460px,1.05fr);gap:20px;padding:24px 28px}
.ep-wizard-panel{min-width:0;border:1px solid var(--border,#DDE2EA);border-radius:13px;background:var(--surface,#fff);padding:18px}
.ep-wizard-panel h2,.ep-wizard-facts h2{margin:0 0 14px;font-size:17px;line-height:1.25;font-weight:760;color:var(--ink,#171A1F)}
.ep-choice-list{display:flex;flex-direction:column;gap:10px}
.ep-choice-list button{height:58px;display:flex;align-items:center;gap:13px;width:100%;border:1px solid var(--border,#DDE2EA);border-radius:10px;background:var(--surface,#fff);padding:0 14px;color:var(--ink,#171A1F);font:inherit;text-align:left;cursor:pointer}
.ep-choice-list button.selected{border-color:var(--accent,#3B66B0);box-shadow:0 0 0 1px var(--accent,#3B66B0);background:var(--accent-soft,#EDF3FF)}
.ep-choice-list span{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--border,#DDE2EA);border-radius:8px;background:var(--bg-2,#F1F3F6);color:var(--accent,#3B66B0)}
.ep-choice-list b{font-size:14px;font-weight:740;flex:1}
.ep-choice-list em{font-style:normal;font-size:12px;font-weight:700;color:var(--ink-3,#667085)}
.ep-form-grid{display:grid;grid-template-columns:1fr 180px;gap:12px}
.ep-form-grid label{display:flex;flex-direction:column;gap:6px}
.ep-form-grid label.wide{grid-column:1/-1}
.ep-form-grid span,.ep-source-picker h3{font-size:11.5px;font-weight:720;color:var(--ink-3,#667085)}
.ep-form-grid input,.ep-form-grid select,.ep-form-grid textarea{width:100%;border:1px solid var(--border,#DDE2EA);border-radius:8px;background:var(--surface,#fff);color:var(--ink,#171A1F);font:inherit;font-size:13px;padding:9px 10px;outline:0}
.ep-form-grid textarea{resize:vertical;min-height:84px}
.ep-source-picker{margin-top:16px;border-top:1px solid var(--border,#DDE2EA);padding-top:15px}
.ep-source-picker header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.ep-source-picker header h3{margin:0}
.ep-source-picker header span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;color:var(--ink-4,#8A94A6)}
.ep-source-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}
.ep-source-options button,.ep-goal-toggle{min-height:36px;display:flex;align-items:center;gap:8px;border:1px solid var(--border,#DDE2EA);border-radius:8px;background:var(--surface,#fff);padding:0 10px;color:var(--ink-2,#303642);font:inherit;font-size:12px;font-weight:650;text-align:left;cursor:pointer}
.ep-source-options button.selected,.ep-goal-toggle.on{background:var(--accent-soft,#EDF3FF);border-color:var(--accent-soft-2,#C8D9F8);color:var(--accent,#3B66B0)}
.ep-source-options button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ep-goal-toggle{margin-top:10px;width:100%;justify-content:flex-start}
.ep-wizard-facts{flex:1;min-height:0;display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;padding:24px 28px}
.ep-wizard-facts aside,.ep-wizard-facts section{min-width:0;border:1px solid var(--border,#DDE2EA);border-radius:13px;background:var(--surface,#fff);padding:18px}
.ep-wizard-facts dl{display:grid;grid-template-columns:105px minmax(0,1fr);gap:9px 10px;margin:0}
.ep-wizard-facts dt{font-size:11.5px;font-weight:720;color:var(--ink-4,#8A94A6)}
.ep-wizard-facts dd{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:650;color:var(--ink,#171A1F)}
.ep-wizard-facts aside p,.ep-wizard-facts section>p{margin:14px 0 0;font-size:12.5px;line-height:1.45;color:var(--ink-3,#667085)}
.ep-wizard-fact-list{max-height:540px;overflow:auto;display:flex;flex-direction:column;gap:12px;padding-right:4px}
.ep-wizard-fact-group{border:1px solid var(--border,#DDE2EA);border-radius:10px;overflow:hidden}
.ep-wizard-fact-group header{height:38px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px;background:var(--bg,#F6F7F9);font-size:13px;font-weight:760;color:var(--ink,#171A1F)}
.ep-wizard-fact-group header span{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-4,#8A94A6)}
.ep-wizard-fact-group button{width:100%;display:flex;align-items:flex-start;gap:9px;border:0;border-top:1px solid var(--border,#DDE2EA);background:var(--surface,#fff);padding:10px 12px;text-align:left;color:var(--ink,#171A1F);font:inherit;cursor:pointer}
.ep-wizard-fact-group button:hover{background:var(--bg-2,#F1F3F6)}
.ep-wizard-fact-group button>span:last-child{display:flex;min-width:0;flex-direction:column;gap:3px}
.ep-wizard-fact-group b{font-size:12.5px;line-height:1.3;font-weight:700;color:var(--ink,#171A1F)}
.ep-wizard-fact-group small{font-size:11.5px;line-height:1.35;color:var(--ink-3,#667085)}
.ep-wizard-foot{height:58px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:0 24px;border-top:1px solid var(--border,#DDE2EA);background:var(--surface,#fff)}
.ep-wizard-foot p{margin:0;font-size:12.5px;color:var(--ink-3,#667085)}
.ep-wizard-foot div{display:flex;align-items:center;gap:8px}
.ep-wizard-foot button{height:36px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:8px;background:var(--accent,#3B66B0);color:var(--fg-inverse);font:inherit;font-size:13px;font-weight:720;padding:0 15px;cursor:pointer}
.ep-wizard-foot button.secondary{border:1px solid var(--border,#DDE2EA);background:var(--surface,#fff);color:var(--ink-2,#303642)}
.ep-wizard-foot button:disabled{opacity:.44;cursor:not-allowed}
.ep-share-wrap{position:relative;justify-self:end;display:inline-flex;align-items:center}
.ep-share-menu{position:absolute;right:0;top:42px;min-width:184px;display:flex;flex-direction:column;gap:4px;border:1px solid var(--border,#DDE2EA);border-radius:10px;background:var(--surface,#fff);box-shadow:var(--shadow-lg,0 16px 40px color-mix(in srgb,var(--ink) 14.000000000000002%,transparent));padding:6px;z-index:10}
.ep-share-menu button{height:32px;display:flex;align-items:center;gap:8px;border:0;border-radius:8px;background:transparent;color:var(--ink-2,#303642);font:inherit;font-size:12.5px;font-weight:650;text-align:left;padding:0 9px;cursor:pointer}
.ep-share-menu button:hover{background:var(--bg-2,#F1F3F6)}

@media (max-width:1180px){
  .ep-stage{padding:18px 56px 28px}
}
@media (max-width:900px){
  .ep-page{overflow:auto}
  .ep-appbar{height:auto;min-height:54px;display:flex;align-items:flex-start;flex-direction:column;padding:10px 12px}
  .ep-actions{width:100%;min-width:0;flex-wrap:wrap;justify-content:flex-start}
  .ep-grid{height:720px;min-height:720px}
  .ep-rail{max-height:330px}
  .ep-stage{padding:12px}
  .ep-side{order:3;border-left:0;border-top:1px solid var(--border,#DDE2EA)}
  .ep-paper-head,.ep-preview-list,.ep-generated-list,.ep-paper-foot{padding-left:16px;padding-right:16px}
  .ep-paper-foot{grid-template-columns:1fr}
  .ep-library{padding:18px 12px 30px}
  .ep-library-head{align-items:flex-start;flex-direction:column}
  .ep-library-root{max-width:none}
  .ep-doc-grid{grid-template-columns:1fr}
  .ep-wizard{padding:12px}
  .ep-wizard-top,.ep-wizard-grid,.ep-wizard-facts,.ep-wizard-foot{display:flex;flex-direction:column;align-items:stretch;height:auto}
  .ep-wizard-top,.ep-wizard-grid,.ep-wizard-facts{padding:16px}
  .ep-wizard-foot{padding:12px}
  .ep-form-grid{grid-template-columns:1fr}
}

/* Lot D conventions natives — bloc signature du Lebenslauf (doc DE uniquement) */
.cve-cvsign{display:flex;justify-content:space-between;align-items:flex-end;margin-top:26px;padding-top:10px;font-size:12px;color:var(--ink-2)}
.cve-cvsign .n{font-weight:600;color:var(--ink)}

/* ===== Focus clavier — raccords du contrat (audit contours 2026-07-27) =====
   Chaque contrôle focusable doit montrer le ring token au clavier ; aucun champ muet. */
.analyse-tab:focus-visible,.vjob-tabbtn:focus-visible,.cve-tab:focus-visible,.cve-side-menu-btn:focus-visible,
.cve-seg.sm button:focus-visible,.ct-seg button:focus-visible,.win-dp-tabs button:focus-visible,
.vjob-source-tabs button:focus-visible,.ep-evidence-tabs button:focus-visible,.ep-segment button:focus-visible,
.win-dp-field:focus-visible,.vdp-select:focus-visible,.ui-close-button:focus-visible,.vdp-btn:focus-visible{
  outline:0;box-shadow:var(--ring-focus)
}
.cve-seg.sm button:hover:not(.on),.ct-seg button:hover:not(.on){color:var(--ink)}
.ep-form-grid input:focus-visible,.ep-form-grid select:focus-visible,.ep-form-grid textarea:focus-visible{
  border-color:var(--accent);box-shadow:var(--ring-focus)
}
.vw-cl-input:focus-visible{border-radius:4px;box-shadow:var(--ring-focus)}
.aev-tag-input:focus-within{border-color:var(--accent);box-shadow:var(--ring-focus)}
.aev-note-area:focus-visible{box-shadow:inset 0 -2px 0 0 var(--accent)}
.vpf-addmenu-search:focus-visible,.cve-profile-menu-search:focus-visible{border-bottom-color:var(--accent)}
.vw-pick-search:focus-within{border-bottom-color:var(--accent)}
.pfc-name-inp:focus-visible{box-shadow:inset 0 -2px 0 0 var(--accent)}
.jc-tagzone:focus-within .jc-taginput{box-shadow:inset 0 -2px 0 0 var(--accent)}
.cve-vermenu-intent textarea:focus-visible{border-color:var(--accent);outline:0;box-shadow:var(--ring-focus)}
.vw-addbtns button:focus-visible,.vpf-btn:focus-visible,.cve-profile-chip:focus-visible,.ct-qbtn:focus-visible,
.vc-display-btn:focus-visible,.vc-filter-chip:focus-visible,.asst-qchip:focus-visible,.vw-statuspill:focus-visible,
.vw-origin-hbtn:focus-visible,.vw-foot-optbtn:focus-visible,.vw-filterbtn:focus-visible,.vw-due-btn:focus-visible,
.fm-btn:focus-visible,.cve-inlinebtn:focus-visible,.cve-fschip:focus-visible,.vcj-titletag:focus-visible,
.vltr-angle-chip:focus-visible,.vrcv-repli-btn:focus-visible,.cr-gap-btn:focus-visible,.aev-tpill:focus-visible,
.aev-tmpl-btn:focus-visible,.aev-btn:focus-visible,.jc-when-chip:focus-visible,.jc-pill:focus-visible,
.vpf-usage-chip:focus-visible,.vdp-usage-chip:focus-visible{
  outline:0;box-shadow:var(--ring-focus)
}

/* Tactile et hybride : l'OS reste seul propriétaire du scroll. Les anciennes
   règles WebKit desktop sont neutralisées, puis la propriété standard donne
   un contraste suffisant à l'indicateur overlay quand Safari la prend en charge. */
@media (any-pointer:coarse){
  *{
    scrollbar-width:auto !important;
    scrollbar-color:var(--scroll-native-touch-thumb) transparent !important;
  }
  *::-webkit-scrollbar,
  *::-webkit-scrollbar-thumb,
  *::-webkit-scrollbar-track,
  *::-webkit-scrollbar-corner{
    all:revert !important;
  }
  .ui-scrollpill-host{display:none !important}
}

  /* ==========================================================================
     SIH-60 · Renforcer un fait : une seule porte
     Décisions de la maquette validée du 2026-07-31 (docs/maquettes/
     sih-60-une-seule-porte/DECISIONS.md). Le garde `npm run check:sih60`
     échoue si l'une d'elles cesse d'être tenue.
     ========================================================================== */
  /* d15 — La case à cocher remplace le raccourci chiffré 1·2·3, hérité des
     questionnaires en ligne de commande : elle se comprend sans mode d'emploi. */
  .memory-reinforce-tick{width:20px;height:20px;flex:0 0 auto;display:grid;place-items:center;padding:0;border:1px solid var(--border-strong);border-radius:5px;background:var(--surface);color:var(--surface)}
  .memory-reinforce-tick.on{border-color:var(--ink);background:var(--ink)}
  /* d14 — Le trombone se réduit à son icône, posée dans l'angle du champ ; son
     intitulé revient au survol et reste lisible par un lecteur d'écran. La zone
     entière accepte le glisser-déposer. */
  .memory-reinforce-zone{position:relative}
  .memory-reinforce-clip{position:absolute;top:2px;right:2px;box-sizing:border-box;width:24px;height:24px;display:grid;place-items:center;padding:0;border:1px solid transparent;border-radius:var(--radius-md);color:var(--ink-4);cursor:pointer}
  .memory-reinforce-clip:hover{border-color:var(--border);background:var(--surface);color:var(--ink-2)}
  .memory-reinforce-dropcue{display:none;position:absolute;inset:0;place-items:center;border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--ink-2);font-size:12px}
  .memory-reinforce-zone.is-drop .memory-reinforce-dropcue{display:grid}
  /* d11 — Pendant le renforcement, le récit rejoint la saisie à gauche et la
     question occupe toute la colonne de droite. Simple bascule de disposition :
     le bloc est le même, il change de colonne. */
  .vdp-grid.is-reinforcing{grid-template-columns:.92fr 1.08fr}
  /* d08 — Double étiquette : le libellé client en tête, le terme de la méthode
     en seconde ligne, discret. Un lecteur technique reconnaît STAR ; le client
     lit d'abord une formulation qu'il comprend. */
  .vdp-sk-star{display:block;margin-top:3px;font-size:8.5px;letter-spacing:.04em;opacity:.72}
  /* d07 — L'Action reste visible : les quatre étapes doivent se lire. Le texte
     seul est borné à deux lignes, le paragraphe complet vivant à gauche. */
  .vdp-sv-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .vdp-sv-from{display:block;margin-top:3px;color:var(--ink-4);font-family:var(--font-mono);font-size:9px;letter-spacing:.05em;text-transform:uppercase}

  /* SIH-60 — Correctifs du rendu réel (retours Landry, 2026-07-31).
     · Le pied du questionnaire vit DANS la carte : il flottait dessous,
       désaligné et détaché du bloc auquel il appartient.
     · Le nom du fichier joint se lit comme une pastille, pas comme une chaîne
       brute jetée sous le champ. */
  .memory-reinforce-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border-soft)}
  .memory-reinforce-filename{display:inline-flex;align-items:center;gap:6px;margin-top:8px;max-width:100%;padding:4px 9px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--ink-2);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* Le champ laisse la place au trombone pour qu'ils ne se chevauchent jamais. */
  .memory-reinforce-zone .memory-reinforce-free > span{padding-right:30px}
  /* Séparateurs entre les sections de la fiche : sans eux, les rubriques de la
     colonne de gauche se lisent comme un seul bloc continu. */
  .vdp-col > .vdp-block + .vdp-block{margin-top:18px;padding-top:18px;border-top:1px solid var(--border-soft)}
  /* Traitement de fin (d17) : on montre qu'on prend le temps de relire, plutôt
     que de laisser le client devant un bouton qui ne répond pas. */
  .memory-reinforce-proc{height:3px;margin-top:16px;border-radius:99px;background:var(--bg-2);overflow:hidden}
  .memory-reinforce-proc span{display:block;height:100%;width:38%;border-radius:99px;background:var(--ink-3);animation:memoryReinforceProc 1.3s var(--ease-out) infinite}
  @keyframes memoryReinforceProc{from{transform:translateX(-100%)}to{transform:translateX(320%)}}
  /* Le bouton de renforcement reprend la place qu'il avait dans la maquette :
     pleine largeur sous le tableau, et respirant. Collé au bloc au-dessus, il se
     lisait comme un appendice plutôt que comme l'action principale. */
  .vdp-reinforce-cta{width:100%;justify-content:center;margin-top:14px}
