/* PDF→Web — thème générique câblé sur tokens extraits du PDF source (Dimension Stores).
   Violet #6847EB · héros sombres · slugs JetBrains Mono (R37) · corps clair Plus Jakarta Sans. */
:root{
  --accent:#6847EB; --accent-d:#4f33c9; --accent-soft:#efeafe; --accent-ink:#3a2a8c;
  --ink:#15151f; --ink-2:#4a4a59; --ink-3:#8a8a99; --line:#e7e7ef; --line-2:#efeff4;
  --bg:#f6f6fb; --card:#ffffff; --dark:#0d0d18; --dark-2:#1a1830;
  --danger:#d6336c; --danger-soft:#fdecf2; --success:#1f9d6b; --success-soft:#e8f7f0;
  --warn:#caa23a; --warn-soft:#fdf6e3; --info:#6847EB; --info-soft:#efeafe;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --sans:"Plus Jakarta Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --tb-h:58px;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:var(--sans);color:var(--ink);background:var(--bg);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
b,strong{font-weight:700}
a{color:var(--accent);text-decoration:none}

/* ---------- Toolbar ---------- */
.toolbar{position:sticky;top:0;z-index:40;height:var(--tb-h);display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:0 18px;background:var(--dark);color:#fff}
.tb-left{display:flex;align-items:center;gap:14px;min-width:0}
.brand{font-family:var(--mono);font-weight:700;letter-spacing:.06em;font-size:13px;color:#fff;background:rgba(255,255,255,.08);padding:5px 9px;border-radius:7px}
.doc-title{font-weight:600;font-size:14px;color:#cfcce6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-right{display:flex;align-items:center;gap:8px}
.tb-btn{font-family:var(--sans);font-size:12.5px;font-weight:600;color:#e8e6f5;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);padding:7px 11px;border-radius:8px;cursor:pointer;white-space:nowrap;transition:.15s}
.tb-btn:hover{background:rgba(255,255,255,.14)}
.tb-btn[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.role-toggle b{color:#fff}
.pill{display:inline-block;min-width:18px;text-align:center;font-family:var(--mono);font-size:11px;background:var(--accent);color:#fff;border-radius:20px;padding:1px 6px;margin-left:3px}

/* ---------- Sélecteur acteur (T13, public/pdfweb/collab.js) — "je me connecte en tant que" -------
   Posé dans la toolbar (tb-right), câblé sur les mêmes acteurs que le rail d'assignation (T12) :
   choisir un acteur filtre la timeline droite sur ses tâches (app.js:setActorFilter). Cosmétique
   côté client — n'élève JAMAIS un privilège serveur (aucune session admin/member créée ici) ; une
   vraie identité member ne peut venir QUE du lien magique (T3/callback), cf. commentaire actorbar.js. */
.actorbar{position:relative}
.actorbar-btn{display:flex;align-items:center;gap:7px;font-family:var(--sans);font-size:12.5px;font-weight:600;
  color:#e8e6f5;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);padding:5px 10px 5px 5px;
  border-radius:9999px;cursor:pointer;white-space:nowrap;transition:.15s}
.actorbar-btn:hover{background:rgba(255,255,255,.14)}
.actorbar-av{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:9999px;
  font-family:var(--sans);font-size:10px;font-weight:700;color:#fff;flex:0 0 auto}
.actorbar-chevron{width:9px;height:9px;opacity:.7}
.actorbar-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:220px;background:#fff;border:1px solid var(--line);
  border-radius:12px;box-shadow:0 8px 24px rgba(20,20,30,.16);padding:6px;z-index:60}
.actorbar-menu[hidden]{display:none}
.actorbar-item{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;text-align:left;
  font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--ink);padding:7px 8px;border-radius:8px;cursor:pointer}
.actorbar-item:hover{background:var(--line-2)}
.actorbar-item[aria-current="true"]{background:var(--accent-soft);color:var(--accent-ink)}
.actorbar-item-all{color:var(--ink-3);font-weight:500;border-bottom:1px solid var(--line);margin-bottom:4px;padding-bottom:9px;border-radius:0}
.progress{display:flex;align-items:center;gap:8px;margin-right:6px}
.progress-bar{width:90px;height:7px;border-radius:20px;background:rgba(255,255,255,.16);overflow:hidden}
.progress-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),#9b86ff);transition:width .4s}
.progress-label{font-family:var(--mono);font-size:11px;color:#cfcce6}

/* ---------- Layout 3 colonnes ---------- */
.layout{display:grid;grid-template-columns:224px minmax(0,1fr) 384px;gap:0;align-items:start}
.nav{position:sticky;top:var(--tb-h);height:calc(100vh - var(--tb-h));display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--line)}
.nav-scroll{flex:1;min-height:0;overflow:auto;padding:18px 14px}
.team-dock{flex:none;border-top:1px solid var(--line);background:#fbfbfe;padding:10px 12px 12px;max-height:44vh;overflow:auto}
.timeline{position:sticky;top:var(--tb-h);height:calc(100vh - var(--tb-h));overflow:auto;padding:18px 12px;border-left:1px solid var(--line);background:#fbfbfe}
@media(max-width:1180px){.layout{grid-template-columns:210px minmax(0,1fr) 320px}}
.nav-head,.tl-head{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-3);margin:2px 0 12px;font-weight:600}
.nav-list{list-style:none;margin:0;padding:0}
.nav-list li{margin:1px 0}
.nav-list a{display:flex;gap:9px;align-items:baseline;padding:7px 9px;border-radius:8px;color:var(--ink-2);font-size:13px;line-height:1.3}
.nav-list a .n{font-family:var(--mono);font-size:11px;color:var(--ink-3);min-width:18px}
.nav-list a:hover{background:var(--line-2)}
.nav-list a.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
.nav-list a.active .n{color:var(--accent)}

/* ---------- Nav nested (Bonus + sous-menu) + couleurs/lignes verticales + initiale assigné (T20) --
   `.nav-item.nested` = entrée de sous-menu (indentée, sans numéro `.n` proéminent) ; `.nav-sublist`
   = liste des enfants d'un parent (Bonus > Drive-to-store / Lives enchère / Sponsorisation
   organique, C3), repliable via `.nav-toggle` (chevron SVG, jamais un emoji — R36) et persistée en
   localStorage par doc (app.js loadNavCollapsed/saveNavCollapsed). `.has-line` pose la ligne
   verticale de phase/regroupement/urgence (C1) via la variable inline `--nav-line` posée par
   navPhaseColor() — jamais une couleur en dur ici, elle vient du JSON (ou de la palette stable
   dérivée d'un id, même mécanique que les avatars membres du rail collab T12). `.nav-assignee`
   (C6) = pastille initiale, MÊME gabarit que les avatars du rail (20px, texte mono, jamais emoji). */
.nav-item{position:relative}
.nav-item.nested .nav-list a,.nav-item.nested>a{padding-left:15px}
.nav-sublist{list-style:none;margin:2px 0 4px 20px;padding:0;border-left:1px dashed var(--line);overflow:hidden;transition:max-height .18s ease}
.nav-sublist[hidden]{display:none}
.nav-sublist .nav-item{margin:1px 0}
.nav-sublist a{padding:6px 9px 6px 12px;font-size:12.5px}
.nav-list a.has-line{border-left:2.5px solid var(--nav-line,var(--line));padding-left:6.5px;margin-left:2.5px}
.nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;margin-right:-3px;
  border:0;background:transparent;color:var(--ink-3);cursor:pointer;border-radius:4px;flex:none}
.nav-toggle:hover{background:var(--line-2);color:var(--ink-2)}
.nav-chevron{width:12px;height:12px;transition:transform .15s ease}
.nav-toggle[aria-expanded="false"] .nav-chevron{transform:rotate(-90deg)}
.nav-assignee{margin-left:auto;flex:none;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;
  border-radius:9999px;color:#fff;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.01em}

/* ---------- Notifs sommaire ciblées (T16, public/pdfweb/collab.js) --------------------------------
   Panneau au-dessus du sommaire (#nav), rempli par renderNotifs() : UNIQUEMENT les mutations récentes
   (assignation/« c'est bon ») qui concernent l'acteur courant (assigné) ou l'admin — jamais un flux
   brut de toutes les mutations du doc (cf. RISK MITIGATION plan « notif broadcast bruyant »). */
.nav-notifs{margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.nav-notifs[hidden]{display:none}
.nav-notifs-head{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-3);font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.nav-notifs-count{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;
  border-radius:9999px;background:var(--accent);color:#fff;font-size:10px;font-weight:700}
.nav-notifs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.nav-notif{display:block;width:100%;border:0;background:var(--line-2);border-radius:9px;padding:8px 10px;text-align:left;
  cursor:pointer;font-family:var(--sans);color:var(--ink-2);transition:.15s}
.nav-notif:hover{background:var(--accent-soft);color:var(--accent-ink)}
.nav-notif.is-unread{background:var(--accent-soft)}
.nav-notif-title{display:block;font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.35}
.nav-notif-meta{display:block;font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:2px}
.nav-notifs-empty{font-size:12px;color:var(--ink-3);padding:2px 2px 0}

/* ---------- Document ---------- */
.doc-wrap{padding:34px clamp(18px,4vw,56px) 60px;max-width:920px;margin:0 auto;width:100%}
.doc-foot{max-width:920px;margin:0 auto;padding:18px clamp(18px,4vw,56px) 40px;font-family:var(--mono);font-size:11px;color:var(--ink-3);display:flex;justify-content:space-between;border-top:1px solid var(--line)}
.section{margin:0 0 46px;scroll-margin-top:74px}
.sec-head{display:flex;gap:14px;align-items:flex-start;margin:0 0 20px}
.sec-num{font-family:var(--mono);font-weight:700;font-size:15px;color:#fff;background:var(--accent);border-radius:10px;min-width:42px;height:42px;display:flex;align-items:center;justify-content:center}
.sec-titles{flex:1;min-width:0}
.sec-slug{font-family:var(--mono);font-size:11px;letter-spacing:.05em;color:var(--accent);margin-bottom:3px}
.sec-h{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.1;margin:0}
.sec-kicker{font-family:var(--mono);font-size:11px;color:var(--ink-3);text-align:right;max-width:200px;line-height:1.5;padding-top:4px}
.rule{height:2px;background:linear-gradient(90deg,var(--accent),transparent);border:0;margin:0 0 18px}

.b-lead{font-size:16.5px;color:var(--ink-2);line-height:1.6;margin:0 0 20px}
.b-h{font-size:16px;font-weight:700;margin:26px 0 12px;padding-left:11px;border-left:3px solid var(--accent)}
.b-p{margin:0 0 14px;color:var(--ink-2)}
.b-foot{font-size:12.5px;color:var(--ink-3);margin-top:10px}
.b-list{margin:0 0 16px;padding-left:20px}
.b-list li{margin:5px 0;color:var(--ink-2)}
.mono{font-family:var(--mono);font-size:.9em;background:var(--line-2);padding:1px 5px;border-radius:5px}

/* tables */
.b-table{width:100%;border-collapse:collapse;margin:0 0 18px;font-size:13.5px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.b-table thead th{background:var(--dark);color:#fff;text-align:left;font-family:var(--mono);font-weight:600;font-size:11px;letter-spacing:.04em;padding:11px 12px}
.b-table td{padding:11px 12px;border-top:1px solid var(--line);color:var(--ink-2);vertical-align:top}
.b-table tbody tr:nth-child(even){background:#fafafe}
.b-table td.r,.b-table th.r{text-align:right;font-variant-numeric:tabular-nums}
.b-table .strong{color:var(--ink);font-weight:700}
.cap{font-size:12px;color:var(--ink-3);margin:-10px 0 16px}

/* badges */
.badge{display:inline-block;font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.03em;padding:4px 9px;border-radius:20px;border:1px solid}
.badge.success{background:var(--success-soft);color:var(--success);border-color:#bfe7d6}
.badge.danger{background:var(--danger-soft);color:var(--danger);border-color:#f6c9da}
.badge.warn{background:var(--warn-soft);color:#9a7a1e;border-color:#ecdca0}
.badge.neutral{background:var(--line-2);color:var(--ink-2);border-color:var(--line)}

/* callouts — carte PLATE (R12 "zéro arc décoratif", T13/T14) : ni border-radius, ni border-left ;
   séparation de variante portée par le fond teinté + un mot-clé de tête, jamais par une bordure arquée. */
.callout{border-radius:0;padding:14px 16px;margin:0 0 18px;border:1px solid var(--line);background:var(--card)}
.callout .lab{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.05em;margin-bottom:5px;display:block}
.callout p{margin:0;font-size:13.5px;color:var(--ink-2)}
.callout.info{border-color:var(--accent-soft);background:var(--info-soft)}.callout.info .lab{color:var(--accent-ink)}
.callout.warn{border-color:var(--warn-soft);background:var(--warn-soft)}.callout.warn .lab{color:#9a7a1e}
.callout.success{border-color:var(--success-soft);background:var(--success-soft)}.callout.success .lab{color:var(--success)}
.callout.danger{border-color:var(--danger-soft);background:var(--danger-soft)}.callout.danger .lab{color:var(--danger)}
.callout.note{border-color:var(--line);background:#f3f3f8}.callout.note .lab{color:var(--ink-2)}

/* cover + thesis (dark) — T21 : hero condensé (moins de padding/marges verticales qu'avant, le
   sommaire de groupes devient un <nav> de liens cliquables quand le JSON fournit `groups[].jumpTo`,
   cf. app.js renderBlock('cover') ; `.grp` reste un simple <div> non cliquable sinon — rétrocompat). */
.cover{background:var(--dark);color:#fff;border-radius:16px;padding:28px 32px;margin:0 0 8px;position:relative;overflow:hidden}
.cover::after{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 80% -10%,rgba(104,71,235,.5),transparent 60%);pointer-events:none;z-index:0}
.cover>*{position:relative;z-index:1}
.cover .ck{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:#b9b2e6}
.cover .bar{width:56px;height:4px;background:var(--accent);border-radius:3px;margin:14px 0 16px}
.cover h1{font-size:clamp(30px,5vw,44px);line-height:1.03;letter-spacing:-.03em;margin:0;font-weight:800}
.cover .sub{font-size:19px;color:#cfcce6;margin:4px 0 16px;font-weight:600}
.cover .facts{font-family:var(--mono);font-size:12.5px;color:#aaa3d6;line-height:1.8;max-width:640px}
.cover .groups{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 12px}
.cover .grp{display:block;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:11px 12px;text-decoration:none;color:inherit;transition:.15s}
.cover a.grp{cursor:pointer}
.cover a.grp:hover,.cover a.grp:focus-visible{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.22)}
.cover a.grp:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cover .grp .rg{font-family:var(--mono);font-size:11px;color:var(--accent)}
.cover .grp h3{margin:5px 0 6px;font-size:14.5px}
.cover .grp ul{margin:0;padding-left:15px;font-size:12px;color:#bdb8de}
.cover .grp li{margin:2px 0}
.cover .tag{font-family:var(--mono);font-size:12px;color:#8e87bf;margin-top:4px}

.thesis{background:var(--dark);color:#fff;border-radius:16px;padding:30px 30px;margin:0 0 22px;position:relative;overflow:hidden}
.thesis::after{content:"";position:absolute;inset:0;background:radial-gradient(500px 240px at 100% -20%,rgba(104,71,235,.55),transparent 55%);pointer-events:none;z-index:0}
.thesis .lab,.thesis .t{z-index:1}
.thesis .lab{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:#b9b2e6;position:relative}
.thesis .t{font-size:clamp(22px,3.4vw,30px);font-weight:800;letter-spacing:-.02em;line-height:1.18;margin-top:12px;position:relative}
.thesis .t .hl{color:#9b86ff}

/* kpis */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:0 0 18px}
.kpi{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--card);border-top:3px solid var(--line)}
.kpi .v{font-family:var(--mono);font-weight:700;font-size:23px;letter-spacing:-.02em}
.kpi .l{font-size:12px;color:var(--ink-3);margin-top:4px;line-height:1.4}
.kpi.danger{border-top-color:var(--danger)}.kpi.danger .v{color:var(--danger)}
.kpi.success{border-top-color:var(--success)}.kpi.success .v{color:var(--success)}
.kpi.neutral{border-top-color:var(--accent)}.kpi.neutral .v{color:var(--ink)}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 18px}
@media(max-width:680px){.twocol{grid-template-columns:1fr}}

/* pillars */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 18px}
.pillar{border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--card)}
.pillar.hl{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 8px 24px -12px rgba(104,71,235,.45)}
.pillar .pk{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;color:var(--ink-3)}
.pillar.hl .pk{color:var(--accent)}
.pillar h4{margin:7px 0 3px;font-size:19px;font-weight:800}
.pillar .pl{font-size:13px;color:var(--ink-2);margin-bottom:8px;font-weight:600}
.pillar ul{margin:0 0 8px;padding-left:16px;font-size:12.5px;color:var(--ink-2)}
.pillar li{margin:3px 0}
.pillar .pf{font-family:var(--mono);font-size:11px;color:var(--ink-3);border-top:1px dashed var(--line);padding-top:7px}

/* funnel + splitbar */
.funnel{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0 0 18px}
.funnel .fst{border-radius:10px;padding:13px;color:#fff;background:var(--accent)}
.funnel .fst:nth-child(1){background:#cdc3f5;color:var(--accent-ink)}
.funnel .fst:nth-child(2){background:#a48fef}
.funnel .fst:nth-child(3){background:#7c5cff}
.funnel .fst:nth-child(4){background:var(--accent-d)}
.funnel .ftag{font-family:var(--mono);font-size:10px;opacity:.85;letter-spacing:.05em}
.funnel .fl{font-weight:700;font-size:15px;margin:4px 0 3px}
.funnel .fs{font-size:11.5px;opacity:.92;line-height:1.35}
.splitbar{margin:0 0 8px}
.splitbar .note{font-family:var(--mono);font-size:11px;color:var(--ink-3);margin-bottom:8px;line-height:1.6}
.splitbar .bars{display:flex;border-radius:10px;overflow:hidden;border:1px solid var(--line)}
.splitbar .seg{padding:11px 10px;color:#fff;min-width:0}
.splitbar .seg:nth-child(1){background:#bdb0f2;color:var(--accent-ink)}
.splitbar .seg:nth-child(2){background:#9277ee}
.splitbar .seg:nth-child(3){background:#6f4ef0}
.splitbar .seg:nth-child(4){background:var(--accent-d)}
.splitbar .pc{font-family:var(--mono);font-weight:700;font-size:16px}
.splitbar .sl{font-size:11px;opacity:.95}.splitbar .ss{font-size:10px;opacity:.8;font-family:var(--mono)}

/* timeline (block) */
.b-timeline{display:flex;gap:8px;margin:6px 0 18px;position:relative}
.b-timeline .ts{flex:1;min-width:0;position:relative;padding-top:20px}
.b-timeline .ts::before{content:"";position:absolute;top:5px;left:0;width:11px;height:11px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.b-timeline .ts::after{content:"";position:absolute;top:10px;left:11px;right:0;height:2px;background:var(--line)}
.b-timeline .ts:last-child::after{display:none}
.b-timeline .tsl{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--accent)}
.b-timeline .tst{font-size:11.5px;color:var(--ink-2);margin-top:3px;line-height:1.4;padding-right:8px}

/* ad previews */
.adprev{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 18px}
@media(max-width:680px){.adprev{grid-template-columns:1fr}}
.adcard{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--card)}
.adcard .at{font-family:var(--mono);font-size:10px;color:var(--ink-3);margin-bottom:8px}
.adcard .url{font-family:var(--mono);font-size:12px;color:var(--ink-2)}
.adcard .url .ann{background:var(--ink);color:#fff;border-radius:4px;padding:0 5px;font-size:10px;margin-right:6px}
.adcard h5{margin:6px 0 4px;color:#1a0dab;font-size:16px;font-weight:600}
.adcard .ad-d{font-size:12.5px;color:var(--ink-2);margin:0 0 8px}
.adcard .promo{font-size:12px;color:var(--ink-2);border-top:1px solid var(--line);padding-top:7px;margin-bottom:7px}
.adcard .ls a{font-size:12px;margin-right:12px;display:inline-block}

/* aperçu Google Ads RSA (T18) — cf. data/refs/serp/tokens.json (grammaire sourcée doc officielle) */
.serppreview{margin:0 0 18px}
.serp-indic{font-size:11px;color:var(--ink-3);font-style:italic;margin-bottom:8px}
.serpcard{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--card)}
.serp-url{font-family:var(--mono);font-size:12px;color:var(--ink-2);margin-bottom:4px}
.serp-url .ann{background:var(--ink);color:#fff;border-radius:4px;padding:0 5px;font-size:10px;margin-right:6px}
.serp-title{margin:2px 0 4px;color:#1a0dab;font-size:16px;font-weight:600}
.serp-title .serp-sep{color:var(--ink-3);font-weight:400;margin:0 2px}
.serp-d{font-size:12.5px;color:var(--ink-2);margin:0 0 6px}
.serp-promo{font-size:12px;color:var(--ink-2);border-top:1px solid var(--line);padding-top:7px;margin-bottom:7px}
.serp-sitelinks{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}
@media(max-width:680px){.serp-sitelinks{grid-template-columns:1fr 1fr}}
.serp-sl-chip{position:relative;border:1px solid var(--line);border-radius:8px;padding:7px 9px;background:#fff}
.serp-sl-t{font-size:12.5px;font-weight:600;color:#1a0dab}
.serp-sl-d{font-size:11px;color:var(--ink-3);margin-top:2px}
.serp-sl-del{position:absolute;top:3px;right:5px;background:none;border:0;color:var(--danger);cursor:pointer;font-size:14px;padding:0 4px;line-height:1}
.serp-callouts{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.serp-co-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--ink-2);background:#fff;border:1px solid var(--line);border-radius:999px;padding:3px 9px}
.serp-co-del{background:none;border:0;color:var(--danger);cursor:pointer;font-size:12px;padding:0;line-height:1}

/* liste produits à sponsoriser (T19) — saisie ligne-par-ligne validante, champ url API-ready */
.productlist{margin:0 0 18px}
.pl-head{font-size:12.5px;font-weight:700;color:var(--accent-ink);margin-bottom:10px}
/* Conteneur racine d'une ligne (T16b fix) : regroupe .pl-row + .pl-filerow + .pl-err dans UN SEUL
   élément DOM (elFrom() ne garde que le premier enfant d'un template) — bloc simple, sans style propre,
   chaque enfant garde ses marges existantes. */
.pl-rowgroup{display:block}
.pl-row{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:7px;align-items:center;margin-bottom:2px}
.pl-row input{border:1px solid var(--line);border-radius:7px;padding:7px 8px;font-size:12.5px;font-family:var(--sans);background:#fff}
.pl-row.pl-invalid input{border-color:var(--danger)}
.pl-err{font-size:10.5px;color:var(--danger);min-height:14px;margin:0 0 7px 2px}
@media(max-width:820px){.pl-row{grid-template-columns:1fr 1fr;gap:6px}}
/* T16b — campagnes marques : ligne + case dépôt fichier tout-type (URL 1-par-1 OU fichier) */
.pl-row-brand{grid-template-columns:1fr 1fr 1fr auto auto}
@media(max-width:820px){.pl-row-brand{grid-template-columns:1fr 1fr}}
.pl-filebtn{background:#fff;border:1px solid var(--line);border-radius:7px;padding:7px 9px;cursor:pointer;font-size:13px;text-align:center}
.pl-filerow{display:flex;align-items:center;gap:10px;margin:0 0 7px 2px}
.pl-file-chip{font-size:11px;color:var(--accent-ink);text-decoration:none;border:1px dashed var(--accent);border-radius:6px;padding:3px 7px}
.pl-file-del{background:none;border:0;color:var(--danger);cursor:pointer;font-size:10.5px;padding:0;text-decoration:underline}
/* T16b — survol drag-drop réel sur la ligne : fond teinté uniforme, zéro arc/bordure décorative (R36bis) */
.pl-row-brand.pl-dragover{background:var(--accent-soft)}

/* config bundle (T17) — promo oui/non+%, création page, lignes URL+tailles+coloris */
.bundlecfg{margin:0 0 18px}
.bc-head{font-size:12.5px;font-weight:700;color:var(--accent-ink);margin-bottom:10px}
.bc-row{display:flex;align-items:center;gap:14px;margin-bottom:9px}
.bc-check{display:flex;align-items:center;gap:7px;font-size:13px;cursor:pointer;user-select:none}
.bc-pct{display:flex;align-items:center;gap:6px}
.bc-pct input{width:70px;border:1px solid var(--line);border-radius:7px;padding:6px 8px;font-size:12.5px;font-family:var(--mono);background:#fff}
.bc-lines-head{font-size:11px;color:var(--ink-3);margin:10px 0 6px}
.bc-line{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:7px;align-items:center;margin-bottom:2px}
.bc-line input{border:1px solid var(--line);border-radius:7px;padding:7px 8px;font-size:12.5px;font-family:var(--sans);background:#fff}
.bc-line.bc-invalid input.bc-url{border-color:var(--danger)}
.bc-err{font-size:10.5px;color:var(--danger);min-height:14px;margin:0 0 7px 2px}
@media(max-width:820px){.bc-line{grid-template-columns:1fr 1fr;gap:6px}}

/* générateur Summer Outfits (T19) — nombre d'outfits → Valider → N cartes {nom+URL+articles} */
.outfits{margin:0 0 18px}
.of-head{font-size:12.5px;font-weight:700;color:var(--accent-ink);margin-bottom:10px}
.of-count-row{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.of-count-row label{font-size:12.5px;color:var(--ink-2)}
.of-count{width:80px;border:1px solid var(--line);border-radius:7px;padding:6px 8px;font-size:12.5px;font-family:var(--mono);background:#fff}
.of-list{display:flex;flex-direction:column;gap:14px}
.of-card{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff}
.of-card-head{display:grid;grid-template-columns:1fr 1.4fr auto;gap:7px;align-items:center;margin-bottom:2px}
.of-card-head input{border:1px solid var(--line);border-radius:7px;padding:7px 8px;font-size:12.5px;font-family:var(--sans);background:#fff}
.of-card-head input.of-invalid{border-color:var(--danger)}
@media(max-width:820px){.of-card-head{grid-template-columns:1fr 1fr}}
.of-lines-head{font-size:11px;color:var(--ink-3);margin:10px 0 6px}
.of-line{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:7px;align-items:center;margin-bottom:2px}
.of-line input{border:1px solid var(--line);border-radius:7px;padding:7px 8px;font-size:12.5px;font-family:var(--sans);background:#fff}
.of-line.of-invalid input.of-l-url{border-color:var(--danger)}
.of-err{font-size:10.5px;color:var(--danger);min-height:14px;margin:0 0 7px 2px}
@media(max-width:820px){.of-line{grid-template-columns:1fr 1fr;gap:6px}}

/* campagnes promo (T21) — tableau type « marque » : Soldes d'été (page globale, aucun champ) +
   Summer Outfits (nb bundles → N lignes nom+URL). Cartes plates, bord uniforme (zéro arc, R36bis). */
.promotable{margin:0 0 18px}
.pt-head{font-size:12.5px;font-weight:700;color:var(--accent-ink);margin-bottom:10px}
.pt-table{display:flex;flex-direction:column;gap:12px}
.pt-row{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff}
.pt-row-head{display:flex;align-items:center;gap:10px;margin-bottom:2px}
.pt-name{font-size:13px;font-weight:700;color:var(--ink)}
.pt-tag{font-size:11px;color:var(--ink-3);border:1px solid var(--line);border-radius:7px;padding:2px 8px}
.pt-body:empty{display:none}
.pt-count-row{display:flex;align-items:center;gap:10px;margin:10px 0 12px}
.pt-count-row label{font-size:12.5px;color:var(--ink-2)}
.pt-count{width:80px;border:1px solid var(--line);border-radius:7px;padding:6px 8px;font-size:12.5px;font-family:var(--mono);background:#fff}
.pt-list{display:flex;flex-direction:column;gap:2px}
.pt-line{display:grid;grid-template-columns:1fr 1.4fr auto;gap:7px;align-items:center;margin-bottom:2px}
.pt-line input{border:1px solid var(--line);border-radius:7px;padding:7px 8px;font-size:12.5px;font-family:var(--sans);background:#fff}
.pt-line.pt-invalid input.pt-b-url{border-color:var(--danger)}
.pt-err{font-size:10.5px;color:var(--danger);min-height:14px;margin:0 0 7px 2px}
@media(max-width:820px){.pt-line{grid-template-columns:1fr 1fr;gap:6px}}

/* carrousel d'exemples (T24) — slides type serppreview + nom éditable + navigation + générateur.
   Cartes plates, bord uniforme, zéro arc décoratif (R36bis). */
.carousel{margin:0 0 18px}
.cs-head{font-size:12.5px;font-weight:700;color:var(--accent-ink);margin-bottom:6px}
.cs-note{font-size:11px;color:var(--ink-3);font-style:italic;margin-bottom:10px}
.cs-viewport{display:flex;align-items:stretch;gap:8px}
.cs-slide{flex:1;min-width:0}
.cs-nav{flex:0 0 auto;width:32px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink-2);font-size:18px;line-height:1;cursor:pointer;align-self:center}
.cs-nav:hover{background:var(--accent-soft);color:var(--accent-ink)}
.cs-card{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff}
.cs-card-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.cs-name{flex:1;border:1px solid var(--line);border-radius:7px;padding:7px 8px;font-size:12.5px;font-weight:600;font-family:var(--sans);background:#fff;color:var(--accent-ink)}
.cs-card .serpcard{border:1px solid var(--line);border-radius:10px}
.cs-dots{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.cs-dot{min-width:26px;height:26px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink-3);font-family:var(--mono);font-size:11px;cursor:pointer}
.cs-dot.on{background:var(--accent);color:#fff;border-color:var(--accent)}

/* steps */
.steps{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 18px}
@media(max-width:680px){.steps{grid-template-columns:1fr}}
.stepg h5{margin:0 0 8px;font-size:14px;color:var(--accent-ink)}
.stepg ol{list-style:none;counter-reset:s;margin:0;padding:0}
.stepg li{counter-increment:s;position:relative;padding:4px 0 4px 30px;font-size:13px;color:var(--ink-2)}
.stepg li::before{content:counter(s);position:absolute;left:0;top:3px;width:20px;height:20px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-family:var(--mono);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}

/* ---------- Action cards ---------- */
.action{border:1px solid var(--line);border-radius:14px;background:var(--card);margin:0 0 18px;overflow:hidden;scroll-margin-top:74px;box-shadow:0 2px 10px -8px rgba(20,20,30,.25)}
.action.flash{animation:flash 1.4s}
@keyframes flash{0%{box-shadow:0 0 0 3px var(--accent)}100%{box-shadow:0 2px 10px -8px rgba(20,20,30,.25)}}
/* Ancre a11y (T16, jumpToAction) : `.action` porte tabindex="-1" (focusable par script uniquement,
   jamais dans l'ordre de tabulation naturel) — :focus-visible donne un contour clair au clavier/lecteur
   d'écran sans dépendre de la classe .flash (qui, elle, s'estompe après 1.4s). */
.action:focus{outline:none}
.action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ac-top{display:flex;gap:10px;align-items:center;padding:12px 15px;border-bottom:1px solid var(--line-2);background:#fcfbff}
.prio{font-family:var(--mono);font-size:10.5px;font-weight:700;color:#fff;border-radius:6px;padding:2px 7px}
.prio.P0{background:var(--danger)}.prio.P1{background:var(--accent)}.prio.P2{background:var(--ink-3)}
.ac-title{font-weight:700;font-size:14.5px;flex:1;min-width:0}
.ac-meta{font-family:var(--mono);font-size:11px;color:var(--ink-3)}
.st-chip{font-family:var(--mono);font-size:10.5px;font-weight:600;padding:3px 8px;border-radius:20px;border:1px solid}
.st-todo{background:var(--line-2);color:var(--ink-3);border-color:var(--line)}
.st-draft{background:var(--warn-soft);color:#9a7a1e;border-color:#ecdca0}
.st-submitted{background:var(--info-soft);color:var(--accent-ink);border-color:#d6caf7}
.st-review{background:var(--danger-soft);color:var(--danger);border-color:#f6c9da}
.st-validated{background:var(--success-soft);color:var(--success);border-color:#bfe7d6}
.st-blocked{background:#eee;color:var(--ink-3);border-color:var(--line)}
.ac-body{padding:13px 15px}
.ac-ctx{font-size:13px;color:var(--ink-2);margin:0 0 12px}
.ac-field{margin:0 0 12px}
.ac-accept{font-size:12px;color:var(--ink-3);margin:8px 0 0;border-top:1px dashed var(--line);padding-top:9px}
.ac-accept b{color:var(--ink-2)}
.ac-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.ac-actions button{font-family:var(--sans);font-size:12.5px;font-weight:600;border-radius:8px;padding:8px 13px;cursor:pointer;border:1px solid var(--line)}
.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-d)}
.btn-ghost{background:#fff;color:var(--ink-2)}.btn-ghost:hover{background:var(--line-2)}
.btn-ok{background:var(--success);color:#fff;border-color:var(--success)}
.btn-warn{background:#fff;color:var(--danger);border-color:#f0b6cd}

/* field controls */
.fld label{display:block;font-size:12px;color:var(--ink-2);margin:6px 0 3px;font-weight:600}
.fld input[type=text],.fld input[type=url],.fld input[type=number],.fld input[type=date],.fld textarea,.fld select{
  width:100%;font-family:var(--sans);font-size:13.5px;border:1px solid var(--line);border-radius:8px;padding:9px 11px;background:#fff;color:var(--ink)}
.fld textarea{resize:vertical;min-height:64px;font-family:var(--mono);font-size:12.5px}
.fld input:focus,.fld textarea:focus,.fld select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}
.choices{display:flex;gap:8px;flex-wrap:wrap}
.choice{font-size:13px;padding:8px 14px;border:1px solid var(--line);border-radius:20px;cursor:pointer;background:#fff;user-select:none}
.choice.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.checks{display:grid;gap:6px}
.check{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:var(--ink-2);cursor:pointer;padding:6px 8px;border:1px solid var(--line);border-radius:8px}
.check input{margin-top:2px}
.check.on{background:var(--accent-soft);border-color:#d6caf7}
.sumline{display:flex;align-items:center;gap:8px;margin-top:8px;font-family:var(--mono);font-size:12.5px}
.sumline .ok{color:var(--success)}.sumline .ko{color:var(--danger)}
.numrow{display:flex;align-items:center;gap:8px;margin:5px 0}
.numrow span{font-size:12.5px;color:var(--ink-2);min-width:140px}
.numrow input{max-width:120px}
.derive{font-family:var(--mono);font-size:12px;color:var(--accent-ink);margin-top:6px}
.ftab{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:4px}
.ftab th{background:var(--line-2);text-align:left;padding:6px 8px;font-size:11px;font-family:var(--mono);color:var(--ink-2)}
.ftab td{border-top:1px solid var(--line);padding:4px 6px}
.ftab input[type=text],.ftab input[type=url]{padding:6px 8px;font-size:12.5px}
.ftab .del{background:none;border:0;color:var(--danger);cursor:pointer;font-size:16px;padding:0 6px}
.addrow{margin-top:8px;font-size:12.5px;background:#fff;border:1px dashed var(--line);border-radius:8px;padding:7px 11px;cursor:pointer;color:var(--accent)}
.gate{border-radius:10px;padding:12px;font-size:13px}
.gate.go{background:var(--success-soft);border:1px solid #bfe7d6}
.gate.nogo{background:var(--danger-soft);border:1px solid #f6c9da}
.gate h6{margin:0 0 6px;font-size:14px}
.gate ul{margin:6px 0 0;padding-left:18px}

/* ---------- Right timeline panel ---------- */
.tl-item{border:1px solid var(--line);border-radius:11px;padding:10px 11px;margin-bottom:9px;background:#fff;cursor:pointer;transition:.15s}
.tl-item:hover{border-color:var(--accent);transform:translateX(-2px)}
.tl-item .tit{display:flex;gap:7px;align-items:center;margin-bottom:5px}
.tl-item .tname{font-size:12.5px;font-weight:600;flex:1;min-width:0}
.tl-item .tsub{font-size:11px;color:var(--ink-3);font-family:var(--mono)}

/* ---------- Annotations reprises (T10) ---------- */
/* Panneau commentaires + composeur + sélecteur retirés (T10, remplacés par le rail d'assignation
   T11+) ; le rendu des annotations DÉJÀ posées (mark.anno) reste actif — reprise, pas suppression. */
mark.anno{background:rgba(104,71,235,.18);border-bottom:2px solid var(--accent);cursor:pointer;padding:0 1px}
mark.anno.resolved{background:rgba(31,157,107,.16);border-color:var(--success)}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--dark);color:#fff;padding:11px 18px;border-radius:10px;font-size:13px;z-index:70;box-shadow:0 10px 30px -10px rgba(0,0,0,.5)}

/* ---------- Encarts « moment à remplir » (fond blanc) + bulles d'assignation (retours 01/07) --- */
.b-card{background:var(--card);border:1px solid var(--line);padding:16px 18px;margin:0 0 18px}
.assign-band{margin:0 0 12px}
.ab-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 0}
.ab-row + .ab-row{border-top:1px solid var(--line)} /* le « trait » entre les deux assignations */
.ab-label{font-family:var(--mono);font-size:11px;letter-spacing:.03em;color:var(--ink-3)}
.ab-chips{display:inline-flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.assign-chip{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--ink-2);
  background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:2px 9px 2px 3px}
.assign-av{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:999px;
  color:#fff;font-family:var(--mono);font-size:9px;font-weight:700;font-style:normal;flex:none}
.bc-assign{margin-left:auto;display:inline-flex;gap:6px;flex-wrap:wrap}
.bc-sep{border-top:1px solid var(--line);padding-top:10px;margin-top:6px}
.pt-row-head{flex-wrap:wrap}
.pt-link{font-family:var(--mono);font-size:11px;color:var(--accent);border:1px dashed var(--accent);border-radius:999px;
  padding:2px 9px;margin-left:auto;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-row .assign-band{margin:8px 0 10px}

/* ---------- Tiroir mobile + bouton rond TASK (retours Paul 01/07) ---------- */
.task-fab{display:none;position:fixed;right:16px;bottom:18px;z-index:85;width:60px;height:60px;border-radius:50%;
  border:0;background:var(--accent);color:#fff;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  box-shadow:0 8px 24px -6px rgba(104,71,235,.55)}
.task-fab .tf-emoji{font-size:19px;line-height:1}
.task-fab .tf-label{font-family:var(--mono);font-size:8.5px;font-weight:700;letter-spacing:.08em}
.m-overlay{position:fixed;inset:0;background:rgba(13,13,24,.45);z-index:80}
.m-drawer{position:fixed;top:0;right:0;bottom:0;z-index:82;width:min(86vw,400px);background:var(--card);
  transform:translateX(103%);transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;
  border-left:1px solid var(--line);box-shadow:-18px 0 40px -18px rgba(13,13,24,.35)}
.m-drawer.open{transform:none}
.m-drawer-head{flex:none;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;
  border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-3);font-weight:600}
.m-drawer-close{border:0;background:none;font-size:22px;line-height:1;color:var(--ink-3);cursor:pointer;padding:2px 6px}
.m-drawer-body{flex:1;min-height:0;overflow:auto;padding-bottom:90px}
.m-drawer-body .nav{display:block;position:static;height:auto;border:0;overflow:visible}
.m-drawer-body .nav-scroll{overflow:visible;padding:16px 14px}
.m-drawer-body .team-dock{max-height:none}
.m-drawer-body .timeline{position:static;height:auto;border:0;border-top:1px solid var(--line);overflow:visible}
.m-drawer-body .tl-cols{grid-template-columns:1fr} /* colonnes À faire empilées dans le tiroir : lisible à 390px */
body.drawer-lock{overflow:hidden}
body.drawer-lock .task-fab{z-index:79} /* tiroir ouvert : le bouton passe SOUS l'overlay, il ne masque plus le panneau */
@media (prefers-reduced-motion: reduce){.m-drawer{transition:none}}

/* ---------- Responsive : seul le contenu du milieu reste visible, le reste vit dans le tiroir --- */
@media(max-width:1080px){
  .layout{grid-template-columns:minmax(0,1fr)} /* minmax(0,…) : sans quoi un tableau large impose sa largeur min à la colonne */
  .doc-wrap{padding:24px 16px 96px}
  .b-table{display:block;overflow-x:auto}
  .tabs-bar{flex-wrap:wrap}
  /* min-width:0 : un input garde sinon sa largeur minimum intrinsèque (~20ch) et fait déborder les grilles 1fr 1fr */
  .bc-line input,.of-line input,.of-card-head input,.pt-line input,.pl-row input,.ml-row input{min-width:0}
  /* bouton × replié seul sur sa rangée : calé à droite au lieu d'être étiré sur toute la cellule */
  .pl-row .pl-del,.ml-row .ml-del{justify-self:end}
  .task-fab{display:flex}
  .cover{padding:22px 18px}
  .cover h1{font-size:clamp(21px,7vw,44px)}
  .cover .cov-axis{flex-direction:column;gap:2px}
  .cover .cov-axis-k{min-width:0}
  .pillars,.funnel,.cover .groups{grid-template-columns:1fr}
  .b-timeline{flex-direction:column;gap:0}
  .b-timeline .ts{padding:6px 0 6px 22px}
  .b-timeline .ts::before{top:8px}.b-timeline .ts::after{display:none}
}
@media(max-width:680px){.sec-kicker{display:none}.tb-right .progress{display:none}.tb-btn{padding:7px 9px}.b-table{display:block;overflow-x:auto;white-space:nowrap}}

/* ---------- Studio d'édition admin ---------- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.edit-gate{display:none}
body.can-edit .edit-gate{display:inline-block}
.edit-tools{display:inline-flex;align-items:center;gap:6px}
.save-state{font-family:var(--mono);font-size:11px;padding:4px 8px;border-radius:7px}
.save-state.ss-ok{color:#cfcce6;background:rgba(255,255,255,.07)}
.save-state.ss-dirty{color:#ffd9a8;background:rgba(202,162,58,.22)}
.save-state.ss-saving{color:#cfcce6;background:rgba(255,255,255,.12)}
.save-state.ss-err{color:#ffb3c8;background:rgba(214,51,108,.25)}
.tb-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.tb-btn[aria-pressed="true"]#btnEdit,#btnEdit[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.tb-btn:disabled{opacity:.4;cursor:not-allowed}

/* mode édition : signal visuel + sections survolables */
body[data-edit="1"] .doc{outline:2px dashed var(--accent-soft);outline-offset:8px}
.sec-tools{display:flex;align-items:center;gap:6px;margin:0 0 8px;padding:5px 8px;background:var(--accent-soft);border:1px solid #d6caf7;border-radius:9px;width:fit-content}
.sec-handle{font-family:var(--mono);font-size:11px;color:var(--accent-ink);cursor:grab;padding:2px 7px;background:#fff;border-radius:6px;user-select:none}
.sec-handle:active{cursor:grabbing}
.sec-tools button{border:1px solid #d6caf7;background:#fff;color:var(--accent-ink);border-radius:6px;width:24px;height:22px;cursor:pointer;font-size:11px;line-height:1}
.sec-tools button:disabled{opacity:.35;cursor:not-allowed}
.section.dragging{opacity:.5}
.drop-indicator{height:3px;background:var(--accent);border-radius:3px;margin:6px 0;box-shadow:0 0 0 3px var(--accent-soft)}

/* sélection de bloc + barre flottante */
body[data-edit="1"] #doc [data-uid]{cursor:pointer}
.blk-selected{outline:2px solid var(--accent)!important;outline-offset:3px;border-radius:6px}
#blkbar{position:absolute;z-index:55;display:flex;gap:2px;background:var(--dark);padding:4px;border-radius:9px;box-shadow:0 8px 24px -10px rgba(0,0,0,.6)}
#blkbar .bb-handle{color:#cfcce6;cursor:grab;padding:3px 7px;font-size:13px;user-select:none}
#blkbar button{background:rgba(255,255,255,.08);border:0;color:#fff;width:26px;height:26px;border-radius:6px;cursor:pointer;font-size:13px}
#blkbar button:hover{background:rgba(255,255,255,.2)}
#blkbar button.danger:hover{background:var(--danger)}
#blkbar button:disabled{opacity:.3;cursor:not-allowed}

/* contentEditable actif — fond blanc + texte SOMBRE forcé (sinon un titre blanc sur héros sombre devient invisible) */
[contenteditable="true"].editing{outline:2px solid var(--accent);outline-offset:2px;border-radius:5px;background:#fff;color:var(--ink)!important;cursor:text;min-height:1em;padding:2px 5px}
[contenteditable="true"].editing *{color:var(--ink)!important;-webkit-text-fill-color:var(--ink)!important}
[contenteditable="true"].editing .mono{background:var(--line-2)}
[contenteditable="true"].editing::selection,[contenteditable="true"].editing *::selection{background:#cbb8ff;color:#15151f}
.sec-h.editing{background:#fff}
#editbar{position:absolute;z-index:60;display:flex;align-items:center;gap:3px;background:var(--dark);padding:5px 6px;border-radius:9px;box-shadow:0 8px 24px -10px rgba(0,0,0,.6)}
#editbar button{background:rgba(255,255,255,.1);border:0;color:#fff;padding:5px 9px;border-radius:6px;cursor:pointer;font-size:12.5px;line-height:1}
#editbar button:hover{background:rgba(255,255,255,.22)}
#editbar button.mono{font-family:var(--mono);font-size:11px}
#editbar .eb-sep{width:1px;height:20px;background:rgba(255,255,255,.18);margin:0 3px}
#editbar .eb-font{background:rgba(255,255,255,.1);color:#fff;border:0;border-radius:6px;padding:5px 6px;font-size:12px;cursor:pointer}
#editbar .eb-font option{color:#111}
#editbar .eb-ok{background:var(--success);color:#fff;font-weight:800}
#editbar .eb-ok:hover{background:#178a5c}

/* ---------- Refonte : composants ajoutés ---------- */
/* cartes action simplifiées + marche à suivre */
.ac-check{color:var(--success);font-weight:800}
.action.ac-done{border-color:#bfe7d6}
.ac-steps{margin:2px 0 12px}
.ac-stepg{margin:0 0 10px}
.ac-stepg h6{margin:0 0 6px;font-size:12.5px;color:var(--accent-ink);font-family:var(--mono);letter-spacing:.03em}
.ac-stepg ol{list-style:none;counter-reset:s;margin:0;padding:0}
.ac-stepg li{counter-increment:s;position:relative;padding:4px 0 4px 28px;font-size:13px;color:var(--ink-2)}
.ac-stepg li::before{content:counter(s);position:absolute;left:0;top:3px;width:19px;height:19px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-family:var(--mono);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}

/* timeline verticale BI-COULOIR (S1) : client | moi */
.tl-lanes{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tl-lane{position:relative;min-width:0}
.tl-lane-h{position:sticky;top:0;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--ink-3);padding:2px 0 8px;background:#fbfbfe;z-index:2}
.tl-lane[data-lane="admin"] .tl-lane-h{color:var(--accent)}
.tl-item{display:flex;gap:8px;align-items:flex-start;border:0;padding:8px 3px;margin:0;position:relative;cursor:pointer;background:none;transition:background .18s,transform .18s}
.tl-item:hover{background:var(--line-2);border-radius:8px}
.tl-item .tl-dot{flex:0 0 auto;width:11px;height:11px;border-radius:50%;background:#fff;border:2px solid var(--accent);margin-top:3px;position:relative;z-index:1;transition:.2s}
.tl-item.tl-done .tl-dot{background:var(--success);border-color:var(--success)}
.tl-item.tl-warn .tl-dot{background:var(--warn-soft);border-color:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}
.tl-item:not(:last-child)::before{content:"";position:absolute;left:5px;top:16px;bottom:-8px;width:2px;background:var(--line);z-index:0}
.tl-item .tl-body{flex:1;min-width:0}
.tl-item .tit{display:flex;gap:5px;align-items:center;margin-bottom:1px}
.tl-item .tname{font-size:11.5px;font-weight:600;line-height:1.2}
.tl-item .tsub{font-size:10px;color:var(--ink-3);font-family:var(--mono)}
.timeline{width:auto}
.tl-empty{font-size:12px;color:var(--ink-3);padding:8px 3px;grid-column:1/-1}

/* Barre de tâche inline (case « c'est bon » + réassignation) retirée (T10) — l'assignation/complétion
   N-acteurs vivante est reprise par le rail d'assignation collaboratif (T12+, core/collab). */

/* ---------- Rail d'assignation collaboratif (T12, public/pdfweb/collab.js) ----------------------
   Tokens repris de data/refs/collab-rail/tokens.json (T11 — grammaire structurelle Linear : radius
   pill 9999px pour avatars/badges, échelle de spacing/shadow) recolorés sur le thème violet clair
   AdOrbit (jamais la palette dark de la réf). */
.crail{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:14px}
.crail-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.crail-title{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-3);font-weight:600}
.crail-add{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:9999px;
  border:1px solid var(--line);background:#fff;color:var(--accent-ink);cursor:pointer;padding:0;transition:.15s}
.crail-add:hover{border-color:var(--accent);background:var(--accent-soft)}
.crail-add-ic{width:13px;height:13px}
.crail-stack{display:flex;align-items:center;margin-bottom:12px}
.crail-av{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:9999px;
  font-family:var(--sans);font-size:12px;font-weight:600;color:#fff;border:2px solid #fbfbfe;margin-left:-8px;
  box-shadow:0 1px 2px rgba(20,20,30,.12);flex:0 0 auto}
.crail-stack .crail-av:first-child{margin-left:0}
.crail-av-sm{width:20px;height:20px;font-size:10px;margin-left:0;border-width:1px}
.crail-more{background:var(--ink-3);color:#fff;font-family:var(--mono)}
.crail-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.crail-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;transition:.15s}
.crail-row:hover{background:var(--line-2)}
.crail-name{font-size:12.5px;font-weight:600;color:var(--ink);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crail-role{font-size:10.5px;font-weight:500;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
.crail-tag{font-family:var(--mono);font-size:9.5px;font-weight:600;padding:1px 6px;border-radius:9999px;white-space:nowrap}
.crail-tag-ok{background:var(--success-soft);color:var(--success)}
.crail-tag-dry{background:var(--line-2);color:var(--ink-3)}
.crail-empty{font-size:12px;color:var(--ink-3);padding:6px 8px}
.crail-popover{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;
  box-shadow:0 8px 24px -12px rgba(20,20,30,.25);display:flex;flex-direction:column;gap:9px}
.crail-popover[hidden]{display:none}
.crail-field{display:flex;flex-direction:column;gap:4px;font-size:11.5px;font-weight:600;color:var(--ink-2)}
.crail-field input{font-family:var(--sans);font-size:13px;font-weight:400;color:var(--ink);border:1px solid var(--line);
  border-radius:8px;padding:7px 9px}
.crail-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.crail-hint{font-size:11.5px;color:var(--danger);margin:0}
.crail-popover-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:2px}
.crail-btn{font-family:var(--sans);font-size:12px;font-weight:600;padding:7px 12px;border-radius:8px;cursor:pointer;border:1px solid var(--line)}
.crail-btn-ghost{background:#fff;color:var(--ink-2)}
.crail-btn-ghost:hover{background:var(--line-2)}
.crail-btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.crail-btn-primary:hover{background:var(--accent-d)}

/* ---------- « Assigné à » à DROITE par carte action (T14 → réaligné T30, public/pdfweb/collab.js)
   Même grammaire pill/avatar que le rail T12 (avatars .crail-av réutilisés tels quels), posé en tête
   de .ac-body. T30 (plan 20260701-1147, LOT 11) : le rappel d'assignation doit être un repère clair
   « à droite » de la carte — le label+avatar+nom sont donc poussés en butée droite (.ac-assign-lab a
   `margin-left:auto`, tout ce qui suit dans le flux flex reste collé à sa droite), pendant que la coche
   « c'est bon » (T15, zone droite du MÊME bandeau) garde sa place à l'extrémité. */
.ac-assign{position:relative;display:flex;align-items:center;gap:8px;margin:0 0 12px;padding-bottom:11px;border-bottom:1px dashed var(--line)}
.ac-assign-lab{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--ink-3);text-transform:uppercase;margin-left:auto;flex:0 0 auto}
.ac-assign-name{font-size:12.5px;font-weight:600;color:var(--ink);flex:0 1 auto;min-width:0;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}
.ac-assign-add{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:9999px;
  border:1px solid var(--line);background:#fff;color:var(--accent-ink);cursor:pointer;padding:0;transition:.15s;flex:0 0 auto}
.ac-assign-add:hover{border-color:var(--accent);background:var(--accent-soft)}
.ac-assign-pop{position:absolute;z-index:20;top:calc(100% + 6px);right:0;left:auto;min-width:220px;max-width:280px;
  background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px -12px rgba(20,20,30,.25);
  padding:6px;display:flex;flex-direction:column;gap:2px}
.ac-assign-pop[hidden]{display:none}
.ac-assign-opt{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;text-align:left;
  padding:7px 8px;border-radius:8px;cursor:pointer;font-family:var(--sans);font-size:12.5px;font-weight:500;color:var(--ink)}
.ac-assign-opt:hover{background:var(--line-2)}
.ac-assign-opt.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
.ac-assign-invite{margin-top:4px;padding-top:8px;border-top:1px solid var(--line-2);background:none;border-left:0;border-right:0;border-bottom:0;
  text-align:left;font-family:var(--sans);font-size:12px;font-weight:600;color:var(--accent-ink);cursor:pointer;padding-left:8px;padding-bottom:6px}
.ac-assign-invite:hover{text-decoration:underline}

/* ---------- « C'est bon » DROITE par carte + anim collapse (T15, public/pdfweb/collab.js) --------
   Zone DROITE du même bandeau `.ac-assign` (§A6, distincte de « Assigné à » à GAUCHE §A5) : une
   pastille toggle, puis au clic un collapse grid-template-rows 1fr→0fr sur un wrapper EXTERNE monté
   une seule fois (jamais recréé) — state-of-the-art T11 : css-tricks.com/css-grid-can-do-auto-height-transitions.
   Le rectangle complet cède la place à une petite ligne verte + coche (`.ac-donebar`). */
.ac-assign-sep{flex:0 0 auto;width:1px;align-self:stretch;background:var(--line);margin:0 2px}
.ac-done-toggle{display:flex;align-items:center;gap:6px;flex:0 0 auto;border:1px solid var(--line);background:#fff;
  border-radius:9999px;padding:4px 10px 4px 6px;cursor:pointer;font-family:var(--sans);font-size:11.5px;font-weight:600;
  color:var(--ink-2);transition:.15s}
.ac-done-toggle:hover{border-color:var(--success);background:var(--success-soft);color:var(--success)}
.ac-done-box{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:9999px;
  border:1.5px solid var(--line);color:transparent;flex:0 0 auto;transition:.15s}
.ac-done-box .ac-done-ic{width:12px;height:12px}
.ac-done-toggle.on{border-color:var(--success);background:var(--success-soft);color:var(--success)}
.ac-done-toggle.on .ac-done-box{background:var(--success);border-color:var(--success);color:#fff}

/* wrapper externe permanent — c'est LUI qui anime, `.ac-body` (déplacé dedans) ne bouge jamais seul */
.ac-collapse-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .32s ease}
.ac-collapse-wrap>.ac-collapse-inner{overflow:hidden;min-height:0}
.ac-collapse-wrap.is-collapsed{grid-template-rows:0fr}
.action.ac-collapsed{box-shadow:none}
/* petite ligne verte + coche, affichée seulement quand la carte est repliée */
.ac-donebar{display:flex;align-items:center;gap:8px;width:100%;border:0;background:var(--success-soft);
  color:var(--success);font-family:var(--sans);font-size:12.5px;font-weight:600;cursor:pointer;
  padding:9px 15px;text-align:left}
.ac-donebar[hidden]{display:none}
.ac-doneline{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;color:inherit;
  font:inherit;cursor:pointer;padding:0;text-align:left}
.ac-doneline-check{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:9999px;
  background:var(--success);color:#fff;flex:0 0 auto}
.ac-doneline-check svg{width:12px;height:12px}
@media (prefers-reduced-motion: reduce){
  .ac-collapse-wrap{transition-duration:0s}
}

/* logos */
.logos{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px}
.logo-chip{display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:5px 12px 5px 6px;font-size:13px;font-weight:600;color:inherit;text-decoration:none}
/* T9 (ultraplan 20260701-1147, LOT2) : logo cliquable (`<a data-sec>`) vers un encart cible — même
   chip visuel qu'un item non cliquable (`<span>`), juste un retour visuel discret au survol/focus. */
a.logo-chip{cursor:pointer;transition:border-color .15s,background .15s}
a.logo-chip:hover,a.logo-chip:focus-visible{border-color:var(--accent);background:var(--accent-soft)}
.lg{width:22px;height:22px;display:block}
/* T10 (ultraplan 20260701-1147, LOT2) : groupes de logos — un "chapeau" (ex: Meta) avec ses
   filiales alignées dessous (ex: Facebook+Instagram), ou un groupe simple (TikTok, Google
   Analytics, Shopify) sans enfant. Colonnes alignées sur la même ligne, zéro arc décoratif (R12). */
.logos-groups{align-items:flex-start}
.logo-group{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.logo-subs{display:flex;flex-wrap:wrap;gap:6px}

/* onglets */
.tabs{margin:0 0 18px}
.tabs-bar{display:flex;gap:4px;border-bottom:2px solid var(--line);margin-bottom:14px}
.tab-btn{background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-2px;padding:9px 14px;font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--ink-3);cursor:pointer}
.tab-btn.on{color:var(--accent);border-bottom-color:var(--accent)}
.tab-panel{display:none}.tab-panel.on{display:block}

/* estimateur budget */
.budget{border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--card);margin:0 0 18px}
.bud-row label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.bud-input{display:flex;align-items:center;gap:8px}
.bud-input input{width:150px;font-size:16px;font-family:var(--mono);border:1px solid var(--line);border-radius:8px;padding:9px 11px}
.bud-out{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0}
.bud-est{border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:120px;background:#fafafe}
.bud-est .v{display:block;font-family:var(--mono);font-weight:700;font-size:17px;color:var(--accent-ink)}
.bud-est .l{font-size:11px;color:var(--ink-3)}
.bud-warn{font-size:12px;color:#9a7a1e;background:var(--warn-soft);border:1px solid #ecdca0;border-radius:9px;padding:9px 11px}
.bud-lowwarn{width:100%;font-size:12px;color:var(--danger);margin-top:6px}

/* calendrier */
.calendar{margin:0 0 18px}
.cal-months{display:flex;gap:18px;flex-wrap:wrap}
.cal-month{flex:1;min-width:260px}
.cal-title{font-weight:700;text-transform:capitalize;margin-bottom:8px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow{font-family:var(--mono);font-size:10px;color:var(--ink-3);text-align:center;padding:2px}
.cal-day{aspect-ratio:1;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;font-size:12px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:3px;overflow:hidden}
.cal-day:hover{border-color:var(--accent)}
.cal-day.has{background:var(--accent-soft);border-color:var(--accent)}
.cal-day .cd-n{font-weight:600}
.cal-slot{font-style:normal;font-size:8.5px;color:var(--accent-ink);line-height:1.15;font-family:var(--mono)}
.cal-empty{border:0}
.cal-pop{position:fixed;inset:0;background:rgba(13,13,24,.45);z-index:80;display:flex;align-items:center;justify-content:center}
.cal-pop-in{background:#fff;border-radius:14px;padding:18px;width:300px;box-shadow:0 20px 60px -20px rgba(0,0,0,.5)}
.cal-pop-h{font-weight:700;margin-bottom:12px}
.cal-pop-in label{display:block;font-size:12px;color:var(--ink-2);margin:10px 0 5px;font-weight:600}
.cal-plats{display:flex;gap:6px}
.cal-plats button{flex:1;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;font-size:12.5px}
.cal-plats button.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.cal-pop-in input[type=time]{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px}
.cal-pop-act{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.cal-pop-act button{padding:8px 14px;border-radius:8px;border:1px solid var(--line);cursor:pointer;font-weight:600;font-size:12.5px}
.cal-pop-act .primary{background:var(--accent);color:#fff;border-color:var(--accent)}

/* médiatèque */
.medialib{margin:0 0 18px}
.ml-brands{margin-bottom:14px}
.ml-client{border:1px dashed var(--accent);border-radius:12px;padding:13px;background:var(--info-soft)}
.ml-head{font-size:12.5px;font-weight:700;color:var(--accent-ink);margin-bottom:10px}
/* Conteneur racine d'une ligne (T23, même fix que productlist T16b) : regroupe .ml-row + .ml-filerow
   dans UN SEUL enfant racine — `elFrom()` ne garde que le premier enfant d'un template multi-racine. */
.ml-rowgroup{display:block}
.ml-row{display:grid;grid-template-columns:110px minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto auto;gap:7px;align-items:center;margin-bottom:2px}
.ml-row select,.ml-row input{border:1px solid var(--line);border-radius:7px;padding:7px 8px;font-size:12.5px;font-family:var(--sans);background:#fff}
.ml-row.ml-invalid input.ml-drive{border-color:var(--danger)}
.ml-file{background:#fff;border:1px solid var(--line);border-radius:7px;padding:7px 9px;cursor:pointer;font-size:13px;text-align:center}
.ml-row.ml-dragover{background:var(--accent-soft)}
.ml-filerow{display:flex;align-items:center;gap:10px;margin:0 0 7px 2px;flex-wrap:wrap}
.ml-files{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ml-file-chip{font-size:11px;color:var(--accent-ink);text-decoration:none;border:1px dashed var(--accent);border-radius:6px;padding:3px 7px}
.ml-file-del{background:none;border:0;color:var(--danger);cursor:pointer;font-size:10.5px;padding:0;text-decoration:underline}
.ml-err{font-size:10.5px;color:var(--danger);min-height:14px}
@media(max-width:820px){.ml-row{grid-template-columns:1fr 1fr;gap:6px}}

/* liste éléments urgents */
.urgent{border:2px solid var(--danger);border-radius:14px;background:var(--danger-soft);padding:16px;margin:0 0 18px}
.urgent-head{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.05em;color:var(--danger);margin-bottom:12px;text-transform:uppercase}
.urgent-item{display:flex;gap:9px;align-items:center;width:100%;text-align:left;background:#fff;border:1px solid #f0b6cd;border-radius:9px;padding:9px 11px;margin-bottom:7px;cursor:pointer;font-size:13px}
.urgent-item:hover{border-color:var(--danger);transform:translateX(3px);transition:.15s}
.urgent-item .u-sec{margin-left:auto;font-size:11px;color:var(--ink-3);font-family:var(--mono)}

/* récap « en running » (T22) — encart de clôture de section, EN EXERGUE : détaché du flux
   éditorial (marge accrue, bordure accent, fond teinté) — distinct d'un simple callout. */
.recap{border:1px solid var(--accent);border-left:4px solid var(--accent);border-radius:14px;background:var(--accent-soft);padding:18px 20px;margin:28px 0 24px}
.recap-head{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--accent-ink);text-transform:uppercase;margin-bottom:10px}
.recap-points{margin:0;padding:0 0 0 18px;font-size:13.5px;color:var(--ink-2);line-height:1.55}
.recap-points li{margin-bottom:4px}
.recap-next{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:var(--ink)}
.recap-next-lab{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.05em;color:var(--accent);text-transform:uppercase;margin-right:8px}

/* ---------- Panneau « Personnes assignables » (T2 — registre nommé, studio admin) ------------------
   Modal flottante ouverte via #btnPeople (toolbar édition) : ajout/suppression d'une personne du
   registre `doc.assignees[]`. Suppression bloquée (bouton disabled) tant qu'une action/section
   référence encore ce slug — jamais de perte silencieuse d'assignation (R26). */
#peoplePanel{position:fixed;z-index:70;top:80px;right:24px;width:300px;max-height:70vh;overflow:auto;
  background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px -14px rgba(20,20,30,.35);
  padding:14px}
#peoplePanel[hidden]{display:none}
.ppl-head{display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);
  font-size:11.5px;letter-spacing:.05em;color:var(--ink-3);font-weight:700;text-transform:uppercase;
  margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.ppl-close{border:0;background:none;color:var(--ink-3);cursor:pointer;font-size:13px;padding:2px 4px}
.ppl-close:hover{color:var(--ink)}
.ppl-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:4px}
.ppl-row{display:flex;align-items:center;gap:8px;padding:6px 4px;border-radius:8px}
.ppl-row:hover{background:var(--line-2)}
.ppl-name{font-size:12.5px;font-weight:600;color:var(--ink);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ppl-slug{font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
.ppl-refs{font-family:var(--mono);font-size:9.5px;font-weight:600;padding:1px 6px;border-radius:9999px;background:var(--line-2);color:var(--ink-3);white-space:nowrap}
.ppl-del{border:0;background:none;color:var(--danger);cursor:pointer;font-size:12px;padding:2px 6px;border-radius:6px}
.ppl-del:hover:not(:disabled){background:var(--danger-soft)}
.ppl-del:disabled{color:var(--ink-3);cursor:not-allowed;opacity:.5}
.ppl-empty{font-size:12px;color:var(--ink-3);padding:6px 4px}
.ppl-add{display:flex;gap:6px}
.ppl-add input{flex:1;font-family:var(--sans);font-size:13px;color:var(--ink);border:1px solid var(--line);
  border-radius:8px;padding:7px 9px}
.ppl-add input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.ppl-btn{font-family:var(--sans);font-size:12px;font-weight:600;padding:7px 12px;border-radius:8px;
  cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#fff}
.ppl-btn:hover{background:var(--accent-d)}

/* ---------- Print / export (UI retirée, brief §"Impression / export") ---------- */
@media print{
  .toolbar,.nav,.timeline,.toast,.ac-actions,.addrow{display:none!important}
  .layout{display:block}.doc-wrap{max-width:none;padding:0}
  .action{break-inside:avoid}.cover,.thesis{break-inside:avoid}
  body{background:#fff;font-size:12px}
}


/* ---------- Rail « À faire » en colonnes par personne (B3/B4) + Équipe en bas du sommaire (A5/B2) ---------- */
.tl-cols{display:grid;grid-template-columns:repeat(var(--tl-n,3),minmax(0,1fr));gap:7px;align-items:start}
.tl-col{min-width:0;display:flex;flex-direction:column}
.tl-col-h{display:flex;align-items:center;gap:5px;padding:1px 1px 6px;border-bottom:1px solid var(--line);margin-bottom:7px;position:sticky;top:-18px;background:#fbfbfe;z-index:1}
.tl-col-name{font-size:11.5px;font-weight:600;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-col-n{font-family:var(--mono);font-size:10px;color:var(--ink-3);margin-left:auto}
.tl-hide{border:0;background:none;color:var(--ink-3);cursor:pointer;font-size:15px;line-height:1;padding:0 1px;border-radius:5px}
.tl-hide:hover{background:var(--line-2);color:var(--ink)}
.tl-dotp{width:8px;height:8px;border-radius:50%;flex:none}
.tl-col-body{display:flex;flex-direction:column;gap:6px}
.tl-card{border:1px solid var(--line);border-radius:9px;padding:7px 8px;background:#fff;cursor:pointer;transition:border-color .12s,box-shadow .12s}
.tl-card:hover{border-color:var(--accent);box-shadow:0 1px 5px rgba(104,71,235,.13)}
.tl-card-top{margin-bottom:3px}
.tl-card-name{font-size:12px;line-height:1.3;color:var(--ink);font-weight:500}
.tl-card-sub{font-family:var(--mono);font-size:9.5px;color:var(--ink-3);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-card.tl-done{opacity:.5}
.tl-card.tl-done .tl-card-name{text-decoration:line-through}
.tl-hidden-bar{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}
.tl-restore{display:inline-flex;align-items:center;gap:5px;border:1px dashed var(--line);background:none;border-radius:20px;padding:3px 9px;font-size:11px;color:var(--ink-2);cursor:pointer}
.tl-restore:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}
/* Équipe compacte dans le dock bas-gauche */
#teamDock .crail{padding:0}
#teamDock .crail-stack{display:none}
#teamDock .crail-head{margin-bottom:6px}
#teamDock .crail-list{margin-top:4px;display:flex;flex-direction:column;gap:2px}
#teamDock .crail-row{gap:7px;padding:3px 2px}
#teamDock .crail-role{display:none}

/* ---------- Exemples dynamiques (G1/G2/G3) : tag « dynamique » + nom en lecture seule ---------- */
.cs-var-tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;letter-spacing:.03em;color:var(--accent-ink);background:var(--accent-soft);border-radius:6px;padding:3px 9px;margin-bottom:9px;text-transform:uppercase}
.cs-var-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block;flex:none}
.cs-name-static{font-size:13px;font-weight:600;color:var(--ink)}

/* ---------- Hero refait (T-cover) : sous-ligne typo différente + mini-encarts stats + axes ---------- */
.cover .cov-subline{font-family:"Space Grotesk",var(--sans);font-size:clamp(17px,2.6vw,25px);font-weight:500;letter-spacing:-.01em;color:#c9c4ec;margin:3px 0 2px}
.cover .cov-stats{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 16px}
.cover .cov-stat{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:9px 16px;min-width:90px}
.cover .cs-v{font-size:22px;font-weight:800;line-height:1.1;letter-spacing:-.02em}
.cover .cs-l{font-family:var(--mono);font-size:10px;letter-spacing:.05em;color:#aaa3d6;margin-top:3px;text-transform:uppercase}
.cover .cov-axes{font-size:13px;color:#cfcce6;margin:0 0 16px;max-width:660px}
.cover .cov-axes-h{font-family:var(--mono);font-size:11px;letter-spacing:.07em;color:var(--accent);text-transform:uppercase;margin-bottom:7px}
.cover .cov-axis{display:flex;gap:12px;align-items:baseline;padding:5px 0;border-top:1px solid rgba(255,255,255,.08)}
.cover .cov-axis-k{font-weight:700;min-width:158px;flex:none}
.cover .cov-axis-v{color:#bdb8de}

/* ---------- Calendrier : suppression d'evenement (popup) ---------- */
.cal-existing{margin:0 0 4px}
.cal-existing>label{display:block;font-size:11px;color:var(--ink-3);margin-bottom:5px}
.cal-ev{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--line-2);border-radius:8px;padding:5px 6px 5px 10px;margin-bottom:4px;font-size:12.5px}
.cal-ev-del{border:0;background:none;color:var(--ink-3);cursor:pointer;font-size:16px;line-height:1;padding:0 4px;border-radius:5px}
.cal-ev-del:hover{background:#f6d9d9;color:#b02525}

/* ---------- Calendrier organique (B.3, H5) : pins couleur par reseau + legende + popup ---------- */
.orgcal .oc-months{display:flex;flex-wrap:wrap;gap:18px}
.oc-pins{display:flex;gap:3px;justify-content:center;margin-top:3px;flex-wrap:wrap;min-height:8px}
.oc-pin{width:7px;height:7px;border-radius:50%;display:inline-block}
.oc-pin.on{box-shadow:0 0 0 1.5px #fff,0 0 0 3px currentColor}
.oc-legend{display:flex;flex-wrap:wrap;gap:14px;margin:12px 0 6px;font-size:12px;color:var(--ink-2)}
.oc-leg{display:inline-flex;align-items:center;gap:6px}
.oc-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}
.oc-note{font-size:11.5px;color:var(--ink-3);margin-top:6px;line-height:1.6}
.oc-pop{min-width:330px}
.oc-posts{display:flex;flex-direction:column;gap:6px;margin:8px 0}
.oc-post{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:9px;padding:9px 11px;background:#fff;cursor:pointer;text-align:left;width:100%}
.oc-post:hover{border-color:var(--accent);background:var(--accent-soft)}
.oc-post-lab{flex:1;font-size:13px}
.oc-badge{font-family:var(--mono);font-size:10px;color:var(--accent-ink);background:var(--accent-soft);border-radius:5px;padding:1px 7px}
.oc-form{border-top:1px solid var(--line);margin-top:8px;padding-top:10px}
.oc-form-h{font-weight:600;font-size:13px;margin-bottom:10px}
.oc-form label{display:block;font-size:11px;color:var(--ink-3);margin:0 0 5px}
.oc-choices{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.oc-choices button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 13px;font-size:12.5px;cursor:pointer}
.oc-choices button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:600}

/* ================================================================================================
   REFONTE — retours Paul 01/07 soir (2e passe) : onglets colorés, doc groupé, comparateur de prix
   bundle, outfits stepper, RSA éditable + compteurs, budget par canal, nav calendrier bornée,
   sommaire enrichi, bandeaux d'assignation inline, dashboard Suivi, CTA tâche suivante.
   ================================================================================================ */

/* ---------- Onglets colorés (colored:true) ---------- */
.tab-btn.on[style]{border-bottom-color:var(--tab-tint,var(--accent));color:var(--tab-tint,var(--accent))}
.tab-panel[style]{border-top:2px solid var(--tab-tint,transparent);padding-top:12px;margin-top:-2px}
.tab-panel:not(.on){display:none}

/* ---------- Doc groupé (Excel/Drive) — bouton à droite de la barre d'onglets ---------- */
.tabs-bar{position:relative;align-items:center}
.tab-groupdoc{margin-left:auto;flex:0 0 auto;font-family:var(--sans);font-size:12px;font-weight:600;color:var(--accent-ink);
  background:var(--accent-soft);border:1px solid transparent;border-radius:8px;padding:7px 12px;cursor:pointer;margin-bottom:-2px}
.tab-groupdoc:hover{background:#e4dcff}
.tab-groupdoc.gd-has{background:var(--success-soft);color:var(--success)}
.tab-groupdoc-panel{border:1px solid var(--line);border-radius:10px;background:#fafafe;padding:12px;margin-bottom:12px}
.tab-groupdoc-panel[hidden]{display:none}
.gd-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.gd-file{font-size:12.5px;font-weight:600;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 12px;cursor:pointer}
.gd-file:hover{border-color:var(--accent)}
.gd-or{font-size:11.5px;color:var(--ink-3)}
.gd-drive{flex:1;min-width:200px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:12.5px;font-family:var(--sans)}
.gd-files{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}

/* ---------- Bundle : comparateur de prix dynamique ---------- */
.bc-priceq{background:#fafafe;border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:12px}
.bc-priceq-h{font-weight:700;font-size:13.5px;margin-bottom:6px}
.bc-priceq-base{font-size:12px;color:var(--ink-2);margin-bottom:10px}
.bc-compare{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}
.bc-our b{font-family:var(--mono);color:var(--accent-ink)}
.bc-our em{color:var(--ink-3);font-style:normal;font-size:11.5px}
.bc-vs{color:var(--ink-2)}
.bc-vs b{font-family:var(--mono)}
.bc-diff{font-family:var(--mono);font-weight:700;font-size:13px;border-radius:999px;padding:3px 10px}
.bc-diff.bc-over{background:var(--danger-soft);color:var(--danger)}
.bc-diff.bc-under{background:var(--success-soft);color:var(--success)}
.bc-row.bc-sep{padding-bottom:12px;margin-bottom:12px;border-bottom:1px dashed var(--line);flex-wrap:wrap}
.bc-pagecol{flex:1;min-width:0}
.bc-pagelabel{font-size:12px;color:var(--ink-2);margin:4px 0 0}
.bc-assign{flex:0 0 auto}
.bc-check{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;cursor:pointer}
.bc-check input{width:16px;height:16px;accent-color:var(--accent)}

/* ---------- Outfits : compteur incrémental (stepper) ---------- */
.of-stepper{display:flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:9999px;overflow:hidden;background:#fff}
.of-step{width:32px;height:32px;border:0;background:#fff;color:var(--ink);font-size:16px;font-weight:700;cursor:pointer;line-height:1}
.of-step:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-ink)}
.of-step:disabled{opacity:.35;cursor:not-allowed}
.of-count-val{min-width:26px;text-align:center;font-family:var(--mono);font-weight:700;font-size:14px}
.of-hint{font-size:11.5px;color:var(--ink-3);font-style:italic}

/* ---------- Google RSA : édition directe + compteurs de caractères aux limites réelles ---------- */
.serp-ed-wrap{position:relative;display:inline-flex;align-items:baseline;gap:5px}
.serp-ed{outline:none;border-bottom:1px dashed transparent;cursor:text}
.serp-ed:hover,.serp-ed:focus{border-bottom-color:var(--accent)}
.serp-ed-title .serp-ed{color:#1a0dab}
.serp-count{font-family:var(--mono);font-size:9.5px;color:var(--ink-3);white-space:nowrap}
.serp-ed-wrap.serp-over .serp-count{color:var(--danger);font-weight:700}
.serp-ed-wrap.serp-over .serp-ed{border-bottom-color:var(--danger)}
.serp-x{border:0;background:none;color:var(--danger);cursor:pointer;font-size:13px;padding:0 2px;line-height:1}
.serp-titles{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px;margin:2px 0 4px}
.serp-titles>.serp-ed-wrap{font-weight:600;font-size:16px}
.serp-descs .serp-ed-wrap{font-size:12.5px;color:var(--ink-2)}
.serp-toolbar{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.serp-toolbar button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 10px;font-size:11.5px;font-weight:600;color:var(--ink-2);cursor:pointer}
.serp-toolbar button:hover{border-color:var(--accent);color:var(--accent-ink)}
.serp-tb-n{font-family:var(--mono);color:var(--ink-3);font-weight:400}
.serp-ed-url{font-family:var(--mono)}

/* ---------- Budget drive-to-store par canal ---------- */
.bud-hypo{background:#fafafe;border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:14px}
.bud-hypo>label{display:block;font-size:12.5px;font-weight:600;margin-bottom:8px}
.bud-hypo-row{display:flex;align-items:center;gap:12px}
.bud-cpv{flex:1;accent-color:var(--accent)}
.bud-cpv-val{font-size:13px;white-space:nowrap;font-family:var(--sans)}
.bud-cpv-val b{font-family:var(--mono);color:var(--accent-ink)}
.bud-src{font-size:10.5px;color:var(--ink-3);margin-top:8px;line-height:1.4}
.bud-src a{color:var(--ink-3);text-decoration:underline}
.bud-chans{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
@media(max-width:820px){.bud-chans{grid-template-columns:1fr}}
.bud-chan{border:1px solid var(--line);border-radius:10px;padding:12px}
.bud-chan-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.bud-chan-lab{font-weight:700;font-size:13px}
.bud-chan-ready{font-family:var(--mono);font-size:10px;color:var(--ink-3)}

/* ---------- Calendrier : navigation bornée (un mois, flèches) ---------- */
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cal-nav-btn{width:28px;height:28px;border-radius:9999px;border:1px solid var(--line);background:#fff;font-size:15px;
  cursor:pointer;color:var(--ink-2);line-height:1}
.cal-nav-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}
.cal-nav-btn:disabled{opacity:.3;cursor:not-allowed}
.cal-nav .cal-title{margin:0;text-transform:capitalize;font-weight:700}

/* ---------- Médiatèque simple (s07) + dépôt en vrac ---------- */
.ml-row-simple{grid-template-columns:1fr 1.4fr auto auto}
@media(max-width:820px){.ml-row-simple{grid-template-columns:1fr 1fr}}
.ml-bulk{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.ml-bulk-btn{display:inline-block;font-size:12.5px;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);
  border-radius:8px;padding:8px 14px;cursor:pointer}
.ml-bulk-btn:hover{background:#e4dcff}
.ml-bulk-files{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.ml-bulk-chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-2);background:#fff;
  border:1px solid var(--line);border-radius:999px;padding:4px 6px 4px 10px}
.ml-bulk-chip a{color:var(--accent-ink)}
.ml-bulk-del{border:0;background:none;color:var(--danger);cursor:pointer;font-size:13px;line-height:1;padding:0 2px}

/* ---------- Bandeaux d'assignation VIVANTS sur blocs interactifs (assignBar) ---------- */
.assign-band.assign-live .ac-assign{margin:0 0 12px;padding-bottom:11px}
[id^="act-"].inline-done{opacity:.7}

/* ---------- Sommaire enrichi : avatars + compteur de tâches restantes par section ---------- */
.nav-meta{display:flex;align-items:center;gap:2px;margin-left:auto;flex:0 0 auto}
.nav-av{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:9999px;
  font-family:var(--sans);font-size:8px;font-weight:700;color:#fff;margin-left:-4px;border:1.5px solid #fff}
.nav-av:first-child{margin-left:0}
.nav-count{font-family:var(--mono);font-size:9.5px;color:var(--ink-3);margin-left:4px;min-width:12px;text-align:center}
.nav-done{color:var(--success);font-weight:800;font-size:12px;margin-left:auto}

/* ---------- Bouton Suivi (toolbar) ---------- */
.tb-suivi{display:flex;align-items:center;gap:6px}
.tb-suivi svg{width:14px;height:14px}

/* ---------- Dashboard « Suivi » — overlay connecté ---------- */
.trk-overlay{position:fixed;inset:0;background:rgba(13,13,24,.5);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}
.trk-panel{background:#fff;border-radius:16px;max-width:1040px;width:100%;max-height:86vh;display:flex;flex-direction:column;
  box-shadow:0 20px 60px -12px rgba(13,13,24,.4)}
.trk-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line)}
.trk-title{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--ink-3);font-weight:700}
.trk-sub{font-size:12.5px;color:var(--ink-2);margin-top:3px}
.trk-close{width:30px;height:30px;border-radius:9999px;border:1px solid var(--line);background:#fff;font-size:16px;cursor:pointer;color:var(--ink-2)}
.trk-close:hover{background:var(--line-2)}
.trk-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;padding:18px 22px;overflow:auto}
.trk-col{min-width:0}
.trk-col-h{display:flex;align-items:center;gap:8px;padding-bottom:9px;margin-bottom:9px;border-bottom:1px solid var(--line)}
.trk-col-name{font-size:13px;font-weight:700;color:var(--ink);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trk-col-count{font-family:var(--mono);font-size:10px;color:var(--ink-3);white-space:nowrap}
.trk-task{display:flex;align-items:flex-start;gap:8px;width:100%;text-align:left;border:1px solid var(--line);background:#fff;
  border-radius:9px;padding:8px 10px;margin-bottom:6px;cursor:pointer}
.trk-task:hover{border-color:var(--accent)}
.trk-task.trk-done{opacity:.5}
.trk-task.trk-done .trk-lab{text-decoration:line-through}
.trk-check{width:15px;height:15px;border-radius:9999px;border:1.5px solid var(--line);flex:0 0 auto;display:flex;align-items:center;justify-content:center;margin-top:1px}
.trk-task.trk-done .trk-check{background:var(--success);border-color:var(--success);color:#fff}
.trk-check svg{width:10px;height:10px}
.trk-lab{flex:1;min-width:0;font-size:12.5px;line-height:1.35}
.trk-meta{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:0 0 auto}
.trk-sec{font-size:9.5px;color:var(--ink-3);white-space:nowrap}

/* ---------- CTA « Tâche suivante » (après C'est bon) ---------- */
.next-cta{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:90;display:flex;align-items:center;gap:12px;
  background:var(--dark);color:#fff;border-radius:9999px;padding:9px 10px 9px 16px;box-shadow:0 10px 30px -8px rgba(13,13,24,.5);
  animation:nextCtaIn .18s ease-out}
@keyframes nextCtaIn{from{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.next-cta-done{font-size:12px;font-weight:700;color:#8ee6bb;white-space:nowrap}
.next-cta-btn{display:flex;flex-direction:column;align-items:flex-start;gap:1px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);
  border-radius:9999px;padding:6px 14px;color:#fff;font-size:12px;cursor:pointer;white-space:nowrap}
.next-cta-btn:hover{background:rgba(255,255,255,.18)}
.next-cta-btn b{font-weight:700}
.next-cta-sec{font-size:9.5px;color:#cfcce6}
.next-cta-x{width:22px;height:22px;border-radius:9999px;border:0;background:none;color:#cfcce6;cursor:pointer;font-size:14px}
.next-cta-x:hover{color:#fff}
@media(max-width:680px){.next-cta{left:12px;right:12px;transform:none;flex-wrap:wrap}@keyframes nextCtaIn{from{opacity:0}to{opacity:1}}}
