
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/inter-400-latin-v1.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/inter-500-latin-v1.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600 700;font-display:swap;src:url("/fonts/inter-600-latin-v1.woff2") format("woff2")}
@font-face{font-family:"Inter Display";font-style:normal;font-weight:600 700;font-display:swap;src:url("/fonts/inter-display-600-latin-v1.woff2") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/jetbrains-mono-500-subset-v1.woff2") format("woff2");unicode-range:U+2D,U+30-39,U+61-7A}

:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-2xl:22px;--radius-pill:999px;--text-2xs:11px;--text-xs:12px;--text-sm:14px;--text-md:15px;--text-lg:17px;--text-xl:19px;--text-2xl:24px;--text-3xl:30px;--text-4xl:36px;--text-5xl:40px;--text-kpi:34px;--text-display:44px;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:600;--font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Inter Display", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--leading-tight:1.12;--leading-snug:1.3;--leading:1.5;--tracking-body:-0.006em;--tracking-title:-0.015em;--tracking-display:-0.03em;--tracking-kpi:-0.025em;--tracking-caps:0.04em;--duration-fast:120ms;--duration:180ms;--duration-slow:280ms;--ease:cubic-bezier(.2,.7,.2,1);--touch:44px;--control:44px;--topbar-h:56px;--subnav-h:48px;--bottom-nav-h:60px;--content-max:1120px;--content-wide:1320px;--on-account:#FFFFFF;--bg:#F0F0EE;--surface:#FFFFFF;--inset:#F4F4F3;--surface-2:#E8E8E3;--surface-3:#DEDED8;--raised:#FFFFFF;--overlay:rgb(17 18 20 / 0.45);--text:#111214;--text-2:#5E5F64;--text-3:#606166;--border:#E4E4DF;--border-strong:#CFCFC9;--border-input:#7D7F85;--brand:#0B5E7E;--brand-field:#0A4A63;--brand-field-2:#0E5874;--text-on-brand:#FFFFFF;--text-on-brand-2:#C7DFE8;--accent:#0B5E7E;--accent-hover:#084B66;--accent-soft:#E1F0F5;--accent-soft-text:#0A4A63;--text-on-accent:#FFFFFF;--focus:#0B5E7E;--chart:#0B5E7E;--chart-muted:#B9DCE8;--heat-1:#D8E5EA;--heat-ink-1:#111214;--heat-2:#A7C5D1;--heat-ink-2:#111214;--heat-3:#5E95AA;--heat-ink-3:#111214;--heat-4:#0B5E7E;--heat-ink-4:#FFFFFF;--success:#1A7140;--success-soft:#E3F1E8;--warning:#8F5600;--warning-soft:#F7EEDD;--danger:#C02C24;--danger-hover:#A2231D;--danger-soft:#F9E5E3;--text-on-danger:#FFFFFF;--status-queued:#2B4C9B;--status-queued-soft:#E6EBF6;--status-preparing:#8F5600;--status-preparing-soft:#F7EEDD;--status-ready:#141517;--status-ready-soft:#E6E6E1;--status-published:#1A7140;--status-published-soft:#E3F1E8;--status-failed:#C02C24;--status-failed-soft:#F9E5E3;--status-cancelled:#55575C;--status-cancelled-soft:#EFEFEA;--status-draft:#7A4A2A;--status-draft-soft:#F3E9E1;--best-time:color-mix(in srgb, var(--accent) 7%, transparent);--best-time-line:color-mix(in srgb, var(--accent) 38%, transparent);--now-line:#C02C24;--ad:#9A2A8A;--ad-soft:#F7E9F4;--shadow-1:0 1px 2px rgb(17 18 20 / 0.05);--shadow-2:0 12px 32px -12px rgb(17 18 20 / 0.24);--shadow-3:0 28px 64px -20px rgb(17 18 20 / 0.34);--chevron:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%235E5F64%22%20stroke-width%3D%221.75%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%209%206%206%206-6%22%2F%3E%3C%2Fsvg%3E");color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0B0B0C;--surface:#1B1B1D;--inset:#242427;--surface-2:#2A2A2D;--surface-3:#333336;--raised:#3A3A3E;--overlay:rgb(0 0 0 / 0.6);--text:#F2F2EE;--text-2:#A9AAAE;--text-3:#9A9BA0;--border:#2E2E31;--border-strong:#404044;--border-input:#7C7D83;--brand:#6CC4E4;--brand-field:#0D2B37;--brand-field-2:#123847;--text-on-brand:#EEEEEA;--text-on-brand-2:#A3C9D7;--accent:#6CC4E4;--accent-hover:#8ED3EC;--accent-soft:#12303B;--accent-soft-text:#A9DFF2;--text-on-accent:#0F1012;--focus:#6CC4E4;--chart:#6CC4E4;--chart-muted:#1D4A5A;--heat-1:#28363D;--heat-ink-1:#F2F2EE;--heat-2:#385865;--heat-ink-2:#F2F2EE;--heat-3:#508BA0;--heat-ink-3:#0F1012;--heat-4:#6CC4E4;--heat-ink-4:#0F1012;--success:#4FC184;--success-soft:#142A1D;--warning:#E6A740;--warning-soft:#33270F;--danger:#FF7B6B;--danger-hover:#FF9A8D;--danger-soft:#3A1A17;--text-on-danger:#0F1012;--status-queued:#9DB6F2;--status-queued-soft:#1A2440;--status-preparing:#E6A740;--status-preparing-soft:#33270F;--status-ready:#EEEEEA;--status-ready-soft:#2C2D32;--status-published:#4FC184;--status-published-soft:#142A1D;--status-failed:#FF7B6B;--status-failed-soft:#3A1A17;--status-cancelled:#A6A7AB;--status-cancelled-soft:#26272B;--status-draft:#D9A988;--status-draft-soft:#33241A;--best-time:color-mix(in srgb, var(--accent) 8%, transparent);--best-time-line:color-mix(in srgb, var(--accent) 42%, transparent);--now-line:#FF7B6B;--ad:#F2A5E3;--ad-soft:#36172F;--shadow-1:0 1px 2px rgb(0 0 0 / 0.4);--shadow-2:0 12px 32px -12px rgb(0 0 0 / 0.75);--shadow-3:0 28px 64px -18px rgb(0 0 0 / 0.85);--chevron:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23A9AAAE%22%20stroke-width%3D%221.75%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%209%206%206%206-6%22%2F%3E%3C%2Fsvg%3E");color-scheme:dark}}
:root[data-theme=dark]{--bg:#0B0B0C;--surface:#1B1B1D;--inset:#242427;--surface-2:#2A2A2D;--surface-3:#333336;--raised:#3A3A3E;--overlay:rgb(0 0 0 / 0.6);--text:#F2F2EE;--text-2:#A9AAAE;--text-3:#9A9BA0;--border:#2E2E31;--border-strong:#404044;--border-input:#7C7D83;--brand:#6CC4E4;--brand-field:#0D2B37;--brand-field-2:#123847;--text-on-brand:#EEEEEA;--text-on-brand-2:#A3C9D7;--accent:#6CC4E4;--accent-hover:#8ED3EC;--accent-soft:#12303B;--accent-soft-text:#A9DFF2;--text-on-accent:#0F1012;--focus:#6CC4E4;--chart:#6CC4E4;--chart-muted:#1D4A5A;--heat-1:#28363D;--heat-ink-1:#F2F2EE;--heat-2:#385865;--heat-ink-2:#F2F2EE;--heat-3:#508BA0;--heat-ink-3:#0F1012;--heat-4:#6CC4E4;--heat-ink-4:#0F1012;--success:#4FC184;--success-soft:#142A1D;--warning:#E6A740;--warning-soft:#33270F;--danger:#FF7B6B;--danger-hover:#FF9A8D;--danger-soft:#3A1A17;--text-on-danger:#0F1012;--status-queued:#9DB6F2;--status-queued-soft:#1A2440;--status-preparing:#E6A740;--status-preparing-soft:#33270F;--status-ready:#EEEEEA;--status-ready-soft:#2C2D32;--status-published:#4FC184;--status-published-soft:#142A1D;--status-failed:#FF7B6B;--status-failed-soft:#3A1A17;--status-cancelled:#A6A7AB;--status-cancelled-soft:#26272B;--status-draft:#D9A988;--status-draft-soft:#33241A;--best-time:color-mix(in srgb, var(--accent) 8%, transparent);--best-time-line:color-mix(in srgb, var(--accent) 42%, transparent);--now-line:#FF7B6B;--ad:#F2A5E3;--ad-soft:#36172F;--shadow-1:0 1px 2px rgb(0 0 0 / 0.4);--shadow-2:0 12px 32px -12px rgb(0 0 0 / 0.75);--shadow-3:0 28px 64px -18px rgb(0 0 0 / 0.85);--chevron:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23A9AAAE%22%20stroke-width%3D%221.75%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%209%206%206%206-6%22%2F%3E%3C%2Fsvg%3E");color-scheme:dark}
:root[data-accent=prune]{--accent:#7A2D66;--accent-hover:#63234F;--accent-soft:#F5E8F1;--accent-soft-text:#5E2250;--text-on-accent:#FFFFFF;--focus:#7A2D66;--chart:#7A2D66;--chart-muted:#E4C3DA;--heat-1:#EADDE7;--heat-ink-1:#111214;--heat-2:#CFB3C8;--heat-ink-2:#111214;--heat-3:#A7749A;--heat-ink-3:#111214;--heat-4:#7A2D66;--heat-ink-4:#FFFFFF;}@media (prefers-color-scheme:dark){:root:not([data-theme=light])[data-accent=prune]{--accent:#E09ACB;--accent-hover:#EAB3DA;--accent-soft:#3A1D33;--accent-soft-text:#F0C6E3;--text-on-accent:#0F1012;--focus:#E09ACB;--chart:#E09ACB;--chart-muted:#55304B;--heat-1:#3B2F39;--heat-ink-1:#F2F2EE;--heat-2:#62495C;--heat-ink-2:#F2F2EE;--heat-3:#9D6F90;--heat-ink-3:#0F1012;--heat-4:#E09ACB;--heat-ink-4:#0F1012;}}:root[data-theme=dark][data-accent=prune]{--accent:#E09ACB;--accent-hover:#EAB3DA;--accent-soft:#3A1D33;--accent-soft-text:#F0C6E3;--text-on-accent:#0F1012;--focus:#E09ACB;--chart:#E09ACB;--chart-muted:#55304B;--heat-1:#3B2F39;--heat-ink-1:#F2F2EE;--heat-2:#62495C;--heat-ink-2:#F2F2EE;--heat-3:#9D6F90;--heat-ink-3:#0F1012;--heat-4:#E09ACB;--heat-ink-4:#0F1012;}
:root[data-accent=mousse]{--accent:#4D5A12;--accent-hover:#3E490C;--accent-soft:#EEF1DD;--accent-soft-text:#3D470E;--text-on-accent:#FFFFFF;--focus:#4D5A12;--chart:#4D5A12;--chart-muted:#D3DBA6;--heat-1:#E3E5D9;--heat-ink-1:#111214;--heat-2:#BFC4AA;--heat-ink-2:#111214;--heat-3:#8A9263;--heat-ink-3:#111214;--heat-4:#4D5A12;--heat-ink-4:#FFFFFF;}@media (prefers-color-scheme:dark){:root:not([data-theme=light])[data-accent=mousse]{--accent:#C2D16A;--accent-hover:#D2DE8A;--accent-soft:#2A2F14;--accent-soft-text:#DCE6A0;--text-on-accent:#0F1012;--focus:#C2D16A;--chart:#C2D16A;--chart-muted:#424A1E;--heat-1:#363829;--heat-ink-1:#F2F2EE;--heat-2:#575D39;--heat-ink-2:#F2F2EE;--heat-3:#899350;--heat-ink-3:#0F1012;--heat-4:#C2D16A;--heat-ink-4:#0F1012;}}:root[data-theme=dark][data-accent=mousse]{--accent:#C2D16A;--accent-hover:#D2DE8A;--accent-soft:#2A2F14;--accent-soft-text:#DCE6A0;--text-on-accent:#0F1012;--focus:#C2D16A;--chart:#C2D16A;--chart-muted:#424A1E;--heat-1:#363829;--heat-ink-1:#F2F2EE;--heat-2:#575D39;--heat-ink-2:#F2F2EE;--heat-3:#899350;--heat-ink-3:#0F1012;--heat-4:#C2D16A;--heat-ink-4:#0F1012;}
:root[data-accent=graphite]{--accent:#141517;--accent-hover:#2C2E33;--accent-soft:#E6E6E1;--accent-soft-text:#141517;--text-on-accent:#FFFFFF;--focus:#141517;--chart:#141517;--chart-muted:#C9C9C2;--heat-1:#D9DADA;--heat-ink-1:#111214;--heat-2:#AAABAB;--heat-ink-2:#111214;--heat-3:#646566;--heat-ink-3:#FFFFFF;--heat-4:#141517;--heat-ink-4:#FFFFFF;}@media (prefers-color-scheme:dark){:root:not([data-theme=light])[data-accent=graphite]{--accent:#EEEEEA;--accent-hover:#FFFFFF;--accent-soft:#2C2D32;--accent-soft-text:#EEEEEA;--text-on-accent:#141517;--focus:#EEEEEA;--chart:#EEEEEA;--chart-muted:#45464C;--heat-1:#3D3D3E;--heat-ink-1:#F2F2EE;--heat-2:#676767;--heat-ink-2:#F2F2EE;--heat-3:#A6A6A4;--heat-ink-3:#141517;--heat-4:#EEEEEA;--heat-ink-4:#141517;}}:root[data-theme=dark][data-accent=graphite]{--accent:#EEEEEA;--accent-hover:#FFFFFF;--accent-soft:#2C2D32;--accent-soft-text:#EEEEEA;--text-on-accent:#141517;--focus:#EEEEEA;--chart:#EEEEEA;--chart-muted:#45464C;--heat-1:#3D3D3E;--heat-ink-1:#F2F2EE;--heat-2:#676767;--heat-ink-2:#F2F2EE;--heat-3:#A6A6A4;--heat-ink-3:#141517;--heat-4:#EEEEEA;--heat-ink-4:#141517;}
@media (min-width:768px){:root{--topbar-h:64px}}
@media (min-width:960px){:root{--control:40px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--topbar-h) + var(--space-4))}
body{margin:0;min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--text);font:var(--weight-regular) var(--text-md)/var(--leading) var(--font);letter-spacing:var(--tracking-body);
  font-feature-settings:"cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
h1,h2,h3{margin:0;line-height:var(--leading-tight);font-weight:var(--weight-semibold)}
/* Grand titre d'écran : Inter Display, serré, 30 → 36 → 40 px */
h1{font-family:var(--font-display);font-size:var(--text-3xl);letter-spacing:var(--tracking-display);line-height:1.1}
@media (min-width:768px){h1{font-size:var(--text-4xl)}}
@media (min-width:1024px){h1{font-size:var(--text-5xl)}}
h2{font-size:var(--text-md);letter-spacing:0}h3{font-size:var(--text-md);letter-spacing:0}
p,ul,ol,dl,figure{margin:0}
a{color:inherit}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
a,button,summary,label,input,select,textarea{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
option{background:var(--surface);color:var(--text)}
h1,h2,h3{text-wrap:balance}
code{font-size:.92em}
::selection{background:var(--accent-soft);color:var(--accent-soft-text)}
.ic{flex:none;vertical-align:middle}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.muted{color:var(--text-2)}.subtle{color:var(--text-3)}.small{font-size:var(--text-sm)}.xs{font-size:var(--text-xs)}.strong{font-weight:var(--weight-semibold)}
.stack{display:flex;flex-direction:column;gap:var(--space-4)}.stack-sm{display:flex;flex-direction:column;gap:var(--space-2)}
.row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}
.link{color:var(--accent);font-weight:var(--weight-semibold);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent);text-underline-offset:3px;border-radius:var(--radius-xs);
  transition:text-decoration-color var(--duration-fast) var(--ease),color var(--duration-fast)}
.link:hover{text-decoration-color:currentColor}
.link--touch{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-height:var(--touch);min-width:var(--touch);padding:0 2px;text-decoration:none}
.link--touch:hover{text-decoration:underline}
/* Lien dans une phrase (constat, bandeau d'état) : zone cliquable portée à 44 px de haut sans changer la ligne
   (le rembourrage vertical d'un élément en ligne ne déplace pas le texte) */
.lede-alert,.statusbar a{padding-block:calc((var(--touch) - 1em) / 2)}
/* Thème Graphite : l'accent est l'encre, le soulignement permanent garde l'indice de lien */
:root[data-accent=graphite] .link{text-decoration:underline;text-decoration-color:currentColor;text-decoration-thickness:1px}
/* Chiffres tabulaires partout où l'on compare des nombres */
.num,.kpi-value,.kpi-sub,.table,.when,.bars,.bar-labels,.heat,.cal-hours,.cal-day,.month-cell .d,.strip-day,.event .t,.char-count,.period,.meter-label,.checklist b,.details dd{font-variant-numeric:tabular-nums}
.nowrap{white-space:nowrap}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}

/* Focus visible : anneau net à la couleur du thème, jamais supprimé */
:focus{outline:none}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.skip-link{position:absolute;left:var(--space-3);top:calc(-1 * var(--space-12));z-index:100;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--text);color:var(--bg);font-weight:var(--weight-semibold);text-decoration:none;transition:top var(--duration) var(--ease)}
.skip-link:focus{top:var(--space-3)}

/* ---------------- Coquille (direction « Grand titre ») ----------------
   Barre d'outils en haut (logo, piste Organique | Pubs | Marque au centre dès 768 px, marque, simulation, compte), onglets
   de l'espace dessous (dès 768 px), puis une colonne centrée. Téléphone : la piste passe sous la barre, les onglets en bas. */
.app{min-height:100vh;min-height:100dvh;padding-bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom))}
.app-main{min-width:0}
/* Téléphone : la barre reste en haut au défilement ; dès 768 px elle défile avec la page (les onglets ne masquent rien) */
.appbar{position:sticky;top:0;z-index:20;background:var(--bg)}
.app{--sticky-top:var(--topbar-h)}
@media (min-width:768px){.appbar{position:relative}html{scroll-padding-top:var(--space-4)}.app{--sticky-top:0px}}
.appbar-in{display:flex;align-items:center;gap:var(--space-2);height:var(--topbar-h);padding:0 var(--space-3) 0 var(--space-4);max-width:calc(var(--content-wide) + 2 * var(--space-10));margin:0 auto}
.appbar .view-tabs--bar{display:none}
.appbar-end{display:flex;align-items:center;gap:var(--space-1);margin-left:auto;min-width:0}
.main{padding:var(--space-6) var(--space-4) var(--space-10);max-width:var(--content-max);margin:0 auto}
.app--wide .main,.main:has(.cal-body,.month-week){max-width:var(--content-wide)} /* Pubs et calendrier : plus de place pour les colonnes */
/* Grand titre : le titre et sa phrase à gauche, l'action principale à droite (dès 768 px) */
.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4) var(--space-6);margin-bottom:var(--space-6)}
.page-head>div:first-child{min-width:0}
.page-head p{margin-top:var(--space-2)}
.page-head h1+p,.page-head h1+.dash-lede{font-size:var(--text-lg);line-height:1.4;color:var(--text-2);max-width:70ch;text-wrap:balance}
.page-head h1+p b,.page-head h1+.dash-lede b,.page-head .lede-alert{white-space:nowrap}
.page-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}
.page-actions--wide{display:none}
@media (min-width:960px){.page-actions--wide{display:flex}}
/* Barre du bas (téléphone) : les écrans de l'espace, icône au-dessus du nom ; l'onglet ouvert à la couleur du thème */
.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(var(--nav-cols,5),minmax(max-content,1fr));height:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom));padding:var(--space-1) var(--space-2) env(safe-area-inset-bottom);
  background:var(--bg);border-top:1px solid var(--border)}
.bottom-nav a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:var(--touch);padding:0 2px;border-radius:var(--radius-md);color:var(--text-2);text-decoration:none;
  font-size:var(--text-2xs);font-weight:var(--weight-medium);letter-spacing:0;transition:color var(--duration-fast) var(--ease)}
.bottom-nav a[aria-current=page]{color:var(--accent)}
.bottom-nav a:active .ic{transform:scale(.92)}
/* Moins de 360 px (spec 038) : les libellés des Pubs reprennent les mots des onglets du haut (« Aujourd'hui »,
   « Performance », « Historique ») ; marges resserrées et lettres un peu plus serrées pour que chaque onglet garde
   44 px au moins, sans couper ni réduire le texte sous 11 px. */
@media (max-width:359px){.bottom-nav{padding-left:2px;padding-right:2px}.bottom-nav a{padding:0}.bottom-nav a>span:not(.nav-count){letter-spacing:-0.02em}}
@media (min-width:768px){
  .app{padding-bottom:0}
  .bottom-nav{display:none}
  .appbar-in{display:grid;grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);gap:var(--space-4);padding:0 var(--space-6)}
  .appbar .view-tabs--bar{display:block;width:clamp(260px,30vw,380px)}
  .appbar-end{justify-self:end}
  .main{padding:var(--space-10) var(--space-8) var(--space-16)}
}
@media (min-width:1024px){
  .appbar-in{padding:0 var(--space-10)}
  .main{padding:var(--space-12) var(--space-10) var(--space-16)}
  .page-head{margin-bottom:var(--space-8)}
  .page-head h1+p,.page-head h1+.dash-lede{font-size:var(--text-xl)}
}
/* Onglets de l'espace (dès 768 px) : centrés sous la barre, l'onglet ouvert souligné à la couleur du thème */
.subnav{display:none}
@media (min-width:768px){
  .subnav{display:block;border-bottom:1px solid var(--border);background:var(--bg)}
  .subnav .nav{display:flex;justify-content:center;gap:var(--space-1);max-width:calc(var(--content-wide) + 2 * var(--space-10));margin:0 auto;padding:0 var(--space-6);overflow-x:auto;scrollbar-width:none}
  .subnav .nav::-webkit-scrollbar{display:none}
  .subnav .nav a{position:relative;display:flex;align-items:center;gap:var(--space-2);min-height:var(--subnav-h);padding:0 var(--space-3);color:var(--text-2);text-decoration:none;white-space:nowrap;
    font-size:var(--text-sm);font-weight:var(--weight-medium);transition:color var(--duration-fast) var(--ease)}
  .subnav .nav a .ic{display:none}
  .subnav .nav a:hover{color:var(--text)}
  .subnav .nav a[aria-current=page]{color:var(--text)}
  .subnav .nav a[aria-current=page]::after{content:"";position:absolute;left:var(--space-3);right:var(--space-3);bottom:-1px;height:2px;border-radius:2px;background:var(--accent)}
  .subnav .nav-soon{display:flex;align-items:center;gap:var(--space-2);min-height:var(--subnav-h);padding:0 var(--space-3);color:var(--text-3);font-size:var(--text-sm)}
  .subnav .nav-soon .ic{display:none}
}
.nav{list-style:none;margin:0;padding:0}
/* Logo : symbole « Relais » toujours en Pétrole (jeton --brand) ; le nom apparaît dès 768 px */
.brand{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch);min-width:var(--touch);padding:0 var(--space-1);border-radius:var(--radius-md);color:var(--text);text-decoration:none;
  font-weight:var(--weight-semibold);font-size:var(--text-lg);letter-spacing:-0.02em;flex:none}
.brand-mark{--size:24px;display:inline-grid;place-items:center;width:var(--size);height:var(--size);color:var(--brand);flex:none}
.brand-mark .logo-mark{display:block}
.brand-mark--image{border-radius:var(--radius-sm);overflow:hidden}
.brand-mark--image img{width:100%;height:100%;object-fit:cover}
.brand-name{white-space:nowrap}
.appbar .brand-name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (min-width:768px){.appbar .brand-name{position:static;width:auto;height:auto;overflow:visible;clip:auto}}
/* Mode de publication, discret : un point et une phrase (menu du compte) */
.mode{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--text-2)}
.mode b{color:var(--text);font-weight:var(--weight-semibold)}

/* ---------------- Compte, marque, organisation ---------------- */
.avatar{--size:32px;display:inline-grid;place-items:center;width:var(--size);height:var(--size);border-radius:50%;overflow:hidden;flex:none;background:var(--acc,var(--accent));color:var(--on-account);
  font-weight:var(--weight-semibold);font-size:calc(var(--size)*.38);letter-spacing:0;box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--acc,var(--accent))}
.avatar img{width:100%;height:100%;object-fit:cover}
.who{display:flex;flex-direction:column;min-width:0;flex:1;line-height:var(--leading-snug);text-align:left}
.who b{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.who small{color:var(--text-2);font-size:var(--text-xs)}
.account-switch{position:relative}
.account-switch>summary>.ic,.brand-switch>summary>.ic{color:var(--text-2);transition:transform var(--duration) var(--ease)}
.account-switch[open]>summary>.ic,.brand-switch[open]>summary>.ic{transform:rotate(180deg)}
/* Marque affichée (barre d'outils) : son carré à initiales et son nom, qui ouvre le menu (marques, comptes pub, Marque et canaux) */
.account-chip{min-width:0}
.account-chip>summary{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch);min-width:var(--touch);padding:0 var(--space-2) 0 var(--space-1);border-radius:var(--radius-pill);font-weight:var(--weight-medium);font-size:var(--text-md);
  transition:background var(--duration-fast) var(--ease)}
.account-chip>summary:hover,.account-chip[open]>summary{background:var(--surface-2)}
.brand-solo{display:contents}
.chip-handle{max-width:min(11rem,38vw)}
@media (max-width:359px){.chip-handle{display:none}}
@media (min-width:768px) and (max-width:1023px){.chip-handle{display:none}}
@media (min-width:1024px){.chip-handle{max-width:min(14rem,18vw)}}
/* Menu du compte : un rond neutre, Mon compte, l'organisation, le mode d'affichage, la déconnexion */
.user-menu>summary{display:grid;place-items:center;width:var(--touch);height:var(--touch);border-radius:50%;color:var(--text-2);transition:background var(--duration-fast),color var(--duration-fast)}
.user-menu>summary>.ic{box-sizing:content-box;padding:var(--space-2);border-radius:50%;background:var(--surface-2)}
.user-menu>summary:hover,.user-menu[open]>summary{color:var(--text)}
.user-menu>summary:hover>.ic,.user-menu[open]>summary>.ic{background:var(--surface-3)}
.user-menu .menu-list{min-width:272px}
.menu-theme{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);font-size:var(--text-sm);color:var(--text-2)}
.acc-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--acc);flex:none}
/* Marques (spec 016) : repère carré (la marque contient les comptes, qui sont ronds) */
.brand-tile{--size:32px;display:inline-grid;place-items:center;width:var(--size);height:var(--size);flex:none;border-radius:calc(var(--size) * .28);background:var(--surface-3);color:var(--text);
  font-weight:var(--weight-semibold);font-size:calc(var(--size)*.36);letter-spacing:0}
.brand-switch{position:relative}
/* Noms de marque et d'espace en entier, sur deux lignes au besoin (jamais coupés par des points de suspension) */
.brand-who-name{overflow-wrap:break-word;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}

/* Piste « Organique | Pubs | Marque » (spec 018) : pilule segmentée, le segment ouvert posé en blanc.
   Dans la barre d'outils dès 768 px ; en rangée pleine largeur sous la barre sur téléphone. */
.view-tabs ul{list-style:none;margin:0;display:grid;grid-template-columns:repeat(var(--view-cols,3),minmax(0,1fr));gap:2px;padding:2px;border-radius:var(--radius-pill);background:var(--surface-2)}
.view-tabs form{margin:0;display:contents}
.view-tabs a,.view-tabs button{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:var(--touch);padding:0 var(--space-3);border:0;border-radius:var(--radius-pill);background:transparent;
  color:var(--text-2);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background var(--duration) var(--ease),color var(--duration-fast) var(--ease)}
.view-tabs a:hover,.view-tabs button:hover{color:var(--text)}
.view-tabs [aria-current=page]{background:var(--raised);color:var(--text);font-weight:var(--weight-semibold)}
.view-tabs--top{padding:var(--space-1) var(--space-4) var(--space-2);background:var(--bg)}
@media (min-width:768px){.view-tabs--top{display:none}}
@media (min-width:1024px){.view-tabs--bar a,.view-tabs--bar button{min-height:38px}}

/* ---------------- Boutons ---------------- */
/* Boutons ronds (pilule) : principal à l'accent, secondaire en aplat neutre, discret en texte d'accent, danger en aplat pâle */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control);padding:0 var(--space-5);border-radius:var(--radius-pill);border:1px solid transparent;
  font-weight:var(--weight-medium);font-size:var(--text-md);letter-spacing:-0.005em;line-height:1;cursor:pointer;text-decoration:none;white-space:nowrap;user-select:none;
  transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast),transform var(--duration-fast) var(--ease)}
.btn:active{transform:scale(.98)}
.btn--primary{background:var(--accent);color:var(--text-on-accent)}.btn--primary:hover{background:var(--accent-hover)}
.btn--secondary{background:var(--surface-2);color:var(--text)}.btn--secondary:hover{background:var(--surface-3)}
.btn--ghost{background:transparent;color:var(--accent);padding:0 var(--space-3)}.btn--ghost:hover{background:var(--accent-soft);color:var(--accent-soft-text)}
.btn--danger{background:var(--danger);color:var(--text-on-danger)}.btn--danger:hover{background:var(--danger-hover)}
.btn--danger-ghost{background:var(--danger-soft);color:var(--danger)}.btn--danger-ghost:hover{background:color-mix(in srgb,var(--danger) 16%,var(--danger-soft))}
.btn--block{width:100%}
/* Petit téléphone : un libellé long passe à la ligne plutôt que de déborder */
.btn{max-width:100%}
@media (max-width:479px){.btn{white-space:normal;text-align:center;line-height:1.25;padding-block:var(--space-2)}}
fieldset{min-width:0}
.btn[disabled],.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none}
.icon-btn{display:inline-grid;place-items:center;width:var(--touch);height:var(--touch);border-radius:var(--radius-pill);border:0;background:var(--surface-2);color:var(--text);cursor:pointer;
  transition:background var(--duration-fast) var(--ease),color var(--duration-fast),transform var(--duration-fast) var(--ease)}
.icon-btn:hover{background:var(--surface-3)}.icon-btn:active{transform:scale(.96)}
@media (min-width:960px){.icon-btn{width:var(--control);height:var(--control)}}

/* ---------------- Champs ---------------- */
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label,.label{font-weight:var(--weight-medium);font-size:var(--text-sm)}
.field .hint{font-size:var(--text-xs);color:var(--text-2);overflow-wrap:anywhere}
.field .error-text{font-size:var(--text-xs);color:var(--danger);font-weight:var(--weight-semibold)}
.input,.select,.textarea{width:100%;min-height:var(--control);padding:var(--space-2) var(--space-3);border:1px solid var(--border-input);border-radius:var(--radius-md);background:var(--surface);color:var(--text);letter-spacing:0;
  transition:border-color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease)}
.input::placeholder,.textarea::placeholder{color:var(--text-3)}
.input:hover,.select:hover,.textarea:hover{border-color:var(--text-3)}
.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:2px solid var(--focus);outline-offset:1px;border-color:var(--focus)}
.input[aria-invalid=true],.textarea[aria-invalid=true],.select[aria-invalid=true]{border-color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger)}
/* Champ en erreur qui a le focus : un seul contour, rouge (jamais l'anneau bleu par-dessus le contour rouge) */
.input[aria-invalid=true]:focus-visible,.textarea[aria-invalid=true]:focus-visible,.select[aria-invalid=true]:focus-visible{outline:2px solid var(--danger);outline-offset:0;border-color:var(--danger);box-shadow:none}
.input:disabled,.textarea:disabled,.select:disabled{background:var(--surface-2);border-color:var(--border);color:var(--text-2);cursor:not-allowed;-webkit-text-fill-color:var(--text-2);opacity:1}
.input:disabled::placeholder,.textarea:disabled::placeholder{color:transparent;-webkit-text-fill-color:transparent}
.select:disabled:has(option[value=""]:checked){color:transparent;-webkit-text-fill-color:transparent}
.input:disabled:hover,.select:disabled:hover,.textarea:disabled:hover{border-color:var(--border)}
.textarea{min-height:180px;resize:vertical;line-height:var(--leading)}
.select{appearance:none;padding-right:var(--space-10);background:var(--surface) var(--chevron) no-repeat right var(--space-3) center/16px 16px}
.check{position:relative;display:flex;align-items:flex-start;gap:var(--space-3);min-height:var(--touch);padding:var(--space-2) 0;cursor:pointer;font-weight:var(--weight-medium)}
.check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--accent);flex:none}
/* Lot 12b : la vraie case (même nom, même valeur) devient une zone de 44 × 44 px transparente, centrée sur la case dessinée */
.check:not(.chx-check)>input:is([type=checkbox],[type=radio]){position:absolute;left:-12px;top:calc(var(--space-2) - 10px);width:var(--touch);height:var(--touch);margin:0;opacity:0;z-index:1;cursor:pointer}
.check:not(.chx-check)>input:is([type=checkbox],[type=radio])+span{position:relative;display:block;padding-left:32px;min-width:0}
.check:not(.chx-check)>input:is([type=checkbox],[type=radio])+span::before{content:"";position:absolute;left:0;top:1px;width:20px;height:20px;box-sizing:border-box;border:1.5px solid var(--border-input);border-radius:var(--radius-xs);background:var(--surface);
  display:grid;place-items:center;font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:1;color:var(--text-on-accent);transition:background var(--duration-fast),border-color var(--duration-fast)}
.check:not(.chx-check)>input[type=radio]+span::before{border-radius:50%}
.check:not(.chx-check)>input[type=checkbox]:checked+span::before{background:var(--accent);border-color:var(--accent)}
/* Coche dessinée (deux traits), pas un caractère */
.check:not(.chx-check)>input[type=checkbox]:checked+span::after{content:"";position:absolute;left:7px;top:4px;width:6px;height:11px;box-sizing:border-box;border:solid var(--text-on-accent);border-width:0 2px 2px 0;transform:rotate(45deg)}
.check:not(.chx-check)>input[type=radio]:checked+span::before{border:6px solid var(--accent)}
.check:not(.chx-check)>input:focus-visible+span::before{outline:2px solid var(--focus);outline-offset:2px}
.check:not(.chx-check):hover>input:not(:disabled)+span::before{border-color:var(--border-strong)}
.check:not(.chx-check)>input:disabled{cursor:not-allowed}
.check:not(.chx-check)>input:disabled+span{color:var(--text-2)}
.check:not(.chx-check)>input:disabled+span::before{background:var(--surface-2);border-color:var(--border)}
.check:not(.chx-check)>input[type=checkbox]:disabled:checked+span::before{background:var(--text-3);border-color:var(--text-3)}
.form-grid{display:grid;gap:var(--space-4);grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.form-grid.cols-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.char-count{font-size:var(--text-xs);color:var(--text-2);text-align:right}
.char-count.over{color:var(--danger);font-weight:var(--weight-bold)}

/* ---------------- Pastilles de statut (toujours avec le mot) ---------------- */
.pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:0;white-space:nowrap;flex:none;
  transition:background var(--duration),color var(--duration)}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pill--queued{background:var(--status-queued-soft);color:var(--status-queued)}.pill--preparing{background:var(--status-preparing-soft);color:var(--status-preparing)}.pill--ready{background:var(--status-ready-soft);color:var(--status-ready)}.pill--publishing{background:var(--status-ready-soft);color:var(--status-ready)}.pill--published{background:var(--status-published-soft);color:var(--status-published)}.pill--failed{background:var(--status-failed-soft);color:var(--status-failed)}.pill--cancelled{background:var(--status-cancelled-soft);color:var(--status-cancelled)}.pill--draft{background:var(--status-draft-soft);color:var(--status-draft)}
.pill--publishing::before{animation:pulse 1.2s var(--ease) infinite}
/* Spec 026 : cible en attente (condition ou décision) — teinte d'attente, cercle vide : rien n'est encore programmé */
.pill--pending{background:var(--status-preparing-soft);color:var(--status-preparing)}
.pill--pending::before{background:transparent;box-shadow:inset 0 0 0 1.5px currentColor}
.badge{display:inline-flex;align-items:center;gap:var(--space-1);height:22px;padding:0 var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:0;background:var(--surface-2);color:var(--text-2);white-space:nowrap}
.badge--warning{background:var(--warning-soft);color:var(--warning)}
.badge--accent{background:var(--accent-soft);color:var(--accent-soft-text)}
.badge--success{background:var(--success-soft);color:var(--success)}
.badge--danger{background:var(--danger-soft);color:var(--danger)}
.topbar-sim{height:28px;padding:0 10px}
@media (max-width:479px){.appbar .badge .badge-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}
@keyframes pulse{50%{opacity:.35}}

/* ---------------- Panneaux : un ton plus clair que le fond, sans filet ni ombre, coins généreux ---------------- */
.card{background:var(--surface);border:1px solid transparent;border-radius:var(--radius-xl);padding:var(--space-5)}
@media (min-width:768px){.card{padding:var(--space-6);border-radius:var(--radius-2xl)}}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-4)}
.card-head h2,.card-head h3{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:var(--tracking-title);line-height:1.25}
.card-head h3{font-size:var(--text-lg)}
.card-head h2 .ic,.card-head h3 .ic{color:var(--text-3)}
/* Grand titre : pas d'icône devant un titre de panneau (le titre suffit) */
.card-head h2>.ic:first-child,.card-head h3>.ic:first-child{display:none}
/* Mode sombre : les panneaux gardent un filet très discret (le noir du fond les sépare moins nettement) */
:root[data-theme=dark] .card{border-color:var(--border)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .card{border-color:var(--border)}}
.card--danger{border-color:transparent}
.card--danger .card-head h2,.card--danger .card-head h2 .ic,.card--danger .card-head h3,.card--danger .card-head h3 .ic{color:var(--danger)}
.card--flush{padding:0;overflow:hidden}
.grid{display:grid;gap:var(--space-4);grid-template-columns:minmax(0,1fr)}
@media (min-width:960px){.grid-main{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr)}.grid-top{align-items:start}}

/* Chiffres clés : un seul bloc partagé par des filets (pas de tuiles) */
.kpis{display:grid;grid-template-columns:1fr 1fr;margin-bottom:var(--space-4);background:var(--surface);border:1px solid transparent;border-radius:var(--radius-xl);overflow:hidden}
@media (min-width:768px){.kpis{border-radius:var(--radius-2xl)}}
:root[data-theme=dark] .kpis{border-color:var(--border)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .kpis{border-color:var(--border)}}
.kpis>.kpi{border:0;border-radius:0;box-shadow:none;border-top:1px solid var(--border)}
.kpis>.kpi:nth-child(-n+2){border-top:0}
.kpis>.kpi:nth-child(2n){border-left:1px solid var(--border)}
@media (min-width:960px){
  .kpis{grid-template-columns:repeat(4,1fr)}
  .kpis>.kpi{border-top:0;border-left:1px solid var(--border)}
  .kpis>.kpi:first-child{border-left:0}
}
.kpi{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;text-decoration:none;color:inherit;transition:background var(--duration-fast) var(--ease)}
a.kpi:hover{background:var(--surface-2)}
.kpi h2{font-family:var(--font);font-size:var(--text-sm);font-weight:var(--weight-regular);color:var(--text-2);letter-spacing:0}
/* Chiffres en grand et en poids normal (Inter Display) */
.kpi-value{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2);row-gap:var(--space-1);font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-regular);letter-spacing:var(--tracking-kpi);line-height:var(--leading-tight)}
@media (min-width:960px){.kpi-value{font-size:var(--text-kpi)}}
@media (max-width:359px){.kpi-value{font-size:var(--text-xl)}.kpis>.kpi{padding:var(--space-3)}.kpis .kpi h2{font-size:var(--text-xs)}}
.kpi-value small{font-size:var(--text-md);font-weight:var(--weight-regular);color:var(--text-2);letter-spacing:0}
.kpi-sub{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--text-2)}
.kpi--alert .kpi-value,.kpi--alert .kpi-sub{color:var(--danger)}
.meter{height:6px;border-radius:var(--radius-pill);background:var(--surface-3);overflow:hidden}
.meter i{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width var(--duration-slow) var(--ease)}
.meter--warning i{background:var(--warning)}.meter--danger i{background:var(--danger)}
.delta{font-weight:var(--weight-semibold);color:var(--text)}
.delta--up{color:var(--success)}.delta--down{color:var(--danger)}

/* Graphique en barres */
.bars{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:var(--space-2);align-items:end;height:170px;padding-top:22px;border-bottom:1px solid var(--border-strong)}
.bar{position:relative;height:var(--h);min-height:3px;background:var(--chart);border-radius:var(--radius-xs) var(--radius-xs) 0 0;transition:opacity var(--duration-fast)}
.bar:hover{opacity:.8}
.bar.current{background:var(--chart-muted);box-shadow:inset 0 2px 0 var(--chart)}
.bar span{position:absolute;top:-20px;left:50%;transform:translateX(-50%);font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--text-2)}
.bar-labels{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:var(--space-2);margin-top:6px;font-size:var(--text-2xs);color:var(--text-2);text-align:center}
/* Beaucoup de barres (30 jours) : barres serrées, valeurs au survol (title) plutôt qu'au-dessus */
.bars--dense,.bars--dense+.bar-labels{gap:2px}
.bars--dense .bar{border-radius:2px 2px 0 0}
.bars--dense .bar span{display:none}
.bar-labels span{display:flex;justify-content:center;white-space:nowrap;min-width:0}
.bar-labels span:first-child{justify-content:flex-start}.bar-labels span:last-child{justify-content:flex-end}
.bar--empty{background:var(--surface-3)}

/* Statistiques : écarts, jauges dans les tableaux */
.badge--up{background:var(--success-soft);color:var(--success)}
.badge--down{background:var(--danger-soft);color:var(--danger)}
.meter--inline{display:inline-block;vertical-align:middle;width:56px;height:6px;margin-left:var(--space-2)}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
.stats-posts .cell-post a{display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:var(--touch);min-width:0}

/* Carte de chaleur (meilleurs horaires) */
.heat{display:grid;grid-template-columns:28px repeat(3,1fr);gap:4px;align-items:center;font-size:var(--text-xs)}
.heat b{font-weight:var(--weight-medium);color:var(--text-2);text-align:center}
.heat span{color:var(--text-2);font-weight:var(--weight-medium)}
.heat i{height:22px;border-radius:var(--radius-xs);background:color-mix(in srgb,var(--chart) calc(var(--v) * 22%),var(--surface-2))}

/* Liste de posts compacte */
.post-list{list-style:none;padding:0}
.post-list>li{border-top:1px solid var(--border)}
.post-list>li:first-child{border-top:0}
.post-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"t m m" "t w s";column-gap:var(--space-3);row-gap:4px;align-items:center;padding:var(--space-3) 0;text-decoration:none;color:inherit;border-radius:var(--radius-md);transition:background var(--duration-fast)}
.post-list>li:first-child .post-row{padding-top:0}
.post-row .thumb{grid-area:t}.post-row .pm{grid-area:m;min-width:0}.post-row .when{grid-area:w}.post-row .pill{grid-area:s}
.post-row:hover .pm b{text-decoration:underline}
@media (min-width:960px){.post-row{grid-template-columns:84px 44px minmax(0,1fr) auto;grid-template-areas:"w t m s"}}
.pm{display:flex;flex-direction:column;gap:2px}
.pm b{font-weight:var(--weight-semibold)}
.meta-line{display:flex;align-items:center;gap:6px;color:var(--text-2);font-size:var(--text-xs);min-width:0}
.when{display:flex;align-items:baseline;gap:6px;line-height:var(--leading-snug)}
.when b{font-size:var(--text-md);font-weight:var(--weight-semibold)}.when small{color:var(--text-2);font-size:var(--text-xs)}
@media (min-width:960px){.post-row .when{flex-direction:column;gap:0}}
.thumb{position:relative;width:44px;height:55px;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-3);flex:none;display:grid;place-items:center;color:var(--text-3)}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb .kind{position:absolute;right:3px;top:3px;width:16px;height:16px;border-radius:var(--radius-xs);background:rgb(0 0 0/.55);color:var(--on-account);display:grid;place-items:center}

/* Tableau : filets et alignement, pas de bande d'en-tête */
.table-wrap{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
.table th{text-align:left;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-2);letter-spacing:0;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-strong);white-space:nowrap;background:transparent}
.table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);vertical-align:middle}
.table th.num,.table td.num{text-align:right}
.table tr:last-child td{border-bottom:0}
.table tbody tr{transition:background var(--duration-fast)}
.table tbody tr:hover{background:var(--surface-2)}
.table .cell-post{display:flex;align-items:center;gap:var(--space-3);min-width:240px}
.table a{text-decoration:none}.table a:hover{text-decoration:underline}

/* Onglets : piste segmentée */
.tabs{display:flex;flex-wrap:wrap;padding:2px;gap:2px;border-radius:var(--radius-pill);background:var(--surface-2);width:max-content;max-width:100%}
.tabs a,.tabs button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch);padding:0 var(--space-4);border:0;border-radius:var(--radius-pill);background:transparent;color:var(--text-2);
  font-weight:var(--weight-medium);font-size:var(--text-sm);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background var(--duration-fast) var(--ease),color var(--duration-fast)}
@media (min-width:960px){.tabs a,.tabs button{min-height:calc(var(--control) - 6px)}}
.tabs a:hover,.tabs button:hover{color:var(--text)}
.tabs [aria-current=page],.tabs [aria-selected=true]{background:var(--raised);color:var(--text);font-weight:var(--weight-semibold)}
.tabs--full{width:100%}.tabs--full>*{flex:1}

/* Bandeau d'état unique (simulation, secrets, connexion…) : une ligne compacte, un point par message */
.statusbar{margin-bottom:var(--space-5);padding:var(--space-2) var(--space-5);border:1px solid transparent;border-radius:var(--radius-lg);background:var(--surface);font-size:var(--text-sm)}
:root[data-theme=dark] .statusbar{border-color:var(--border)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .statusbar{border-color:var(--border)}}
.statusbar--urgent .statusbar-item--danger p{color:var(--text)}
.statusbar ul{list-style:none;padding:0;display:flex;flex-direction:column}
.statusbar-item{display:flex;align-items:baseline;gap:var(--space-2);padding:var(--space-2) 0;min-width:0}
.statusbar-item+.statusbar-item{border-top:1px solid var(--border)}
.statusbar-item>p{min-width:0;overflow-wrap:anywhere}
.statusbar-dot{flex:none;width:8px;height:8px;border-radius:50%;transform:translateY(-1px);background:var(--accent)}
.statusbar-item--warning .statusbar-dot{background:var(--warning)}
.statusbar-item--danger .statusbar-dot{background:var(--danger)}
.statusbar-item--danger b{color:var(--danger)}
/* Bandeau replié (Accueil, deux messages ou plus) : une ligne au téléphone, ouvert dès 768 px sans la ligne de résumé */
.statusbar-fold>summary{list-style:none;display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch);cursor:pointer}
.statusbar-fold>summary::-webkit-details-marker{display:none}
.statusbar-fold>summary>span{display:inline-flex}
.statusbar-fold>summary b{font-weight:var(--weight-semibold)}
.statusbar-fold>summary .ic{margin-left:auto;flex:none;color:var(--text-2);transition:transform var(--duration-fast) var(--ease)}
.statusbar-fold[open]>summary .ic{transform:rotate(180deg)}
.statusbar-fold[open]>summary{border-bottom:1px solid var(--border)}
@media (min-width:768px){.statusbar-fold[open]>summary{display:none}}
@media (min-width:960px){
  .statusbar ul{flex-direction:row;flex-wrap:wrap;column-gap:var(--space-6)}
  .statusbar-item+.statusbar-item{border-top:0}
}
/* Bandeaux de message dans un écran (erreur d'un formulaire, état d'un post) */
.banner{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-4);font-size:var(--text-sm);border:1px solid}
.banner p{flex:1;min-width:0}
.banner>.ic{margin-top:2px}
.banner--warning{background:var(--warning-soft);color:var(--text);border-color:color-mix(in srgb,var(--warning) 25%,transparent)}.banner--warning>.ic{color:var(--warning)}
.banner--danger{background:var(--danger-soft);color:var(--text);border-color:color-mix(in srgb,var(--danger) 25%,transparent)}.banner--danger>.ic{color:var(--danger)}
.banner--info{background:var(--accent-soft);color:var(--text);border-color:color-mix(in srgb,var(--accent) 20%,transparent)}.banner--info>.ic{color:var(--accent-soft-text)}
.banner--success{background:var(--success-soft);color:var(--text);border-color:color-mix(in srgb,var(--success) 25%,transparent)}.banner--success>.ic{color:var(--success)}
.toasts{position:fixed;z-index:60;left:var(--space-4);right:var(--space-4);bottom:calc(var(--bottom-nav-h) + var(--space-3) + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none}
@media (min-width:960px){.toasts{left:auto;right:var(--space-6);bottom:var(--space-6);width:380px}}
.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-xl);background:var(--text);color:var(--bg);box-shadow:var(--shadow-3);font-size:var(--text-sm);
  animation:toast-in var(--duration-slow) var(--ease)}
.toast p{flex:1}
.toast .ic{margin-top:1px}
.toast--success .ic{color:var(--bg)}
.toast--error{background:var(--danger);color:var(--text-on-danger)}
.toast{align-items:center}
.toast button{flex:none;border:0;background:transparent;color:inherit;opacity:.8;cursor:pointer;width:var(--touch);height:var(--touch);margin:calc(-1 * var(--space-2)) calc(-1 * var(--space-3)) calc(-1 * var(--space-2)) 0;display:grid;place-items:center;border-radius:var(--radius-md);transition:opacity var(--duration-fast),background var(--duration-fast)}
.toast button:hover{background:color-mix(in srgb,currentColor 12%,transparent)}
.toast button:hover{opacity:1}
.toast-action{width:auto!important;min-height:var(--touch);padding:0 10px!important;margin:-8px 0!important;border-radius:var(--radius-md)!important;font-weight:var(--weight-bold);text-decoration:underline;opacity:1!important}
.toast.leaving{animation:toast-out var(--duration) var(--ease) forwards}
@keyframes toast-in{from{opacity:0;transform:translateY(12px) scale(.98)}}
@keyframes toast-out{to{opacity:0;transform:translateY(8px)}}

/* Fenêtres modales (balise <dialog>, ou repli sans JavaScript via :target) */
.modal{overscroll-behavior:contain;border:0;padding:0;background:transparent;max-width:min(520px,calc(100vw - 32px));width:100%;color:var(--text)}
.modal::backdrop{background:var(--overlay)}
.modal[open]{animation:modal-in var(--duration-slow) var(--ease)}
.modal-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-3);padding:var(--space-6)}
.modal-box h2{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:var(--tracking-title);margin-bottom:var(--space-2)}
.modal-actions{display:flex;flex-direction:column-reverse;gap:var(--space-2);margin-top:var(--space-5)}
@media (min-width:640px){.modal-actions{flex-direction:row;justify-content:flex-end}}
.modal:not([open]):not(:target){display:none}
.modal:target:not([open]){display:grid;place-items:center;position:fixed;inset:0;max-width:none;z-index:70;background:var(--overlay);padding:var(--space-4)}
.modal:target:not([open]) .modal-box{max-width:520px;width:100%}
@keyframes modal-in{from{opacity:0;transform:translateY(8px) scale(.98)}}

/* Squelettes de chargement : la mise en page finale, des aplats à la taille des valeurs, un battement discret */
.skeleton{display:block;border-radius:var(--radius-sm);background:var(--surface-2);animation:breathe 1.6s var(--ease) infinite}
.skeleton--text{height:12px;margin:6px 0}.skeleton--title{height:18px;width:60%}.skeleton--media{aspect-ratio:4/5;border-radius:var(--radius-md)}
/* Navigation sans rechargement (app-v1.js, spec 029 V-01) : au clic, l'élément touché se marque (.is-pressed) et une
   barre fine paraît en haut (html.is-nav), dans la même image ; le contenu ne s'estompe que si la page tarde (> 100 ms).
   Au repos, rien n'existe : la barre est un pseudo-élément fixe, hors de la mise en page (aucun décalage). */
.is-pressed{opacity:.72;transition:none}
.btn.is-pressed,.icon-btn.is-pressed{transform:scale(.98)}
html.is-nav body::before{content:"";position:fixed;z-index:90;top:0;left:0;right:0;height:3px;background:var(--accent);transform-origin:0 50%;pointer-events:none;animation:nav-bar 8s var(--ease) forwards}
@keyframes nav-bar{from{transform:scaleX(.12)}to{transform:scaleX(.92)}}
html.is-loading{cursor:progress}html.is-loading .main{opacity:.6;transition:opacity var(--duration) var(--ease)}
@keyframes breathe{50%{opacity:.55}}

/* Menus déroulants (<details>) */
.menu{position:relative}
.menu>summary{list-style:none;cursor:pointer}.menu>summary::-webkit-details-marker{display:none}
.menu-list{position:absolute;z-index:40;right:0;top:calc(100% + 6px);min-width:220px;max-width:calc(100vw - 2 * var(--space-4));max-height:calc(100vh - var(--topbar-h) - var(--space-4));overflow-y:auto;padding:var(--space-1);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-2);list-style:none;
  animation:menu-in var(--duration) var(--ease);transform-origin:top right}
.menu-list--left{left:0;right:auto;transform-origin:top left}
.menu-list--wide{min-width:100%}
.menu-list a,.menu-list button,.menu-list .menu-item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--touch);padding:var(--space-1) var(--space-3);border:0;border-radius:var(--radius-md);letter-spacing:0;background:transparent;text-align:left;text-decoration:none;color:var(--text);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;
  transition:background var(--duration-fast) var(--ease)}
.menu-list a:hover,.menu-list button:hover{background:var(--surface-2)}
.menu-list .ic{color:var(--text-2)}
.menu-list .danger{color:var(--danger)}
.menu-list form{margin:0}
.menu-list a[aria-current]{background:var(--accent-soft);color:var(--accent-soft-text)}
/* Menu de la pastille : la marque (ou le compte) affichée est la seule sélection surlignée ; la page ouverte
   (« Marque et canaux », « Réglages ») reste un lien ordinaire. */
.menu-list--spaces a[aria-current=page]{background:transparent;color:var(--text)}
.menu-list--spaces a[aria-current=page]:hover{background:var(--surface-2)}
.menu-list hr{border:0;border-top:1px solid var(--border);margin:var(--space-1) 0}
.menu-list [aria-disabled=true]{color:var(--text-3);cursor:default}
.account-chip .menu-list--spaces{min-width:288px}
.menu-list--spaces .who .truncate{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.menu-group ul{list-style:none;margin:0;padding:0}
.menu-group+.menu-group{margin-top:var(--space-1);padding-top:var(--space-1);border-top:1px solid var(--border)}
.menu-group-title{margin:0;padding:var(--space-2) var(--space-3) var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-2)}
.avatar--ad{background:var(--surface-3);color:var(--text-2);box-shadow:none}
@keyframes menu-in{from{opacity:0;transform:translateY(-4px)}}

/* Mode clair / sombre / auto */
.theme-switch{display:flex;padding:3px;gap:2px;border-radius:var(--radius-pill);background:var(--surface-2);width:max-content}
.theme-switch button{display:grid;place-items:center;width:var(--touch);height:var(--touch);border:0;border-radius:var(--radius-pill);background:transparent;color:var(--text-2);cursor:pointer;
  transition:background var(--duration-fast) var(--ease),color var(--duration-fast)}
.menu-list .theme-switch button{width:var(--touch);height:var(--touch);min-height:0;padding:0;justify-content:center}
.theme-switch button:hover{color:var(--text)}
.theme-switch button[aria-pressed=true]{background:var(--raised);color:var(--text);font-weight:var(--weight-semibold)}

/* Langue (spec 038, menu du compte, Réglages → Apparence, bandeau P4) : la même piste que le mode, avec le nom de chaque
   langue écrit dans sa langue. Générée depuis la liste des langues : à partir de 3, les boutons passent à la ligne dans
   la même piste (coins lg), sans jamais déborder. */
.lang-switch{display:flex;flex-wrap:wrap;padding:3px;gap:2px;border-radius:var(--radius-lg);background:var(--surface-2);width:max-content;max-width:100%}
.lang-switch button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-height:var(--touch);padding:0 var(--space-3);border:0;border-radius:var(--radius-pill);background:transparent;color:var(--text-2);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;cursor:pointer;
  transition:background var(--duration-fast) var(--ease),color var(--duration-fast)}
.lang-switch button:hover{color:var(--text)}
.lang-switch button[aria-pressed=true]{background:var(--raised);color:var(--text);font-weight:var(--weight-semibold)}
.lang-switch button>.ic,.menu-list .lang-switch button>.ic{color:var(--accent)}
.menu-list .lang-switch button{width:auto;padding:0 var(--space-2);gap:var(--space-1)}
.menu-list .lang-switch button:hover{background:transparent}
/* À partir de 3 langues (LANGUES_EN_PISTE dans layout.ts) : liste déroulante native, à droite de son libellé comme la
   piste ; « Appliquer » sert sans JavaScript (public/app-v1.js envoie au changement et le masque). */
.lang-switch--select{flex-wrap:nowrap;align-items:center;gap:var(--space-2);padding:0;background:transparent;min-width:0}
.lang-switch--select .lang-select{width:auto;min-width:0;max-width:11rem;min-height:var(--touch);font-size:var(--text-sm)}
.lang-switch--select .lang-apply{min-height:var(--touch);padding:0 var(--space-3);font-size:var(--text-sm)}
.js-langue .lang-switch--select .lang-apply{display:none}
@media (min-width:1024px){.lang-switch--select .lang-select,.lang-switch--select .lang-apply{min-height:var(--control)}}

/* Thème de couleur (Réglages → Apparence) : nom + pastille dans les vraies couleurs du thème */
.accent-switch{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));align-content:start;gap:var(--space-2)}
.accent-switch button{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);
  text-align:left;cursor:pointer;transition:border-color var(--duration-fast) var(--ease),background var(--duration-fast)}
.accent-switch button:hover{border-color:var(--border-strong);background:var(--surface-2)}
.accent-switch button[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.accent-switch button>.ic{margin-left:auto;color:var(--accent);opacity:0;transition:opacity var(--duration-fast)}
.accent-switch button[aria-pressed=true]>.ic{opacity:1}
.accent-swatch{width:20px;height:20px;border-radius:50%;flex:none;background:var(--sw-light);box-shadow:inset 0 0 0 1px rgb(0 0 0/.08)}
:root[data-theme=dark] .accent-swatch{background:var(--sw-dark)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .accent-swatch{background:var(--sw-dark)}}
.accent-label{display:flex;flex-direction:column;min-width:0;line-height:var(--leading-snug);text-align:left}
.accent-name{font-size:var(--text-sm);font-weight:var(--weight-semibold)}
.accent-note{font-size:var(--text-xs);color:var(--text-2);white-space:nowrap}
/* Réglages : un sommaire, puis une section par sujet — titre et explication à gauche, réglages à droite (≥ 1 100 px) */
/* Téléphone et tablette : le sommaire reste sous la barre du haut ; un fondu à droite signale qu'il défile */
.settings-toc{position:sticky;top:var(--sticky-top,var(--topbar-h));z-index:15;margin:0 calc(-1 * var(--space-4)) var(--space-2);padding:var(--space-2) 0;background:var(--bg);overflow-x:auto;scrollbar-width:none;
  -webkit-mask-image:linear-gradient(to right,black calc(100% - var(--space-8)),transparent);mask-image:linear-gradient(to right,black calc(100% - var(--space-8)),transparent)} /* taste-skill-ignore : masque de défilement, pas un dégradé de couleur */
.settings-toc::-webkit-scrollbar{display:none}
.settings-toc ul{list-style:none;display:flex;gap:var(--space-2);padding:0 var(--space-4);margin:0;width:max-content}
.settings-toc a{display:inline-flex;align-items:center;min-height:var(--touch);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font-size:var(--text-sm);font-weight:var(--weight-medium);text-decoration:none;transition:background var(--duration-fast),border-color var(--duration-fast)}
.settings-toc a:hover{background:var(--surface-2)}
.settings-toc a[aria-current]{background:var(--accent-soft);border-color:transparent;color:var(--accent-soft-text);font-weight:var(--weight-semibold)}
.settings-toc ul{padding-right:var(--space-10)}
@media (min-width:480px){
  .settings-toc--wrap{overflow:visible;-webkit-mask-image:none;mask-image:none}
  .settings-toc--wrap ul{width:auto;flex-wrap:wrap;padding-right:var(--space-4)}
  .settings-toc--wrap a{padding:0 var(--space-3)}
}
@media (min-width:960px){.settings-toc{position:static;margin:0 0 var(--space-2);padding:0;background:none;-webkit-mask-image:none;mask-image:none}.settings-toc ul{padding:0}.settings-toc a{min-height:var(--control)}}
.settings{display:flex;flex-direction:column}
.settings-section{display:grid;gap:var(--space-4);padding:var(--space-6) 0;scroll-margin-top:calc(var(--touch) + var(--space-4))} /* + scroll-padding-top de html (barre du haut) : la section arrive sous le sommaire collé */
@media (min-width:960px){.settings-section{scroll-margin-top:0}}
.settings-section:first-child{border-top:0;padding-top:var(--space-4)}
.settings-label h2{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:var(--tracking-title);margin-bottom:var(--space-1)}
.settings-label>p{max-width:60ch}
.settings-panel{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}
.settings-panel>.card,.settings-panel>div>.card,.settings-panel .stack>.card{margin:0}
.settings-preview{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-4);background:var(--surface);border-radius:var(--radius-xl)}
.settings-preview-who{display:flex;flex-direction:column;min-width:0}
@media (min-width:1100px){
  .settings-section{grid-template-columns:240px minmax(0,1fr);gap:var(--space-8);padding:var(--space-8) 0}
  .settings-label{position:sticky;top:var(--space-6);align-self:start}
}
/* Page Marque (spec 016, lot 8b) */
.brand-head-id{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);min-width:0}
.brand-head-id>div{width:100%}
.brand-head-id>div{min-width:0}
.brand-head-id h1{overflow-wrap:anywhere}
/* Onglets de la marque : sur téléphone, une grille 3 + 2 où tout est visible (rien ne défile, l'onglet actif jamais coupé) */
.brand-tabs{margin-bottom:var(--space-2)}
.brand-tabs .tabs a{white-space:nowrap}
@media (max-width:639px){
  .brand-tabs{margin-inline:calc(-1 * var(--space-4));padding:0 var(--space-4);overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain;
    -webkit-mask-image:linear-gradient(to right,black calc(100% - var(--space-16)),transparent);mask-image:linear-gradient(to right,black calc(100% - var(--space-16)),transparent)} /* taste-skill-ignore : masque de défilement, pas un dégradé de couleur */
  .brand-tabs::-webkit-scrollbar{display:none}
  .brand-tabs .tabs{flex-wrap:nowrap;width:max-content;max-width:none;margin-right:var(--space-12)}
  .brand-tabs .tabs>*{flex:none}
}
.brand-sections>.settings-section:first-child{padding-top:var(--space-4)}
.ch-card{padding:var(--space-1) var(--space-4)}
.ch-card>.block-empty{margin:var(--space-3) 0}
.ch-list{list-style:none;margin:0;padding:0}
.ch-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;grid-template-areas:"mark text action" "mark state action";column-gap:var(--space-3);row-gap:2px;align-items:center;padding:var(--space-3) 0;scroll-margin-top:calc(var(--touch) + var(--space-4))}
.ch-row+.ch-row{border-top:1px solid var(--border)}
.ch-mark{grid-area:mark;align-self:center}
.ch-text{grid-area:text;display:flex;flex-direction:column;min-width:0;line-height:var(--leading-snug)}
.ch-name{font-weight:var(--weight-semibold);overflow-wrap:break-word;min-width:0}
.ch-sub{font-size:var(--text-xs);color:var(--text-2)}
.ch-state{grid-area:state;display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-2);white-space:nowrap}
.ch-state::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--success);flex:none}
.ch-state--off::before{background:var(--warning)}
.ch-action{grid-area:action;display:flex;justify-content:flex-end}
.ch-action form{margin:0}
.ch-elsewhere{max-width:9rem;font-size:var(--text-xs);color:var(--text-2);text-align:right;overflow-wrap:anywhere}
/* Téléphone étroit : la mention « Dans … » passe sous la ligne du réseau, comme l'état (le nom garde toute la largeur) */
@media (max-width:479px){
  .ch-row--elsewhere{grid-template-columns:36px minmax(0,1fr);grid-template-areas:"mark text" "mark state" ". action"}
  .ch-row--elsewhere .ch-action{justify-content:flex-start;margin-top:var(--space-1)}
  .ch-row--elsewhere .ch-elsewhere{max-width:none;text-align:left}
  /* « Relier » aussi passe sous l'état : un @ long n'est jamais coupé au milieu */
  .ch-row:has(.ch-action>form){grid-template-columns:36px minmax(0,1fr);grid-template-areas:"mark text" "mark state" ". action"}
  .ch-row:has(.ch-action>form) .ch-action{justify-content:flex-start;margin-top:var(--space-1)}
}
.ch-soon>p{margin:var(--space-3) 0}
.ch-soon>p+p{margin-top:0}
.ch-confirm:focus{outline:none}
/* Panneau ouvert par une ancre (tabindex -1, jamais atteint par Tab) : il est déjà marqué par son filet, pas d'anneau en plus. */
.ch-confirm:focus-visible{outline:none}
.ch-confirm{grid-column:1/-1;margin-top:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface-2);border-left:3px solid var(--danger);scroll-margin-top:calc(var(--touch) + var(--space-8))}
.ch-confirm-title{font-weight:var(--weight-semibold);margin-bottom:var(--space-1);overflow-wrap:anywhere}
.ch-confirm-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}
/* Pied « + Connecter un autre compte dans Réglages » : toute la ligne est le lien (cible de 44 px), le texte reste en
   ligne avec son interligne normal ; le « + » s'aligne sur la première ligne. */
.ch-foot{display:flex;align-items:flex-start;gap:var(--space-2);min-height:var(--touch);padding:var(--space-3) 0;border-top:1px solid var(--border);color:var(--text-2);text-decoration:none;line-height:var(--leading-snug)}
.ch-foot .ic{flex:none;margin-top:2px;color:var(--text-3)}
.ch-foot-link{color:var(--text);text-decoration:underline;text-underline-offset:2px}
.ch-foot:hover .ch-foot-link{color:var(--accent)}
@media (min-width:640px){
  .ch-row{grid-template-columns:36px minmax(0,1fr) 8rem 12rem;grid-template-areas:"mark text state action"}
}
/* Ordinateur et tablette : toutes les lignes d'une liste partagent les mêmes colonnes (sous-grille). Statuts et liens
   tombent sur la même verticale, quelles que soient les actions de chaque ligne. */
@supports (grid-template-columns:subgrid){
  @media (min-width:640px){
    .ch-list{display:grid;grid-template-columns:36px minmax(0,1fr) max-content max-content;column-gap:var(--space-3)}
    .ch-row{grid-column:1/-1;grid-template-columns:subgrid;grid-template-areas:none}
    .ch-row>.ch-mark{grid-area:1/1}.ch-row>.ch-text{grid-area:1/2}.ch-row>.ch-state{grid-area:1/3}.ch-row>.ch-action{grid-area:1/4}
    .ch-state{padding-right:var(--space-5)}
  }
}
/* Spec 027 (lot 17) : gérer ses marques. Identifiant pour Claude sous le constat ; TikTok « Suit @… » sous son nom ;
   déplacement confirmé dans un groupe à liseré d'accent ; gestes d'ajout en lignes d'un groupe inset (icône, phrase,
   bouton) ; état vide guidé en un panneau ; zone d'archivage discrète. */
.brand-slug{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--text-2);overflow-wrap:anywhere}
.brand-slug code{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;padding:1px 6px;border-radius:var(--radius-xs);background:var(--surface-2);color:var(--text)}
.brand-head-actions{align-items:center}
.brand-head-actions .btn--ghost{padding-inline:var(--space-3)}
.ch-follow{display:inline-flex;align-items:center;gap:var(--space-1);margin-top:2px;font-size:var(--text-xs);color:var(--text-2);overflow-wrap:anywhere}
.ch-follow .ic{flex:none;color:var(--text-3)}
.ch-action{gap:var(--space-1)}
/* Déplacement : un seul contour de 2 px couleur accent (pas de liseré ni d'anneau de focus en plus) */
.ch-confirm--move{border:2px solid var(--accent);background:var(--surface)}
/* Téléphone : deux actions (Déplacer et Retirer) passent sous l'état, le nom garde toute la largeur */
@media (max-width:639px){
  .ch-row:has(.ch-action>.btn+.btn){grid-template-columns:36px minmax(0,1fr);grid-template-areas:"mark text" "mark state" ". action"}
  .ch-row:has(.ch-action>.btn+.btn) .ch-action{justify-content:flex-start;margin:var(--space-1) 0 0 calc(-1 * var(--space-3))}
  .ch-add,.ch-start{padding:var(--space-4)}
}
.brand-slug span{white-space:nowrap}
.ch-move{display:grid;gap:var(--space-2)}
.ch-move .ch-confirm-title{margin:0}
.ch-move-to{max-width:24rem;margin:0}
.ch-move .ch-confirm-actions{margin-top:var(--space-2)}
.ch-add,.ch-start{padding:var(--space-5)}
.ch-add-title,.ch-start-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:1.3;overflow-wrap:anywhere}
.ch-start-title{font-size:var(--text-xl)}
.ch-start>.small{margin-top:var(--space-1)}
.ch-add-list{list-style:none;margin:var(--space-3) 0 0;padding:0}
.ch-add-row{display:grid;grid-template-columns:20px minmax(0,1fr);grid-template-areas:"icon text" ". go";gap:var(--space-2) var(--space-3);padding:var(--space-4) 0}
.ch-add-row{border-top:1px solid var(--border)}
.ch-add-icon{grid-area:icon;padding-top:2px;color:var(--text-2)}
.ch-add-text{grid-area:text;display:flex;flex-direction:column;gap:2px;min-width:0}
.ch-add-text b{font-weight:var(--weight-semibold);overflow-wrap:anywhere}
.ch-add-text small{font-size:var(--text-sm);color:var(--text-2);line-height:var(--leading-snug)}
.ch-add-go{grid-area:go;display:flex;min-width:0}
.ch-add-go form{margin:0;display:flex;min-width:0}
.ch-add-field{display:block;margin-top:var(--space-2);max-width:28rem}
@media (max-width:479px){.ch-add-go>.btn,.ch-add-go>form>.btn{width:100%}.ch-add-go form{flex:1}}
@media (min-width:640px){
  .ch-add-row{grid-template-columns:20px minmax(0,1fr) auto;grid-template-areas:"icon text go";align-items:center}
  .ch-add-icon{align-self:start}
}
/* Les boutons de toutes les lignes forment une seule colonne à droite, de même largeur (sous-grille). */
@supports (grid-template-columns:subgrid){
  @media (min-width:640px){
    .ch-add-list{display:grid;grid-template-columns:20px minmax(0,1fr) max-content;column-gap:var(--space-3)}
    .ch-add-row{grid-column:1/-1;grid-template-columns:subgrid}
    .ch-add-go,.ch-add-go form{justify-content:stretch}
    .ch-add-go>.btn,.ch-add-go>form,.ch-add-go>form>.btn{width:100%}
  }
}
.ch-moved{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--success-soft)}
.ch-moved>.ic{flex:none;color:var(--success)}
.ch-moved p{flex:1 1 16rem;min-width:0;overflow-wrap:anywhere}
.ch-moved form{margin:0}
.ar-section .settings-label h2{font-size:var(--text-lg);color:var(--text-2)}
.ar-card{padding:var(--space-4)}
.ar-lead{font-weight:var(--weight-semibold)}
.ar-list{list-style:none;margin:var(--space-2) 0 0;padding:0;display:grid;gap:var(--space-2)}
.ar-list li{display:flex;gap:var(--space-2);align-items:flex-start;font-size:var(--text-sm);color:var(--text-2);overflow-wrap:anywhere}
.ar-list .ic{flex:none;margin-top:2px;color:var(--text-3)}
.ar-list .link{color:var(--accent)}
.ar-form{display:grid;gap:var(--space-3)}
.ar-form .ch-confirm-actions{margin:0}
.brand-form{max-width:40rem}
.brand-form .form-actions{margin-top:var(--space-4)}
/* ===================================================================== Marque → Santé (spec 025, lot 15)
   En tête de l'onglet, l'état de la marque en une phrase (Inter Display) ; puis les posts des 24 heures avec leur contrôle
   de la veille (une ligne cliquable par post, une sous-ligne par réseau) et une carte par canal (pastille d'état en mot,
   lignes « libellé : valeur » dont l'état se lit à l'icône ET à la couleur du texte, dernière erreur en groupe inset,
   action guidée). Panneaux et groupes : listes ADS_PANELS et ADS_INSETS. */
.sa-head{display:grid;gap:var(--space-2);margin-top:var(--space-4);padding:var(--space-5)}
@media (min-width:768px){.sa-head{padding:var(--space-6)}}
.sa-head-state .st{font-size:var(--text-sm)}
.sa-head-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:1.2;text-wrap:balance;max-width:44ch}
.sa-head-say{color:var(--text-2);max-width:64ch;text-wrap:pretty}
@media (max-width:359px){.sa-head-title{font-size:var(--text-xl)}} /* téléphone étroit : la phrase d'état tient sur deux lignes */
.sa-empty{display:grid;justify-items:start;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-5)}
/* Une seule marge intérieure par niveau, celle des cartes (.card) : le texte démarre au même bord partout. */
@media (min-width:768px){.sa-empty,.sa-ch{padding:var(--space-6)}.sa-list-card{padding-inline:var(--space-6)}}
.sa-empty h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:1.2}
.sa-empty p{color:var(--text-2);max-width:62ch}
/* Prochaines 24 heures : heure | titre et résultat par réseau | chevron ; toute la ligne mène à la fiche du post */
.sa-list-card{padding:var(--space-1) var(--space-5)}
.sa-list-card>.block-empty{margin:var(--space-3) 0}
.sa-posts{list-style:none;margin:0;padding:0}
.sa-posts>li+li{border-top:1px solid var(--border)}
.sa-post{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"when chev" "main chev";gap:var(--space-1) var(--space-3);align-items:start;padding:var(--space-3) 0;min-height:var(--touch);color:var(--text);text-decoration:none;border-radius:var(--radius-md)}
.sa-post:hover .sa-post-title{text-decoration:underline;text-underline-offset:3px}
.sa-post:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.sa-post>.ic{grid-area:chev;align-self:center;color:var(--text-3)}
@media (min-width:600px){.sa-post{grid-template-columns:5rem minmax(0,1fr) auto;grid-template-areas:"when main chev";column-gap:var(--space-4)}}
.sa-when{grid-area:when;display:flex;align-items:baseline;gap:var(--space-2);line-height:var(--leading-snug)}
@media (min-width:600px){.sa-when{flex-direction:column;align-items:flex-start;gap:0}}
.sa-when b{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-regular);font-variant-numeric:tabular-nums}
.sa-when span{font-size:var(--text-xs);color:var(--text-2)}
.sa-post-main{grid-area:main;display:grid;gap:var(--space-2);min-width:0}
.sa-post-title{font-weight:var(--weight-semibold);overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sa-nets{display:grid;gap:var(--space-1)}
.sa-net{display:flex;align-items:flex-start;gap:var(--space-2);min-width:0}
.sa-net>.net-mark{margin-top:2px}
.sa-res{display:inline-flex;align-items:flex-start;gap:6px;font-size:var(--text-sm);color:var(--text-2);min-width:0}
.sa-res>.ic{flex:none;margin-top:2px}
.sa-res>span{overflow-wrap:anywhere}
.sa-res--ok{color:var(--success)}
.sa-res--fail{color:var(--text)}.sa-res--fail>.ic,.sa-res--fail b{color:var(--danger)}
.sa-res--warn{color:var(--text)}.sa-res--warn>.ic,.sa-res--warn b{color:var(--warning)}
.sa-res b{font-weight:var(--weight-semibold)}
.sa-res--none>.ic{color:var(--text-3)}
/* Une carte par canal */
.sa-ch{display:grid;gap:var(--space-4);padding:var(--space-5);scroll-margin-top:calc(var(--touch) + var(--space-4))}
.sa-ch-head{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:var(--space-3)}
.sa-ch-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--inset);color:var(--text-2)} /* rond, comme l'onglet Canaux (le carré est réservé à la marque) */
.sa-ch-title{display:flex;flex-direction:column;min-width:0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:1.2}
.sa-ch-name{font-family:var(--font);font-size:var(--text-sm);font-weight:var(--weight-regular);letter-spacing:0;color:var(--text-2);overflow-wrap:anywhere}
.sa-ch-state{font-size:var(--text-sm)}
.sa-body{display:grid;container-type:inline-size}
.sa-items{margin:0}
/* Téléphone : libellé et valeur courte sur une ligne (valeur au bord droit) ; une valeur longue passe sous son libellé. */
.sa-item{display:flex;flex-wrap:wrap;align-items:flex-start;gap:2px var(--space-3);padding:var(--space-2) 0;border-top:1px solid var(--border)}
.sa-item dt{flex:none;font-size:var(--text-sm);line-height:calc(var(--text-md) * var(--leading));color:var(--text-2)}
.sa-item dd{display:flex;align-items:flex-start;gap:var(--space-2);flex:0 1 auto;margin:0 0 0 auto;min-width:0}
.sa-item--long dd{flex-basis:100%;margin-left:0}
@container (max-width:290px){.sa-item dd{flex-basis:100%;margin-left:0}} /* téléphone étroit : la valeur passe toujours dessous */
.sa-item dd>.ic{flex:none;margin-top:3px}
.sa-item dd>span:last-child{overflow-wrap:anywhere;text-wrap:pretty}
.sa-item--ok dd>.ic{color:var(--success)}
.sa-item--warn dd{color:var(--warning);font-weight:var(--weight-medium)}
.sa-item--fail dd{color:var(--danger);font-weight:var(--weight-medium)}
/* Ligne à début coloré (« expire dans 2 jours ») : seul ce début porte la couleur, le détail reste en texte courant. */
.sa-item--lead dd{color:var(--text);font-weight:var(--weight-regular)}
.sa-item--warn .sa-lead{color:var(--warning);font-weight:var(--weight-medium)}
.sa-item--fail .sa-lead{color:var(--danger);font-weight:var(--weight-medium)}
.sa-item--warn.sa-item--lead dd>.ic{color:var(--warning)}.sa-item--fail.sa-item--lead dd>.ic{color:var(--danger)}
.sa-item--neutral dd{color:var(--text-2)}.sa-item--neutral dd>.ic{color:var(--text-3)}
@media (min-width:600px){
  .sa-item{display:grid;grid-template-columns:minmax(9rem,13rem) minmax(0,1fr);gap:var(--space-4);align-items:baseline;padding:var(--space-3) 0}
  .sa-item dt{line-height:inherit}
  .sa-item dd{margin:0}
  .sa-item dd>.ic{align-self:flex-start}
}
.sa-err{display:grid;gap:var(--space-1);padding:var(--space-3) var(--space-4) var(--space-1)}
.sa-err-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2);font-size:var(--text-sm)}
.sa-err-head>.ic{flex:none}
.sa-err--warn .sa-err-head>.ic{color:var(--warning)}
.sa-err--old .sa-err-head>.ic{color:var(--text-3)}
.sa-err-head b{font-weight:var(--weight-semibold)}
.sa-err-at{color:var(--text-2)}
.sa-err-msg{font-size:var(--text-sm);overflow-wrap:anywhere;max-width:72ch}
.sa-err-link{justify-self:start;font-size:var(--text-sm)}
/* Action guidée : dans la carte, juste sous la ligne qu'elle répare ; la phrase d'explication sous le bouton. */
.sa-fix{display:grid;justify-items:start;gap:var(--space-2);padding:var(--space-1) 0 var(--space-4)}
.sa-fix-why{max-width:56ch;font-size:var(--text-sm);color:var(--text-2);text-wrap:pretty}
@media (min-width:600px){.sa-fix{padding-left:calc(13rem + var(--space-4))}} /* aligné sur la colonne des valeurs */
.sa-fix--ask{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-2)}
.sa-fix--ask>.ic{flex:none;margin-top:2px;color:var(--text)}
@media (max-width:479px){.sa-fix .btn{width:100%}}

/* Onglet Stratégie de la page Marque (spec 017, 9b) : un plan lu comme un tableau de bord, rien ne s'y exécute */
.st-head{display:flex;flex-direction:column;gap:var(--space-5);margin:var(--space-2) 0 var(--space-6);padding:var(--space-5);border:1px solid transparent;border-radius:var(--radius-xl);background:var(--surface);scroll-margin-top:calc(var(--touch) + var(--space-4))}
@media (min-width:768px){.st-head{padding:var(--space-6) var(--space-8) var(--space-8);border-radius:var(--radius-2xl)}}
:root[data-theme=dark] .st-head{border-color:var(--border)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .st-head{border-color:var(--border)}}
.st-head>.banner{margin:0}
.st-picker+.st-head,.statusbar+.st-head{margin-top:0}
/* Titre du plan : toute la largeur du panneau ; « Voir / Télécharger le JSON » dessous jusqu'à 1 024 px, à droite au-delà.
   Taille fluide (19 → 30 px, selon la largeur du panneau) : un titre de 55 signes tient en 2 lignes dès 390 px. */
.st-top{container-type:inline-size;display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "json" "intro";gap:var(--space-2) var(--space-6);align-items:center}
@media (min-width:1024px){.st-top{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title json" "intro intro"}}
.st-title{grid-area:title;min-width:0;font-family:var(--font-display);font-size:clamp(var(--text-xl),7cqi,var(--text-3xl));font-weight:var(--weight-semibold);letter-spacing:var(--tracking-display);line-height:1.15;overflow-wrap:anywhere;text-wrap:balance}
.st-top>.st-json{gap:0 var(--space-1);margin-left:calc(-1 * var(--space-2))}
.st-top>.st-json .btn{padding-left:var(--space-2);padding-right:var(--space-2)}
@media (min-width:1024px){.st-top>.st-json{margin-left:0}}
.st-top>.st-json{grid-area:json}
.st-intro{grid-area:intro;display:flex;flex-direction:column;gap:var(--space-1)}
.st-sub{color:var(--text-2);font-size:var(--text-md);overflow-wrap:anywhere;max-width:72ch}
.st-sub b{color:var(--text);font-weight:var(--weight-semibold)}
.st-json{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.st-facts{display:grid;grid-template-columns:minmax(0,1fr);margin:0;background:var(--inset);border-radius:var(--radius-lg)}
.st-facts>div{padding:var(--space-3) var(--space-4);min-width:0}
.st-facts>div+div{border-top:1px solid var(--border)}
.st-facts dt{font-size:var(--text-xs);color:var(--text-2);margin-bottom:var(--space-1)}
.st-facts dt label{font:inherit;color:inherit}
.st-facts dd{margin:0;font-weight:var(--weight-medium);overflow-wrap:anywhere}
.st-facts small{display:block;margin-top:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-regular);color:var(--text-2)}
.st-fact-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-3);min-height:var(--touch)}
.st-fact-form{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0;min-width:0}
.st-fact-select{flex:1 1 12rem;min-width:min(100%,12rem);min-height:var(--touch);font-weight:var(--weight-medium)}
.st-fact-form .btn{flex:none}
.st-change>summary.st-change-btn{display:inline-flex;align-items:center;min-height:var(--touch);padding:0 var(--space-3);border-radius:var(--radius-pill);color:var(--accent);font-size:var(--text-sm);font-weight:var(--weight-semibold);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent);text-underline-offset:3px}
.st-change>summary.st-change-btn:hover{background:var(--accent-soft);color:var(--accent-soft-text)}
.st-change>summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.st-change .menu-list{font-weight:var(--weight-medium)}
@media (min-width:960px){.st-fact-line{min-height:var(--control)}.st-fact-select{min-height:var(--control)}.st-change>summary.st-change-btn{min-height:var(--control)}}
@media (min-width:720px){.st-facts{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr)}.st-facts>div+div{border-top:0;border-left:1px solid var(--border)}}
.st-status{display:inline-flex;align-items:center;gap:var(--space-2)}
.st-status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--text-3);flex:none}
.st-status--approved::before{background:var(--success)}
.st-status--in_review::before,.st-status--draft::before{background:var(--warning)}
.st-plan{display:flex;gap:var(--space-2);align-items:flex-start;margin-top:var(--space-2);font-size:var(--text-sm);color:var(--text-2);max-width:80ch}
.st-plan b{color:var(--text);font-weight:var(--weight-semibold)}
.st-plan .ic{flex:none;margin-top:2px;color:var(--accent)}
.st-picker{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);margin:0;min-width:0}
.st-picker .select{flex:1 1 220px;min-width:0;max-width:420px;min-height:var(--touch)}
.st-picker-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-2)}
@media (min-width:960px){.st-picker .select{min-height:var(--control)}}
.st-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3);margin:0;min-width:0}
.st-pick{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 180px;max-width:100%}
.st-pick label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-2)}
.st-pick .select{min-height:var(--touch)}
@media (min-width:960px){.st-pick .select{min-height:var(--control)}.st-pick{flex:0 1 auto;max-width:360px}}
.st-confirm{padding:var(--space-4) var(--space-5);border-radius:0 var(--radius-lg) var(--radius-lg) 0;background:var(--inset);border-left:3px solid var(--accent);scroll-margin-top:calc(var(--touch) + var(--space-8))}
.st-confirm:focus{outline:none}.st-confirm:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.st-confirm-title{font-weight:var(--weight-semibold);margin-bottom:var(--space-1);overflow-wrap:anywhere}
.st-confirm-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}
.st-toc{margin-top:0}
.st-section .settings-panel{gap:var(--space-4)}
.st-card{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}
.st-card--flush{padding:0}
.st-h{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title)}
.st-h-sub{font-size:var(--text-sm);font-weight:var(--weight-regular);color:var(--text-2)}
.st-h4{margin:0;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-2)}
.st-lead{overflow-wrap:anywhere}
.st-list{margin:0;padding-left:var(--space-5);display:flex;flex-direction:column;gap:var(--space-1)}
.st-list li{overflow-wrap:anywhere}
.st-list--tight{gap:2px}
.st-fields{display:flex;flex-direction:column;gap:var(--space-3);margin:0}
.st-field dt{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-2);margin-bottom:2px}
.st-field dd{margin:0;overflow-wrap:anywhere;max-width:72ch}
.st-cols{display:grid;gap:var(--space-4);grid-template-columns:minmax(0,1fr)}
.st-cols:empty{display:none}
.st-cols>div{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
@media (min-width:720px){.st-cols{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}
.st-rows{list-style:none;margin:0;padding:0}
.st-row{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-1) var(--space-4);padding:var(--space-3) 0}
.st-row+.st-row{border-top:1px solid var(--border)}
.st-row:first-child{padding-top:0}.st-row:last-child{padding-bottom:0}
@media (min-width:600px){.st-row{grid-template-columns:minmax(0,1fr) auto;align-items:start}}
.st-row-main{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}
.st-row-sub{font-size:var(--text-sm);color:var(--text-2);overflow-wrap:anywhere}
.st-row-fig{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-weight:var(--weight-semibold)}
.st-row-fig--text{font-weight:var(--weight-regular);font-size:var(--text-sm);color:var(--text-2)}
@media (min-width:600px){.st-row-fig{justify-content:flex-end;text-align:right}}
.st-basis{display:inline-flex;align-items:center;height:20px;padding:0 var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-2xs);font-weight:var(--weight-semibold);white-space:nowrap;vertical-align:middle;background:var(--surface-3);color:var(--text)}
.st-basis--soft{background:var(--warning-soft);color:var(--text)}
.st-basis--reco{background:var(--accent-soft);color:var(--accent-soft-text)}
.st-other{text-decoration:underline dotted;text-underline-offset:2px;cursor:help}
.st-range{font-weight:var(--weight-regular);color:var(--text-2);font-size:var(--text-sm)}
.st-kpis{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;margin:0;background:var(--inset);border-radius:var(--radius-lg);overflow:hidden}
.st-kpis>div{padding:var(--space-3) var(--space-4);min-width:0}
.st-kpis>div:nth-child(2){border-left:1px solid var(--border)}
.st-kpis>div:nth-child(3){grid-column:1/-1;border-top:1px solid var(--border)}
@media (min-width:720px){.st-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.st-kpis>div:nth-child(3){grid-column:auto;border-top:0;border-left:1px solid var(--border)}}
.st-kpis dt{font-size:var(--text-xs);color:var(--text-2)}
.st-kpis dd{margin:var(--space-1) 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}
.st-kpi{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-regular);letter-spacing:var(--tracking-kpi);line-height:var(--leading-tight)}
@media (min-width:960px){.st-kpi{font-size:var(--text-kpi)}}
.st-kpi--text{font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:0}
.st-bars{list-style:none;margin:0;padding:0}
.st-bar-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-1) var(--space-3);padding:var(--space-3) 0}
.st-bar-row+.st-bar-row{border-top:1px solid var(--border)}
.st-bar-name{font-weight:var(--weight-semibold);overflow-wrap:anywhere;min-width:0}
.st-bar-fig{font-size:var(--text-sm);text-align:right;white-space:nowrap}
.st-bar-track{grid-column:1/-1;display:block;height:10px;background:var(--surface-2);border-radius:var(--radius-pill);overflow:hidden}
.st-bar-track i{display:block;height:100%;border-radius:inherit;background:var(--chart)}
.st-bar-sub{grid-column:1/-1;font-size:var(--text-xs);color:var(--text-2)}
@media (min-width:960px){.st-bar-row{grid-template-columns:minmax(160px,240px) minmax(0,1fr) 11rem}.st-bar-name{grid-column:1;grid-row:1}.st-bar-track{grid-column:2;grid-row:1}.st-bar-fig{grid-column:3;grid-row:1}.st-bar-sub{grid-column:1/-1;grid-row:2}}
/* Frise : le libellé (jours, nom) puis sa barre ; dès 960 px, la colonne des libellés prend la largeur du plus long
   (sous-grille commune : toutes les barres partagent le même axe), la barre juste à côté, le détail sous la barre. */
.st-frise{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-4)}
.st-step{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-2)}
.st-step-body{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}
.st-step-body .st-list{font-size:var(--text-sm)}
.st-step-bar{display:block;height:8px;border-radius:var(--radius-pill);background:var(--surface-2);position:relative;overflow:hidden}
.st-step-bar::after{content:"";position:absolute;top:0;bottom:0;left:calc((var(--from) - 1) / var(--days) * 100%);width:max(8px,calc((var(--to) - var(--from) + 1) / var(--days) * 100%));border-radius:var(--radius-pill);background:var(--chart)}
.st-step-when{font-size:var(--text-xs);color:var(--text-2)}
.st-step-label{font-weight:var(--weight-semibold)}
.st-step-text{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}

.st-step-decision{display:flex;gap:var(--space-2);align-items:flex-start;margin-top:var(--space-1);font-size:var(--text-sm)}
.st-step-decision .ic{flex:none;margin-top:3px;color:var(--text-2)}
@media (min-width:960px){
  .st-frise{display:grid;grid-template-columns:fit-content(18rem) minmax(0,1fr);column-gap:var(--space-5);row-gap:var(--space-5)}
  .st-step{grid-column:1/-1;grid-template-columns:subgrid;column-gap:var(--space-5);row-gap:var(--space-1);align-items:center}
  .st-step-text{grid-column:1}.st-step-bar{grid-column:2}.st-step-body{grid-column:2}
}
.st-frise-scale{margin-top:calc(-1 * var(--space-2))}
.st-table{border-radius:var(--radius-lg);background:var(--inset)}
.st-card--flush .st-table{border:0}
.st-table th[scope=row]{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text);white-space:normal;border-bottom:1px solid var(--border);min-width:12rem}
.st-table th small,.st-table td small{display:block;font-size:var(--text-xs);font-weight:var(--weight-regular);color:var(--text-2);margin-top:2px;overflow-wrap:anywhere}
.st-table td{white-space:nowrap}
.st-table tr:last-child th[scope=row]{border-bottom:0}
.st-tsep th{background:var(--surface-2);color:var(--text-2);font-weight:var(--weight-medium)}
@media (max-width:719px){
  .st-table--cards{border:0;overflow:visible}
  .st-table--cards table,.st-table--cards tbody,.st-table--cards tr,.st-table--cards th,.st-table--cards td{display:block}
  .st-table--cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .st-table--cards tr{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}
  .st-table--cards tr:last-child{border-bottom:0}
  .st-table--cards tr.st-tsep{padding:0}
  .st-table--cards tr.st-tsep th{padding:var(--space-2) var(--space-4);font-size:var(--text-xs)}
  .st-table--cards th[scope=row],.st-table--cards td{padding:0;border:0;white-space:normal;min-width:0}
  .st-table--cards td{display:inline;font-size:var(--text-sm);color:var(--text-2)}
  .st-table--cards td+td::before{content:" · "}
  .st-table--cards td:last-child{display:block;margin-top:var(--space-1);color:var(--text)}
  .st-table--cards td:last-child::before{content:none}
  .st-table--cards td.st-td-fig{display:inline;color:var(--text);font-weight:var(--weight-semibold)}
  .st-table--cards td.st-td-tag{display:inline;margin-left:var(--space-2)}
  .st-table--cards td.st-td-tag::before{content:none}
  .st-table--cards td.num{text-align:left}
  .st-table--cards td.st-td-row{display:block;margin-top:var(--space-1);color:var(--text)}
  .st-table--cards td.st-td-row::before{content:none}
}
.st-mlabel{color:var(--text-2);font-weight:var(--weight-regular)}
@media (min-width:720px){.st-mlabel{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
.st-dot{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.st-dot::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--text-3);flex:none}
.st-dot--ok::before{background:var(--success)}.st-dot--warn::before{background:var(--warning)}.st-dot--bad::before{background:var(--danger)}
.st-scen{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3);grid-template-columns:minmax(0,1fr)}
@media (min-width:720px){.st-scen{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.st-scen-card .st-mini{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));column-gap:var(--space-5)}}
.st-scen-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--inset);min-width:0}
.st-scen-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}
.st-mini{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-2);margin:0}
.st-mini>div{min-width:0}
.st-mini dt{font-size:var(--text-xs);color:var(--text-2)}
.st-mini dd{margin:0;overflow-wrap:anywhere}
.st-mini--wide{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3) var(--space-4)}
@media (min-width:1100px){.st-mini--wide{grid-template-columns:repeat(4,minmax(0,1fr))}}
.st-warn-line{color:var(--warning)}
.st-camp{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}
.st-camp-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-1) var(--space-3)}
.st-camp-head h3{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:var(--tracking-title);overflow-wrap:anywhere;min-width:0}
.st-camp-head .st-row-sub{flex-basis:100%}
.st-cond{display:flex;gap:var(--space-2);align-items:flex-start;font-size:var(--text-sm);color:var(--text-2)}
.st-cond .ic{flex:none;margin-top:2px}
.st-settings{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm)}
.st-settings li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2)}
.st-setting-name{color:var(--text-2)}
.st-setting-val{font-weight:var(--weight-semibold);overflow-wrap:anywhere}
.st-settings small{flex-basis:100%;font-size:var(--text-xs);color:var(--text-2)}
.st-sets{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3);grid-template-columns:minmax(0,1fr)}
@media (min-width:1100px){.st-sets{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}}
.st-set .st-mini{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.st-set{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--inset);min-width:0}
.st-set-name{overflow-wrap:anywhere}
.st-ads-title{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-2)}
.st-ads{list-style:none;margin:calc(-1 * var(--space-2)) 0 0;padding:0}
.st-ads li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);overflow-wrap:anywhere}
.st-ads a,.st-linked a,.st-simulate a,.st-reset,.st-version a,.st-ext{color:var(--accent);font-weight:var(--weight-semibold);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent);text-underline-offset:3px}
.st-ads a{display:inline-flex;align-items:center;min-height:var(--touch)}
@media (min-width:960px){.st-ads a{min-height:var(--control)}}
.st-ad-status{font-size:var(--text-xs);color:var(--text-2);white-space:nowrap}
.st-stages{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3);grid-template-columns:minmax(0,1fr)}
@media (min-width:720px){.st-stages{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}
.st-stage{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--inset);min-width:0;overflow-wrap:anywhere}
.st-stage-name{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-2)}
.st-concepts{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3);grid-template-columns:minmax(0,1fr)}
@media (min-width:720px){.st-concepts{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}
.st-concept{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--inset);min-width:0;overflow-wrap:anywhere}
.st-concept-name{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}
.st-briefs-head{display:flex;flex-direction:column;gap:var(--space-3);scroll-margin-top:calc(var(--touch) + var(--space-8))}
.st-filters .btn{flex:none}
.st-reset{display:inline-flex;align-items:center;min-height:var(--touch);font-size:var(--text-sm)}
@media (min-width:960px){.st-reset{min-height:var(--control)}}
.st-count{margin-top:calc(-1 * var(--space-1))}
.st-briefs{display:grid;gap:var(--space-4);grid-template-columns:minmax(0,1fr)}
@media (min-width:1280px){.st-briefs{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}
.st-brief{display:flex;flex-direction:column;gap:var(--space-3);min-width:0;scroll-margin-top:calc(var(--touch) + var(--space-8))}
.st-brief-head{display:flex;flex-direction:column;gap:2px;min-width:0}
.st-brief-path{font-size:var(--text-xs);color:var(--text-2);overflow-wrap:anywhere}
.st-brief-msg{overflow-wrap:anywhere;max-width:72ch}
.st-brief-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3) var(--space-4);margin:0;padding-top:var(--space-3);border-top:1px solid var(--border)}
.st-brief-grid .st-field{min-width:0}
.st-more{border-top:1px solid var(--border)}
.st-more>summary{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch);cursor:pointer;list-style:none;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--accent)}
.st-more>summary::-webkit-details-marker{display:none}
.st-more>summary::before{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform var(--duration-fast) var(--ease);flex:none}
.st-more[open]>summary::before{transform:rotate(45deg)}
.st-more>summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}
.st-more>.st-fields{padding:var(--space-1) 0 var(--space-2)}
@media (min-width:960px){.st-more>summary{min-height:var(--control)}}
.st-brief-name{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:var(--tracking-title);overflow-wrap:anywhere}
.st-hook{margin:0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--inset);font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:var(--leading-snug);overflow-wrap:anywhere}
.st-proofs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm)}
.st-proofs li{display:flex;gap:var(--space-2);align-items:flex-start;overflow-wrap:anywhere}
.st-proofs .st-basis{flex:none}
.st-linked{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}
.st-linked .ic{color:var(--text-2);flex:none}
.st-linked a{display:inline-flex;align-items:center;min-height:var(--touch)}
.st-rule{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--inset);overflow-wrap:anywhere}
.st-rule-if{font-weight:var(--weight-semibold)}
.st-rule-then small{display:block;font-size:var(--text-sm);color:var(--text-2)}
.st-simulate{display:flex;gap:var(--space-2);align-items:flex-start;font-size:var(--text-sm)}
.st-simulate .ic{flex:none;margin-top:2px;color:var(--text-2)}
.st-simulate>span{display:flex;flex-direction:column;gap:2px}
.st-simulate a{display:inline-flex;align-items:center;align-self:flex-start;min-height:var(--touch)}
@media (min-width:960px){.st-simulate a,.st-linked a{min-height:var(--control)}}
.st-checks{list-style:none;margin:0;padding:0}
.st-check-row{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) 0;scroll-margin-top:calc(var(--touch) + var(--space-8))}
.st-check-row+.st-check-row{border-top:1px solid var(--border)}
.st-check-form{margin:0}
.st-check{display:flex;align-items:flex-start;gap:var(--space-3);width:100%;min-height:var(--touch);padding:var(--space-2) 0;border:0;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer;border-radius:var(--radius-sm)}
button.st-check:hover .st-box{border-color:var(--accent)}
button.st-check:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.st-check--static{cursor:default}
.st-box{display:inline-grid;place-items:center;flex:none;width:22px;height:22px;margin-top:1px;border:2px solid var(--border-input);border-radius:var(--radius-xs);background:var(--surface);color:var(--text-on-accent);transition:background var(--duration-fast),border-color var(--duration-fast)}
.st-box.is-on{background:var(--accent);border-color:var(--accent)}
.st-check-text{font-weight:var(--weight-semibold);overflow-wrap:anywhere;min-width:0}
.is-done .st-check-text{color:var(--text-2);text-decoration:line-through;text-decoration-color:var(--border-strong)}
.st-check-meta,.st-check-how{padding-left:calc(22px + var(--space-3));font-size:var(--text-xs);color:var(--text-2);overflow-wrap:anywhere}
.st-check-meta .badge{vertical-align:middle}
.st-versions{list-style:none;margin:0;padding:0}
.st-version{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) 0 var(--space-3) var(--space-4);border-left:2px solid var(--border)}
.st-version.is-viewed{border-left-color:var(--accent)}
.st-version-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}
.st-version a{display:inline-flex;align-items:center;min-height:var(--touch);font-size:var(--text-sm)}
@media (min-width:960px){.st-version a{min-height:var(--control)}}
.st-diff{display:inline-block;width:1.2em;font-weight:var(--weight-bold);color:var(--success)}
.st-version .st-list{padding-left:0;list-style:none}
.st-ext{overflow-wrap:anywhere}
.st-url{overflow-wrap:anywhere}
.st-empty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);padding:var(--space-8) var(--space-6)}
.st-empty-icon{color:var(--text-3)}
.st-empty h3{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:var(--tracking-title)}
.st-ask{display:block;margin-top:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--inset);font-size:var(--text-md);font-weight:var(--weight-semibold);quotes:"« " " »";overflow-wrap:anywhere}
.st-error{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4) 0}
.st-error>.banner{margin:0}
.st-error-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.st-error a:not(.btn){color:var(--accent);font-weight:var(--weight-semibold)}
.appearance{display:flex;flex-direction:column;gap:var(--space-5)}
.appearance-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}
.appearance-row>div:first-child{flex:1 1 200px;min-width:0}
.appearance-row h3{font-size:var(--text-sm);margin-bottom:2px}
.appearance-row--stack>div:first-child{flex:none}
/* Grille plutôt que flex en colonne : en flex, le choix des thèmes (grille auto-fill) était mesuré à sa largeur minimale,
   soit 4 rangées de haut, d'où le grand vide sous les pastilles. */
.appearance-row--stack{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);padding-top:var(--space-5);border-top:1px solid var(--border)}

/* États vides */
.empty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-xl);background:var(--surface)}
.empty-icon{display:block;color:var(--text-3)}
.empty p{color:var(--text-2)}.empty p b{color:var(--text)}

/* Liste de contrôle (santé du service) */
.checklist{list-style:none;padding:0}
.checklist li{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--border);font-size:var(--text-sm)}
.checklist li:first-child{border-top:0;padding-top:0}
.checklist span{flex:1;color:var(--text-2)}
.checklist b{font-weight:var(--weight-semibold);text-align:right}
.checklist .ok{color:var(--success)}.checklist .ko{color:var(--danger)}

/* ---------------- Tableau de bord (direction « Grand titre ») ---------------- */
/* Grand titre = la date ; dessous, le constat calculé (prochain post, échecs) et le fuseau du compte */
.dash-head{align-items:flex-end}
.dash-lede{margin-top:var(--space-2);color:var(--text-2);max-width:56ch}
.dash-lede b{color:var(--text);font-weight:var(--weight-medium)}
.lede-alert{color:var(--danger);font-weight:var(--weight-medium);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--danger) 40%,transparent);text-underline-offset:3px}
.lede-alert:hover{text-decoration-color:currentColor}
.dash-tz{display:flex;align-items:center;gap:6px;margin-top:var(--space-2);font-size:var(--text-sm);color:var(--text-2)}
.dash-head [data-desktop-only]{display:none}
@media (min-width:960px){.dash-head [data-desktop-only]{display:inline-flex}}
.dash{display:flex;flex-direction:column;gap:var(--space-4)}
.dash-week{display:none}
/* Prochain post : la chose dominante (grande heure, grande vignette, début de la légende) ; « Ensuite » à côté dès 1 024 px */
.dash-next{display:grid;gap:var(--space-5)}
.dn-lead{min-width:0}
.dn-lead>.card-head{margin-bottom:var(--space-3)}
.dn-main{display:grid;grid-template-columns:80px minmax(0,1fr);gap:var(--space-4);align-items:start}
.dn-main .thumb{width:80px;height:100px;border-radius:var(--radius-lg)}
.dn-info{min-width:0}
.dn-when{font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:var(--text-2xl);line-height:1.1;letter-spacing:var(--tracking-kpi)}
.dn-title{margin:var(--space-2) 0 var(--space-1);font-size:var(--text-lg);font-weight:var(--weight-medium);line-height:1.35;overflow-wrap:anywhere}
.dn-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:var(--text-sm);color:var(--text-2)}
.dn-meta .nets{display:flex;flex-direction:row;flex-wrap:wrap;gap:6px 10px}
/* Début de la légende : replié au téléphone (une ligne), ouvert dès 768 px (data-open-from, public/app-v1.js) */
.dn-cap{margin-top:var(--space-4);padding:0 var(--space-4);border-radius:var(--radius-lg);background:var(--inset)}
.dn-cap>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:var(--touch);cursor:pointer}
.dn-cap>summary::-webkit-details-marker{display:none}
.dn-cap>summary .ic{flex:none;color:var(--text-2);transition:transform var(--duration-fast) var(--ease)}
.dn-cap[open]>summary .ic{transform:rotate(180deg)}
.dn-cap[open]{padding-bottom:var(--space-3)}
.dn-cap-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-2)}
.dn-cap-text{line-height:1.55;overflow-wrap:anywhere;max-width:68ch}
@media (min-width:768px){
  .dn-cap>summary{cursor:default}
  .dn-cap[open]>summary{pointer-events:none}
  .dn-cap[open]>summary .ic{display:none}
}
/* « Ensuite » court (1 ou 2 posts) : sous la légende, côte à côte avec elle dès 1 024 px */
.dn-pair{display:grid;gap:var(--space-4);margin-top:var(--space-4)}
.dn-pair>.dn-cap{margin-top:0}
.dn-pair>.dn-after{align-self:start}
.dn-act{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}
.dn-after{min-width:0;padding:var(--space-1) 0;border-radius:var(--radius-lg);background:var(--inset)}
.dn-after>h3{padding:var(--space-3) var(--space-4) var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-2)}
.dn-list{list-style:none;margin:0;padding:0}
.dn-list>li+li{border-top:1px solid var(--border)}
.dn-row{display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-areas:"t x" "t s";gap:4px var(--space-3);align-items:center;min-height:60px;padding:var(--space-3) var(--space-4);color:inherit;text-decoration:none;border-radius:var(--radius-lg);
  transition:background var(--duration-fast) var(--ease)}
.dn-row:hover{background:color-mix(in srgb,var(--surface-2) 55%,transparent)}
.dn-row .thumb{grid-area:t;width:36px;height:45px;border-radius:var(--radius-sm);align-self:start}
.dn-row-text{grid-area:x;display:flex;flex-direction:column;min-width:0;line-height:var(--leading-snug)}
.dn-row-text b{font-weight:var(--weight-medium);overflow-wrap:anywhere}
.dn-row-text small{font-size:var(--text-sm);color:var(--text-2)}
.dn-row>.pill,.dn-row>.nets{grid-area:s;justify-self:start}
.dn-row>.nets{display:flex;flex-wrap:wrap;gap:6px}
/* Un échec attend : sur téléphone, la suite se replie pour garder « À traiter » dans le premier écran */
@media (max-width:767px){.dash-next--fix .dn-after{display:none}}
@media (min-width:768px){
  .dn-main{grid-template-columns:136px minmax(0,1fr);gap:var(--space-6)}
  .dn-main .thumb{width:136px;height:170px}
  .dn-when{font-size:var(--text-kpi)}
  .dn-title{font-size:var(--text-xl)}
  .dn-row{grid-template-columns:36px minmax(0,1fr) auto;grid-template-areas:"t x s"}
  .dn-row>.pill,.dn-row>.nets{justify-self:end}
  .dn-row>.nets{flex-direction:column;align-items:flex-end}
}
@media (min-width:1024px){
  .dash-next{grid-template-columns:minmax(0,1fr) minmax(0,400px);gap:var(--space-6);align-items:start}
  .dash-next--short{grid-template-columns:minmax(0,1fr)}
  .dn-pair{grid-template-columns:minmax(0,1fr) minmax(0,400px);gap:var(--space-6)}
}
/* « À traiter » et les chiffres clés : côte à côte dès 1 024 px (les chiffres seuls prennent toute la largeur) */
.dash-duo{display:grid;gap:var(--space-4);grid-template-columns:minmax(0,1fr);align-items:stretch}
@media (max-width:767px){.dash-head .btn--primary{display:none}.dash-head .page-actions:not(:has(.btn:not(.btn--primary):not([data-desktop-only]))){display:none}}
@media (min-width:1024px){.dash-duo{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dash-duo--solo{grid-template-columns:minmax(0,1fr)}}
.dk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5) var(--space-4)}
.dash-duo--solo .dk-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}
.dk-grid .kpi{gap:2px;padding:0;border-radius:var(--radius-md)}
.dk-grid a.kpi:hover{background:transparent}
.dk-grid a.kpi:hover .kpi-value{color:var(--accent)}
.dk-grid .kpi .meter{margin-top:var(--space-2)}
.kpi h3{font-size:var(--text-sm);font-weight:var(--weight-regular);color:var(--text-2)}
.fix-list{list-style:none;padding:var(--space-1) 0;margin:0;display:flex;flex-direction:column;border-radius:var(--radius-lg);background:var(--inset)}
.fix-list>li{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4)}
.fix-list>li+li{border-top:1px solid var(--border)}
.fix-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.fix-title b{font-weight:var(--weight-medium);overflow-wrap:anywhere}
.fix-list .row{margin-top:var(--space-2)}
/* Bloc repliable (<details>) : sur téléphone une ligne titre + résumé ; ouvert sur ordinateur */
.fold{min-width:0}
.fold>summary{list-style:none;display:flex;align-items:center;gap:var(--space-3);min-height:60px;padding:var(--space-2) var(--space-5);border-radius:var(--radius-xl);background:var(--surface);cursor:pointer;
  transition:background var(--duration-fast) var(--ease)}
.fold>summary::-webkit-details-marker{display:none}
.fold>summary:hover{background:color-mix(in srgb,var(--surface) 70%,var(--surface-2))}
:root[data-theme=dark] .fold>summary{box-shadow:inset 0 0 0 1px var(--border)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .fold>summary{box-shadow:inset 0 0 0 1px var(--border)}}
.fold>summary>.ic{flex:none;margin-left:auto;color:var(--text-2);transition:transform var(--duration) var(--ease)}
.fold[open]>summary>.ic{transform:rotate(180deg)}
.fold-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);flex:none}
.fold-meta{min-width:0;font-size:var(--text-sm);color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fold-alert{color:var(--danger);font-weight:var(--weight-medium)}
.fold[open]>summary{border-bottom-left-radius:0;border-bottom-right-radius:0}
.fold-body>.card{border-top-left-radius:0;border-top-right-radius:0;padding-top:var(--space-2)}
.fold-body>.card>.card-head h2{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.fold-body>.card>.card-head{justify-content:flex-end;margin-bottom:var(--space-2)}
.fold-body>.card>.card-head:not(:has(a,button)){display:none}
@media (max-width:479px){.fold>summary{flex-wrap:wrap;row-gap:0}.fold-meta{order:3;flex-basis:100%;white-space:normal}.fold>summary>.ic{order:2}}
/* Rythme de publication et meilleurs horaires, côte à côte quand la place le permet */
.rhythm{display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1fr)}
.rhythm-part{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}
.rhythm-part h3{font-size:var(--text-sm);font-weight:var(--weight-medium)}
.rhythm-part h3 .muted{font-weight:var(--weight-regular)}
.rhythm .bars{height:132px}
@media (min-width:960px){.rhythm .bars{height:200px}}
.rhythm-note{margin-top:calc(-1 * var(--space-1))}
@media (min-width:640px){.rhythm{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}}
/* Dernière rangée : Rythme pleine largeur, puis Recommandations et Santé côte à côte, à hauteur égale (dès 960 px) */
.dash-pair{display:flex;flex-direction:column;gap:var(--space-4)}
@media (min-width:960px){
  .dash-week{display:block}
  .dash-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
  .dash-pair--solo{grid-template-columns:minmax(0,1fr)}
  .dash-pair>.fold[open]{display:flex;flex-direction:column}
  .dash-pair>.fold[open]>.fold-body{flex:1;display:flex;flex-direction:column}
  .dash-pair>.fold[open]>.fold-body>.card{flex:1}
  .fold[open]>summary{display:none}
  .fold-body>.card{border-radius:var(--radius-2xl);padding-top:var(--space-6)}
  .fold-body>.card>.card-head h2{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}
  .fold-body>.card>.card-head{justify-content:space-between;margin-bottom:var(--space-4)}
  .fold-body>.card>.card-head:not(:has(a,button)){display:flex}
}
/* Les 7 prochains jours (ordinateur) : 7 colonnes, posts avec liseré du compte, pubs en barres continues */
.dw-head{padding:var(--space-5) var(--space-6) 0;margin-bottom:var(--space-3)}
.dw-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--border)}
.dw-day{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;min-height:132px;padding:var(--space-2) var(--space-2) var(--space-3);border-left:1px solid var(--border)}
.dw-day:first-child{border-left:0}
.dw-day.dw-day--today{background:color-mix(in srgb,var(--accent) 3%,transparent)}
.dw-date{display:flex;align-items:center;min-height:var(--control);padding:0 var(--space-1);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-2);text-decoration:none}
.dw-date:hover{color:var(--text);background:var(--surface-2)}
.dw-date b{font-weight:var(--weight-semibold);color:var(--text)}
.dw-day.dw-day--today .dw-date{color:var(--text);font-weight:var(--weight-semibold)}
.dw-day.dw-day--today .dw-date b{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 4px;border-radius:var(--radius-pill);background:var(--accent);color:var(--text-on-accent)}
.dw-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}
.dw-post{display:flex;flex-direction:column;gap:2px;padding:6px var(--space-2) 6px calc(var(--space-3) - 3px);border-radius:var(--radius-md);background:var(--inset);border-left:3px solid var(--acc);text-decoration:none;color:var(--text);
  font-size:var(--text-xs);line-height:1.3;transition:background var(--duration-fast)}
.dw-post:hover{background:var(--surface-2)}
.dw-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;min-width:0}
.dw-meta .ev-status{overflow:visible}
.dw-meta b{font-weight:var(--weight-semibold)}
.dw-meta .ev-status{font-size:var(--text-2xs)}
.dw-title{font-weight:var(--weight-medium);overflow-wrap:anywhere}
.dw-post.event--failed{background:var(--status-failed-soft);border-left-color:var(--status-failed)}
.dw-post.event--failed .ev-status,.dw-post.event--failed .dw-meta b{color:var(--status-failed)}
.dw-post.event--published .ev-status{color:var(--status-published)}
.dw-post.event--cancelled .dw-title{text-decoration:line-through;color:var(--text-2)}
.dw-empty{display:flex;align-items:center;gap:6px;padding:0 var(--space-1);font-size:var(--text-xs);color:var(--text-2)}
.dw-empty .ic{color:var(--accent-soft-text);flex:none}
.dw-empty b{color:var(--text);font-weight:var(--weight-semibold)}
.dw-ads{padding:var(--space-2) 0;border-top:1px solid var(--border)}

/* ---------------- Planificateur ---------------- */
.toolbar{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin-bottom:var(--space-4)}
.toolbar .spacer{flex:1}
.toolbar-nav{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);min-width:0}
@media (min-width:960px){.toolbar-nav .period{margin-left:var(--space-2)}}
.toolbar-account{display:none}
@media (min-width:960px){.toolbar-account{display:inline-flex;height:28px;font-size:var(--text-xs)}}
.period{font-weight:var(--weight-semibold);font-size:var(--text-md);min-width:0}
@media (max-width:959px){.toolbar .spacer{display:none}}
.planner{display:grid;gap:var(--space-4);align-items:start}
.planner .preview-col{display:none}
@media (min-width:960px){.planner .preview-col{display:block}}
@media (min-width:1200px){.planner.has-preview{grid-template-columns:minmax(0,1fr) 340px}.planner .preview-col{position:sticky;top:var(--space-6)}}
.cal{display:none}
@media (min-width:960px){.cal{display:block}.agenda:not(.agenda--list){display:none}}
.cal-head,.cal-body{display:grid;grid-template-columns:56px repeat(7,minmax(0,1fr))}
.cal-head{border-bottom:1px solid var(--border);position:sticky;top:0;z-index:6;background:var(--surface)}
.cal-tz{font-size:var(--text-2xs);color:var(--text-2);display:grid;place-items:end center;padding-bottom:var(--space-2)}
.cal-day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-2) 0;border-left:1px solid var(--border);text-decoration:none;color:inherit;transition:background var(--duration-fast)}
.cal-day:hover{background:var(--surface-2)}
.cal-day small{color:var(--text-2);font-size:var(--text-xs);font-weight:var(--weight-medium)}
.cal-day b{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-size:var(--text-lg)}
.cal-day.today b{background:var(--accent);color:var(--text-on-accent)}
/* Heures : une ligne par heure utile ; les heures vides avant et après sont repliées (voir la légende) */
.cal-window{--row:56px;height:calc(var(--row) * var(--rows));overflow:hidden}
.cal-body{position:relative;height:calc(var(--row) * 24);transform:translateY(calc(var(--row) * var(--first) * -1));background:repeating-linear-gradient(to bottom,transparent 0 calc(var(--row) - 1px),var(--border) calc(var(--row) - 1px) var(--row))} /* taste-skill-ignore : lignes horaires de la grille */
.cal-hours{display:flex;flex-direction:column}
.cal-hours span{height:var(--row);font-size:var(--text-2xs);color:var(--text-2);text-align:right;padding:var(--space-1) var(--space-2) 0 0}
.cal-col{position:relative;border-left:1px solid var(--border);transition:background var(--duration-fast);container-type:inline-size}
.cal-col.today{background:color-mix(in srgb,var(--accent) 3%,transparent)}
.cal-col.drag-over{background:color-mix(in srgb,var(--accent) 7%,transparent)}
/* Meilleurs créneaux : un aplat discret de la teinte du thème, sans contour ; une étoile pour le premier choix */
.best{position:absolute;left:0;right:0;height:calc(var(--row) - 1px);background:var(--best-time);pointer-events:none}
.best--top{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.best .ic{position:absolute;right:6px;bottom:6px;color:var(--accent-soft-text);opacity:.8}
/* Un post : liseré à la couleur du compte, vignette si la colonne est assez large, heure + statut (mot), titre sur 2 lignes */
.event{position:absolute;left:3px;right:3px;height:calc(var(--row) - 5px);display:flex;align-items:flex-start;gap:6px;padding:4px 6px 4px 9px;border-radius:var(--radius-sm);text-decoration:none;color:var(--text);
  background:var(--surface);box-shadow:inset 3px 0 0 var(--acc),0 0 0 1px var(--border-strong);font-size:var(--text-2xs);line-height:1.25;z-index:2;overflow:hidden;
  transition:box-shadow var(--duration-fast),transform var(--duration-fast) var(--ease),opacity var(--duration-fast)}
.event:hover{box-shadow:inset 3px 0 0 var(--acc),0 0 0 1px var(--border-input),var(--shadow-2);z-index:4}
.event[draggable=true]{cursor:grab}
.event .thumb{display:none;width:30px;height:38px;border-radius:var(--radius-xs)}
.event .thumb .kind{display:none}
@container (min-width:190px){.event .thumb{display:grid}}
@container (max-width:139px){.event .t{flex-wrap:wrap;row-gap:0}.event .n{-webkit-line-clamp:1}}
.ev-body{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.event .t{display:flex;align-items:center;gap:5px;white-space:nowrap;overflow:hidden;color:var(--text-2)}
.event .t b{color:var(--text);font-weight:var(--weight-semibold)}
.ev-status{color:var(--text-2);font-weight:var(--weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.event .n{font-size:var(--text-xs);font-weight:var(--weight-semibold);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.event .score-pill{height:16px;padding:0 5px 0 3px;margin-left:auto}
.event--failed{background:var(--status-failed-soft);box-shadow:inset 3px 0 0 var(--status-failed),0 0 0 1px color-mix(in srgb,var(--status-failed) 35%,transparent)}
.event--failed .ev-status,.event--failed .t b{color:var(--status-failed)}
.event--published{background:var(--surface-2)}
.event--published .ev-status{color:var(--status-published)}
.event--cancelled .n{text-decoration:line-through;color:var(--text-2)}
.event.selected{box-shadow:inset 3px 0 0 var(--acc),0 0 0 2px var(--accent),var(--shadow-2)}
.event.dragging{opacity:.4}
.event.saving{animation:pulse 1s var(--ease) infinite}
.drop-ghost{position:absolute;left:3px;right:3px;height:calc(var(--row) - 5px);border-radius:var(--radius-sm);border:2px dashed var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);pointer-events:none;z-index:5}
.drop-ghost span{position:absolute;top:-24px;left:50%;transform:translateX(-50%);white-space:nowrap;padding:2px 8px;border-radius:var(--radius-pill);background:var(--accent);color:var(--text-on-accent);font-size:var(--text-2xs);font-weight:var(--weight-bold);box-shadow:var(--shadow-2)}
.now-line{position:absolute;left:-1px;right:0;height:2px;background:var(--now-line);z-index:3;pointer-events:none}
.now-line::before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--now-line)}
.cal-legend{display:flex;align-items:center;column-gap:var(--space-5);row-gap:var(--space-2);flex-wrap:wrap;padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--text-2)}
.best-key{width:16px;height:10px;background:color-mix(in srgb,var(--accent) 14%,transparent);border-radius:3px;flex:none}
.best-key--day{height:4px;background:var(--best-time-line)}

/* Mois : une rangée par semaine ; les pubs forment une barre continue par rangée */
.month-dows{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.month-week{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.month-dow{padding:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-2);border-bottom:1px solid var(--border);text-align:center}
.month-cell{position:relative;min-height:64px;padding:6px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:4px;text-decoration:none;color:inherit;min-width:0;transition:background var(--duration-fast)}
.month-cell:nth-child(7){border-right:0}
.month-cell.out{background:var(--surface-2)}.month-cell.out .num{color:var(--text-2)}
.month-cell.drag-over{background:color-mix(in srgb,var(--accent) 8%,transparent)}
.month-cell .num{position:absolute;inset:0;padding:6px;text-decoration:none;color:inherit;border-radius:0}
.month-cell .d{font-size:var(--text-sm);font-weight:var(--weight-semibold);width:26px;height:26px;display:grid;place-items:center;border-radius:50%}
.month-cell.today .d{background:var(--accent);color:var(--text-on-accent)}
.month-cell .month-dots{margin-top:30px;position:relative;pointer-events:none}
.month-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.month-scroll .month{min-width:322px}
.month-cell.best-day{box-shadow:inset 0 -3px 0 var(--best-time-line)}
.month-dots{display:flex;flex-wrap:wrap;gap:3px}
.month-dots i{width:8px;height:8px;border-radius:50%;background:var(--acc)}
.month-event{display:none}
.ad-band.month-ads{display:none}
@media (min-width:960px){
  .month-cell .num{position:static;padding:0;display:inline-block;margin-bottom:calc(var(--lanes) * 26px)}
  .month-cell{min-height:118px}
  .month-dots{display:none}
  .ad-band.month-ads{display:grid;position:absolute;left:0;right:0;top:36px;padding:0 4px;pointer-events:none}
  .month-ads .ad-chip{pointer-events:auto}
  .month-event{display:flex;align-items:center;gap:6px;min-height:24px;padding:2px 6px 2px 8px;border-radius:var(--radius-sm);font-size:var(--text-2xs);text-decoration:none;color:var(--text);background:var(--surface-2);box-shadow:inset 3px 0 0 var(--acc);white-space:nowrap;overflow:hidden;transition:background var(--duration-fast)}
  .month-event:hover{background:var(--surface-3)}
  .month-event b{font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}
  .month-event .status-dot{flex:none}
  .month-event.event--failed{background:var(--status-failed-soft)}
  .month-event.event--cancelled .truncate{text-decoration:line-through;color:var(--text-2)}
  .month-event[draggable=true]{cursor:grab}
}

/* Agenda par jour (mobile, et vue liste) */
.day-strip{display:grid;grid-template-columns:repeat(7,minmax(44px,1fr));gap:2px;margin-bottom:var(--space-3);overflow-x:auto}
.strip-day{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:64px;padding:6px 0;border-radius:var(--radius-md);border:1px solid transparent;text-decoration:none;color:inherit}
.strip-day small{font-size:var(--text-2xs);color:var(--text-2);font-weight:var(--weight-semibold)}
.strip-day b{font-size:var(--text-lg)}
.strip-day.today b{color:var(--accent)}
.strip-day[aria-current=date],.strip-day.sel{background:var(--surface);border-color:var(--border-strong)}
.dots{display:flex;gap:3px;height:6px}.dots i{width:6px;height:6px;border-radius:50%;background:var(--acc)}
.agenda-day{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text);margin:var(--space-5) 0 var(--space-2);font-weight:var(--weight-semibold);scroll-margin-top:calc(var(--topbar-h) + var(--space-4))}
.agenda-day .ic{color:var(--ad)}
.agenda-day:first-of-type,.agenda-ads .agenda-day{margin-top:var(--space-1)}
.agenda-ads{margin-bottom:var(--space-2)}
.agenda-ads+.agenda-day{margin-top:var(--space-5)}
.agenda-list{display:flex;flex-direction:column;gap:var(--space-2)}
.agenda-empty{font-size:var(--text-sm);color:var(--text-2);padding:0 0 0 var(--space-3)}
.agenda-empty b{color:var(--text)}
/* Un post de l'agenda : heure, vignette, titre sur 2 lignes, compte et format, statut en mot ; liseré du compte */
.agenda-item{display:grid;grid-template-columns:minmax(44px,max-content) 44px minmax(0,1fr);grid-template-areas:"w t m" "w t s";column-gap:var(--space-3);row-gap:var(--space-2);align-items:start;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);
  border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:inset 3px 0 0 var(--acc);text-decoration:none;color:inherit;transition:border-color var(--duration-fast),background var(--duration-fast)}
.agenda-item:hover{border-color:var(--border-strong)}
.agenda-item:hover .ai-title{text-decoration:underline}
.agenda-item .thumb{grid-area:t}
.ai-time{grid-area:w;font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:var(--leading-snug);white-space:nowrap}
.ai-body{grid-area:m;display:flex;flex-direction:column;gap:2px;min-width:0}
.ai-title{font-weight:var(--weight-semibold);line-height:var(--leading-snug);overflow-wrap:anywhere}
/* Agenda : le compte et le format passent à la ligne plutôt que d'être coupés */
.agenda-item .meta-line{flex-wrap:wrap}.agenda-item .meta-line .truncate{white-space:normal;overflow:visible;overflow-wrap:anywhere}
.ai-error{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--danger)}
.ai-side{grid-area:s;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}
.agenda-item.event--failed{border-color:color-mix(in srgb,var(--danger) 35%,var(--border));box-shadow:inset 3px 0 0 var(--status-failed)}
.agenda-item.event--cancelled .ai-title{text-decoration:line-through;color:var(--text-2)}
@media (min-width:640px){.agenda-item{grid-template-columns:minmax(52px,max-content) 44px minmax(0,1fr) auto;grid-template-areas:"w t m s";align-items:center}.ai-side{justify-content:flex-end}}
.hint{display:flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--text-2)}.hint .ic{color:var(--accent)}

/* ---------------- Aperçu Instagram ----------------
   Reproduit l'interface d'Instagram : ses propres couleurs et tailles (hors jetons), volontairement. */
.ig{border:1px solid #DBDBDB;border-radius:var(--radius-lg);overflow:hidden;background:#fff;color:#0A0A0A;font-size:14px;line-height:1.4}
:root[data-theme=dark] .ig{background:#000;color:#F5F5F5;border-color:#262626}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ig{background:#000;color:#F5F5F5;border-color:#262626}}
.ig-head{display:flex;align-items:center;gap:10px;padding:10px 12px}
.ig-head b{flex:1;font-size:14px}
.ig-head .avatar{box-shadow:none}
.ig-media{position:relative;aspect-ratio:4/5;background:#EFEFEF}
.ig-track{display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth}
.ig-track::-webkit-scrollbar{display:none}
.ig-slide{flex:0 0 100%;height:100%;scroll-snap-align:start;display:grid;place-items:center}
.ig-slide img{width:100%;height:100%;object-fit:cover}
.ig-slide video{width:100%;height:100%;object-fit:cover;background:#000}
.ig-count{position:absolute;top:10px;right:10px;padding:3px 9px;border-radius:999px;background:rgb(0 0 0/.65);color:#fff;font-size:12px;font-weight:600}
.ig-arrow{position:absolute;top:50%;transform:translateY(-50%);width:var(--touch);height:var(--touch);border-radius:50%;border:0;background:rgb(255 255 255/.92);color:#111;display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 6px rgb(0 0 0/.2)}
.ig-arrow.prev{left:8px}.ig-arrow.next{right:8px}
.ig-arrow[hidden]{display:none}
.ig-actions{display:flex;align-items:center;gap:14px;padding:10px 12px 4px}
.ig-dots{display:flex;gap:4px;margin:0 auto;transform:translateX(-30px)}
.ig-dots i{width:6px;height:6px;border-radius:50%;background:#C7C7C7;transition:background var(--duration-fast)}.ig-dots i.on{background:#0095F6}
.ig-caption{padding:2px 12px 6px;white-space:pre-line}
.ig-caption .more{color:#737373;border:0;background:none;padding:0;cursor:pointer;font:inherit;min-height:var(--touch);min-width:var(--touch)}
.ig-caption.clamped{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;padding-bottom:0;margin:2px 12px 6px;padding-left:0;padding-right:0}
.ig-meta{padding:0 12px 12px;font-size:12px;color:#737373}
:root[data-theme=dark] .ig-meta,:root[data-theme=dark] .ig-caption .more{color:#A8A8A8}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ig-meta,:root:not([data-theme=light]) .ig-caption .more{color:#A8A8A8}}

.details{display:grid;gap:var(--space-2);font-size:var(--text-sm)}
.details>div{display:grid;grid-template-columns:96px 1fr;gap:var(--space-2)}
.details dt{color:var(--text-2)}.details dd{margin:0;display:flex;align-items:center;gap:6px;font-weight:var(--weight-medium);min-width:0;flex-wrap:wrap}

/* Fiche post */

/* Pages d'accès (connexion, inscription, liens reçus par e-mail, autorisation).
   Téléphone et tablette : barre de marque Pétrole (symbole « Relais » et nom), formulaire posé sur le papier juste dessous.
   Ordinateur : aplat Pétrole à gauche (grand symbole recadré, ce que fait l'outil), formulaire à droite. L'aplat reste
   Pétrole quel que soit le thème de couleur choisi : c'est la marque ; les boutons et liens suivent le thème. */
.auth-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.auth-side{position:relative;overflow:hidden;display:flex;align-items:center;min-height:var(--topbar-h);padding:0 var(--space-4);background:var(--brand-field);color:var(--text-on-brand)}
.auth-brand{position:relative;z-index:1;display:inline-flex;align-items:center;gap:var(--space-2);font-weight:var(--weight-semibold);font-size:var(--text-lg);letter-spacing:-0.01em}
.auth-side .brand-mark{color:var(--text-on-brand)}
/* Spec 038 (EF-04, ENF-04) : lien de bascule de langue, à droite du logo (une pastille par autre langue, 44 px). */
.auth-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;min-width:0}
.auth-lang{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-1)}
/* Bascule de langue des pages d'accès : le bouton secondaire du système (aplat surface-2, sans contour), posé sur l'aplat de marque */
.auth-lang-link{display:inline-flex;align-items:center;gap:var(--space-1);min-height:var(--touch);padding:0 var(--space-4);border-radius:var(--radius-pill);background:var(--surface-2);color:var(--text);font-size:var(--text-sm);font-weight:var(--weight-medium);text-decoration:none;cursor:pointer;list-style:none;transition:background var(--duration-fast)}
.auth-lang-link::-webkit-details-marker{display:none}
.auth-lang-link:hover{background:var(--surface-3)}
.auth-lang-menu .menu-list{min-width:180px}
.auth-side:has(.auth-lang-menu[open]){overflow:visible;z-index:2}
.auth-lang-menu[open]>summary>.ic{transform:rotate(180deg)}
.auth-lang-link:focus-visible{outline:2px solid var(--text-on-brand);outline-offset:2px}
.auth-pitch{display:none}
.auth-motif{position:absolute;right:-36px;top:-34px;width:132px;height:132px;color:var(--brand-field-2);pointer-events:none}
.auth-motif svg{display:block;width:100%;height:100%}
.auth{flex:1;display:flex;justify-content:center;padding:var(--space-8) var(--space-4) var(--space-12)}
.auth:focus{outline:none}
.auth-box{width:100%;max-width:400px;display:flex;flex-direction:column;gap:var(--space-6)}
@media (min-width:640px){
  .auth-side{min-height:64px;padding:0 var(--space-8)}
  .auth{align-items:center;padding:var(--space-12) var(--space-8) var(--space-12)}
}
@media (min-width:960px){
  .auth-shell{flex-direction:row}
  .auth-side{flex:0 0 clamp(400px,42vw,600px);position:sticky;top:0;height:100vh;height:100dvh;flex-direction:column;align-items:flex-start;padding:var(--space-8) var(--space-10) var(--space-12)}
  .auth-pitch{display:block;position:relative;z-index:1;margin-top:auto;max-width:440px}
  .auth-motif{width:min(520px,40vw);height:auto;aspect-ratio:1;top:12%;right:-22%}
  .auth{align-items:center;padding:var(--space-12) var(--space-10)}
  .auth-box{max-width:400px}
}
.auth-pitch-title{font-size:var(--text-3xl);font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:var(--tracking-display);text-wrap:balance}
@media (min-width:1200px){.auth-pitch-title{font-size:var(--text-display);letter-spacing:-0.025em}}
.auth-points{list-style:none;padding:0;margin-top:var(--space-6);display:flex;flex-direction:column;gap:var(--space-2)}
.auth-points li{display:flex;flex-wrap:wrap;column-gap:var(--space-2);font-size:var(--text-md);line-height:var(--leading-snug)}
.auth-points b{font-weight:var(--weight-semibold)}
.auth-points span{color:var(--text-on-brand-2)}
/* Sur l'aplat, plus de carte : le formulaire est posé directement sur le papier (la nuit le soir) */
.card.auth-card{padding:0;background:none;border:0;border-radius:0}
.auth-card h1{font-size:var(--text-2xl);margin-bottom:var(--space-2)}
@media (min-width:960px){.auth-card h1{font-size:var(--text-3xl)}}
.consent-who{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);margin:var(--space-5) 0}
.consent-who .app-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-md);background:var(--surface-2);font-weight:var(--weight-bold);color:var(--text)}
.consent-who .stack-sm{flex:1;gap:2px;min-width:0}
.consent-verified{display:flex;align-items:flex-start;gap:6px;font-size:var(--text-sm);color:var(--text-2)}
.consent-verified--ok{color:var(--success)}
.consent-verified .ic{margin-top:2px}
.consent-perms{margin-top:var(--space-5)}
.perm-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-3) 0 var(--space-4)}
.perm-list li{display:flex;gap:var(--space-3);font-size:var(--text-sm)}
.perm-list .ic{margin-top:2px}
.perm-list .yes{color:var(--success)}.perm-list .ic-no{color:var(--text-3)}
.consent-form{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border)}
.consent-form .banner{margin:0}
/* Aplat de l'autorisation : l'application et l'espace reliés par le symbole « Relais » */
.auth-relay{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6)}
.auth-relay-tile{display:grid;place-items:center;width:56px;height:56px;border-radius:var(--radius-xl);background:var(--text-on-brand);color:var(--brand-field);font-size:var(--text-xl);font-weight:var(--weight-bold)}
.auth-relay-tile .logo-mark{color:var(--brand-field)}
.auth-relay-line{flex:0 1 72px;height:0;border-top:2px dashed color-mix(in srgb,var(--text-on-brand) 55%,transparent)}
.auth-foot{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--text-2)}
.auth-box--wide{max-width:760px}
.auth-box--wide .page-head{margin-bottom:0}

/* Écrans de compte : pastille d'état, formulaires, liens de bas de carte */
/* Icône d'un écran d'état : seule, sans pastille (une pastille teintée est un tic de gabarit), dans la teinte de l'état */
.state-icon{display:block;width:32px;height:32px;flex:none;margin-bottom:var(--space-4);color:var(--text-2)}
.state-icon .ic{width:32px;height:32px}
.state-icon--warning{color:var(--warning)}
.state-icon--danger{color:var(--danger)}
.state-icon--success{color:var(--success)}
.auth-lead{color:var(--text-2)}
.auth-lead b{color:var(--text);font-weight:var(--weight-semibold)}
.break{overflow-wrap:anywhere}
.auth-msg{margin-top:var(--space-4)}.auth-msg .banner{margin-bottom:0}
.auth-form{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-5)}
.auth-actions{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-5)}
.auth-actions form{margin:0}
.auth-alt{display:flex;align-items:center;flex-wrap:wrap;column-gap:var(--space-1);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--text-2)}
.auth-note{margin-top:var(--space-4);font-size:var(--text-sm);color:var(--text-2)}
.auth-tips{list-style:none;padding:0;margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-2)}
.auth-tips li{display:flex;align-items:flex-start;gap:var(--space-2)}
.auth-tips .ic{color:var(--accent);margin-top:2px}
.label-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;column-gap:var(--space-2);margin:-12px 0 -6px}
.label-row .link{font-size:var(--text-sm)}
.choice-list{list-style:none;padding:0;margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}
.choice{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);text-decoration:none;
  transition:background var(--duration-fast),border-color var(--duration-fast)}
.choice:hover{background:var(--surface-2);border-color:var(--border-strong)}
.choice>span{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.choice b{font-size:var(--text-sm);font-weight:var(--weight-semibold)}
.choice small{font-size:var(--text-xs);color:var(--text-2)}
.choice>.ic{color:var(--text-3)}

/* Mon compte */
.card>p+.form-actions,.card>.banner+p{margin-top:var(--space-4)}
.account-id{display:flex;align-items:center;gap:var(--space-4)}
.account-initial{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--accent-soft);color:var(--accent-soft-text);font-size:var(--text-xl);font-weight:var(--weight-bold);flex:none}
.account-who{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}
.account-email{font-size:var(--text-lg);font-weight:var(--weight-semibold);overflow-wrap:anywhere;line-height:var(--leading-tight)}
.account-who .row{margin-top:var(--space-1)}
.form-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}
@media (max-width:639px){.form-actions .btn{width:100%}}
.device-list{list-style:none;padding:0}
.device{padding:var(--space-3) 0;border-top:1px solid var(--border)}
.device:first-child{border-top:0;padding-top:0}
.device-name{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);overflow-wrap:anywhere}
.device .meta-line{margin-top:2px;flex-wrap:wrap}
.device-foot{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border)}
@media (max-width:639px){.device-foot,.device-foot form,.device-foot .btn{width:100%}}
.meta-line--wrap{align-items:flex-start}.meta-line--wrap .ic{margin-top:2px}
.account-exit{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2)}
.account-exit form{margin:0}
.modal-form{margin-top:var(--space-4)}
.card--danger .form-actions{margin-top:var(--space-4)}

/* Réglages : nuancier */
/* Rembourrage = anneau de la pastille choisie (5 px, agrandie de 5 %) : l'anneau reste dans la colonne des champs */
.swatches{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:calc(var(--space-1) + 3px)}
.swatch{position:relative;display:inline-block;width:var(--touch);height:var(--touch)}
.swatch input{position:absolute;opacity:0;inset:0;cursor:pointer}
.swatch span{display:block;width:var(--touch);height:var(--touch);border-radius:50%;background:var(--c);box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--border);transition:box-shadow var(--duration-fast),transform var(--duration-fast) var(--ease)}
.swatch input:checked+span{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--c);transform:scale(1.05)}
.swatch input:focus-visible+span{outline:2px solid var(--focus);outline-offset:4px}

.only-desktop{display:none}
@media (min-width:960px){.only-desktop{display:block}.only-mobile{display:none}}

/* ---------------- Vague 4a : note, atelier d'accroches, pubs du planificateur, rapport ---------------- */
[hidden]{display:none!important}
.spacer{flex:1}
.btn--compact{padding:0 var(--space-3);gap:6px}
.btn.is-copied{border-color:var(--success);color:var(--success)}

/* Pastille de note : mini-jauge + chiffre (couleur doublée par le chiffre, jamais seule) */
.score-pill{--tone:var(--text-2);--tone-soft:var(--surface-3);display:inline-flex;align-items:center;gap:4px;height:18px;padding:0 6px 0 4px;border-radius:var(--radius-pill);background:var(--tone-soft);color:var(--tone);
  font-size:var(--text-xs);font-weight:var(--weight-bold);line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap;vertical-align:middle;flex:none}
.score-pill--good{--tone:var(--success);--tone-soft:var(--success-soft)}
.score-pill--mid{--tone:var(--warning);--tone-soft:var(--warning-soft)}
.score-pill--low,.score-pill--blocked{--tone:var(--danger);--tone-soft:var(--danger-soft)}
.score-ring{width:10px;height:10px;border-radius:50%;flex:none;background:conic-gradient(currentColor calc(var(--v) * 1%),color-mix(in srgb,currentColor 25%,transparent) 0); /* taste-skill-ignore : anneau de la note (jauge) */
  -webkit-mask:radial-gradient(circle,transparent 2px,currentColor 2.5px);mask:radial-gradient(circle,transparent 2px,currentColor 2.5px)} /* taste-skill-ignore : anneau de la note (jauge) */
.score-pill--lg{height:28px;padding:0 10px 0 8px;gap:6px;font-size:var(--text-md)}
.score-pill--lg .score-ring{width:14px;height:14px;-webkit-mask:radial-gradient(circle,transparent 3px,currentColor 3.5px);mask:radial-gradient(circle,transparent 3px,currentColor 3.5px)} /* taste-skill-ignore : anneau de la note (jauge) */
.score-max{font-size:var(--text-xs);font-weight:var(--weight-medium)}
.event .t{display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden}
.month-event .score-pill{height:16px;padding:0 5px 0 3px}

/* Carte « Note avant publication » */
.score-head{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4)}
.gauge{--tone:var(--text-3);position:relative;width:84px;height:84px;flex:none}
.gauge--good{--tone:var(--success)}.gauge--mid{--tone:var(--warning)}.gauge--low,.gauge--blocked{--tone:var(--danger)}
.gauge svg{display:block;width:100%;height:100%;transform:rotate(-90deg)}
.gauge circle{fill:none;stroke-width:8}
.gauge-track{stroke:var(--surface-3)}
.gauge-value{stroke:var(--tone);stroke-linecap:round;transition:stroke-dasharray var(--duration-slow) var(--ease)}
.gauge--blocked .gauge-value{display:none}
.gauge-num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-kpi);font-variant-numeric:tabular-nums;line-height:1}
.gauge-num small{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-2);letter-spacing:0}
.score-summary{min-width:0}
.score-verdict{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:var(--tracking-display);line-height:var(--leading-tight)}
.score-indicative{display:flex;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3);border-radius:var(--radius-md);background:var(--warning-soft);color:var(--text);font-size:var(--text-sm)}
.score-indicative .ic{color:var(--warning);margin-top:2px}
.score-card .banner{margin-bottom:var(--space-4)}
.score-sub{margin-bottom:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text)}
.criteria{list-style:none;padding:0}
.crit{padding:var(--space-3) 0;border-top:1px solid var(--border)}
.crit:first-child{border-top:0}
.crit-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}
.crit-title{display:flex;align-items:center;gap:6px;min-width:0;font-size:var(--text-sm);font-variant-numeric:tabular-nums}
.crit-title b{font-weight:var(--weight-semibold)}
.crit-title .ic{color:var(--success)}
.crit-bar{flex:none;width:72px;height:6px;border-radius:var(--radius-pill);background:var(--surface-3);overflow:hidden}
.crit-bar i{display:block;height:100%;border-radius:inherit;background:var(--chart)}
.crit--full .crit-bar i{background:var(--success)}.crit--low .crit-bar i{background:var(--warning)}
.crit-advice{margin-top:2px;font-size:var(--text-sm);color:var(--text-2)}
.score-note,.workshop-foot,.report-foot,.report-hint{display:flex;align-items:flex-start;gap:6px;font-size:var(--text-xs);color:var(--text-2)}
.score-note .ic,.workshop-foot .ic,.report-foot .ic,.report-hint .ic{margin-top:1px;flex:none}
.score-note{margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border)}

/* « Nouveau post » : la note à côté du formulaire sur grand écran */

/* Atelier d'accroches */
.workshop-intro{margin-bottom:var(--space-4);font-size:var(--text-sm);color:var(--text-2)}
.workshop-intro b{color:var(--text);font-weight:var(--weight-semibold)}
.variants{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}
/* v3 : chaque variante est un groupe « inset » du panneau (sans filet) ; la variante appliquée porte un liseré d'accent */
.variant{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--inset);transition:box-shadow var(--duration-fast)}
.variant--applied{box-shadow:inset 3px 0 0 var(--accent)}
.variant--blocked{background:var(--surface-2)}
.variant--blocked .variant-hook{color:var(--text-2)}
.variant-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}
.variant-head .badge{gap:2px}
.variant-num{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text)}
.variant-hook{font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:1.35;letter-spacing:-0.01em;overflow-wrap:anywhere}
.variant-hook::before{content:"« "}.variant-hook::after{content:" »"}
.variant-first{font-size:var(--text-sm);color:var(--text-2);overflow-wrap:anywhere}
.variant-slide{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-3);border:0;border-radius:var(--radius-md);background:var(--surface)}
.variant--blocked .variant-slide{background:var(--surface)}
.variant-slide-body{flex:1 1 180px;min-width:0}
.variant-label{display:block;margin-bottom:2px;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-2)}
.variant-slide-text{font-weight:var(--weight-semibold);overflow-wrap:anywhere}
.variant-alt{font-size:var(--text-sm);color:var(--text-2);overflow-wrap:anywhere}
.variant .banner{margin-bottom:0}
.variant-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.variant-actions form{margin:0}
@media (max-width:639px){.variant-actions,.variant-actions form,.variant-actions .btn,.workshop-revert .btn{width:100%}}
.workshop-revert{margin-top:var(--space-4)}
.workshop-revert-hint{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--text-2)}
.workshop-foot{margin-top:var(--space-4)}

/* Pubs : magenta + icône + « Pub » (jamais la couleur seule), non déplaçables. Active : aplat ; brouillon ou en pause : hachures et contour tireté.
   Une pub sur plusieurs jours = UNE barre continue (.ad-band, grille d'autant de colonnes que de jours). */
.ad-chip{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:6px;row-gap:1px;min-height:var(--touch);min-width:0;padding:var(--space-1) var(--space-3) var(--space-1) var(--space-3);
  border:1px solid color-mix(in srgb,var(--ad) 30%,transparent);border-radius:var(--radius-sm);color:var(--text);text-decoration:none;font-size:var(--text-xs);line-height:1.25;overflow:hidden;
  background:var(--ad-soft);box-shadow:inset 3px 0 0 var(--ad);transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}
.ad-chip:hover{border-color:var(--ad)}
.ad-chip:hover .ad-name{text-decoration:underline}
.ad-chip[data-state]{border-style:dashed;background:repeating-linear-gradient(135deg,transparent 0 7px,color-mix(in srgb,var(--ad) 8%,transparent) 7px 12px),var(--ad-soft)} /* taste-skill-ignore : hachures des pubs non actives (jamais la couleur seule) */
.ad-tag{display:inline-flex;align-items:center;gap:3px;color:var(--ad);font-weight:var(--weight-bold)}
.ad-tag b{font-weight:inherit}
.legend-item{display:inline-flex;align-items:center;gap:6px}
.legend-item .ic{color:var(--text-2)}
.ad-name{font-weight:var(--weight-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-meta{grid-column:1/-1;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-list{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}
.ad-key{display:inline-grid;place-items:center;width:16px;height:12px;border-radius:3px;background:var(--ad-soft);color:var(--ad);box-shadow:inset 2px 0 0 var(--ad)}
/* Barre continue : une ligne, étiquette, nom, état, budget et plage ; bords droits du côté où la pub continue hors de la période */
.ad-band{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));grid-auto-rows:minmax(28px,auto);gap:3px 0;min-width:0}
.ad-band .ad-chip{container-type:inline-size;display:flex;align-items:center;gap:var(--space-2);min-height:28px;margin:0 3px;padding:2px var(--space-2) 2px var(--space-3);white-space:nowrap}
.ad-band .ad-name{flex:none;max-width:60%}
.ad-band .ad-meta{flex:1;min-width:0}
.ad-band .ad-chip[data-cont~=l]{margin-left:0;border-left-width:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:none}
.ad-band .ad-chip[data-cont~=r]{margin-right:0;border-right-width:0;border-top-right-radius:0;border-bottom-right-radius:0}
.cal-ads{display:grid;grid-template-columns:56px minmax(0,1fr);border-bottom:1px solid var(--border);background:var(--surface);padding:var(--space-1) 0}
.cal-ads-label{display:flex;align-items:center;justify-content:center;gap:2px;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--ad)}
.month-ads{grid-auto-rows:24px;row-gap:2px}
.month-ads .ad-chip{min-height:24px;padding:1px var(--space-2);font-size:var(--text-2xs)}
.month-ads .ad-range{display:none}
.month-ads-mark{position:absolute;left:6px;right:6px;bottom:8px;display:block;height:4px;border-radius:var(--radius-pill);background:var(--ad);pointer-events:none}
.month-ads-mark[data-cont~=l]{left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}
.month-ads-mark[data-cont~=r]{right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}
@media (min-width:960px){.month-ads-mark{display:none}}
/* Interrupteur « Afficher les pubs » (préférence du navigateur) */
.hide-ads [data-ads],.hide-ads [data-ad]{display:none!important}
.switch{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--control);padding:0 var(--space-3) 0 var(--space-2);border:0;border-radius:var(--radius-pill);background:var(--surface-2);color:var(--text);
  font-weight:var(--weight-semibold);font-size:var(--text-sm);cursor:pointer;transition:background var(--duration-fast)}
.switch:hover{background:var(--surface-3)}
.switch-track{position:relative;width:34px;height:20px;border-radius:var(--radius-pill);background:var(--border-input);transition:background var(--duration) var(--ease);flex:none}
.switch-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-1);transition:transform var(--duration) var(--ease)}
.switch[aria-checked=true] .switch-track{background:var(--accent)}
.switch[aria-checked=true] .switch-thumb{transform:translateX(14px)}
/* Interrupteur sur une vraie case à cocher (marche sans JavaScript) : état et focus portés par la case */
.switch--check{cursor:pointer;user-select:none}
.switch--check:has(input:checked) .switch-track{background:var(--accent)}
.switch--check:has(input:checked) .switch-thumb{transform:translateX(14px)}
.switch--check:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}
/* Planificateur : « Toute la journée » déplie la grille de 0 h à 24 h (vue semaine, ordinateur seulement) */
.cal-all-hours{display:none}
@media (min-width:960px){.cal-all-hours{display:inline-flex}}
body:has([data-all-hours]:checked) .cal-window{height:calc(var(--row) * 24)}
body:has([data-all-hours]:checked) .cal-body{transform:none}
body:has([data-all-hours]:checked) .legend-folded{display:none}

/* Statistiques → Rapport du mois */
.stats-actions{justify-content:flex-start}
.report-back{margin-bottom:var(--space-3)}
.report-head h1{overflow-wrap:anywhere}
.report-nav{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-5)}
.report-month{order:3;flex:1 1 100%;display:flex;gap:var(--space-2);min-width:0;margin:0}
.report-month .input{flex:1;min-width:0}
.report-next{margin-left:auto}
@media (min-width:640px){.report-month{order:0;flex:0 1 300px}.report-next{margin-left:0}}
.report-kpis .kpi-sub--wrap{flex-wrap:wrap;column-gap:var(--space-3);row-gap:var(--space-1)}
.report-kpis .kpi-sub span{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px}
.badge{white-space:nowrap}
.report-grid{display:grid;gap:var(--space-4);grid-template-columns:minmax(0,1fr);margin-top:var(--space-1)}
.report-card .card-head{flex-wrap:wrap}
.report-cols{display:grid;gap:var(--space-5);grid-template-columns:minmax(0,1fr)}
@media (min-width:760px){.report-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-8)}}
.report-sub{display:flex;align-items:center;gap:6px;margin-bottom:var(--space-2);font-size:var(--text-sm);color:var(--text-2)}
.report-sub .ic{color:var(--accent)}
.report-sub--spaced{margin-top:var(--space-5)}
.report-hint{margin-top:var(--space-3)}
.rank{list-style:none;padding:0}
.rank-item{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--border)}
.rank-item:first-child{border-top:0;padding-top:var(--space-1)}
.rank-num{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--surface-2);color:var(--text-2);font-size:var(--text-sm);font-weight:var(--weight-bold)}
.rank--top .rank-num{background:var(--accent-soft);color:var(--accent-soft-text)}
.rank-body{min-width:0}
.rank-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.rank-title .link{color:var(--text)}
.rank-meta{font-size:var(--text-xs);color:var(--text-2);font-variant-numeric:tabular-nums}
.rank-value{text-align:right;line-height:1.2}
.rank-value b{display:block;font-size:var(--text-lg);font-variant-numeric:tabular-nums;white-space:nowrap}
.rank-value span{font-size:var(--text-xs);color:var(--text-2)}
.gbars{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}
.gbar-head{display:flex;justify-content:space-between;gap:var(--space-2);font-size:var(--text-sm)}
.gbar-head b{font-variant-numeric:tabular-nums}
.gbar{display:block;height:8px;margin:6px 0 4px;border-radius:var(--radius-pill);background:var(--surface-3);overflow:hidden}
.gbar i{display:block;height:100%;min-width:4px;border-radius:inherit;background:var(--chart)}
.gbar-meta{font-size:var(--text-xs);color:var(--text-2)}
.slot-chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}
.slot-chips li{display:inline-flex;align-items:center;gap:6px;padding:6px var(--space-3);border-radius:var(--radius-pill);background:var(--surface-2);font-size:var(--text-sm)}
.slot-chips li:first-child{background:var(--accent-soft);color:var(--accent-soft-text)}
.slot-chips .ic{color:var(--accent)}
.slot-chips li:first-child .ic{color:inherit}
.report-analysis{max-width:72ch}
.report-analysis h3{margin:var(--space-5) 0 var(--space-2);font-size:var(--text-md)}
.report-analysis>:first-child{margin-top:0}
.report-analysis p{margin-bottom:var(--space-2)}
.report-analysis ul{margin:0 0 var(--space-2);padding-left:1.25em}
.report-analysis li{margin:var(--space-1) 0}
.report-analysis li::marker{color:var(--accent)}
.report-foot{margin-top:var(--space-4)}
.print-only{display:none}


/* Point de statut (vue Mois) : teinte du statut, toujours doublée du mot (infobulle et lecteur d'écran) */
.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--status-queued)}
.status-dot--queued{background:var(--status-queued)}.status-dot--preparing{background:var(--status-preparing)}.status-dot--ready{background:var(--status-ready)}.status-dot--publishing{background:var(--status-ready)}.status-dot--published{background:var(--status-published)}.status-dot--failed{background:var(--status-failed)}.status-dot--cancelled{background:var(--status-cancelled)}.status-dot--draft{background:var(--status-draft)}
@container (max-width:250px){.ad-band .ad-meta{display:none}}
/* Fenêtre de confirmation sur mobile : boutons pleine largeur */
@media (max-width:639px){.modal-actions>.btn,.modal-actions>form,.modal-actions>form>.btn{width:100%}}
/* Recommandations : icône et texte du bouton alignés à gauche */
.checklist .btn{justify-content:flex-start}.checklist .btn span{flex:none;color:inherit}
/* Tableau de bord : chaque carte garde sa hauteur naturelle (plus de carte étirée avec du vide dessous) */
/* ---------------- Posts (lot 3) ---------------- */
/* En-tête commun : lien de retour, titre, constat sous le titre */
.back{margin-bottom:var(--space-1)}
.page-lede{margin-top:var(--space-1);font-size:var(--text-md);color:var(--text-2);max-width:68ch}
.page-lede b{color:var(--text);font-weight:var(--weight-semibold)}
.form-actions-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}
@media (max-width:639px){.form-actions-row .btn--primary{flex:1 1 100%}}
.card>.hint{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--text-2);overflow-wrap:anywhere}

/* Liste des posts (v3) : une seule rangée de filtres, puis un panneau ; chaque jour = titre de groupe en texte secondaire
   et un groupe « inset » (comme « Ensuite » de l'Accueil), filets entre les lignes. */
/* Filtres : menus déroulants (liens, sans JavaScript) quand la place manque ; pistes segmentées sinon
   (statuts dès 768 px, réseaux dès 1 024 px). Une seule version de chaque filtre est visible. */
.pl-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);margin:0 0 var(--space-4);scroll-margin-top:calc(var(--topbar-h) + var(--touch) + var(--space-4))}
.pl-status-tabs,.pl-nets-filter{display:none}
.pl-menu>summary,.pl-status-menu>summary,.pl-nets-menu>summary{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch);padding:0 var(--space-3) 0 var(--space-4);border-radius:var(--radius-pill);background:var(--surface-2);color:var(--text-2);font-size:var(--text-sm);
  transition:background var(--duration-fast) var(--ease)}
.pl-status-menu>summary b,.pl-nets-menu>summary b{color:var(--text);font-weight:var(--weight-semibold)}
.pl-status-menu>summary .ic,.pl-nets-menu>summary .ic{color:var(--text-2);transition:transform var(--duration-fast) var(--ease)}
.pl-status-menu[open]>summary .ic,.pl-nets-menu[open]>summary .ic{transform:rotate(180deg)}
.pl-status-menu>summary:hover,.pl-nets-menu>summary:hover{background:var(--surface-3)}
.pl-status-menu .menu-list,.pl-nets-menu .menu-list{min-width:200px}
@media (min-width:768px){.pl-filters:not(:has(.pl-nets-menu)) .pl-status-menu{display:none}.pl-filters:not(:has(.pl-nets-menu)) .pl-status-tabs{display:block}.pl-filters{margin-bottom:var(--space-5)}}
@media (min-width:1024px){.pl-status-menu,.pl-nets-menu{display:none}.pl-status-tabs{display:block}.pl-nets-filter{display:block;margin-left:auto}.pl-filters{margin-bottom:var(--space-6)}}
.pl{padding:var(--space-4);border:1px solid transparent;border-radius:var(--radius-xl);background:var(--surface)}
:root[data-theme=dark] .pl{border-color:var(--border)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pl{border-color:var(--border)}}
@media (min-width:768px){.pl{padding:var(--space-5) var(--space-6) var(--space-6);border-radius:var(--radius-2xl)}}
.pl-day+.pl-day{margin-top:var(--space-5)}
.pl-date{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);padding:0 var(--space-1) var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-2)}
.pl-date>span:first-child{color:var(--text)}
.pl-date-long{font-weight:var(--weight-regular);color:var(--text-2)}
.pl-count{flex:none;font-size:var(--text-sm);font-weight:var(--weight-regular);color:var(--text-2)}
.pl-list{list-style:none;padding:0;margin:0;border-radius:var(--radius-lg);background:var(--inset);overflow:hidden}
.pl-list>li+li{border-top:1px solid var(--border)}
/* Téléphone : vignette | heure et statut, puis titre et compte. Ordinateur : heure | vignette | titre | statut */
.pl-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"th time st" "th main main";column-gap:var(--space-3);row-gap:2px;align-items:center;
  padding:var(--space-3) var(--space-4);color:var(--text);text-decoration:none;transition:background var(--duration-fast) var(--ease)}
.pl-row:hover{background:color-mix(in srgb,var(--surface-2) 55%,transparent)}
.pl-row:focus-visible{outline-offset:-2px}
.pl-row .thumb{grid-area:th;align-self:start}
.pl-time{grid-area:time;font-size:var(--text-sm);font-weight:var(--weight-semibold)}
.pl-status{grid-area:st;justify-self:end;text-align:right}
.pl-main{grid-area:main;display:flex;flex-direction:column;gap:2px;min-width:0}
.pl-title{font-weight:var(--weight-semibold);line-height:var(--leading-snug);overflow-wrap:anywhere} /* titre déjà raccourci à 110 caractères : jamais coupé au téléphone */
.pl-row:hover .pl-title{text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:3px}
.pl-meta{display:flex;align-items:center;gap:6px;min-width:0;font-size:var(--text-xs);color:var(--text-2)}
/* Téléphone : le compte et le format passent à la ligne plutôt que d'être coupés. */
.pl-meta .truncate{white-space:normal;overflow:visible;overflow-wrap:anywhere}
.pl-meta .acc-dot{align-self:flex-start;margin-top:var(--space-1)}
.pl-error{display:flex;align-items:flex-start;gap:6px;margin-top:var(--space-1);font-size:var(--text-xs);color:var(--text-2);line-height:var(--leading-snug)}
.pl-error>span{min-width:0}
.pl-status{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.pl-rel{font-size:var(--text-xs);color:var(--text-2);white-space:nowrap}
.pl-rel:empty{display:none}
.pl-error .ic{flex:none;margin-top:1px;color:var(--danger)}
.pl-error b{color:var(--text);font-weight:var(--weight-semibold)}
.pl-error+.pl-error{margin-top:0}
.pl-row--cancelled .pl-title{color:var(--text-2);font-weight:var(--weight-medium)}
@media (min-width:960px){
  .pl-row{grid-template-columns:56px 44px minmax(0,1fr) auto;grid-template-areas:"time th main st";column-gap:var(--space-4);padding:var(--space-3) var(--space-4);min-height:76px}
  .pl-time{align-self:center;font-size:var(--text-md)}
  .pl-row .thumb{align-self:center}
  .pl-title{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
}
.pager{margin-top:var(--space-5)}

/* Spec 018 (lot 10b) : réseaux d'un post. Pastille = icône du réseau (jamais son logo), statut toujours en mot. */
.net-mark{display:inline-grid;place-items:center;flex:none;color:var(--text-2)}
/* En attente : cercle pointillé (déborde de 2,5 px de la boîte) et 2 px d'air de chaque côté au moins */
.net-mark--pending{border-radius:50%;outline:1.5px dashed var(--status-preparing);outline-offset:1px;color:var(--status-preparing);margin-inline:4px}
.nets{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.net{display:inline-flex;align-items:center;gap:6px}
.pl-row--nets .pl-status{gap:4px}
.post-row--nets .nets{grid-area:s}
.dw-nets,.ev-nets{display:inline-flex;align-items:center;gap:2px;flex:none}
.dw-nets{gap:var(--space-1);margin-top:2px}
.dw-nets .net-mark,.ev-nets .net-mark{color:var(--text-2)}
.ai-side .nets{align-items:flex-end}
/* Filtre par réseau : piste à sa largeur (dès 1 024 px dans Posts ; seule rangée de filtres du Journal, pleine largeur sous 640 px) */
@media (min-width:640px){.pl-nets-filter .tabs--full{width:max-content}.pl-nets-filter .tabs--full>*{flex:none}}
.jr-filters .pl-nets-filter{display:block;margin-bottom:var(--space-4)}
@media (min-width:960px){.jr-filters .pl-nets-filter{margin-bottom:var(--space-6)}}
/* Ligne d'un post multi-réseaux, téléphone : vignette | heure, puis titre, puis l'état de chaque réseau côte à côte */
.pl-row--nets{grid-template-areas:"th time time" "th main main" "th st st"}
.pl-row--nets .pl-status{justify-self:start;flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:var(--space-3);row-gap:4px;margin-top:var(--space-1);text-align:left}
.pl-row--nets .nets{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px var(--space-3)}
@media (min-width:960px){
  .pl-row--nets{grid-template-areas:"time th main st"}
  .pl-row--nets .pl-status{justify-self:end;flex-direction:column;align-items:flex-end;margin-top:0;text-align:right}
  .pl-row--nets .nets{flex-direction:column;align-items:flex-end}
}
/* Journal : heure | pastille du réseau | ce qui s'est passé et le post | statut en mot */
.jr-row{display:grid;grid-template-columns:auto auto minmax(0,1fr);grid-template-areas:"time net ." "main main main";column-gap:var(--space-2);row-gap:2px;align-items:center;min-height:var(--touch);
  padding:var(--space-3) var(--space-4);color:var(--text);text-decoration:none;transition:background var(--duration-fast) var(--ease)}
.jr-row:hover{background:color-mix(in srgb,var(--surface-2) 55%,transparent)}
.jr-row:focus-visible{outline-offset:-2px}
.jr-time{grid-area:time;font-size:var(--text-sm);font-weight:var(--weight-semibold)}
.jr-row .net-mark{grid-area:net}
.jr-main{grid-area:main;display:flex;flex-direction:column;gap:2px;min-width:0}
.jr-label{font-weight:var(--weight-semibold);line-height:var(--leading-snug)}
.jr-label .status-dot{margin-right:var(--space-2);vertical-align:middle}
.jr-title{font-size:var(--text-sm);color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.jr-row--failed .jr-label{color:var(--status-failed)}
@media (min-width:960px){
  .jr-row{grid-template-columns:56px 24px minmax(0,1fr);grid-template-areas:"time net main";column-gap:var(--space-4);padding:var(--space-3) var(--space-4)}
  .jr-title{-webkit-line-clamp:1}
}
/* Créer : cases des réseaux de la marque ; les options TikTok n'apparaissent que si TikTok est coché (CSS seul) */
.net-choice{border:0;padding:0;margin:0 0 var(--space-2)}
/* Instagram (ligne fixe) et TikTok (case) : même départ du texte, icône de 16 px centrée sur la ligne du nom, 8 px d'écart */
.net-check>span,.check.net-check:not(.chx-check)>input[type=checkbox]+span{display:flex;flex-wrap:wrap;align-items:center;column-gap:var(--space-2);row-gap:2px}
.net-check .net-mark,.net-fixed .net-mark{width:16px;height:16px;color:var(--text)}
/* La note TikTok est dessinée un peu haut dans sa boîte (y de 3 à 19,5 sur 24) : recentrée */
.net-mark--tiktok>.ic{transform:translateY(.75px)}
.net-check .muted{font-weight:var(--weight-regular);font-size:var(--text-sm)}
.net-fixed{display:flex;align-items:flex-start;gap:var(--space-3);min-height:var(--touch);margin:0;padding:var(--space-2) 0;font-weight:var(--weight-medium)}
.net-fixed-mark{flex:none;width:20px;height:20px;margin-top:2px;display:inline-flex;align-items:center;justify-content:center;color:var(--success)}
.net-fixed>span{display:flex;flex-wrap:wrap;align-items:center;column-gap:var(--space-2);row-gap:2px}
.net-fixed .muted{font-weight:var(--weight-regular);font-size:var(--text-sm)}
.compose-form:has(#tt_on:not(:checked)) .tt-options,.compose-form:has(#tt_on:not(:checked)) [data-tt-only]{display:none}
.compose-nets .net-choice:last-child{margin-bottom:0}
/* Spec 026 : Créer → « Publier sur TikTok » : quand publier (cartes radio), « Adapter pour TikTok » (repli), liste des médias */
.tt-when{margin-bottom:var(--space-2)}
.scen.tt-ask{margin-bottom:var(--space-5)}
/* Cartes de choix (Créer, Marque → Canaux) : en liste sous 700 px de colonne, côte à côte au-delà ; « Réglage de la marque » sur sa ligne */
.tt-plan,.cs-card{container-type:inline-size}
.tt-when .scen-grid,.cs-when .scen-grid{grid-template-columns:minmax(0,1fr)}
@container (min-width:820px){.tt-when .scen-grid,.cs-when .scen-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}
.scen-brand{display:block;margin-top:2px}
.tt-when legend{font-size:var(--text-md)}
.tt-when-hint{margin:0 0 var(--space-4)}
.tt-adapt{border-radius:var(--radius-lg);background:var(--inset)}
.tt-adapt>summary{list-style:none;display:flex;flex-wrap:wrap;align-items:center;column-gap:var(--space-3);row-gap:2px;min-height:var(--touch);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);cursor:pointer}
.tt-adapt>summary::-webkit-details-marker{display:none}
.tt-adapt>summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.tt-adapt>summary>.ic:last-child{margin-left:auto;color:var(--text-2);transition:transform var(--duration-fast) var(--ease)}
.tt-adapt[open]>summary>.ic:last-child{transform:rotate(180deg)}
.tt-adapt-title{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:var(--weight-semibold)}
.tt-adapt-state{font-size:var(--text-sm);color:var(--text-2);flex-basis:100%;order:3}
@media (min-width:600px){.tt-adapt-state{flex-basis:auto;order:0}}
.tt-adapt-body{display:grid;gap:var(--space-4);padding:0 var(--space-4) var(--space-4)}
.tt-adapt-body .textarea,.tt-adapt-body .input{background-color:var(--surface)}
.tt-pick-list{list-style:none;margin:0 0 var(--space-2);padding:0;display:grid;border-radius:var(--radius-md);background:var(--surface)}
.tt-pick-row{display:grid;grid-template-columns:20px auto minmax(0,1fr) auto auto;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2) var(--space-1) var(--space-3)}
.tt-pick-row+.tt-pick-row{border-top:1px solid var(--border)}
.tt-pick-row--off .thumb{opacity:.45}
.tt-pick-row--off .tt-pick-keep span{color:var(--text-2)}
.tt-pick-rank{font-size:var(--text-sm);font-weight:var(--weight-semibold);text-align:center}
.tt-pick-row .thumb{font-size:var(--text-2xs);color:var(--text-2)}
.tt-pick-keep{min-width:0}
.tt-pick-keep span{white-space:nowrap}
.tt-when-hint .link--touch{display:flex;width:max-content;max-width:100%}
.tt-pick-move{width:var(--touch);height:var(--touch);min-width:var(--touch);padding:0;justify-content:center;font-size:var(--text-lg)}
.tt-pick-move:disabled{color:var(--text-3);background:transparent;cursor:default}
/* Fiche du post → « Réseaux » : un réseau par ligne (état, départ, attente, ce qui part vraiment) */
.post-facts .nets{flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}
.nt-list{list-style:none;margin:0;padding:0;display:grid}
.nt-row{display:grid;gap:var(--space-2);padding:var(--space-4) 0;border-top:1px solid var(--border);min-width:0}
.nt-row:first-child{border-top:0;padding-top:0}
.nt-row:last-child{padding-bottom:0}
.nt-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}
.nt-head .net-mark{color:var(--text)}
.nt-name{margin-right:auto;font-weight:var(--weight-semibold)}
.nt-when{margin:0;color:var(--text-2)}
.nt-wait{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--inset)}
.nt-wait>.ic{flex:none;margin-top:3px;color:var(--status-preparing)}
.nt-wait>div{display:grid;gap:var(--space-2);min-width:0}
.nt-wait p{margin:0}
.nt-wait--decide{border-left:3px solid var(--warning)}
.nt-acts{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-2);margin-top:var(--space-1)}
.nt-acts .btn{white-space:normal;text-align:left}
.nt-no>summary{list-style:none}
.nt-no>summary::-webkit-details-marker{display:none}
.nt-no[open]{flex-basis:100%}
.nt-no-form{display:grid;justify-items:start;gap:var(--space-3);margin-top:var(--space-3);max-width:420px}
.nt-no-form .field{width:100%}
.nt-no-form .input{background-color:var(--surface)}
.nt-lock{display:flex;align-items:center;gap:6px}
.nt-variant{display:grid;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--inset);min-width:0}
.nt-v-line{display:flex;flex-wrap:wrap;gap:0 var(--space-2);margin:0;font-size:var(--text-sm)}
.nt-v-line span{color:var(--text-2)}
.nt-caption{margin:0;padding-left:var(--space-3);border-left:2px solid var(--border-strong);font-size:var(--text-sm);white-space:pre-line;overflow-wrap:anywhere}
.nt-media{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-3)}
.nt-media li{display:grid;justify-items:center;gap:4px}
.nt-media-n{font-size:var(--text-xs);color:var(--text-2)}
.nt-retry{margin-top:var(--space-4)}
/* Marque → Canaux → « Publication par réseau » : une carte par canal (état en une phrase, réglages, Enregistrer) */
.cs-card{display:grid;gap:var(--space-5);min-width:0}
.cs-card+.cs-card{margin-top:var(--space-4)}
.cs-head{display:grid;gap:var(--space-1)}
.cs-name{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:var(--text-md)}
.cs-name .muted{font-size:var(--text-sm)}
.cs-now{margin:0;color:var(--text-2)}
.cs-form{display:grid;gap:var(--space-5);min-width:0;margin:0;padding:0;border:0}
.cs-block{display:grid;gap:var(--space-2);min-width:0}
.cs-block .seg{width:100%}
.cs-block .seg-opt{flex:1}
.cs-block .seg-opt span{width:100%;padding:0 var(--space-2)}
@media (min-width:480px){.cs-block .seg{width:max-content}.cs-block .seg-opt{flex:none}.cs-block .seg-opt span{padding:0 var(--space-4)}}
.cs-effects{margin:0;font-size:var(--text-sm);color:var(--text-2);min-height:1.5em}
.cs-effect{display:none}
.cs-publish:has(.seg-opt--off input:checked) .cs-effect--off,.cs-publish:has(.seg-opt--propose input:checked) .cs-effect--propose,.cs-publish:has(.seg-opt--auto input:checked) .cs-effect--auto{display:inline}
.cs-when legend{font-size:var(--text-sm)}
.cs-delays{display:flex;flex-wrap:wrap;gap:var(--space-4)}
.cs-delays>.field{flex:1 1 200px;max-width:300px}
.cs-card:has(.cs-when-same_time input:checked) .cs-delay,.cs-card:has(.cs-when-delayed input:checked) .cs-offset,.cs-card:has(.cs-when-conditional input:checked) .cs-offset{display:none}
.cs-card:not(:has(.cs-when-conditional input:checked)) .cs-cond{display:none}
.cs-cond{display:grid;gap:var(--space-3);min-width:0;margin:0;padding:var(--space-4);border:0;border-radius:var(--radius-lg);background:var(--inset)}
.cs-cond>legend{float:left;width:100%;padding:0;margin-bottom:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-semibold)}
.cs-cond-row{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.cs-cond .select,.cs-cond .input{background-color:var(--surface)}
.cs-cond .hint{margin:0}
.cs-false{max-width:320px}
.cs-tags{max-width:260px}
.cs-all{display:block;min-width:0;margin:0;padding:0;border:0}
.cs-save{display:flex;justify-content:flex-end;margin-top:var(--space-4)}
/* Lecture seule : phrase cadenas en tête du panneau, à la taille du texte ; option choisie en couleur neutre (grisée) */
.ro-note.cs-ro{margin:0 0 var(--space-4);font-size:var(--text-md);color:var(--text)}
.ro-note.cs-ro>.ic{color:var(--text-2)}
.cs-all:disabled .scen-opt input:checked+.scen-body{border-color:var(--border-strong);box-shadow:none;background:var(--inset)}
.cs-all:disabled .scen-opt input:checked+.scen-body::before{border-color:var(--text-3)}
.cs-all:disabled .scen-opt:hover .scen-body{border-color:transparent}
.cs-all:disabled .scen-opt,.cs-all:disabled .scen-opt input{cursor:default}
/* Condition : une phrase continue « Si [les enregistrements] atteignent [au moins] [1,5] [fois la médiane] » */
.cs-sentence{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0}
.cs-sentence .select{width:auto;max-width:100%;flex:0 1 auto}
.cs-sentence .cs-value{width:4.5rem;flex:none}
/* « atteignent au moins » et « 1,5 fois la médiane » restent chacun d'un seul tenant quand la phrase passe à la ligne */
.cs-group{display:inline-flex;align-items:center;gap:var(--space-2);max-width:100%}
.cs-word{white-space:nowrap}
.cs-verb--pl{display:none}
.cs-cond:has(.cs-metric option[data-plural="1"]:checked) .cs-verb--pl{display:inline}
.cs-cond:has(.cs-metric option[data-plural="1"]:checked) .cs-verb--sg{display:none}
/* Statistiques d'une marque : vue d'ensemble (3 chiffres qui s'additionnent), puis une section par réseau */
.stats-overview{margin-bottom:var(--space-8)}
.section-head{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3)}
.section-head h2{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:var(--tracking-title);line-height:1.2}
.section-head p{max-width:72ch}
.kpis--3>.kpi:last-child{grid-column:1 / -1;border-left:0}
.kpis--3>.kpi:nth-child(3){border-top:1px solid var(--border)}
@media (min-width:960px){.kpis--3{grid-template-columns:repeat(3,1fr)}.kpis--3>.kpi:last-child{grid-column:auto;border-left:1px solid var(--border)}.kpis--3>.kpi:nth-child(3){border-top:0}}
/* v3 : sections séparées par l'espace et un titre de section en Inter Display (plus de trait Encre au-dessus) */
.net-section+.net-section{margin-top:var(--space-12)}
.stats-overview+.net-section{margin-top:var(--space-12)}
.net-section-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-1) var(--space-3);margin-bottom:var(--space-4)}
.net-section-head h2{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:var(--tracking-title);line-height:1.2}
.net-section-head .net-mark{color:var(--text)}
.net-handle{font-size:var(--text-sm);color:var(--text-2);overflow-wrap:anywhere}

/* Fiche d'un post : titre et faits, actions à droite ; aperçu à droite sur ordinateur, en tête sur téléphone */
.post-head{align-items:flex-start}
.post-head-text{min-width:0;max-width:72ch}
.post-facts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);margin-top:var(--space-2);font-size:var(--text-sm);color:var(--text-2)}
.post-facts .acc-dot{margin-right:2px}
.post-alert-body{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}
.post-alert-body form{margin:var(--space-1) 0 0}
.post-layout{display:grid;gap:var(--space-4);grid-template-columns:minmax(0,1fr)}
.post-main,.post-aside{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}
/* Téléphone et tablette : aperçu, puis le formulaire, puis la note (la colonne de droite se défait) */
@media (max-width:1099px){.post-aside{display:contents}.post-aside>.preview-card{order:1}.post-main{order:2}.post-aside>.score-card{order:3}}
/* Spec 026 : une publication attend une décision → « Réseaux » d'abord, à toutes les tailles (colonne principale sur ordinateur) */
.post-decide{min-width:0}
.preview-card .ig{max-width:400px;margin:0 auto}
@media (min-width:1100px){
  .post-layout{grid-template-columns:minmax(0,1fr) 376px;grid-template-areas:"main aside";column-gap:var(--space-6);align-items:start}
  .post-main{grid-area:main}
  .post-aside{grid-area:aside}
  .post-layout--decide{grid-template-areas:"decide aside" "main aside";grid-template-rows:auto 1fr}
  .post-decide{grid-area:decide}
  .post-head{align-items:flex-end}
}
.media-list{display:grid;gap:var(--space-3)}
.media-item{display:grid;grid-template-columns:60px 1fr;gap:var(--space-3);align-items:start}
.media-item .thumb{width:60px;height:75px}

/* Nouveau post : formulaire à gauche ; aperçu en direct, puis note, à droite (ordinateur). Téléphone : aperçu replié en tête */
.compose{display:grid;gap:var(--space-4);grid-template-columns:minmax(0,1fr)}
.compose-form,.compose-aside,.compose-score{min-width:0}
@media (min-width:1100px){
  .compose{grid-template-columns:minmax(0,1fr) 376px;grid-template-rows:auto 1fr;column-gap:var(--space-6);align-items:start}
  .compose-form{grid-column:1;grid-row:1}
  .compose-aside{grid-column:2;grid-row:1}
  .compose{grid-template-rows:auto auto auto}
  .compose-aside{position:sticky;top:var(--space-6)}
  .compose-actions{grid-column:1;grid-row:2}
  /* Note du brouillon sous le formulaire et l'aperçu, sur toute la largeur, critères sur 2 colonnes */
  .compose-score{grid-column:1 / -1;grid-row:3}
  .compose-score .criteria{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:var(--space-8)}
  .compose-score .crit:nth-child(2){border-top:0}
  .compose-score .score-head,.compose-score .banner{max-width:760px}
}
/* Sur ordinateur, l'aperçu est ouvert même sans JavaScript (contenu du <details> rendu visible par la feuille de style) */
@media (min-width:1100px){
  .preview-fold:not([open])::details-content{content-visibility:visible;display:block}
  .preview-fold:not([open])>summary{border-radius:var(--radius-lg) var(--radius-lg) 0 0}
  .preview-fold:not([open])>summary>.ic{transform:rotate(180deg)}
}
.post-wide{margin-top:var(--space-4)}
.post-alert-body p{overflow-wrap:anywhere}
/* Spec 025 : bandeau « Contrôle de la veille » de la fiche du post (notes du contrôle, puis l'action utile) */
.check-notes{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none;overflow-wrap:anywhere}
.check-note{display:flex;align-items:flex-start;gap:var(--space-2)}
.check-note>.ic{flex:none;margin-top:3px}
.check-note--fail>.ic,.check-note--fail b{color:var(--danger)}
.check-note--warn>.ic,.check-note--warn b{color:var(--warning)}
.check-note b{font-weight:var(--weight-semibold)}
.check-acts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);margin-top:var(--space-1)}
.check-ask{display:inline-flex;align-items:flex-start;gap:var(--space-2)}
.check-ask>.ic{flex:none;margin-top:2px}
.media-pair{display:grid;gap:var(--space-4);grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.media-pair{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}}
.media-pair .textarea{min-height:136px;font-size:var(--text-sm);line-height:1.6}
.uploader{margin-bottom:var(--space-4)}
.preview-fold>summary{list-style:none;display:flex;align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;
  transition:border-color var(--duration-fast) var(--ease)}
.preview-fold>summary::-webkit-details-marker{display:none}
.preview-fold>summary:hover{border-color:var(--border-strong)}
.preview-fold-title{display:flex;align-items:center;gap:var(--space-2);flex:none;font-weight:var(--weight-semibold)}
.preview-fold-title .ic{color:var(--text-3)}
.preview-fold-meta{min-width:0;margin-left:auto;text-align:right;line-height:var(--leading-snug);font-size:var(--text-sm);color:var(--text-2)}
.preview-fold>summary>.ic{flex:none;color:var(--text-2);transition:transform var(--duration) var(--ease)}
.preview-fold[open]>summary>.ic{transform:rotate(180deg)}
.preview-fold[open]>summary{border-bottom-color:var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.preview-fold-body{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--border);border-top:0;border-radius:0 0 var(--radius-lg) var(--radius-lg);background:var(--surface)}
.preview-fold-body .ig{width:100%;max-width:400px;margin:0 auto}
/* Chiffres du brouillon : libellé à gauche, valeur à droite, filets entre les lignes */
.preview-facts{display:flex;flex-direction:column}
.pf{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);min-height:32px;padding:var(--space-1) 0;border-top:1px solid var(--border);font-size:var(--text-sm)}
.pf:first-child{border-top:0}
.pf dt{color:var(--text-2)}
.pf dd{margin:0;font-weight:var(--weight-semibold);text-align:right}
.pf--over dd{color:var(--danger)}
/* Aperçu en direct : case vide (aucun média, lien non affichable) et légende vide, à la manière d'Instagram */
.ig-slide--empty{padding:24px;background:#EFEFEF;color:#5E5E5E;font-size:13px;text-align:center}
.ig-slide--empty p{display:flex;flex-direction:column;align-items:center;gap:8px;max-width:24ch}
.ig-media--empty{aspect-ratio:auto}
.ig-slide--start{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:208px}
.ig-slide--start p{max-width:30ch}
.ig-frame{width:36px;height:45px;margin-bottom:4px;border:1.5px solid #8E8E8E;border-radius:4px}
.ig-hint{font-size:12px;line-height:1.4}
.ig--live .ig-caption{padding-bottom:12px;overflow-wrap:anywhere}
.ig--live .ig-meta{margin-top:-6px}
[data-live-caption]:empty::before{content:attr(data-empty);color:#737373}
:root[data-theme=dark] .ig-slide--empty{background:#121212;color:#A8A8A8}
:root[data-theme=dark] [data-live-caption]:empty::before{color:#A8A8A8}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ig-slide--empty{background:#121212;color:#A8A8A8}:root:not([data-theme=light]) [data-live-caption]:empty::before{color:#A8A8A8}}
/* Formulaires en sections (nouvelle campagne, nouveau test A/B) : explication à gauche, champs à droite sur ordinateur */
@media (min-width:640px){.form-grid.cols-3{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr)}}
.template-picker{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-2);margin-bottom:var(--space-5)}
.template-picker .field{flex:1 1 220px;max-width:360px}
.form-sections{display:flex;flex-direction:column}
.form-section{display:grid;gap:var(--space-3);padding:var(--space-4) 0}
.form-section:first-child{padding-top:0;border-top:0}
.form-section-about h2{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:var(--tracking-title)}
.form-section-about p{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--text-2);max-width:60ch}
.form-section-about b{color:var(--text);font-weight:var(--weight-semibold)}
.form-section-panel{min-width:0}
.form-sections-foot{padding-top:var(--space-4)}
@media (min-width:960px){
  .form-section{grid-template-columns:260px minmax(0,1fr);column-gap:var(--space-8);padding:var(--space-3) 0}
  .form-section-about{padding-top:var(--space-1)}
  .form-sections-foot{padding-left:calc(260px + var(--space-8))}
}
.interests{border:0;padding:0;margin:var(--space-4) 0 0}
.interests-list{display:flex;flex-wrap:wrap;column-gap:var(--space-5)}
/* Versions d'un test : A et B côte à côte, C et D à ajouter */
.versions{display:grid;gap:var(--space-3);margin-top:var(--space-5);grid-template-columns:minmax(0,1fr)}
@media (min-width:720px){.versions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.version{display:flex;flex-direction:column;gap:var(--space-3);min-width:0;margin:0;padding:var(--space-4);border:0;border-radius:var(--radius-lg);background:var(--inset)}
.version legend{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-1);margin-left:calc(-1 * var(--space-1));font-size:var(--text-sm);font-weight:var(--weight-semibold)}
.version .textarea{min-height:88px}
.version-letter{display:inline-grid;place-items:center;width:24px;height:24px;flex:none;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-size:var(--text-xs);font-weight:var(--weight-semibold)}
.version-letter--win{background:var(--success-soft);color:var(--success)}
.version-more{min-width:0}
.version-more>summary{list-style:none;display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch);height:100%;padding:var(--space-3) var(--space-4);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:transparent;color:var(--text);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;
  transition:border-color var(--duration-fast) var(--ease),background var(--duration-fast) var(--ease)}
.version-more>summary::-webkit-details-marker{display:none}
.version-more>summary:hover{border-color:var(--border-input);background:var(--inset)}
.version-more>summary .ic{color:var(--accent)}
.version-more>summary .muted{margin-left:auto;font-weight:var(--weight-regular)}
.version-more[open]>summary{display:none}
/* Fiche d'un test A/B : tableau des versions (la gagnante ressort), coût par résultat en barre, cartes d'action côte à côte */
.ab-card{margin-bottom:var(--space-4)}
.ab-head{flex-wrap:wrap;padding:var(--space-4) var(--space-4) 0;margin-bottom:var(--space-3)}
@media (min-width:960px){.ab-head{padding:var(--space-5) var(--space-5) 0}}
.ab-card .table th:first-child,.ab-card .table td:first-child{padding-left:var(--space-5)}
.ab-card .table th:last-child,.ab-card .table td:last-child{padding-right:var(--space-5)}
.ab-version{display:flex;align-items:center;gap:var(--space-2)}
.ab-text{display:block;min-width:200px;font-weight:var(--weight-medium)}
.ab-sub{display:block;font-size:var(--text-xs);color:var(--text-2)}
.ab-row--win{background:color-mix(in srgb,var(--success) 5%,transparent)}
.ab-cost{display:inline-flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:120px}
.ab-bar{display:block;width:120px;height:6px;border-radius:var(--radius-pill);background:var(--surface-3);overflow:hidden}
.ab-bar i{display:block;height:100%;border-radius:inherit;background:var(--chart-muted)}
.ab-bar--win i{background:var(--success)}
.ab-list{list-style:none;padding:0;display:grid;grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.ab-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.ab-item+.ab-item{border-left:1px solid var(--border)}}
.ab-table{display:none}
@media (min-width:1280px){.ab-table{display:block}.ab-list{display:none}}
.ab-item{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border)}
.ab-item-head{display:flex}
.ab-item-text{min-width:0}
.ab-item-text .ab-text{min-width:0}
.ab-figs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2) var(--space-4);margin-top:var(--space-1)}
.ab-figs dt{font-size:var(--text-xs);color:var(--text-2)}
.ab-figs dd{margin:0;font-weight:var(--weight-semibold)}
.ab-figs .ab-cost{align-items:flex-start;min-width:0}
.ab-figs .ab-bar{width:100%;max-width:120px}
.detail-cols{display:grid;gap:var(--space-4);grid-template-columns:minmax(0,1fr)}
@media (min-width:960px){.detail-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}.detail-cols--one{grid-template-columns:minmax(0,1fr);max-width:640px}}
.inline-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3);margin-top:var(--space-4)}
.inline-form .field{flex:1 1 140px}
.inline-form .btn{flex:none}
@media (max-width:639px){.inline-form .btn{flex:1 1 100%}}
/* ---------------- Chiffres et argent (lot 4) : statistiques, publicité, TikTok, rapport du mois ---------------- */
/* En-tête : titre, constat de la période, portée (compte et dates) ; dessous une seule rangée : réseau à gauche, période à droite */
.stats-scope{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--text-2)}
.stats-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:calc(-1 * var(--space-1)) 0 var(--space-5)}
.stats-bar>.tabs{width:100%}
.stats-bar>.tabs>*{flex:1}
@media (min-width:640px){.stats-bar{justify-content:space-between}.stats-bar>.tabs{width:max-content}.stats-bar>.tabs>*{flex:none}}
.stats-row,.stats-block{margin-bottom:var(--space-4)}
.stats-foot{display:flex;align-items:flex-start;gap:6px;margin-top:var(--space-4);font-size:var(--text-xs);color:var(--text-2);max-width:96ch}
.stats-foot .ic{flex:none;margin-top:1px}
/* Notes de carte : à droite du titre, sous le contenu, ou en tête (constat) */
.card-note{font-size:var(--text-xs);color:var(--text-2);text-align:right}
.card-foot-note{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--text-2);overflow-wrap:anywhere}
.card-lede{display:flex;align-items:flex-start;gap:6px;margin-bottom:var(--space-4);font-size:var(--text-sm);color:var(--text-2)}
.card-lede .ic{flex:none;margin-top:2px;color:var(--accent-soft-text)}
.card-lede b{color:var(--text);font-weight:var(--weight-semibold)}
/* Section vide : le cadre reste, une phrase dans un filet tireté (jamais une colonne de tirets) */
.block-empty{padding:var(--space-3) var(--space-4);border:1px dashed var(--border-strong);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-2)}
.block-empty b{color:var(--text);font-weight:var(--weight-semibold)}
/* Valeur absente : tiret discret dans un tableau, phrase courte à la place d'un chiffre clé */
.nil{color:var(--text-3)}
.kpi-nil{font-size:var(--text-md);font-weight:var(--weight-regular);letter-spacing:0;color:var(--text-2);line-height:var(--leading-snug);padding:6px 0}
/* Cartes collées (tableau ou liste bord à bord) : en-tête et pied alignés sur le contenu */
.flush-head{flex-wrap:wrap;padding:var(--space-4) var(--space-4) 0;margin-bottom:var(--space-3)}
.flush-foot{padding:0 var(--space-4) var(--space-4)}
@media (min-width:960px){.flush-head{padding:var(--space-5) var(--space-5) 0}.flush-foot{padding:0 var(--space-5) var(--space-5)}}
.card--flush .table th:first-child,.card--flush .table td:first-child{padding-left:var(--space-5)}
.card--flush .table th:last-child,.card--flush .table td:last-child{padding-right:var(--space-5)}
.scroll-tabs{padding:0 var(--space-4) var(--space-3);overflow-x:auto;scrollbar-width:none}
.scroll-tabs::-webkit-scrollbar{display:none}
.scroll-tabs .tabs{flex-wrap:nowrap}
@media (min-width:960px){.scroll-tabs{padding:0 var(--space-5) var(--space-4)}}
.cell-sub{display:block;margin-top:2px;font-size:var(--text-xs);color:var(--text-2)}
.th-sorted{color:var(--text);font-weight:var(--weight-semibold)}
.warn-ic{color:var(--warning)}
/* Tableau sur grand écran ; liste de lignes à deux niveaux en dessous (rien ne défile de côté) */
.wide-only{display:none}
@media (min-width:1100px){.wide-only{display:block}.narrow-only{display:none}}
.stat-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--border)}
.stat-list>li+li{border-top:1px solid var(--border)}
.sl-row{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:var(--text);text-decoration:none;transition:background var(--duration-fast) var(--ease)}
a.sl-row:hover{background:var(--surface-2)}
a.sl-row:hover .sl-title{text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:3px}
a.sl-row:focus-visible{outline-offset:-2px}
.sl-main{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.sl-title{font-weight:var(--weight-semibold);line-height:var(--leading-snug);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.sl-title .link{color:var(--text)}
.sl-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--text-2)}
.sl-meta:empty{display:none}
.sl-figs{font-size:var(--text-xs);color:var(--text-2);margin-top:2px}
.sl-value{flex:none;display:flex;flex-direction:column;align-items:flex-end;text-align:right;line-height:1.2}
.sl-value b{font-size:var(--text-lg);font-weight:var(--weight-semibold)}
.sl-value small{font-size:var(--text-xs);color:var(--text-2)}
@media (min-width:640px){.sl-row{align-items:center}}
/* Graphique en colonnes : chiffres en tête, échelle à gauche (0, moitié, haut arrondi), 3 lignes de repère */
.stats-chart{display:flex;flex-direction:column}
.stats-chart>.chart{flex:1}
.chart{overflow-x:clip;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:minmax(160px,1fr) auto;column-gap:var(--space-2);margin:0;min-height:0}
.chart-y{position:relative;min-width:2.25rem;font-size:var(--text-2xs);color:var(--text-2);font-variant-numeric:tabular-nums}
.chart-y span{position:absolute;right:0;bottom:var(--y);transform:translateY(50%);white-space:nowrap;line-height:1}
.chart-plot{position:relative;min-height:160px}
.chart-grid{position:absolute;left:0;right:0;bottom:var(--y);border-top:1px solid var(--border)}
.chart .bars{position:absolute;inset:0;height:auto;padding-top:0}
.chart .bar span{display:none}
.chart-x{grid-column:2}
@media (max-width:639px){.chart-x .minor{visibility:hidden}}
@media (min-width:960px){.chart{grid-template-rows:minmax(180px,1fr) auto}}
/* Chiffres en ligne, séparés par des filets (au-dessus d'un graphique, dans le rapport) */
.facts{display:flex;flex-wrap:wrap;gap:var(--space-3) 0;margin:0 0 var(--space-4)}
.facts>div{min-width:0;padding:0 var(--space-5);border-left:1px solid var(--border)}
.facts>div:first-child{padding-left:0;border-left:0}
.facts dt{font-size:var(--text-xs);color:var(--text-2)}
.facts dd{margin:2px 0 0;font-size:var(--text-lg);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;line-height:var(--leading-tight)}
.facts dd small{display:block;margin-top:2px;font-size:var(--text-xs);font-weight:var(--weight-regular);color:var(--text-2)}
@media (max-width:479px){.facts>div{padding:0 var(--space-4)}}
/* Rapport : les chiffres de la publicité et de TikTok dans une rangée à filets (plus d'aplats gris) */
.facts.mini-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4) 0;margin:0}
.facts.mini-stats>div:nth-child(2n+1){padding-left:0;border-left:0}
.facts.mini-stats dd{font-size:var(--text-xl)}
@media (min-width:760px){
  .facts.mini-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .facts.mini-stats--4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .facts.mini-stats>div:nth-child(2n+1){padding-left:var(--space-5);border-left:1px solid var(--border)}
  .facts.mini-stats>div:first-child{padding-left:0;border-left:0}
}
/* Boosts : montant et durée, statut en mot, ciblage dessous, actions */
.boost-list{list-style:none;padding:0;margin:0}
.boost{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) 0;border-top:1px solid var(--border)}
.boost:first-child{padding-top:0;border-top:0}
.boost:last-child{padding-bottom:0}
.boost-head{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}
.boost-head b{font-size:var(--text-lg);font-weight:var(--weight-semibold)}
.boost-days{font-size:var(--text-sm);color:var(--text-2)}
.boost-head .pill{margin-left:auto}
.boost-meta{font-size:var(--text-xs);color:var(--text-2)}
.boost-error{display:flex;align-items:flex-start;gap:6px;font-size:var(--text-sm);color:var(--danger)}
.boost-error .ic{flex:none;margin-top:2px}
.boost-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-2)}
.boost-actions form{margin:0}
/* Garde-fou santé d'un boost : un point par ligne, sa gravité en mot */
.compliance-item{display:block;margin-top:var(--space-2)}
.compliance-ok .ic{color:var(--success)}
/* Campagnes et tests A/B de SocialHub : les deux créations dans l'en-tête, une ligne cliquable par campagne */
.camp-head{flex-wrap:wrap;row-gap:var(--space-3)}
.camp-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}
@media (max-width:639px){.camp-actions,.camp-actions .btn{width:100%}}
.camp-card .banner{margin-bottom:var(--space-3)}
.camp-list{list-style:none;padding:0;margin:0 calc(-1 * var(--space-4)) calc(-1 * var(--space-4));border-top:1px solid var(--border)}
@media (min-width:960px){.camp-list{margin:0 calc(-1 * var(--space-5)) calc(-1 * var(--space-5))}}
.camp-list>li+li{border-top:1px solid var(--border)}
.camp-row{display:flex;align-items:center;gap:var(--space-3);min-height:64px;padding:var(--space-3) var(--space-4);color:var(--text);text-decoration:none;transition:background var(--duration-fast) var(--ease)}
@media (min-width:960px){.camp-row{padding:var(--space-3) var(--space-5)}}
.camp-row:hover{background:var(--surface-2)}
.camp-row:hover .camp-name b{text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:3px}
.camp-row:focus-visible{outline-offset:-2px}
.camp-row>.ic{flex:none;color:var(--text-3)}
.camp-main{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.camp-name{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0}
.camp-name b{font-weight:var(--weight-semibold);overflow-wrap:anywhere}
.camp-meta{font-size:var(--text-xs);color:var(--text-2)}
/* Rapport du mois : en cas de mois refusé, l'explication et la sortie, sans bandeau dans la carte */
.report-error{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:flex-start}
.report-error-body{flex:1 1 240px;min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}
.report-error-body h2{font-size:var(--text-lg)}
@media (max-width:479px){.report-error{flex-direction:column;gap:var(--space-3)}.report-error-body{flex:none;width:100%}.report-error-body .btn{width:100%}}
.report-error-body .form-actions{margin-top:var(--space-2)}
/* État vide dans une carte : pas de second cadre */
.card .empty{padding:0;border:0;border-radius:0;background:transparent}
/* Lot 4, tour 2 du directeur artistique */
/* « Rapport du mois » : sur la ligne du titre ; bouton à icône seule sur téléphone (le libellé reste lu) */
.stats-head{flex-wrap:nowrap;align-items:flex-start}
.stats-head>div:first-child{min-width:0}
.stats-report{flex:none}
@media (max-width:639px){
  .stats-report .btn{width:var(--touch);min-height:var(--touch);padding:0}
  .stats-report .btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
/* Semaine en cours (90 jours) : barre pâle, comme un total provisoire */
.bar--partial{background:var(--chart-muted);box-shadow:inset 0 2px 0 var(--chart)}
.bar--current{background:transparent;outline:1px dashed var(--chart);outline-offset:-1px}
.chart-legend{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);margin:var(--space-3) 0 0;padding:0;list-style:none;font-size:var(--text-xs);color:var(--text-2)}
.chart-legend li{display:inline-flex;align-items:center;gap:var(--space-2)}
.chart-legend b{color:var(--text);font-weight:var(--weight-semibold)}
.chart-legend .swatch{flex:none;width:10px;height:12px;border-radius:2px;background:var(--chart)}
.chart-legend .swatch.bar--current{background:transparent;outline:1px dashed var(--chart);outline-offset:-1px}
.chart-legend .swatch.bar--partial{background:var(--chart-muted);box-shadow:inset 0 2px 0 var(--chart)}
.cap-gauge{display:grid;gap:var(--space-2)}
.form-cap{margin-bottom:var(--space-6)}
.cap-gauge .meter{height:8px}
.cap-line{margin:0;font-size:var(--text-md);color:var(--text-2)}
.cap-line b{color:var(--text);font-weight:var(--weight-semibold)}
.cap-line .badge{margin-left:var(--space-1)}
.cap-gauge--reached .cap-state{color:var(--danger)}
.cap-real{margin:0;font-size:var(--text-sm);color:var(--text-2)}
.cap-real b{color:var(--text);font-weight:var(--weight-semibold)}
abbr[title]{text-decoration:underline dotted;text-underline-offset:2px;cursor:help}
.budget-meter{display:grid;gap:var(--space-2);margin-top:var(--space-2)}
.budget-meter .meter{height:8px}
.budget-meter p{margin:0;font-size:var(--text-sm);color:var(--text-2)}
.budget-meter p b{color:var(--text)}
.budget-note{margin:var(--space-4) 0 0;padding-top:var(--space-3);border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--text-2)}
.budget-note b{color:var(--text);font-weight:var(--weight-semibold)}
.ads-help{margin-top:var(--space-3);font-size:var(--text-sm);max-width:96ch}
.ads-help>summary{display:inline-flex;align-items:center;min-height:var(--touch);cursor:pointer;color:var(--accent);font-weight:var(--weight-medium)}
.ads-help dl{display:grid;gap:var(--space-3);margin:var(--space-2) 0 0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}
.ads-help dt{font-weight:var(--weight-semibold);color:var(--text)}
.ads-help dd{margin:2px 0 0;color:var(--text-2)}
.ads-facts{display:grid;gap:var(--space-3);margin:0;font-size:var(--text-sm)}
.ads-facts>div{display:grid;gap:2px}
.ads-facts dt{color:var(--text-2)}
.ads-facts dd{margin:0;font-weight:var(--weight-medium);color:var(--text)}
.ads-facts dd small{display:block;margin-top:2px;font-size:var(--text-xs);font-weight:var(--weight-regular);color:var(--text-2)}
@media (min-width:600px){.ads-facts>div{grid-template-columns:200px minmax(0,1fr);gap:var(--space-4)}}
@media (min-width:960px){.ads-help dl{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-6)}}
/* Dépense par jour : hauteur fixe, sur toute la largeur (la carte des boosts est dessous) */
.ads-spend>.chart{flex:none}
/* Boosts : une colonne par boost quand la place le permet, filets entre les colonnes */
@media (min-width:1200px){
  .boost-list{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
  .boost,.boost:first-child{padding:0 var(--space-5);border-top:0;border-left:1px solid var(--border)}
  .boost:first-child{padding-left:0;border-left:0}
  .boost:last-child{padding-right:0}
  .boost-actions{margin-top:auto;padding-top:var(--space-3)}
}
/* Onglets de tri : 2 × 2 sur téléphone (tout est visible, rien ne défile) */
@media (max-width:639px){
  .scroll-tabs .tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
}
/* Chiffres en ligne empilés sur très petit écran : sans filet vertical */
@media (max-width:379px){.facts{column-gap:var(--space-5)}.facts>div{padding:0;border-left:0}}
/* Rapport : chaque écart reste collé à sa valeur ; toute la ligne d'un classement est cliquable */
.report-kpis .kpi-sub .nowrap{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:4px}
.rank-item{position:relative;min-height:var(--touch);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease)}
.rank-item:has(a):hover{background:var(--surface-2)}
.rank-title a::after{content:"";position:absolute;inset:0}
.report-error-detail{font-size:var(--text-xs);color:var(--text-2);overflow-wrap:anywhere}
/* Tableau des posts TikTok : la colonne du post prend la place, les chiffres restent groupés à droite */
.tt-table .table th:first-child,.tt-table .table td:first-child{width:44%}
/* Mouvement réduit : on coupe toutes les animations */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
/* Impression (rapport du mois) : A4, toujours en clair, sans menu ni bouton */
/* ===================================================================== Espace publicitaire (spec 011 ; v3, lot 12c)
   Direction v3 « Grand titre » : grand titre et phrase de constat, grands panneaux blancs sans filet (filet discret en
   sombre) sur le fond gris pâle, groupes « inset » dedans, une seule chose dominante par écran. Rien en dur. */
.nav-soon{display:flex;align-items:center;gap:var(--space-3);min-height:var(--control);padding:0 var(--space-3);color:var(--text-3);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:default}
.nav-soon .badge{margin-left:auto;background:transparent;padding:0;font-weight:var(--weight-medium);color:var(--text-3)}
/* Panneaux de l'espace publicitaire : même règle que .card (teinte, coins, filet discret en sombre seulement) */
.decision,.today-budget,.later,.reco-main,.tcard,.chart-card,.panel,.hist-block,.v2:not(.aud .v2),.verdicts,.obj-block,.crea-link,.px-none,.creas-strip,.auto-switch,.rl-guards,.rl-state,.pi-switch,.pi-panel,.pd,.pa-group,.pa-preset,.pi-empty,.moved-note,.sa-head,.sa-ch,.sa-empty{background:var(--surface);border:1px solid transparent;border-radius:var(--radius-xl)}
@media (min-width:768px){.decision,.today-budget,.later,.reco-main,.tcard,.chart-card,.panel,.hist-block,.v2:not(.aud .v2),.verdicts,.obj-block,.crea-link,.px-none,.creas-strip,.auto-switch,.rl-guards,.rl-state,.pi-switch,.pi-panel,.pd,.pa-group,.pa-preset,.pi-empty,.moved-note,.sa-head,.sa-ch,.sa-empty{border-radius:var(--radius-2xl)}}
:root[data-theme=dark] :is(.decision,.today-budget,.later,.reco-main,.tcard,.chart-card,.panel,.hist-block,.v2:not(.aud .v2),.verdicts,.obj-block,.crea-link,.px-none,.creas-strip,.auto-switch,.rl-guards,.rl-state,.pi-switch,.pi-panel,.pd,.pa-group,.pa-preset,.pi-empty,.moved-note,.sa-head,.sa-ch,.sa-empty){border-color:var(--border)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) :is(.decision,.today-budget,.later,.reco-main,.tcard,.chart-card,.panel,.hist-block,.v2:not(.aud .v2),.verdicts,.obj-block,.crea-link,.px-none,.creas-strip,.auto-switch,.rl-guards,.rl-state,.pi-switch,.pi-panel,.pd,.pa-group,.pa-preset,.pi-empty,.moved-note,.sa-head,.sa-ch,.sa-empty){border-color:var(--border)}}
/* Groupes posés dans un panneau : fond « inset », coins lg, filets entre les lignes, jamais de contour */
.kids,.brief-list,.wear-list,.labs,.life-box,.creative,.obj-dl,.rl-last,.rules-col,.prf-now,.scen-one,.mk-list,.pi-dec-list,.pi-overview .pi-ev-list,.pi-lv-list,.pd-why,.pi-incident,.pd-up,.sa-err,.tp-picks{background:var(--inset);border:0;border-radius:var(--radius-lg)}
.ads-head{margin-bottom:var(--space-6)}
/* Fiche d'une recommandation : le titre est une question longue (nom d'objet cité) ; 24 px au téléphone, 2 lignes au plus */
@media (max-width:767px){.reco-head h1{font-size:var(--text-2xl);line-height:1.2}}
.ads-lede{max-width:70ch;text-wrap:pretty}
.ads-lede b{color:var(--text);font-weight:var(--weight-medium)}
.st{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap;color:var(--text-2)}
.st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.st--ok{color:var(--success)}.st--bad{color:var(--danger)}.st--wait{color:var(--warning)}.st--off{color:var(--text-2)}
.st--off::before{background:var(--text-3)}
/* Titre de section posé sur le fond (« À décider aujourd'hui 3 ») : Inter Display, le compte en texte secondaire */
h2.sec{display:flex;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-3);font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title)}
h2.sec small,.lane h2 small{font-family:var(--font);font-size:var(--text-md);font-weight:var(--weight-regular);letter-spacing:0;color:var(--text-2)}

/* Aujourd'hui (« today-grid » : « .today » est aussi le jour courant des calendriers) : la première décision en grand ; le budget du mois à côté dès 1 200 px (dessous au téléphone) */
.today-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6) var(--space-6)}
.today-grid>*{min-width:0}
.decide{display:flex;flex-direction:column;gap:var(--space-4)}
.decide>h2.sec{margin-bottom:0}
@media (min-width:1200px){
  /* Seule la première décision partage sa rangée avec le budget : les suivantes reprennent toute la largeur (pas de colonne morte). */
  .today-grid{grid-template-columns:minmax(0,1fr) 340px;grid-template-areas:"lead side" "rest rest" "later later";column-gap:var(--space-6)}
  .today-lead{grid-area:lead}.today-side{grid-area:side;align-self:start;margin-top:calc(var(--text-xl) * 1.25 + var(--space-4))}.today-rest{grid-area:rest}.today-grid>.later{grid-area:later}
  .today-grid:not(:has(.today-rest)){grid-template-areas:"lead side" "later later"}
}
.today-rest{display:flex;flex-direction:column;gap:var(--space-6)}
/* Budget du mois : la dépense réelle en grand, la jauge (réelle pleine, engagée pâle), la fraîcheur, l'arrêt d'urgence */
.today-budget{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5)}
@media (min-width:768px){.today-budget{padding:var(--space-6)}}
.tb-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-1) var(--space-3)}
.tb-head h2{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:var(--tracking-title)}
.fresh{font-size:var(--text-sm);color:var(--text-2)}.fresh b{color:var(--success);font-weight:var(--weight-medium)}
.fresh--old b{color:var(--warning)}
.strip-budget{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
.tb-money{color:var(--text-2);font-size:var(--text-md)}
.tb-money b{display:block;font-family:var(--font-display);font-size:var(--text-kpi);font-weight:var(--weight-regular);letter-spacing:var(--tracking-kpi);line-height:var(--leading-tight);color:var(--text)}
.tb-none{font-size:var(--text-sm);color:var(--text-2)}
.strip-track{position:relative;display:block;height:8px;margin-top:var(--space-1);background:var(--surface-2);border-radius:var(--radius-pill);overflow:hidden}
.strip-track i{position:absolute;inset:0 auto 0 0;border-radius:var(--radius-pill)}
.strip-eng{background:var(--chart-muted)}.strip-sp{background:var(--chart)}
.strip-eng-text{font-size:var(--text-sm);color:var(--text-2)}
.strip-eng-text b{color:var(--text);font-weight:var(--weight-medium)}
.today-budget>.btn{align-self:flex-start;margin-top:var(--space-1)}
@media (min-width:640px) and (max-width:1199px){
  .today-budget{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;column-gap:var(--space-6)}
  .today-budget>.tb-head{grid-column:1/-1}
  .today-budget>.btn{align-self:end;margin:0}
}
/* Une décision = un panneau : urgence, question, constat, preuve (groupe inset), ce que ça change, actions */
.decision{padding:var(--space-5);container-type:inline-size}
@media (min-width:768px){.decision{padding:var(--space-6)}}
.decision-in{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3)}
.decision-in>*{min-width:0}
.decision-tag{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);font-size:var(--text-sm);color:var(--text-2)}
.decision-tag b{font-weight:var(--weight-semibold)}
.tag-u{color:var(--danger)}.tag-i{color:var(--warning)}.tag-n{color:var(--text)}
.decision h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:var(--tracking-title);text-wrap:balance;overflow-wrap:anywhere}
.decision--lead h3{font-size:var(--text-2xl);line-height:1.2}
.decision h3 a{display:flex;align-items:center;min-height:var(--touch);padding:var(--space-1) 0;margin:calc(var(--space-1) * -1) 0;color:inherit;text-decoration:none}
.decision h3 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.decision-fact{color:var(--text-2);max-width:68ch}
.decision-gain{max-width:68ch}
.decision-gain b{font-weight:var(--weight-semibold)}
.decision-acts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding-top:var(--space-2)}
.decision-acts form{margin:0}
.decision-proof{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--inset);border-radius:var(--radius-lg)}
@container (min-width:720px){
  .decision-in{grid-template-columns:minmax(0,1fr) minmax(0,.78fr);grid-template-rows:auto auto auto auto 1fr;column-gap:var(--space-6);grid-template-areas:"tag proof" "q proof" "fact proof" "gain proof" "acts proof"}
  .decision-tag{grid-area:tag}.decision h3{grid-area:q}.decision-fact{grid-area:fact}.decision-gain{grid-area:gain}.decision-acts{grid-area:acts;align-self:end}
  .decision-proof{grid-area:proof;align-self:start;padding:var(--space-5)}
  .decision--budget .decision-in{grid-template-columns:minmax(0,1fr) minmax(0,.62fr);grid-template-rows:auto auto auto 1fr auto;grid-template-areas:"tag proof" "q proof" "fact proof" "gain proof" "acts acts"}
}
.decision-proof h4,.reco-proof h4{margin:0;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-2)}
.decision-proof .small,.reco-proof .small{color:var(--text-2);font-size:var(--text-xs)}
.quote{margin:0;font-size:var(--text-md);line-height:var(--leading-snug);padding-left:var(--space-3);border-left:2px solid var(--danger);overflow-wrap:anywhere}
/* Coûts comparés : le chiffre en grand (Inter Display), la barre, le libellé ; « cette pub » à l'accent */
.pbars{display:grid;gap:var(--space-3)}
.pbar-row{display:grid;grid-template-columns:minmax(76px,auto) minmax(0,1fr);grid-template-areas:"fig bar" "fig lab";gap:2px var(--space-3);align-items:center}
.pbar-fig{grid-area:fig;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-regular);letter-spacing:var(--tracking-kpi);line-height:1;white-space:nowrap}
.pbar{grid-area:bar;display:block;height:8px;width:var(--w);min-width:4px;background:var(--text-3);border-radius:var(--radius-pill)}
.pbar-row--me .pbar{background:var(--chart)}
.pbar-lab{grid-area:lab;font-size:var(--text-sm);color:var(--text-2)}
.pfig{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3) var(--space-4)}
.pfig dt{font-size:var(--text-xs);color:var(--text-2)}
.pfig dd{margin:2px 0 0;font-size:var(--text-lg);font-weight:var(--weight-medium)}
.plist{margin:0;padding-left:var(--space-5);display:flex;flex-direction:column;gap:var(--space-1)}
/* Plus tard : un panneau, trois colonnes (À tester, À surveiller, Attendre), chacune un groupe inset */
.later{display:grid;gap:var(--space-5);padding:var(--space-5)}
@media (min-width:768px){.later{padding:var(--space-6)}}
@media (min-width:960px){.later{grid-template-columns:repeat(3,minmax(0,1fr))}}
.lane{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}
.lane h2{display:flex;align-items:baseline;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title)}
.later-list{list-style:none;margin:0;padding:var(--space-1) 0;background:var(--inset);border-radius:var(--radius-lg)}
.later-item+.later-item{border-top:1px solid var(--border)}
.later-link{display:flex;flex-direction:column;gap:2px;padding:var(--space-3) var(--space-4);color:inherit;text-decoration:none;min-height:var(--touch);border-radius:var(--radius-lg);transition:background var(--duration-fast) var(--ease)}
.later-link:hover{background:color-mix(in srgb,var(--surface-2) 55%,transparent)}
.later-link b{font-weight:var(--weight-medium);line-height:var(--leading-snug);overflow-wrap:anywhere}
.later-link:hover b{text-decoration:underline;text-underline-offset:3px}
.later-e{font-size:var(--text-sm);color:var(--text-2);overflow-wrap:anywhere}
.later-w{align-self:flex-start;margin-top:var(--space-2);padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--surface-2);font-size:var(--text-xs);color:var(--text);overflow-wrap:anywhere}
.lane-empty{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--inset);font-size:var(--text-sm);color:var(--text-2)}
/* Une colonne plus longue que les autres : 2 lignes visibles, la suite repliée (« Voir 1 autre »), colonnes équilibrées */
.later-more{margin-top:var(--space-2)}
.later-more>summary{display:inline-flex;align-items:center;gap:var(--space-1);min-height:var(--touch);padding:0 var(--space-3);border-radius:var(--radius-pill);color:var(--accent);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;list-style:none}
.later-more>summary::-webkit-details-marker{display:none}
.later-more>summary:hover{background:var(--accent-soft);color:var(--accent-soft-text)}
.later-more>summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.later-more>summary .ic{transition:transform var(--duration-fast) var(--ease)}
.later-more[open]>summary .ic{transform:rotate(180deg)}
.later-more>.later-list{margin-top:var(--space-2)}
@media (min-width:960px){.later-more>summary{min-height:var(--control)}}

/* Fiche d'une recommandation : le constat sous le titre ; à gauche un panneau en sections, à droite la décision */
.reco-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-4);margin-top:var(--space-3);font-size:var(--text-sm);color:var(--text-2)}
.reco-layout{display:grid;gap:var(--space-5)}
.reco-layout>*{min-width:0}
@media (min-width:1100px){.reco-layout{grid-template-columns:minmax(0,1fr) 380px;gap:var(--space-6);align-items:start}.reco-side{position:sticky;top:var(--space-6)}}
.reco-main{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-5)}
@media (min-width:768px){.reco-main{padding:var(--space-6)}}
.reco-block h2{margin-bottom:var(--space-2);font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title)}
.reco-block p+p{margin-top:var(--space-2)}
.reco-block>p,.reco-block>.plist{max-width:72ch}
.reco-proof{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--inset);border-radius:var(--radius-lg)}
.reco-side{display:flex;flex-direction:column;gap:var(--space-3)}
.reco-decide h2{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:var(--tracking-title)}
.reco-decide h3{font-size:var(--text-md);font-weight:var(--weight-semibold)}
.reco-form{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);padding-top:var(--space-4);margin-top:var(--space-4);border-top:1px solid var(--border)}
.reco-form .field{align-self:stretch}
.reco-form .btn--ghost{margin-left:calc(-1 * var(--space-3))}
.reco-form .textarea{min-height:76px}
.reco-done{margin-top:var(--space-3)}

/* Performance : filtres sur le fond, le verdict en grand, puis le graphique (chiffres clés en tête du même panneau), tableau */
.perf-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);align-items:end;margin-bottom:var(--space-5)}
.pf-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.pf-field label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-2)}
/* Listes et bouton « Afficher » de même hauteur, alignés en bas ; bouton pleine largeur sur téléphone */
.perf-filters .select,.pf-go .btn{height:var(--touch);min-height:0}
/* Emplacement grisé tant qu'aucune plateforme n'est choisie : « Tous » reste lisible, le chevron reste en place */
.perf-filters .select:disabled,.perf-filters .select:disabled:has(option[value=""]:checked){color:var(--text-2);-webkit-text-fill-color:var(--text-2);background:var(--surface-2) var(--chevron) no-repeat right var(--space-3) center/16px 16px}
/* Téléphone : « Afficher » à côté d'Emplacement (une rangée de moins), les chiffres clés arrivent au premier écran */
.pf-go .btn{width:100%}
@media (min-width:960px){.perf-filters{grid-template-columns:repeat(5,minmax(0,184px)) auto;justify-content:start}.pf-go{grid-column:auto}.pf-go .btn{width:auto}.perf-filters .select,.pf-go .btn{height:var(--control)}}
.ads-kpis{margin-bottom:var(--space-5)}
.ads-kpis .kpi{padding:var(--space-4) var(--space-5)}
/* Un libellé de Meta long (« CTR (taux de clics sur le lien) ») passe sur 2 lignes : les valeurs d'une même rangée
   restent alignées en bas, le libellé prend la place libre au-dessus (spec 038, corrections R1+R2). */
.ads-kpis .kpi>h2{margin-bottom:auto}
@media (min-width:768px){.ads-kpis .kpi{padding:var(--space-5) var(--space-6)}}
/* Le verdict : un panneau, deux colonnes (ce qui va bien, ce qui coince), chaque ligne avec son chiffre en grand */
.verdicts{display:grid;gap:var(--space-5);margin-bottom:var(--space-5);padding:var(--space-5)}
@media (min-width:768px){.verdicts{padding:var(--space-6)}}
@media (min-width:960px){.verdicts{grid-template-columns:1fr 1fr;column-gap:var(--space-6)}}
.vcol{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}
.vcol h2{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title)}
.vcol h2::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--success);flex:none}
.vcol--bad h2::before{background:var(--danger)}
.vcol ul{list-style:none;margin:0;padding:var(--space-1) 0;background:var(--inset);border-radius:var(--radius-lg)}
.vcol li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-4);align-items:center;padding:var(--space-3) var(--space-4)}
.vcol li+li{border-top:1px solid var(--border)}
.vcol>p{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--inset)}
.vs{display:flex;flex-direction:column;line-height:var(--leading-snug);min-width:0;overflow-wrap:anywhere}
.vs>span{font-weight:var(--weight-medium)}
.vs small{font-size:var(--text-sm);color:var(--text-2);margin-top:2px}
.vs small .link--touch{min-height:var(--touch)}
.vn{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-regular);letter-spacing:var(--tracking-kpi);line-height:1;white-space:nowrap}
.vn .nil{font-family:var(--font);font-size:var(--text-sm);letter-spacing:0}
.chart-card{padding:var(--space-5);margin-bottom:var(--space-5)}
@media (min-width:768px){.chart-card{padding:var(--space-6)}}
/* Chiffres clés posés en tête du panneau du graphique : la rangée à filets, sans second cadre */
.chart-card>.ads-kpis{margin:calc(-1 * var(--space-2)) 0 var(--space-5);background:none;border:0;border-radius:0;border-bottom:1px solid var(--border)}
.chart-card>.ads-kpis .kpi{padding:var(--space-3) var(--space-4) var(--space-4)}
.chart-card>.ads-kpis .kpi:nth-child(odd){padding-left:0}
@media (min-width:960px){.chart-card>.ads-kpis .kpi{padding:var(--space-2) var(--space-5) var(--space-5)}.chart-card>.ads-kpis .kpi:nth-child(odd){padding-left:var(--space-5)}.chart-card>.ads-kpis .kpi:first-child{padding-left:0}}
.chart-card>.kpis-note{margin:calc(-1 * var(--space-3)) 0 var(--space-5)}
/* Téléphone : chiffres clés compacts (l'écart en %, sans « contre … avant ») pour tenir au-dessus de la barre du bas */
@media (max-width:599px){.chart-card>.ads-kpis .kpi{padding:var(--space-2) var(--space-3) var(--space-3)}.chart-card>.ads-kpis .kpi-value{font-size:var(--text-2xl)}.chart-card>.ads-kpis .kpi-sub>span:not(.delta){display:none}}
.ch{margin:0}
.ch-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-4)}
.ch-head h2,.tcard-head h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:1.25}
.ch-legend{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);font-size:var(--text-xs);color:var(--text-2)}
.ch-legend i{display:inline-block;margin-right:6px;vertical-align:-1px}
.sw-bar{width:10px;height:10px;border-radius:2px;background:var(--chart)}
.sw-hatch{width:10px;height:10px;border-radius:2px;background:repeating-linear-gradient(135deg,var(--chart) 0 2px,transparent 2px 4px);outline:1px solid var(--chart);outline-offset:-1px} /* taste-skill-ignore : hachures des jours provisoires, pas un dégradé */
.sw-line{width:16px;height:2px;border-radius:1px;background:var(--text);vertical-align:3px!important}
.sw-mark{width:0;height:12px;border-left:1px dashed var(--text-2)}
.ch-frame{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:200px auto;column-gap:var(--space-2)}
@media (min-width:960px){.ch-frame{grid-template-rows:260px auto}}
.ch-plot{position:relative;grid-column:2;grid-row:1}
.ch-svg{display:block;width:100%;height:100%;overflow:visible}
.ch-y{position:relative;grid-row:1;min-width:44px;font-size:var(--text-2xs);color:var(--text-2);font-variant-numeric:tabular-nums}
.ch-y--l{grid-column:1;text-align:right}.ch-y--r{grid-column:3}
.ch-y span{position:absolute;right:0;top:var(--y);transform:translateY(-50%);white-space:nowrap}
.ch-y--r span{left:0;right:auto}
.ch-x{position:relative;grid-column:2;grid-row:2;height:20px;margin-top:var(--space-1);font-size:var(--text-2xs);color:var(--text-2)}
.ch-x span{position:absolute;left:var(--x);transform:translateX(-50%);white-space:nowrap}
.ch-x span:first-child{transform:none}.ch-x span:last-child{transform:translateX(-100%)}
.ch-grid{stroke:var(--border);stroke-width:1;vector-effect:non-scaling-stroke}
.ch-base{stroke:var(--border-strong);stroke-width:1;vector-effect:non-scaling-stroke}
.ch-bar{fill:var(--chart)}
.ch-hatch{fill:var(--chart)}.ch-hatch-bg{fill:var(--surface)}
.ch-bar--prov{stroke:var(--chart);stroke-width:1;vector-effect:non-scaling-stroke}
.ch-none{fill:var(--border-strong)}
.ch-line{fill:none;stroke:var(--text);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.ch-dot{fill:var(--text)}
.ch-prov-zone{fill:var(--inset)}
.ch-mark{stroke:var(--text-2);stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}
.ch-frame--pins{padding-top:28px}.ch-frame--pins2{padding-top:50px}
.ch-pin{position:absolute;top:-26px;left:var(--x);transform:translateX(-50%);display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--surface);border:1px solid var(--text-2);font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--text)}
.ch-pin::after{content:"";position:absolute;top:100%;left:50%;height:8px;margin-left:-0.5px;border-left:1px dashed var(--text-2)}
.ch-pin--r2{top:-48px}.ch-pin--r2::after{height:30px}
/* Modifications marquées : un groupe inset, une ligne par repère numéroté, filets entre les lignes */
.ch-marks{list-style:none;margin:var(--space-5) 0 0;padding:var(--space-1) 0;display:grid;background:var(--inset);border-radius:var(--radius-lg)}
.ch-marks li{display:flex;gap:var(--space-3);align-items:baseline;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);overflow-wrap:anywhere;min-width:0}
.ch-marks li+li{border-top:1px solid var(--border)}
@media (min-width:960px){.ch-marks{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-6)}.ch-marks li+li{border-top:0}.ch-marks li:nth-child(n+3){border-top:1px solid var(--border)}}
.ch-num{flex:none;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--text-2);font-size:var(--text-2xs);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;transform:translateY(-1px)} /* taste-skill-ignore : pastille numérotée, même dessin que .ch-pin */
.ch-marks b{font-weight:var(--weight-semibold)}
.ch-table{margin-top:var(--space-3)}
.ch-table summary{cursor:pointer;list-style:none}
.ch-table summary::-webkit-details-marker{display:none}
.ch-table .table-wrap{margin-top:var(--space-2);max-height:420px;overflow:auto}
.ch-table tr.is-prov th,.ch-table tr.is-prov td{color:var(--text-2)}
.ch-note{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--text-2)}
.ch-rule{margin-top:var(--space-1)}
.ch-rule>summary{font-size:var(--text-sm)}
.ch-rule>p{margin-top:var(--space-1);max-width:72ch;font-size:var(--text-sm);color:var(--text-2)}

/* Tableau hiérarchique : un panneau, en-têtes en texte secondaire, filets ; campagnes en gras (plus d'aplat) */
.tcard{--px:var(--space-5);--pad:var(--px);--step:var(--space-4);--chev:32px;padding:var(--space-5) 0 var(--space-2);margin-bottom:var(--space-5)}
@media (min-width:768px){.tcard{--px:var(--space-6);padding-top:var(--space-6)}}
.tcard-head{padding:0 var(--px) var(--space-4)}
.tcard-head p,.tcard-note{font-size:var(--text-sm);color:var(--text-2);margin-top:var(--space-1);max-width:72ch}
.tcard-note{padding:var(--space-3) var(--px) var(--space-1);margin:0}
.pt-sort{display:flex;gap:var(--space-2);overflow-x:auto;padding:0 var(--px) var(--space-3);scrollbar-width:none}
.pt-sort .pt-name,.pt-sort .pt-status,.pt-sort span.pt-h{display:none}
.pt-h{flex:none;display:inline-flex;align-items:center;gap:4px;min-height:var(--touch);padding:0 var(--space-4);border:0;border-radius:var(--radius-pill);background:var(--surface-2);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text);text-decoration:none;white-space:nowrap}
.pt-h.is-on{background:var(--accent-soft);color:var(--accent-soft-text);font-weight:var(--weight-semibold)}
.pt-list{list-style:none;margin:0;padding:0}
.pt-item{border-top:1px solid var(--border)}
.pt-group--campaign{border-top-color:var(--border-strong)}
.pt-group{position:relative}
/* Un seul retrait par niveau : le nom et ses chiffres partent du même bord (colonne de la flèche + niveau × pas).
   Téléphone : le nom, puis ses 3 chiffres dessous ; 600 à 959 px : une ligne par objet, chiffres à droite en colonnes
   fixes (libellés une fois, sur la ligne Total) ; dès 960 px : le vrai tableau, 8 colonnes dès 1 280 px. */
.pt-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-1) var(--space-3);padding:0 var(--px) var(--space-3);padding-left:calc(var(--pad) + var(--chev) + var(--d,0) * var(--step));font-size:var(--text-sm)}
.pt-row--total{border-top:1px solid var(--border-strong);padding-top:var(--space-2)}
.pt-row--total .pt-name{min-height:var(--touch)}
.pt-row--total .pt-name b{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold)}
.pt-name{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--space-2);min-width:0}
/* Le nom et l'entonnoir (filtre croisé) restent ensemble : l'entonnoir suit la dernière ligne du nom, jamais seul dessous */
.pt-nm{display:block;flex:0 1 auto;min-width:0;padding:var(--space-3) 0;line-height:20px;overflow-wrap:anywhere}
/* Lien en ligne (il passe à la ligne avec le nom) : sa zone de clic fait 44 px de haut (boîte du texte ≈ 1,2 em + marges) */
.pt-nm>a{color:var(--text);font-weight:var(--weight-semibold);text-decoration:none;padding:calc((var(--touch) - 1.2em) / 2) 0}
.pt-nm>.pt-cross{display:inline-grid;vertical-align:middle;margin:calc((20px - var(--touch)) / 2) 0}
.pt-nm>a:hover{text-decoration:underline;text-underline-offset:3px}
.pt-name .pt-badges{padding-bottom:var(--space-1)}
.ads-kpis .kpi-sub{flex-wrap:wrap;align-items:baseline;row-gap:0}
.pt-row--adset .pt-nm>a{font-weight:var(--weight-medium)}
.pt-row--ad .pt-nm>a{font-weight:var(--weight-regular)}
.pt-level{font-size:var(--text-2xs);color:var(--text-2);font-weight:var(--weight-medium);margin-right:2px}
.pt-toggle{position:absolute;top:0;left:calc(var(--pad) + var(--d,0) * var(--step) - 12px);display:grid;place-items:center;width:var(--touch);height:var(--touch);border-radius:var(--radius-pill);color:var(--text-2);cursor:pointer;list-style:none}
.pt-toggle::-webkit-details-marker{display:none}
.pt-toggle:hover{background:var(--surface-2);color:var(--text)}
.pt-toggle .ic{transition:transform var(--duration-fast) var(--ease)}
.pt-kids:not([open])>.pt-toggle .ic{transform:rotate(-90deg)}
.pt-c{display:flex;flex-direction:column;gap:2px;min-width:0;font-variant-numeric:tabular-nums}
.pt-lab{font-size:var(--text-2xs);color:var(--text-2)}
.pt-status{display:none}
.pt-xl{display:none}
.ch-x span.minor{display:none}
@media (min-width:960px){.ch-x span.minor{display:inline}}
.pt-status .pt-lab{display:none}
.pt-c b{font-weight:var(--weight-semibold)}
.pt-wide{display:none}
.share{display:block;width:100%;max-width:120px;height:4px;margin-top:4px;background:var(--surface-2);border-radius:var(--radius-pill);overflow:hidden}
.share i{display:block;height:100%;border-radius:inherit;background:var(--chart)}
.pt-badges{display:inline-flex;flex-wrap:wrap;gap:var(--space-1)}
.badge-link{text-decoration:none}
.badge-link:hover{text-decoration:underline}
.pt-spark{display:inline-flex;align-items:center;margin-left:var(--space-2)}
.spark polyline{fill:none;stroke:var(--chart);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.pt-empty{margin:var(--space-2) var(--px)}
@media (min-width:600px){
  .pt-row{grid-template-columns:minmax(0,1fr) repeat(3,minmax(64px,96px));align-items:center;column-gap:var(--space-4);padding:var(--space-1) var(--px);min-height:52px}
  .pt-row--total{padding-top:var(--space-2);padding-bottom:var(--space-2)}
  .pt-name{grid-column:auto;padding-left:calc(var(--chev) + var(--d,0) * var(--step))}
  .pt-toggle{top:calc((52px - var(--touch)) / 2)}
  .pt-c{align-items:flex-end;text-align:right}
  .pt-c .share{margin-left:auto}
  .pt-list .pt-lab{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@media (min-width:960px){
  .tcard{padding-bottom:0;--step:var(--space-5)}
  .pt-sort,.pt-row{display:grid;grid-template-columns:minmax(180px,1fr) 96px 112px repeat(4,72px) 88px;column-gap:var(--space-2);align-items:center}
  .pt-sort{overflow:visible;padding:0 var(--px);border-bottom:1px solid var(--border-strong)}
  .pt-sort .pt-name,.pt-sort .pt-status,.pt-sort span.pt-h{display:flex}
  .pt-sort .pt-name{padding-left:var(--chev)}
  .pt-h{min-height:var(--control);padding:0;border-radius:0;background:transparent;font-size:var(--text-xs);color:var(--text-2);font-weight:var(--weight-medium)}
  .pt-h.is-on{background:transparent;color:var(--text);font-weight:var(--weight-semibold)}
  .pt-h.pt-n,.pt-h.pt-spend{justify-content:flex-end}
  a.pt-h:hover{color:var(--text);text-decoration:underline}
  .pt-row{padding-top:var(--space-1);padding-bottom:var(--space-1);padding-right:var(--px);min-height:52px}
  /* Toutes les cellules d'une ligne sur la même ligne de base (nom, statut, chiffres) ; la barre de part reste sous la dépense */
  .pt-list .pt-row,.pt-row--total{align-items:baseline}
  .pt-toggle{top:calc((52px - var(--touch)) / 2)}
  .pt-name,.pt-status{grid-column:auto}
  .pt-lab{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .pt-c{align-items:flex-end;text-align:right}
  .pt-c.pt-status{align-items:flex-start;justify-content:center;text-align:left}
  .pt-c.pt-spend{flex-direction:column}
  .pt-status,.pt-xl{display:flex}
  .pt-st-m{display:none}
  .pt-level{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .pt-name{column-gap:var(--space-2);row-gap:0}
  .pt-nm{padding:var(--space-2) 0}
  .pt-nm>a{padding:calc((var(--control) - 1.2em) / 2) 0}
  .pt-nm>.pt-cross{margin:calc((20px - var(--control)) / 2) 0 calc((20px - var(--control)) / 2) var(--space-1)}
  .pt-h{white-space:normal;text-align:right;line-height:1.25}
  .pt-wide{display:block}
  .pt>.pt-list>.pt-item:last-child{border-bottom-left-radius:var(--radius-2xl);border-bottom-right-radius:var(--radius-2xl)}
}
@media (min-width:1280px){.pt-sort,.pt-row{grid-template-columns:minmax(260px,1fr) 128px 128px 84px 84px 84px 84px 96px;column-gap:var(--space-3)}}
/* Aucun pixel relié : pas de colonne « Vues de page » (elle n'aurait que des tirets), les autres colonnes s'élargissent */
@media (min-width:960px){.tcard--nolpv .pt-sort,.tcard--nolpv .pt-row{grid-template-columns:minmax(180px,1fr) 96px 112px repeat(4,84px)}}
@media (min-width:1280px){.tcard--nolpv .pt-sort,.tcard--nolpv .pt-row{grid-template-columns:minmax(260px,1fr) 128px 128px 96px 96px 104px 104px}}
/* Fiche d'un objet : fil d'Ariane et grand titre, faits en ligne, période en piste, chiffres clés, puis des panneaux */
.crumbs{margin-bottom:var(--space-2);color:var(--text-2);overflow-wrap:anywhere}
.crumbs .link{font-weight:var(--weight-medium)}
.obj-facts{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-8);margin:calc(-1 * var(--space-2)) 0 var(--space-5);font-size:var(--text-sm)}
.obj-facts>div{min-width:0}
.obj-facts dt{font-size:var(--text-xs);color:var(--text-2)}
.obj-facts dd{margin:2px 0 0;font-weight:var(--weight-medium);overflow-wrap:anywhere}
.period-links{display:flex;gap:2px;margin-bottom:var(--space-5);padding:2px;background:var(--surface-2);border-radius:var(--radius-pill);width:max-content;max-width:100%}
.period-link{display:inline-flex;align-items:center;justify-content:center;min-width:var(--touch);min-height:var(--touch);padding:0 var(--space-4);border-radius:var(--radius-pill);color:var(--text-2);text-decoration:none;font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;transition:background var(--duration-fast) var(--ease),color var(--duration-fast)}
.period-link:hover{color:var(--text)}
.period-link.is-on{background:var(--raised);color:var(--text);font-weight:var(--weight-semibold);box-shadow:var(--shadow-1)}
@media (min-width:960px){.period-link{min-height:calc(var(--control) - 4px)}}
.obj-layout{display:grid;gap:var(--space-5)}
@media (min-width:1100px){.obj-layout{grid-template-columns:minmax(0,1fr) 380px;gap:var(--space-6);align-items:start}}
.obj-main,.obj-side{display:flex;flex-direction:column;gap:var(--space-5);min-width:0}
.obj-main>.chart-card{margin-bottom:0}
.obj-main>.chart-card>.block-empty{margin:0}
.obj-block{padding:var(--space-5);min-width:0}
@media (min-width:768px){.obj-block{padding:var(--space-6)}}
.obj-block>h2{margin-bottom:var(--space-4);font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:1.25}
.obj-block>.banner{margin-bottom:var(--space-3)}
.obj-block>p.small{max-width:72ch}
.kids{list-style:none;margin:0;padding:var(--space-1) 0}
.kids li+li{border-top:1px solid var(--border)}
.kid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px var(--space-3);padding:var(--space-3) var(--space-4);color:inherit;text-decoration:none;min-height:var(--touch);border-radius:var(--radius-lg);transition:background var(--duration-fast) var(--ease)}
.kid:hover{background:color-mix(in srgb,var(--surface-2) 55%,transparent)}
.kid-name{font-weight:var(--weight-medium);overflow-wrap:anywhere}
.kid:hover .kid-name{text-decoration:underline;text-underline-offset:3px}
.kid-fig{grid-column:1/-1;font-size:var(--text-sm);color:var(--text-2)}
.obj-block>.later-list{margin-top:0}
.changes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.changes li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--border);font-size:var(--text-sm)}
.changes li:first-child{border-top:0;padding-top:0}
.changes time{color:var(--text-2);font-size:var(--text-xs);padding-top:2px}
.changes b{font-weight:var(--weight-semibold)}
.changes span{min-width:0;overflow-wrap:anywhere}
.changes small{display:block;color:var(--text-2);font-size:var(--text-xs);margin-top:2px}
.creative,.obj-dl{display:grid;gap:var(--space-3);margin:0 0 var(--space-3);padding:var(--space-4)}
.creative dt,.obj-dl dt{font-size:var(--text-xs);color:var(--text-2)}
.creative dd,.obj-dl dd{margin:2px 0 0;overflow-wrap:anywhere}
@media (min-width:960px){.obj-dl{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* ---- Espace publicitaire, lot 3b : filtres actifs, graphique interactif, où part l'argent, entonnoir, pixel */
.pf-chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:calc(-1 * var(--space-3)) 0 var(--space-5)}
.chip{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch);padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-soft-text);font-size:var(--text-sm);font-weight:var(--weight-medium);text-decoration:none;max-width:100%}
.chip span:first-child{min-width:0;overflow-wrap:anywhere;padding:var(--space-1) 0}
.chip:hover{background:color-mix(in srgb,var(--accent) 14%,var(--accent-soft))}
.chip .ic{flex:none}
@media (min-width:960px){.chip{min-height:var(--control)}}
.pt-cross{display:inline-grid;place-items:center;width:var(--touch);height:var(--touch);border-radius:var(--radius-pill);color:var(--text-2);flex:none}
.pt-cross:hover{background:var(--surface-2);color:var(--accent)}
@media (min-width:960px){.pt-cross{width:var(--control);height:var(--control)}}
/* Barre d'outils : requête de conteneur (la fiche d'objet a une colonne plus étroite que Performance).
   Moins de 760 px : 2 rangées, d'abord les listes, puis Regrouper et la case ; les listes ne coupent jamais leur texte. */
.chx{margin-top:var(--space-1);container:chx/inline-size}
/* Repli « Options du graphique » (tracé de moins de 600 px) : une ligne, le résumé des réglages en petit, le chevron */
.chx-more{margin-bottom:var(--space-2)}
.chx-more-btn{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:var(--space-3);min-height:var(--touch);padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);background:var(--inset);cursor:pointer;list-style:none}
.chx-more-btn::-webkit-details-marker{display:none}
.chx-more-btn:hover{background:var(--surface-2)}
.chx-more-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.chx-more-t{font-size:var(--text-sm);font-weight:var(--weight-semibold)}
.chx-more-sum{grid-column:1;min-width:0;font-size:var(--text-xs);color:var(--text-2)}
.chx-more-sum:empty{display:none}
.chx-more-btn .ic{grid-column:2;grid-row:1/span 2;color:var(--text-2);transition:transform var(--duration-fast) var(--ease)}
.chx-more[open]>.chx-more-btn{margin-bottom:var(--space-3)}
.chx-more[open]>.chx-more-btn .ic{transform:rotate(180deg)}
@container chx (min-width:600px){.chx-more{margin-bottom:0}.chx-more>.chx-more-btn{display:none}}
/* Analyse détaillée (spec 029, RM-01) : le repli « Options du graphique » garde son titre à toutes les tailles */
@container chx (min-width:600px){[data-chx-fold] .chx-more{margin-bottom:var(--space-2)}[data-chx-fold] .chx-more>.chx-more-btn{display:grid}}
.chx-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3) var(--space-4);margin-bottom:var(--space-3)}
.chx-sels{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);flex:1 1 100%}
.chx-opts{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-2) var(--space-4)}
@container chx (min-width:480px){.chx-sels{display:flex;gap:var(--space-4)}.chx-sels .chx-field{min-width:max-content}}
@container chx (min-width:760px){.chx-sels{flex:none}}
.chx-field{display:flex;flex-direction:column;gap:4px;min-width:0;margin:0;padding:0;border:0}
.chx-field label,.chx-field legend{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-2);padding:0;margin-bottom:4px}
.chx-field .select{height:var(--touch);min-height:0}
.seg{display:flex;gap:2px;padding:2px;border-radius:var(--radius-pill);background:var(--surface-2);width:max-content;max-width:100%}
.seg-opt{position:relative;display:inline-flex}
.seg-opt input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.seg-opt span{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch);min-width:var(--touch);padding:0 var(--space-4);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-2);transition:background var(--duration-fast) var(--ease),color var(--duration-fast)}
.seg-opt input:checked+span{background:var(--raised);color:var(--text);font-weight:var(--weight-semibold);box-shadow:var(--shadow-1)}
.seg-opt:hover input:not(:checked)+span{color:var(--text)}
.seg-opt input:focus-visible+span{outline:2px solid var(--focus);outline-offset:1px}
/* Case « Période d'avant » : case dessinée de 20 px, la vraie case (transparente) couvre 44 × 44 px autour d'elle */
.chx-check{position:relative;display:inline-flex;align-items:flex-start;min-height:var(--touch);padding:var(--space-3) 0;font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer}
.chx-check>input{position:absolute;left:-12px;top:0;width:var(--touch);height:var(--touch);margin:0;opacity:0;z-index:1;cursor:pointer}
.chx-check>input+span{position:relative;display:block;padding-left:30px;min-width:0;line-height:20px}
.chx-check>input+span::before{content:"";position:absolute;left:0;top:0;width:20px;height:20px;box-sizing:border-box;border:1.5px solid var(--border-input);border-radius:var(--radius-xs);background:var(--surface);transition:background var(--duration-fast),border-color var(--duration-fast)}
.chx-check>input:checked+span::before{background:var(--accent);border-color:var(--accent)}
.chx-check>input:checked+span::after{content:"";position:absolute;left:7px;top:3px;width:6px;height:11px;box-sizing:border-box;border:solid var(--text-on-accent);border-width:0 2px 2px 0;transform:rotate(45deg)}
.chx-check>input:focus-visible+span::before{outline:2px solid var(--focus);outline-offset:2px}
.chx-check:hover>input:not(:disabled)+span::before{border-color:var(--border-strong)}
.chx-check.is-off{cursor:default;color:var(--text-2)}
.chx-check[hidden]{display:none}
.chx-check>input:disabled{cursor:default}
.chx-check>input:disabled+span::before{background:var(--surface-2);border-color:var(--border)}
.chx-check>input:disabled:checked+span::before{background:var(--text-3);border-color:var(--text-3)}
.chx-why{display:block;font-size:var(--text-xs);color:var(--text-2);max-width:40ch}
@media (min-width:960px){
  .chx-field .select{height:var(--control)}
  .seg-opt span{min-height:calc(var(--control) - 4px)}
  .chx-check{min-height:var(--control);padding:var(--space-2) 0}
  .chx-check>input{top:calc(var(--space-2) - 12px)}
}
/* Légende : une rangée qui défile de côté au téléphone (fondu à droite), sur une ou deux rangées au-delà */
.chx-legend{display:flex;flex-wrap:nowrap;gap:0 var(--space-1);margin:0 calc(-1 * var(--space-3)) var(--space-1);padding-right:var(--space-6);overflow-x:auto;scrollbar-width:none;
  -webkit-mask-image:linear-gradient(to right,black calc(100% - var(--space-8)),transparent);mask-image:linear-gradient(to right,black calc(100% - var(--space-8)),transparent)} /* taste-skill-ignore : masque de défilement, pas un dégradé de couleur */
.chx-legend::-webkit-scrollbar{display:none}
.chx-legend .chx-key{flex:none;white-space:nowrap}
@container chx (min-width:600px){.chx-legend{flex-wrap:wrap;gap:var(--space-1) var(--space-2);margin:0 0 var(--space-2);padding-right:0;overflow:visible;-webkit-mask-image:none;mask-image:none}.chx-legend .chx-key{white-space:normal}}
.chx-key{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch);padding:0 var(--space-3);text-align:left;border:0;border-radius:var(--radius-pill);background:none;color:var(--text);font:inherit;font-size:var(--text-xs);cursor:pointer}
.chx-key:hover{background:var(--surface-2)}
.chx-key[aria-pressed=false]{color:var(--text-3);text-decoration:line-through}
.chx-key[aria-pressed=false] .chx-sw{opacity:.35}
@media (min-width:960px){.chx-key{min-height:var(--control)}}
.chx-sw{display:inline-block;flex:none;width:14px;height:10px;border-radius:2px}
.chx-sw--bar{background:var(--chart)}
.chx-sw--line{height:2px;border-radius:1px;background:var(--text)}
.chx-sw--dash-chart{height:0;border-top:2px dashed var(--chart)}
.chx-sw--dash-ink{height:0;border-top:2px dotted var(--text-2)}
.chx-plot{position:relative;min-height:296px;border-radius:var(--radius-sm)}
@container chx (min-width:600px){.chx-plot{min-height:220px}}
@media (min-width:960px){.chx-plot{min-height:260px}}
.chx-plot:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
.chx .uplot,.chx .uplot *{box-sizing:border-box}
.chx .uplot{font-family:inherit;line-height:1.5;width:100%}
.chx .u-wrap{position:relative;user-select:none;touch-action:pan-y}
.chx .u-over,.chx .u-under{position:absolute}
.chx .u-under{overflow:hidden}
.chx .uplot canvas{display:block;position:relative;width:100%;height:100%}
.chx .u-axis{position:absolute}
.chx .u-select{position:absolute;pointer-events:none;background:var(--accent-soft);opacity:.7;border-left:1px solid var(--accent);border-right:1px solid var(--accent)}
.chx .u-cursor-x,.chx .u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}
.chx .u-hz .u-cursor-x{height:100%;border-right:1px dashed var(--text-2)}
.chx .u-cursor-y{display:none}
.chx .u-cursor-pt{display:none}
.chx .u-off,.chx .u-select.u-off,.chx .u-cursor-x.u-off{display:none}
.chx-tip{position:absolute;z-index:3;min-width:200px;max-width:min(300px,100%);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--raised);border:1px solid var(--border);box-shadow:var(--shadow-2);font-size:var(--text-xs);pointer-events:none}
.chx-tip-h{display:block;margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold)}
.chx-tip-dl{display:grid;gap:2px;margin:0}
.chx-tip-dl div{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--space-3)}
.chx-tip-dl dt{color:var(--text-2)}
.chx-tip-dl dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.chx-tip-d{grid-column:1/-1;color:var(--text-2);text-align:right}
.chx-tip-m{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border);color:var(--text-2)}
/* Téléphone : l'infobulle devient un bandeau fixe sous le graphique (aria-live), le tracé reste visible */
.chx-tip--band{position:static;min-width:0;max-width:none;min-height:calc(var(--touch) + var(--space-3));margin-top:var(--space-2);padding:var(--space-2) var(--space-4);box-shadow:none;background:var(--inset);border-color:transparent}
.chx-tip--band .chx-tip-dl{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-4);row-gap:var(--space-1)}
.chx-tip--band .chx-tip-d{text-align:left}
.chx-tip-idle{display:flex;align-items:center;min-height:calc(var(--touch) + var(--space-3) - 2 * var(--space-2));color:var(--text-2);font-size:var(--text-sm)}
.chx-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);margin-top:var(--space-3)}
.chx-help{max-width:44ch}
.chx-acts{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-left:auto}
.mix{margin-bottom:var(--space-5)}
.mix [data-mix-body]>p{margin:0 var(--px)}
.chx{position:relative}
.mix-list{list-style:none;margin:0;padding:0 var(--px) var(--space-2)}
.mix-list li+li{border-top:1px solid var(--border)}
.mix-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-1) var(--space-3);padding:var(--space-3) 0;min-height:var(--touch);color:inherit;text-decoration:none}
.mix-row:hover .mix-name{text-decoration:underline;text-underline-offset:3px}
.mix-row:hover .mix-track i{background:var(--accent-hover)}
.mix-name{font-weight:var(--weight-semibold)}
.mix-fig{font-weight:var(--weight-semibold);text-align:right}
.mix-track{grid-column:1/-1;display:block;height:10px;background:var(--surface-2);border-radius:var(--radius-pill);overflow:hidden}
.mix-track i{display:block;height:100%;border-radius:inherit;background:var(--chart)}
.mix-sub{grid-column:1/-1;font-size:var(--text-xs);color:var(--text-2)}
@media (min-width:960px){.mix-row{grid-template-columns:200px minmax(0,1fr) 110px 220px}.mix-track,.mix-sub{grid-column:auto}.mix-sub{text-align:right}}
.panel{--px:var(--space-5);padding:var(--space-5) 0}
@media (min-width:768px){.panel{--px:var(--space-6);padding:var(--space-6) 0}}
.panel>.tcard-head{padding:0 var(--px) var(--space-4)}
.panel>.block-empty,.panel>p,.panel>.fn-table,.panel>.fn-diag{margin-left:var(--px);margin-right:var(--px)}
.panel>p+p{margin-top:var(--space-2)}
.perf-panels{display:grid;gap:var(--space-4);margin-bottom:var(--space-5)}
@media (min-width:1100px){.perf-panels{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:stretch}}
.px-none{display:flex;gap:var(--space-3);align-items:center;margin:0 0 var(--space-5);padding:var(--space-3) var(--space-5);font-size:var(--text-sm);color:var(--text-2)}
@media (min-width:768px){.px-none{padding:var(--space-3) var(--space-6)}}
.px-none .ic{flex:none;margin-top:2px;color:var(--text-2)}
.px-none b{color:var(--text);font-weight:var(--weight-semibold)}
.px-none .link{display:inline-flex;align-items:center;min-height:var(--touch)}
.kpis-note{margin:calc(-1 * var(--space-3)) 0 var(--space-5);font-size:var(--text-sm);color:var(--text-2);max-width:72ch}
.fn-table{width:calc(100% - 2 * var(--px));border-collapse:collapse;font-size:var(--text-sm)}
.fn-table th{text-align:left;font-weight:var(--weight-medium);padding:var(--space-2) var(--space-3) var(--space-2) 0;white-space:nowrap}
.fn-table td{padding:var(--space-2) 0 var(--space-2) var(--space-3)}
.fn-table tr+tr{border-top:1px solid var(--border)}
.fn-bar{width:40%}
.fn-track{display:block;height:10px;background:var(--surface-2);border-radius:var(--radius-pill);overflow:hidden}
.fn-track i{display:block;height:100%;border-radius:inherit;background:var(--chart)}
.fn-row--drop th{color:var(--danger)}
.fn-rate{font-size:var(--text-xs);color:var(--text-2);white-space:nowrap}
.fn-diag{display:flex;gap:var(--space-2);margin-top:var(--space-3);font-size:var(--text-sm);color:var(--warning)}
.px-state{margin-bottom:var(--space-2)}
@media (max-width:599px){.fn-bar{display:none}.fn-table td:last-child{display:none}}
/* Historique */
/* Une seule hauteur de contrôle par rangée (dates, liste, bouton) : étiquettes alignées ; liste pleine largeur sur téléphone */
.hist-filters .input,.hist-filters .select,.hist-filters .pf-go .btn{height:var(--touch);min-height:0}
.hist-filters .pf-field--wide{grid-column:1/-1}
@media (min-width:960px){.hist-filters{grid-template-columns:repeat(2,minmax(0,170px)) minmax(0,320px) auto}.hist-filters .pf-field--wide{grid-column:auto}}
.hist-reset{margin:calc(-1 * var(--space-3)) 0 var(--space-4)}
.hist-layout{display:grid;gap:var(--space-5)}
@media (min-width:1280px){.hist-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}
.hist-block{--px:var(--space-5);padding:var(--space-5) 0 var(--space-2);min-width:0}
@media (min-width:768px){.hist-block{--px:var(--space-6);padding-top:var(--space-6)}}
.hist-block>.block-empty{margin:0 var(--px) var(--space-4)}
.hist-list,.hist-recos{list-style:none;margin:0;padding:0}
.hist-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:var(--space-1) var(--space-3);padding:var(--space-3) var(--px);border-top:1px solid var(--border);font-size:var(--text-sm)}
.hist-when{display:flex;flex-direction:column;color:var(--text-2);font-size:var(--text-xs)}
.hist-what{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
.hist-what b{font-weight:var(--weight-semibold)}
.hist-obj{display:inline-flex;align-items:center;min-height:var(--touch);font-weight:var(--weight-semibold);overflow-wrap:anywhere}
@media (min-width:960px){.hist-obj{min-height:28px}}
.hist-meta{color:var(--text-2);font-size:var(--text-xs)}
.hist-meta span{font-weight:var(--weight-semibold)}
.hist-detail{color:var(--text-2);font-size:var(--text-xs);overflow-wrap:anywhere}
.hist-src--sh{color:var(--accent)}.hist-src--am{color:var(--warning)}.hist-src--meta{color:var(--text)}
.hist-reco{padding:var(--space-4) var(--px);border-top:1px solid var(--border)}
.hist-reco-head{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--space-2)}
.hist-reco-title{color:var(--text);font-weight:var(--weight-semibold);text-decoration:none;line-height:var(--leading-snug);min-height:var(--touch);display:flex;align-items:center}
.hist-reco-title:hover{text-decoration:underline;text-underline-offset:3px}
.hist-dl{display:grid;gap:var(--space-1);margin:0;font-size:var(--text-sm)}
.hist-dl div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:var(--space-3)}
.hist-dl dt{color:var(--text-2);font-size:var(--text-xs);padding-top:2px}
.hist-dl dd{margin:0;overflow-wrap:anywhere}
.hist-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--px) var(--space-2);border-top:1px solid var(--border)}
/* Règles et réglages : événements en lecture */
.rules-rule{font-weight:var(--weight-medium);margin-bottom:var(--space-3)}
.rules-dl{margin-bottom:var(--space-3);padding:0;border:0;background:none;border-radius:0}
.rules-sub{font-size:var(--text-sm);font-weight:var(--weight-semibold);margin:var(--space-3) 0 var(--space-2)}
.rules-events{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}
.rules-events li{display:inline-flex;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--surface-2);font-size:var(--text-sm)}
.rules-claude{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border-left:2px solid var(--accent);border-radius:0 var(--radius-lg) var(--radius-lg) 0;background:var(--inset);font-size:var(--text-sm)}
/* Dans la carte du profil : « Événements reçus » et « Santé du pixel » en 2 colonnes égales (empilées sur téléphone) */
.rules-pair{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border)}
.rules-pair>*{min-width:0}
.rules-col{display:flex;flex-direction:column;padding:var(--space-3) var(--space-4)}
.rules-col .rules-sub{margin-top:0}
@media (min-width:768px){.rules-pair{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}}
.rules-table td,.rules-table th{font-size:var(--text-sm)}
/* Téléphone : rien ne défile de côté ; le nom de l'événement passe à la ligne, les chiffres restent entiers */
.rules-table tbody th{white-space:normal;overflow-wrap:anywhere}
.rules-table td.num,.rules-table th.num{white-space:nowrap}
@media (max-width:599px){.rules-table th,.rules-table td{padding-left:var(--space-2);padding-right:var(--space-2)}.rules-table :is(th,td):first-child{padding-left:0}.rules-table :is(th,td):last-child{padding-right:0}}
.rules-pixel{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm)}
/* ---------------------------------------------------------------- lot 4b — Créas (spec 012)
   Bibliothèque en grille (aperçu = l'accroche posée comme la pub : les images Meta sont hors CSP), fiche d'une créa,
   lecture d'un brief, scénarios de budget côte à côte dans Aujourd'hui. Téléphone : carte en ligne (aperçu 96 px). */
.creas-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-5);margin-bottom:var(--space-5);padding:var(--space-3) var(--space-5);font-size:var(--text-sm)}
@media (min-width:768px){.creas-strip{padding:var(--space-4) var(--space-6)}}
.creas-rule{margin:0;color:var(--text-2)}
.creas-tools{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3) var(--space-5);margin-bottom:var(--space-5)}
.creas-tools .period-links{margin-bottom:0}
.creas-filter{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3);margin:0}
.creas-filter .field{flex:1 1 11rem;min-width:min(100%,11rem)}
.creas-lib{margin-bottom:var(--space-8)}
.creas-note{margin-top:var(--space-3);max-width:70ch}
.crea-grid{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}
@media (min-width:640px){.crea-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}}
@media (min-width:1280px){.crea-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.crea{min-width:0;display:flex}
.crea-link{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;flex:1;overflow:hidden;color:inherit;text-decoration:none;transition:border-color var(--duration-fast) var(--ease)}
.crea-link:hover{border-color:var(--border-strong)}
.crea-link:hover .crea-face{background:color-mix(in srgb,var(--surface-2) 50%,var(--inset))}
.crea-link:hover .crea-title{text-decoration:underline;text-underline-offset:3px}
.crea-face{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-3);min-height:120px;padding:var(--space-4) var(--space-5);background:var(--inset);overflow:hidden;transition:background var(--duration-fast) var(--ease)}
@media (min-width:640px){.crea-face{min-height:0;aspect-ratio:2/1;padding:var(--space-4) var(--space-5)}}
.crea-face img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.crea-fmt{position:relative;display:inline-flex;align-items:center;gap:var(--space-1);align-self:flex-start;font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--text-2)}
.crea-face--img .crea-fmt{padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--surface);color:var(--text)}
/* Téléphone (une colonne) : l'accroche entière ; à partir de 640 px (cartes côte à côte, même hauteur) : 3 lignes au plus. */
.crea-hook{display:block;font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:-0.01em;color:var(--text);overflow-wrap:anywhere;text-wrap:balance}
@media (min-width:640px){.crea-hook{display:-webkit-box;font-size:var(--text-xl);-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}}
.crea-hook--none{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-2)}
.crea-face--big{aspect-ratio:auto;justify-content:flex-start;gap:var(--space-4);margin-bottom:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg)}
.crea-face--big .crea-hook{display:-webkit-box;-webkit-line-clamp:6;font-size:var(--text-xl)}
.crea-body{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;padding:var(--space-3) var(--space-4) var(--space-4)}
.crea-flags{display:flex;flex-wrap:wrap;gap:var(--space-1)}
.page-head .crea-flags{margin-top:var(--space-2)}
.crea-title{font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:var(--leading-snug);overflow-wrap:anywhere}
.crea-meta{font-size:var(--text-xs);color:var(--text-2)}
.crea-figs{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:var(--space-4);margin:auto 0 0;padding-top:var(--space-3);border-top:1px solid var(--border)}
.crea-figs dt{font-size:var(--text-xs);color:var(--text-2)}
.crea-figs dd{margin:2px 0 0;font-size:var(--text-lg);font-weight:var(--weight-medium)}
.crea-figs dd small{display:block;margin-top:2px;font-size:var(--text-xs);font-weight:var(--weight-regular);color:var(--text-2)}
.crea-figs .is-thin dd{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-2)}
.kpi-thin{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-2)}
.creas-lower{display:grid;gap:var(--space-6)}
@media (min-width:1100px){.creas-lower{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--space-8);align-items:start}}
.creas-side{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}
.obj-block h2 small{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-2)}
.brief-list{list-style:none;margin:0;padding:0}
.brief-item+.brief-item{border-top:1px solid var(--border)}
.brief-link{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:var(--touch);padding:var(--space-3) var(--space-4);color:inherit;text-decoration:none}
.brief-link b{font-weight:var(--weight-semibold);line-height:var(--leading-snug)}
.brief-link:hover b{text-decoration:underline;text-underline-offset:3px}
.brief-meta{font-size:var(--text-xs);color:var(--text-2)}
.brief-link .st{margin-top:var(--space-1)}
.brief-item--act{padding-bottom:var(--space-4)}
.brief-item--act>.btn{margin:0 var(--space-4)}
.lgroups,.life-list{list-style:none;margin:var(--space-3) 0 0;padding:0}
.lgroup,.life-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border)}
.lgroup-name b,.life-list b{font-weight:var(--weight-semibold)}
.lgroup-fig{font-size:var(--text-sm);text-align:right}
.lgroup-fig.is-thin{font-weight:var(--weight-medium);color:var(--text-2)}
.lgroup-sub,.life-list small{grid-column:1/-1;font-size:var(--text-xs);color:var(--text-2)}
.wear-sum{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-3)}
.wear-sum .st{font-size:var(--text-sm);font-weight:var(--weight-semibold)}
.wear-list{list-style:none;margin:0 0 var(--space-3);padding:0}
.wear-list li{display:grid;grid-template-columns:5rem minmax(0,1fr);gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--text-sm)}
.wear-list li+li{border-top:1px solid var(--border)}
.wear-list b{font-weight:var(--weight-medium);color:var(--text-2)}
.wear-list .is-on b{font-weight:var(--weight-semibold);color:var(--text)}
.wear-list small{display:block;margin-top:2px;font-size:var(--text-xs);color:var(--text-2)}
.wear-state{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-2)}
.wear-list .is-on .wear-state{color:var(--danger)}
.life-box{display:grid;gap:var(--space-2);padding:var(--space-4);font-size:var(--text-sm)}
.crea-texts dd{white-space:pre-line;overflow-wrap:anywhere}
.labs{list-style:none;margin:0 0 var(--space-3);padding:0}
.lab{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4)}
.lab+.lab{border-top:1px solid var(--border)}
.lab-text{display:flex;flex-direction:column;min-width:0}
.lab-dim,.lab-text small{font-size:var(--text-xs);color:var(--text-2)}
.lab-val{font-weight:var(--weight-semibold);overflow-wrap:anywhere}
.lab-state{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--success)}
.lab-acts{display:flex;gap:var(--space-1);margin:0}
.lab-all{margin:0 0 var(--space-3)}
.brief-main{gap:var(--space-5)}
.brief-sec h2{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-2);margin-bottom:var(--space-1)}
.brief-text{white-space:pre-line;max-width:68ch;overflow-wrap:anywhere}
.brief-hook{margin:0;padding:var(--space-5) var(--space-6);border-radius:var(--radius-xl);background:var(--surface);font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-semibold);line-height:1.25;letter-spacing:var(--tracking-title);text-wrap:balance;overflow-wrap:anywhere}
:root[data-theme=dark] .brief-hook{box-shadow:inset 0 0 0 1px var(--border)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .brief-hook{box-shadow:inset 0 0 0 1px var(--border)}}
.brief-pair{display:grid;gap:var(--space-5)}
@media (min-width:768px){.brief-pair{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Garder / tester : deux groupes « inset » dans le panneau du brief (jamais blanc sur blanc) */
.brief-pair .brief-sec{padding:var(--space-4) var(--space-5);background:var(--inset);border-radius:var(--radius-lg)}
.brief-done{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3)}
.reco-decide .btn--primary{align-self:flex-start}
/* Budget d'une recommandation : baisse au clic, hausse avec montant recopié ; scénarios côte à côte. */
.decision-acts--budget{flex-direction:column;align-items:stretch}
.budget-form{margin:0;padding:0;border:0;align-items:stretch}
.budget-form>.btn{align-self:flex-start}
.reco-decide .budget-form{padding-top:var(--space-4);margin-top:var(--space-4);border-top:1px solid var(--border)}
.scen{min-width:0;margin:0;padding:0;border:0}
.scen legend{margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold)}
.scen legend small{font-size:var(--text-sm);font-weight:var(--weight-regular);color:var(--text-2)}
.scen-grid{display:grid;gap:var(--space-2)}
@media (min-width:600px){.scen-grid{grid-template-columns:repeat(auto-fit,minmax(176px,1fr))}}
.reco-side .scen-grid{grid-template-columns:minmax(0,1fr)}
.scen-opt{position:relative;display:flex;cursor:pointer}
.scen-opt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.scen-body{position:relative;display:flex;flex-direction:column;gap:var(--space-2);flex:1;padding:var(--space-3) var(--space-3) var(--space-3) calc(var(--space-3) + 26px);border:1px solid transparent;border-radius:var(--radius-lg);background:var(--inset);transition:border-color var(--duration-fast) var(--ease),background var(--duration-fast) var(--ease)}
.scen-body::before{content:"";position:absolute;left:var(--space-3);top:calc(var(--space-3) + 2px);width:16px;height:16px;border:1.5px solid var(--border-input);border-radius:50%;background:var(--surface);box-sizing:border-box}
.scen-opt:hover .scen-body{border-color:var(--border-strong)}
.scen-opt input:checked+.scen-body{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--surface)}
.scen-opt input:checked+.scen-body::before{border:5px solid var(--accent)}
.scen-opt input:focus-visible+.scen-body{outline:2px solid var(--focus);outline-offset:2px}
.scen-name{font-size:var(--text-md);font-weight:var(--weight-semibold)}
.scen-name small{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-2)}
.scen-rows{list-style:none;margin:0;padding:0;display:grid;gap:2px;font-size:var(--text-xs)}
.scen-rows li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 var(--space-2);color:var(--text-2)}
.scen-rows b{font-weight:var(--weight-medium);color:var(--text);white-space:nowrap}
.scen-effect{font-size:var(--text-xs);color:var(--text-2)}
.scen-copy{margin-top:auto;padding-top:var(--space-1);font-size:var(--text-xs)}
.scen-one{padding:var(--space-3)}

.budget-form .cap-gauge{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--inset)}
.brief-item--act>.btn,.reco-decide .btn{white-space:normal;line-height:var(--leading-snug);padding-top:var(--space-2);padding-bottom:var(--space-2);text-align:left}
.decision-more{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4)}
/* ---------------------------------------------------------------- lot 4b — Règles et Historique (spec 012)
   Règles et réglages : interrupteur des automatisations sous le titre, liste des règles (mode en mot + teinte), journal,
   modèles à copier, formulaire sans JavaScript (5 lignes de conditions : cartes sur téléphone, colonnes alignées dès
   720 px de formulaire), profil d'événements. Historique : attendu / observé J+3 et J+7, tableau des règles. */
.auto-switch{display:flex;flex-direction:column;gap:var(--space-3);margin:0 0 var(--space-6);padding:var(--space-5)}
@media (min-width:768px){.auto-switch{padding:var(--space-5) var(--space-6)}}
.auto-switch--off{background:var(--warning-soft);border-color:color-mix(in srgb,var(--warning) 30%,transparent)}
.auto-switch-text{display:grid;gap:var(--space-1);min-width:0}
.auto-switch-title{font-size:var(--text-md);margin:0}
.auto-switch-title .st{font-size:var(--text-md);font-weight:var(--weight-semibold);white-space:normal}
.auto-switch-text p{font-size:var(--text-sm);color:var(--text-2);max-width:72ch}
.auto-switch--off .auto-switch-text p{color:var(--text)}
.auto-switch-form{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4)}
.auto-switch-form .btn{white-space:normal;text-align:left}
@media (min-width:960px){.auto-switch{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--space-6)}.auto-switch-form{flex:none;justify-content:flex-end;max-width:52%}}
.rl-card .card-head{flex-wrap:wrap}
.rl-list,.rl-journal,.tp-list{list-style:none;margin:0;padding:0}
.rl-item{display:grid;gap:var(--space-2);padding:var(--space-4) 0;border-top:1px solid var(--border)}
.rl-item:first-child{border-top:0;padding-top:0}
.rl-item:last-child{padding-bottom:0}
.rl-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3)}
.rl-name{font-size:var(--text-md);font-weight:var(--weight-semibold);overflow-wrap:anywhere;min-width:0}
.rl-tags{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}
.rl-scope{font-size:var(--text-xs);color:var(--text-2);font-weight:var(--weight-medium)}
.rl-sentence{font-size:var(--text-sm);max-width:72ch;overflow-wrap:anywhere}
.rl-last{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-1) var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);overflow-wrap:anywhere}
.rl-last>span:last-child{min-width:0;flex:1 1 16rem}
.rl-last--none{color:var(--text-2)}
.rl-acts{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-2);margin-top:var(--space-1)}
.rl-form{display:contents}
.rl-auto{min-width:0;scroll-margin-top:calc(var(--sticky-top,0px) + var(--touch) + var(--space-8))}
.rl-auto[open]{flex-basis:100%;display:grid;gap:var(--space-3);justify-items:start}
.rl-auto>summary{list-style:none}
.rl-auto>summary::-webkit-details-marker{display:none}
.rl-auto[open]>summary{background:var(--surface-3)}
.rl-auto-form{justify-self:stretch;display:grid;gap:var(--space-3);padding:var(--space-4);border-left:3px solid var(--warning);border-radius:0 var(--radius-lg) var(--radius-lg) 0;background:var(--inset);font-size:var(--text-sm)}
.rl-auto-form p{max-width:72ch}
.rl-auto-form .btn{justify-self:start;white-space:normal;text-align:left}
.rl-auto-warn{display:flex;gap:var(--space-2);align-items:flex-start;font-weight:var(--weight-medium)}
.rl-auto-warn .ic{flex:none;margin-top:2px;color:var(--warning)}
.rl-run{display:grid;grid-template-columns:72px minmax(0,1fr);gap:var(--space-1) var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--border);font-size:var(--text-sm)}
.rl-run:first-child{border-top:0;padding-top:0}
.rl-run-when{display:flex;flex-direction:column;color:var(--text-2);font-size:var(--text-xs)}.rl-run-when small{font-size:var(--text-xs)}
.rl-run-what{display:grid;gap:2px;min-width:0}
.rl-run-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2)}
.rl-run-head b{font-weight:var(--weight-semibold);overflow-wrap:anywhere}
.rl-run-detail{color:var(--text-2);overflow-wrap:anywhere}
/* Spec 024 : mode d'une règle (piste segmentée, « Changer le mode » après un changement), période d'essai, plafond. */
.badge--ombre{background:var(--surface-3);color:var(--text)}
.rl-mode{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);flex:1 1 100%;min-width:0;margin:0}
.rl-mode .seg{width:100%;max-width:22rem}
@media (min-width:768px){.rl-mode .seg{width:19rem}}
@supports selector(:has(*)){
  .rl-mode .rl-mode-go{display:none}
  .rl-mode:has(input[name=mode]:checked:not(:default)) .rl-mode-go{display:inline-flex}
}
@media (min-width:1024px){.rl-mode{flex:0 1 auto}}
/* Règles organiques : le mode sur sa ligne, puis les liens alignés sur le bord gauche (même rangée pour chaque règle). */
.rl-acts--stack>.rl-mode{flex:1 1 100%}
.rl-links{display:flex;flex-wrap:wrap;gap:var(--space-2);flex:1 1 100%;min-width:0;margin-left:calc(-1 * var(--space-3))}
.rl-sim{display:contents}
.rl-capped{display:flex;gap:var(--space-2);align-items:flex-start;padding:var(--space-2) var(--space-3);border-left:3px solid var(--warning);border-radius:0 var(--radius-md) var(--radius-md) 0;background:var(--warning-soft);font-size:var(--text-sm)}
.rl-capped>.ic{flex:none;margin-top:2px}
.rl-trial{display:grid;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--inset)}
.rl-trial-head{font-size:var(--text-sm);font-weight:var(--weight-semibold)}
.rl-steps{list-style:none;margin:0;padding:0;display:grid;gap:0 var(--space-6)}
@media (min-width:900px){.rl-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
.rl-step{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-3);min-height:var(--touch);font-size:var(--text-sm)}
.rl-dot{flex:none;display:grid;place-items:center;width:20px;height:20px;box-sizing:border-box;border:1.5px solid var(--border-input);border-radius:50%;background:var(--surface)}
.rl-step--done .rl-dot{border-color:var(--success);background:var(--success);color:var(--surface)}
.rl-step-text{display:flex;flex-wrap:wrap;gap:0 var(--space-2);flex:0 1 auto;min-width:0}
.rl-step-text b{font-weight:var(--weight-semibold)}
.rl-step-state{color:var(--text-2)}
.rl-bar{display:inline-grid;grid-template-columns:repeat(7,10px);gap:3px}
.rl-bar i{height:6px;border-radius:var(--radius-pill);background:var(--surface-3)}
.rl-bar i.on{background:var(--chart)}
.rl-trial-end{display:flex;gap:var(--space-2);align-items:flex-start;padding-top:var(--space-2);border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--text-2)}
.rl-trial-end>.ic{flex:none;margin-top:2px}
.rl-trial>.rl-auto{padding-top:var(--space-2);border-top:1px solid var(--border)}
.rl-trial .rl-auto-form{background:var(--surface)}
/* Spec 024 : pistes de Pilote → Règles (Pubs · Posts organiques, puis le réseau). */
.pr-views{margin:0 0 var(--space-5)}
@media (min-width:960px){.pr-views a{min-height:var(--control)}}
@media (min-width:1024px){.pr-views{margin-bottom:var(--space-6)}}
.pr-bar{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-5)}
/* Réseau (Instagram, TikTok) : onglets soulignés, plus discrets que la piste Pubs · Posts organiques au-dessus. */
.pr-nets{display:flex;flex:1 1 100%;gap:var(--space-1);max-width:100%;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}
.pr-nets::-webkit-scrollbar{display:none}
.pr-nets a{position:relative;display:inline-flex;align-items:center;min-height:var(--touch);padding:0 var(--space-3);color:var(--text-2);font-size:var(--text-sm);font-weight:var(--weight-medium);text-decoration:none;white-space:nowrap}
.pr-nets a:hover{color:var(--text)}
.pr-nets a[aria-current=page]{color:var(--text);font-weight:var(--weight-semibold)}
.pr-nets a[aria-current=page]::after{content:"";position:absolute;left:var(--space-3);right:var(--space-3);bottom:-1px;height:2px;border-radius:2px;background:var(--accent)}
.pr-nets a:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;border-radius:var(--radius-sm)}
.pr-nets .pr-count{background:var(--surface-2)}
.pr-count{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:var(--space-2);padding:0 6px;border-radius:var(--radius-pill);background:var(--surface-3);font-size:var(--text-xs);color:var(--text-2)}
.tabs a[aria-current] .pr-count,.pr-nets a[aria-current] .pr-count{background:var(--inset);color:var(--text)}
.tp{min-width:0}
.tp-sum{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-3);min-height:56px;padding:var(--space-2) var(--space-4);border:0;border-radius:var(--radius-lg);background:var(--inset);cursor:pointer}
.tp-sum::-webkit-details-marker{display:none}
.tp-sum:hover{background:color-mix(in srgb,var(--surface-2) 55%,var(--inset))}
.tp-sum-title{font-weight:var(--weight-semibold)}
.tp-sum>.ic{margin-left:auto;color:var(--text-2);transition:transform var(--duration) var(--ease)}
.tp[open]>.tp-sum>.ic{transform:rotate(180deg)}
.tp[open]>.tp-sum{border-bottom-left-radius:0;border-bottom-right-radius:0}
.tp-list{border-radius:0 0 var(--radius-lg) var(--radius-lg);background:var(--inset);padding:0 var(--space-4)}
.tp[open]>.tp-sum{border-bottom:1px solid var(--border)}
.tp-item{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) 0;border-top:1px solid var(--border)}
.tp-item:first-child{border-top:0}
.tp-text{display:grid;gap:2px;min-width:0}
.tp-text b{font-weight:var(--weight-semibold)}
.tp-copy{align-self:flex-start}
.tp-copy[aria-current]{background:var(--accent-soft);color:var(--accent-soft-text);border-color:transparent}
@media (min-width:640px){.tp-item{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--space-4)}.tp-copy{align-self:center;flex:none}}
.rb-lede{margin-bottom:var(--space-4);max-width:72ch}
.rb-banner{margin-bottom:var(--space-5)}
.rb-form,.prf-form{display:grid;gap:var(--space-6)}
.rb-block{display:grid;gap:var(--space-3);min-width:0;margin:0;padding:0;border:0}
.rb-block[aria-invalid=true]>legend{float:left;width:100%}
.rb-block[aria-invalid=true]{padding:var(--space-4) var(--space-3) var(--space-3);border-left:2px solid var(--danger);background:var(--danger-soft);border-radius:0 var(--radius-md) var(--radius-md) 0}
.rb-title{display:flex;align-items:center;gap:var(--space-2);padding:0;margin-bottom:var(--space-3);font-size:var(--text-md);font-weight:var(--weight-semibold)}
.rb-req{font-size:var(--text-2xs);font-weight:var(--weight-semibold);padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--surface-3);color:var(--text-2)}
.rb-error{display:flex;align-items:flex-start;gap:var(--space-1);margin:0;font-size:var(--text-sm)}
.rb-error .ic{flex:none;margin-top:2px}
.rb-combine{display:flex;flex-wrap:wrap;gap:0 var(--space-5)}
.rb-conds{display:grid;gap:var(--space-2);container-type:inline-size}
/* Spec 024 : constructeur en phrase. Chaque condition est une phrase de champs qui passe à la ligne (« Si [mesure]
   [est supérieur à] [valeur €] [en valeur] [sur 7 jours] »), libellé court au-dessus de chaque champ ; groupe inset. */
.rb-phrase{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-2) var(--space-3);min-width:0}
.rb-cond.rb-phrase{margin:0;padding:var(--space-3);border:0;border-radius:var(--radius-lg);background:var(--inset)}
@media (min-width:768px){.rb-cond.rb-phrase{padding:var(--space-4)}}
.rb-cond-legend{float:left;width:100%;padding:0;margin-bottom:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-2)}
.rb-conds>.rb-cond:first-child>.rb-cond-legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rb-word{flex:none;display:inline-flex;align-items:center;min-height:var(--touch);font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text)}
@media (min-width:960px){.rb-word{min-height:var(--control)}}
.rb-phrase>.field{min-width:0;margin:0}
.rb-phrase .field label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-2)}
.rb-c-metric{flex:1 1 15rem}
.rb-c-op{flex:1 1 9.5rem}
.rb-c-val{flex:1 1 7.5rem;max-width:12rem}
.rb-c-cmp{flex:1 1 12rem;max-width:20rem}
.rb-c-win{flex:1 1 9rem;max-width:14rem}
.rb-c-reset{flex:1 1 8rem;max-width:12rem}
.rb-c-confirm{flex:0 1 14rem}
.rb-c-age{flex:0 1 9rem}
/* Téléphone : les menus de la condition prennent toute la ligne (aucun choix coupé, « est supérieur à » en entier). */
@media (max-width:479px){.rb-c-op,.rb-c-cmp,.rb-c-win,.rb-c-confirm{flex:1 1 100%;max-width:none}}
.rb-after{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-2) var(--space-3);flex:1 1 100%;min-width:0;padding-top:var(--space-2);border-top:1px solid var(--border)}
.rb-unit-wrap{display:flex;align-items:center;gap:var(--space-2);min-width:0}
.rb-unit-wrap>.input{flex:1 1 auto;min-width:0}
.rb-unit{flex:none;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-2)}
.rb-unit:empty{display:none}
.rb-reset{flex:1 1 100%;min-width:0}
.rb-reset>summary{list-style:none;display:flex;align-items:center;min-height:var(--touch);cursor:pointer;font-weight:var(--weight-semibold);font-size:var(--text-sm)}
.rb-reset>summary::-webkit-details-marker{display:none}
.rb-reset>summary:hover{color:var(--accent)}
.rb-reset[open] .rb-more-head .ic{transform:rotate(180deg)}
.rb-reset-body{display:grid;gap:var(--space-2);padding-bottom:var(--space-2)}
.rb-reset-body .rb-c-reset{max-width:14rem}
.rb-reset-body .hint{max-width:64ch;margin:0}
.rb-level{max-width:22rem}
.scen-opt--off{cursor:not-allowed}
.scen-opt--off .scen-body{background:transparent;border:1px dashed var(--border-strong);color:var(--text-2)}
.scen-opt--off .scen-name{color:var(--text-2)}
.scen-opt--off .scen-body::before{border-style:dashed}
.scen-opt--off:hover .scen-body{border-color:var(--border-strong)}
.rb-pct{max-width:22rem}
.rb-pct .input{max-width:7rem}
/* Le pourcentage de baisse ne se montre qu'avec « Réduire le budget » (CSS seul ; sans :has, il reste visible). */
.rb-form:has(input[name=action][value=reduce_budget]:not(:checked)) .rb-pct{display:none}
.rb-submit{flex-wrap:wrap}
@media (max-width:599px){.rb-submit>.btn{flex:1 1 100%;justify-content:center}}
/* Résultat de « Voir ce qu'elle aurait fait sur 30 jours » : un groupe inset au-dessus du formulaire. */
.sim{display:grid;gap:var(--space-3);margin:0 0 var(--space-6);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--inset);scroll-margin-top:calc(var(--sticky-top,0px) + var(--space-8))}
@media (min-width:768px){.sim{padding:var(--space-5) var(--space-6)}}
.sim:focus,.sim:focus-visible{outline:none}
.sim>*{margin:0}
.sim-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-display);text-wrap:balance}
.sim-facts{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-8);margin:0}
.sim-fact{display:flex;flex-direction:column-reverse;gap:2px}
.sim-fact dt{font-size:var(--text-xs);color:var(--text-2)}
.sim-fact dd{margin:0;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-regular);line-height:1.1}
.sim-lines{list-style:none;margin:0;padding:0}
.sim-lines li{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:var(--space-3);padding:var(--space-2) 0;border-top:1px solid var(--border);font-size:var(--text-sm);overflow-wrap:anywhere}
.sim-lines li:first-child{border-top:0;padding-top:0}
.sim-date{color:var(--text-2);white-space:nowrap}
.sim-when{color:var(--text-2)}
.sim-sub{font-size:var(--text-sm);font-weight:var(--weight-semibold);margin-bottom:var(--space-2)}
.sim-lines--today li{grid-template-columns:minmax(0,1fr)}
.sim-none{font-size:var(--text-sm);max-width:72ch}
.sim-today{min-width:0}
.sim-note{max-width:72ch}
/* Cases et boutons radio du lot : la cible touchable fait 44 px (le contrôle natif, transparent, couvre la marque
   dessinée de 20 px) ; même rendu que .check, accent du thème quand c'est coché. */
:is(.rb-form,.prf-form,.auto-switch-form,.rl-auto-form,#automatisations,.budget-form,.tm-card) .check{position:relative;align-items:center}
:is(.rb-form,.prf-form,.auto-switch-form,.rl-auto-form,#automatisations,.budget-form,.tm-card) .check input{position:absolute;left:-12px;top:50%;width:44px;height:44px;margin:-22px 0 0;opacity:0;z-index:1;cursor:pointer}
:is(.rb-form,.prf-form,.auto-switch-form,.rl-auto-form,#automatisations,.budget-form,.tm-card) .check input+span{display:flex;align-items:flex-start;gap:var(--space-3);padding-left:0}
:is(.rb-form,.prf-form,.auto-switch-form,.rl-auto-form,#automatisations,.budget-form,.tm-card) .check input+span>.scen-say{flex:1 1 auto;min-width:0}
:is(.rb-form,.prf-form,.auto-switch-form,.rl-auto-form,#automatisations,.budget-form,.tm-card) .check input+span::before{position:static}
:is(.rb-form,.prf-form,.auto-switch-form,.rl-auto-form,#automatisations,.budget-form,.tm-card) .check input+span::before{content:"";flex:none;width:20px;height:20px;margin-top:1px;box-sizing:border-box;border:1.5px solid var(--border-input);border-radius:var(--radius-xs);background:var(--surface);display:grid;place-items:center;font-size:var(--text-sm);line-height:1;color:var(--text-on-accent)}
:is(.rb-form,.prf-form,.auto-switch-form,.rl-auto-form,#automatisations,.budget-form,.tm-card) .check input[type=radio]+span::before{border-radius:50%}
:is(.rb-form,.prf-form,.auto-switch-form,.rl-auto-form,#automatisations,.budget-form,.tm-card) .check input[type=checkbox]:checked+span::before{background:var(--accent);border-color:var(--accent)}
:is(.rb-form,.prf-form,.auto-switch-form,.rl-auto-form,#automatisations,.budget-form,.tm-card) .check input+span{position:relative}
:is(.rb-form,.prf-form,.auto-switch-form,.rl-auto-form,#automatisations,.budget-form,.tm-card) .check input[type=checkbox]:checked+span::after{content:"";position:absolute;left:7px;top:4px;width:6px;height:11px;box-sizing:border-box;border:solid var(--text-on-accent);border-width:0 2px 2px 0;transform:rotate(45deg)}
:is(.rb-form,.prf-form,.auto-switch-form,.rl-auto-form,#automatisations,.budget-form,.tm-card) .check input[type=radio]:checked+span::before{border:6px solid var(--accent)}
:is(.rb-form,.prf-form,.auto-switch-form,.rl-auto-form,#automatisations,.budget-form,.tm-card) .check input:focus-visible+span::before{outline:2px solid var(--focus);outline-offset:2px}
:is(.rb-form,.prf-form,.auto-switch-form,.rl-auto-form,#automatisations,.budget-form,.tm-card) .check:hover input+span::before{border-color:var(--border-strong)}
.rb-hint{margin:0}
.rb-conds-more>summary{list-style:none;display:flex;align-items:center;min-height:var(--touch);cursor:pointer;font-weight:var(--weight-semibold);font-size:var(--text-sm)}
.rb-conds-more>summary::-webkit-details-marker{display:none}
.rb-conds-more>summary:hover{color:var(--accent)}
.rb-conds-more[open] .rb-more-head .ic{transform:rotate(180deg)}
.rb-conds-more>.rb-conds{container-type:normal}
.rb-actions .scen-body,.rb-modes .scen-body,.prf-modes .scen-body{height:100%}
.rb-more>summary{list-style:none;display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:var(--touch);cursor:pointer;font-weight:var(--weight-semibold)}
.rb-more>summary::-webkit-details-marker{display:none}
.rb-more-head{display:inline-flex;align-items:center;gap:var(--space-2)}
.rb-more-head .muted{font-weight:var(--weight-regular)}
.rb-more-head .ic{color:var(--text-2);transition:transform var(--duration) var(--ease)}
.rb-more[open] .rb-more-head .ic{transform:rotate(180deg)}
.rb-more-sum{font-weight:var(--weight-regular);font-size:var(--text-xs)}
.rb-more>summary:hover{color:var(--accent)}
.rb-more[open]>summary{margin-bottom:var(--space-3)}
.rb-more-body{display:grid;gap:var(--space-4)}
.rb-limits{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3)}
.rb-group{min-width:0;margin:0;padding:0;border:0}
.rb-group>legend{margin-bottom:var(--space-1)}
.rb-group>legend .muted{font-weight:var(--weight-regular)}
.rb-checks{display:grid;gap:0 var(--space-4)}
@media (min-width:640px){.rb-checks{grid-template-columns:repeat(2,minmax(0,1fr))}.rb-checks--2{grid-template-columns:repeat(3,minmax(0,1fr))}}
.rb-checks .check span{overflow-wrap:anywhere}
.rb-submit{justify-content:flex-end;padding-top:var(--space-4);border-top:1px solid var(--border)}
.prf-now{display:grid;gap:2px;margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);overflow-wrap:anywhere}
.prf-modes{grid-template-columns:minmax(0,1fr)}
@media (min-width:600px){.prf-modes{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}
.prf-evs{display:grid;gap:var(--space-2)}
.prf-ev{display:grid;grid-template-columns:minmax(0,1fr) 88px;gap:var(--space-3)}
.prf-ev+.prf-ev label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Sans JavaScript : la liste des événements disparaît pour « Résultat Meta », la colonne Poids hors « Somme pondérée » (CSS seul, repli : tout reste visible). */
.prf-form:has(input[name=profil_mode][value=meta_result]:checked) .prf-evs-block{display:none}
.prf-form:not(:has(input[name=profil_mode][value=weighted]:checked)) .prf-w{display:none}
.prf-form:not(:has(input[name=profil_mode][value=weighted]:checked)) .prf-ev{grid-template-columns:minmax(0,1fr)}
.prf-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4)}
.prf-anchor{scroll-margin-top:calc(var(--touch) + var(--space-4))}
.prf-form+.rules-claude{margin-top:var(--space-5)}
.rules-pair--flat{margin-top:0;padding-top:0;border-top:0}
.hist-obs-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-1)}
.hist-obs-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px var(--space-2)}
.hist-j{min-width:2.25rem;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-2)}
.hist-obs{flex:1 1 14rem;min-width:0}
.hist-block--board{grid-column:1/-1}
.hist-block--board>.block-empty{margin:0 var(--px) var(--space-4)}
.hist-waiting{padding:var(--space-3) var(--px) var(--space-2);border-top:1px solid var(--border)}
.hist-board th[scope=row]{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text);white-space:normal}
.hist-board td{vertical-align:top}
.hist-board th{vertical-align:top}
.hist-sub{display:block;margin-top:2px;font-size:var(--text-xs);color:var(--text-2);white-space:normal}
@media (max-width:767px){
  .hist-board-wrap{overflow:visible}
  .hist-board thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .hist-board,.hist-board tbody,.hist-board tr{display:block}
  .hist-board tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border)}
  .hist-board th[scope=row]{grid-column:1/-1;padding:0;border:0}
  .hist-board td{display:block;padding:0;border:0;text-align:left!important}
  .hist-board td::before{content:attr(data-label);display:block;font-size:var(--text-xs);color:var(--text-2)}
}
/* ---------------------------------------------------------------- lot 4b — corrections après critique (spec 012)
   Écran des règles plus court sur téléphone (formulaire et sections secondaires repliés), créas plus calmes (aperçu
   de 120 px, le coût par résultat domine), brief utilisable sans défiler, transfert de budget confirmé comme tel. */
.fold--keep[open]>summary{border-radius:var(--radius-lg);border-bottom-color:var(--border)}
@media (min-width:960px){.fold--keep[open]>summary{display:flex}}
.rb-fold>.fold-body{padding-top:var(--space-3)}
.rb-fold-in{display:grid;gap:var(--space-3);min-width:0}
.rb-fold-in>.card{margin:0}
.rb-fold>summary{flex-wrap:wrap;row-gap:0}
.rb-fold>summary .fold-title{flex:0 1 auto;min-width:0;overflow-wrap:anywhere}
.rb-fold .fold-meta{flex:1 1 16rem;white-space:normal}
.rb-fold .rb-card>.card-head{display:none} /* le titre du formulaire est déjà celui du bloc replié */
.brief-decide .btn+.small{margin-top:var(--space-3)}
@media (max-width:959px){
  .settings-section--fold{gap:0;padding:var(--space-2) 0;border-top:0}
  .settings-section--fold .settings-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .settings-section--fold .settings-label *{text-wrap:nowrap}
  .settings-section:not(.settings-section--fold)+.settings-section--fold{margin-top:var(--space-2);padding-top:var(--space-5);border-top:1px solid var(--border)}
}
.table tbody th[scope=row]{border-bottom-color:var(--border)}
.table tbody tr:last-child>th{border-bottom:0}
@media (min-width:600px){.prf-modes{grid-template-columns:repeat(6,minmax(0,1fr))}.prf-modes>*{grid-column:span 2}.prf-modes>:nth-child(n+4){grid-column:span 3}}
.budget-acts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4)}
.scen-copy b{font-size:var(--text-md);font-weight:var(--weight-bold);white-space:nowrap}
.scen-say:not([data-scen="0"]){display:none}
.budget-form:has(input[name=scenario][value="1"]:checked) .scen-say[data-scen="0"]{display:none}.budget-form:has(input[name=scenario][value="1"]:checked) .scen-say[data-scen="1"]{display:inline}
.budget-form:has(input[name=scenario][value="2"]:checked) .scen-say[data-scen="0"]{display:none}.budget-form:has(input[name=scenario][value="2"]:checked) .scen-say[data-scen="2"]{display:inline}
.budget-form:has(input[name=scenario][value="3"]:checked) .scen-say[data-scen="0"]{display:none}.budget-form:has(input[name=scenario][value="3"]:checked) .scen-say[data-scen="3"]{display:inline}
.budget-form:has(input[name=scenario][value="4"]:checked) .scen-say[data-scen="0"]{display:none}.budget-form:has(input[name=scenario][value="4"]:checked) .scen-say[data-scen="4"]{display:inline}
.crea-figs .crea-kpi dd{font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-kpi);line-height:var(--leading-tight)}
.crea-figs .crea-kpi.is-thin dd{font-size:var(--text-sm);letter-spacing:0;line-height:var(--leading)}
@media (min-width:640px){
  .crea-face{height:120px;min-height:0;aspect-ratio:auto;justify-content:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4)}
  .crea-hook{font-size:var(--text-lg)}
}
.ch-note{margin-top:var(--space-3)}
.brief-decide>h2{margin-bottom:var(--space-3)}
@media (min-width:1100px){
  .brief-layout{grid-template-columns:minmax(0,1fr) 360px;grid-template-areas:"top side" "main side"}
  .brief-top{grid-area:top}
  .brief-side{grid-area:side;align-self:start}
  .brief-layout>.brief-main{grid-area:main}
}
/* ===== Spec 029 (lot 19c) : Performance = verdict, 3 chiffres clés, G-A et G-B ; options en une rangée */
.perf-head{margin-bottom:var(--space-5)}
.perf-head .perf-verdict{color:var(--text);max-width:62ch;text-wrap:pretty}
.perf-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-5)}
.perf-bar .tabs{flex-wrap:nowrap}
.perf-bar .tabs a{white-space:nowrap}
/* Piste des périodes : une seule rangée qui défile de côté au téléphone (jamais une pilule cassée sur deux rangées) */
@media (max-width:479px){.perf-bar .tabs{width:100%;overflow-x:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}.perf-bar .tabs::-webkit-scrollbar{display:none}.perf-bar .tabs a{padding:0 var(--space-3)}} /* taste-skill-ignore : fondu de la piste qui défile (DESIGN §6), pas un dégradé décoratif */
.perf-cmp{display:flex;align-items:center;gap:var(--space-3)}
.perf-cmp .check{font-size:var(--text-sm)}
.perf-export .menu-list{min-width:200px;left:0;right:auto;transform-origin:top left}
.perf-main{padding:var(--space-5);margin-bottom:var(--space-5)}
@media (min-width:768px){.perf-main{padding:var(--space-6)}}
/* 3 chiffres clés sur une rangée à filets, à toutes les tailles (un seul panneau, jamais trois tuiles) */
.perf-main>.ads-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin:calc(-1 * var(--space-2)) 0 var(--space-5);background:none;border:0;border-radius:0;border-bottom:1px solid var(--border)}
.perf-main>.ads-kpis>.kpi{border-top:0;padding:var(--space-2) var(--space-3) var(--space-4)}
.perf-main>.ads-kpis>.kpi+.kpi{border-left:1px solid var(--border)}
.perf-main>.ads-kpis>.kpi:first-child{padding-left:0}
.perf-main>.ads-kpis .kpi-value{font-size:var(--text-xl);overflow-wrap:anywhere}
/* Les 3 chiffres sur la même ligne, même quand une étiquette passe sur 2 lignes (rangées partagées, subgrid) */
@supports (grid-template-rows:subgrid){.perf-main>.ads-kpis{grid-template-rows:auto auto auto;row-gap:0}.perf-main>.ads-kpis>.kpi{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:var(--space-2);align-content:start}.perf-main>.ads-kpis>.kpi>h2{align-self:start}}
.perf-main>.ads-kpis .kpi-sub>span:not(.delta){display:none}
.perf-main>.kpis-note{margin:calc(-1 * var(--space-3)) 0 var(--space-4)}
@media (min-width:768px){.perf-main>.ads-kpis>.kpi{padding:var(--space-2) var(--space-5) var(--space-4)}.perf-main>.ads-kpis .kpi-value{font-size:var(--text-kpi)}.perf-main>.ads-kpis .kpi-sub>span:not(.delta){display:inline}}
/* G-A et G-B côte à côte dès 1 024 px, séparés par un filet ; posés dans le panneau (pas de panneau dans le panneau) */
.perf-viz{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6)}
.perf-main .perf-viz>.v2{padding:0;background:none;border:0;border-radius:0;box-shadow:none}
@media (min-width:1024px){.perf-viz{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:0}.perf-main .perf-viz>.v2+.v2{border-radius:0;padding-left:var(--space-6);margin-left:var(--space-6);border-left:1px solid var(--border)}.perf-viz--one{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr)}}
.perf-viz .v2-head{margin-bottom:var(--space-3)}
.perf-viz .v2-title{font-size:var(--text-lg);line-height:1.3;text-wrap:balance}
@media (min-width:768px) and (max-width:1023px),(min-width:1280px){.perf-viz .v2-title{font-size:var(--text-xl)}}
@media (min-width:1024px) and (max-width:1279px){.perf-viz .v2-title{font-size:var(--text-md)}}
@media (min-width:960px){.perf-bar .tabs a{min-height:var(--control)}}
/* Titres-réponses d'Analyse détaillée : une phrase entière, 2 lignes au plus au téléphone */
@media (max-width:479px){.perf-v2 .v2-title{font-size:var(--text-lg);text-wrap:balance}}
.perf-viz .ch-table{margin-top:var(--space-2)}
.perf-empty{padding:var(--space-6);margin-bottom:var(--space-5)}
.perf-empty h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:1.2}
.perf-empty>p{margin:var(--space-2) 0 0;color:var(--text-2);max-width:62ch}
.perf-empty-acts{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-5)}
/* G-A : barres (dépense) en HTML, lignes (coût par résultat, période d'avant en pointillés) en SVG par-dessus */
.ga{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:var(--space-2)}
.ga-area{position:relative;isolation:isolate;height:180px;grid-column:2;outline:none;border-radius:var(--radius-xs)}
.ga-area:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
@media (min-width:768px){.ga-area{height:200px}}
.ga-grid{position:absolute;left:0;right:0;top:calc((1 - var(--y)) * 100%);border-top:1px solid var(--border)}
.ga-area::after{content:"";position:absolute;left:0;right:0;bottom:0;border-top:1px solid var(--border-strong)}
.ga-cols{position:absolute;inset:0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr))}
.ga-col{position:relative;display:block;height:100%;cursor:default}
.ga-bar{position:absolute;z-index:1;left:18%;right:18%;bottom:0;height:var(--h);background:var(--chart);border-radius:2px 2px 0 0}
.ga-bar--prov{background:var(--chart-muted)}
.ga-bar--none{height:2px;background:var(--border-strong)}
.ga-col:hover .ga-bar,.ga-col.is-on .ga-bar{filter:brightness(1.15)}
.ga-col.is-on::before{content:"";position:absolute;inset:0;background:var(--surface-2);border-radius:var(--radius-xs)}
.ga-lines{position:absolute;z-index:2;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.ga-line{fill:none;stroke:var(--text);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.ga-prev{fill:none;stroke:var(--text-2);stroke-width:1.5;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}
.ga-dot{position:absolute;z-index:2;left:var(--x);top:var(--y);width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--text);pointer-events:none}
.ga-prev-dot{background:var(--text-2)}
.ga-y{position:relative;grid-row:1;height:180px;font-size:var(--text-2xs);color:var(--text-2);font-variant-numeric:tabular-nums}
@media (min-width:768px){.ga-y{height:200px}}
.ga-y--l{grid-column:1;width:3.6em;text-align:right}
.ga-y--r{grid-column:3;width:3.2em}
.ga-y span{display:block;position:absolute;right:0;top:calc((1 - var(--y)) * 100%);transform:translateY(-50%);white-space:nowrap}
.ga-y--r span{left:0;right:auto}
.ga-x{position:relative;grid-column:2;height:22px;margin-top:var(--space-1);font-size:var(--text-2xs);color:var(--text-2)}
.ga-x span{position:absolute;left:var(--x);transform:translateX(-50%);white-space:nowrap}
@media (max-width:599px){.ga-x .minor{display:none}.ga-y--r{display:none}.ga{grid-template-columns:auto minmax(0,1fr) 0}}
.sw-prev{width:16px;height:0;border-top:2px dashed var(--text-2);vertical-align:3px}
.sw-prov{width:10px;height:10px;border-radius:2px;background:var(--chart-muted)}
.sw-res{width:10px;height:10px;border-radius:2px;background:var(--text-2)}
/* G-B : une ligne par campagne, part de la dépense (accent) et part des résultats (neutre) */
.gb-list{list-style:none;margin:0;padding:0}
.gb-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px var(--space-3);padding:var(--space-2) var(--space-2);margin:0 calc(-1 * var(--space-2));border-top:1px solid var(--border);border-radius:var(--radius-xs);cursor:pointer}
.gb-row:first-child{border-top:0}
.gb-row:hover,.gb-row.is-on{background:var(--surface-2)}
.gb-row--rest{cursor:default}
.gb-row--rest:hover{background:none}
.gb-name{font-size:var(--text-sm);font-weight:var(--weight-medium);overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gb-fig{font-family:var(--font-display);font-size:var(--text-md);font-variant-numeric:tabular-nums}
.gb-track{grid-column:1/-1;display:block;height:8px;background:var(--surface-2);border-radius:var(--radius-pill);overflow:hidden}
.gb-track i{display:block;height:100%;border-radius:inherit;background:var(--chart)}
.gb-track--res{height:4px}
.gb-track--res i{background:var(--text-2)}
.gb-sub{grid-column:1/-1;font-size:var(--text-xs);color:var(--text-2)}
.gb-row--rest .gb-name,.gb-row--rest .gb-fig{color:var(--text-2)}
.gb-one{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2) var(--space-4);align-items:baseline;padding:var(--space-3) var(--space-4);background:var(--inset);border-radius:var(--radius-lg);font-size:var(--text-sm)}
.gb-one .num{font-family:var(--font-display);font-size:var(--text-lg)}
/* G-13 : « Voir les N suivantes » sous le tableau hiérarchique */
.pt-next{margin-top:var(--space-4);text-align:center}
/* ===== Lot 5b (spec 013) : graphiques v2 (nuage, treemap, carte de chaleur, pays), audience, boutique, repères de saison */
.perf-v2{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5);margin-bottom:var(--space-5)}
.perf-v2>*{min-width:0}
.v2{position:relative;margin:0;padding:var(--space-5)}
@media (min-width:768px){.v2{padding:var(--space-6)}}
.v2-empty{margin:0}
.v2-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}
.v2-titles{flex:1 1 18rem;min-width:0}
.v2-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:1.25}
.v2-lede{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--text-2);max-width:72ch}
.v2-help[hidden]{display:none}
/* Menu « Exporter » (un seul composant : ads-common.ts, exportMenu) : Image du graphique, Tableau (CSV) */
.chx-export[hidden]{display:none}
.chx-export>summary.btn{gap:var(--space-2)}
/* Toujours au bord droit, même quand l'en-tête passe à la ligne : sa liste s'ouvre vers la gauche sans sortir de l'écran */
.v2-head>.chx-export,.chx-acts>.chx-export{margin-left:auto}
/* Aide de lecture : au doigt la phrase tactile, à la souris (écran large) la phrase souris et clavier, jamais les deux */
.hint-pointer{display:none}
@media (hover:hover) and (pointer:fine) and (min-width:600px){.hint-pointer{display:inline}.hint-touch{display:none}p.hint-pointer{display:block}}
.chx-help.hint-pointer{display:none}
@media (hover:hover) and (pointer:fine) and (min-width:600px){.chx-help.hint-pointer{display:block}}
.v2-legend{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);margin-top:var(--space-3);font-size:var(--text-xs);color:var(--text-2)}
.v2-legend>span{display:inline-flex;align-items:center;gap:6px}
.v2-help{margin-top:var(--space-2)}
.v2-note{margin-top:var(--space-3);color:var(--text-2)}
.v2-cross{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-3);color:var(--text-2)}
.v2 .chx-tip--band{min-height:0}
.v2-i{outline:none}
.v2-i:focus-visible{outline:2px solid var(--focus);outline-offset:2px;z-index:2}
.sw-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--chart);vertical-align:-1px}
.sw-dot--thin{background:var(--surface);box-shadow:inset 0 0 0 2px var(--chart)}
.sw-dot--none{background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--text-2)}
.sw-thin{display:inline-block;width:12px;height:12px;border-radius:2px;background:var(--inset);border:1px solid var(--border-strong)}

/* Nuage de points : positions en fractions (--x, --y entre 0 et 1), marges intérieures de 14 px pour les bulles du bord */
.sc{--yaxis:58px;--in:14px}
@media (min-width:600px){.sc{--yaxis:72px}}
.sc-none-row{display:grid;grid-template-columns:var(--yaxis) minmax(0,1fr);column-gap:var(--space-2);align-items:center;margin-bottom:var(--space-1)}
.sc-none-lab{font-size:var(--text-2xs);color:var(--text-2);text-align:right;line-height:var(--leading-snug)}
.sc-none{position:relative;height:var(--touch);border-bottom:1px dashed var(--border-strong)}
.sc-frame{display:grid;grid-template-columns:var(--yaxis) minmax(0,1fr);grid-template-rows:240px auto;column-gap:var(--space-2)}
@media (min-width:960px){.sc-frame{grid-template-rows:300px auto}}
.sc-y{position:relative;grid-column:1;grid-row:1;font-size:var(--text-2xs);color:var(--text-2)}
.sc-y span{position:absolute;right:0;bottom:calc(var(--in) + (100% - 2 * var(--in)) * var(--y));transform:translateY(50%);white-space:nowrap}
.sc-area{position:relative;grid-column:2;grid-row:1;border-bottom:1px solid var(--border-strong)} /* taste-skill-ignore : axe horizontal du nuage */
.sc-grid{position:absolute;left:0;right:0;bottom:calc(var(--in) + (100% - 2 * var(--in)) * var(--y));border-top:1px solid var(--border)}
.sc-median{position:absolute;left:0;right:0;bottom:calc(var(--in) + (100% - 2 * var(--in)) * var(--y));border-top:1px dashed var(--text-2)}
.sc-x{position:relative;grid-column:2;grid-row:2;height:22px;margin-top:var(--space-1);font-size:var(--text-2xs);color:var(--text-2)}
.sc-x span{position:absolute;top:0;left:calc(var(--in) + (100% - 2 * var(--in)) * var(--x));transform:translateX(-50%);white-space:nowrap}
.sc-x .sc-x0{transform:none;left:0}.sc-x .sc-x1{transform:none;left:auto;right:0}
.sc-ytitle{margin:0 0 var(--space-2) calc(var(--yaxis) + var(--space-2));font-size:var(--text-xs);color:var(--text-2)}
.sc-xtitle{margin-top:2px;font-size:var(--text-xs);color:var(--text-2);text-align:right}
/* Zone de clic de 44 px, bulle dessinée dedans (::before) : la taille dit le volume, la cible reste confortable. */
.sc-pt{position:absolute;left:calc(var(--in) + (100% - 2 * var(--in)) * var(--x));bottom:calc(var(--in) + (100% - 2 * var(--in)) * var(--y));width:var(--touch);height:var(--touch);transform:translate(-50%,50%);border-radius:50%;display:grid;place-items:center}
.sc-pt::before{content:"";width:var(--dp,var(--d));height:var(--dp,var(--d));border-radius:50%;background:var(--chart);box-shadow:0 0 0 1.5px var(--surface);transition:transform var(--duration-fast) var(--ease)} /* taste-skill-ignore : contour couleur carte qui sépare deux bulles */
@media (min-width:768px){.sc-pt::before{width:var(--d);height:var(--d)}}
.sc-pt--thin::before{background:var(--surface);box-shadow:inset 0 0 0 2px var(--chart),0 0 0 1.5px var(--surface)}
.sc-pt--none{bottom:50%}
.sc-pt--none::before{background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--text-2)}
.sc-pt:hover::before,.sc-pt.is-on::before{transform:scale(1.18)}
.sc-pt:hover,.sc-pt.is-on,.sc-pt:focus-visible{z-index:2}
/* Nom court des bulles extrêmes : à droite, à gauche, au-dessus ou au-dessous de sa bulle (public/charts-v1.js écarte les collisions) */
.sc-lab{--dd:var(--dp);position:absolute;left:calc(var(--in) + (100% - 2 * var(--in)) * var(--x));bottom:calc(var(--in) + (100% - 2 * var(--in)) * var(--y));z-index:1;padding:0 3px;border-radius:var(--radius-xs);background:var(--surface);font-size:var(--text-2xs);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--text);white-space:nowrap;pointer-events:none}
@media (min-width:768px){.sc-lab{--dd:var(--d)}}
.v2--scatter .v2-plot{overflow-x:clip;overflow-clip-margin:var(--space-3)}
.sc-lab--r{transform:translate(calc(var(--dd) / 2 + 4px),50%)}
.sc-lab--l{transform:translate(calc(-100% - var(--dd) / 2 - 4px),50%)}
.sc-lab--t{transform:translate(-50%,calc(-1 * var(--dd) / 2 - 3px))}
.sc-lab--b{transform:translate(-50%,calc(100% + var(--dd) / 2 + 3px))}
.sc-lab--tr{transform:translate(calc(var(--dd) * .35),calc(-1 * var(--dd) * .35 - 2px))}
.sc-lab--tl{transform:translate(calc(-100% - var(--dd) * .35),calc(-1 * var(--dd) * .35 - 2px))}
.sc-lab--br{transform:translate(calc(var(--dd) * .35),calc(100% + var(--dd) * .35 + 2px))}
.sc-lab--bl{transform:translate(calc(-100% - var(--dd) * .35),calc(100% + var(--dd) * .35 + 2px))}
.sw-dash{display:inline-block;width:16px;height:0;border-top:1.5px dashed var(--text-2)}

/* Treemap : deux mises en page calculées côté serveur (téléphone, puis ordinateur dès 768 px) */
.tm{position:relative;aspect-ratio:var(--tm-ar,100/125);border-radius:var(--radius-md);overflow:hidden;background:var(--surface)}
@media (min-width:768px){.tm{aspect-ratio:100/42}}
/* Une seule teinte claire (la surface dit la dépense), joints de 2 px ; teinte soutenue : pub à décider, avec le mot */
.tm-group{position:absolute;left:var(--px);top:var(--py);width:var(--pw);height:var(--ph);display:flex;flex-direction:column;border:1px solid var(--surface);background:var(--surface);container-type:size}
.tm-cell{position:absolute;left:var(--px);top:var(--py);width:var(--pw);height:var(--ph);border:1px solid var(--surface);border-radius:var(--radius-xs);padding:5px 7px;overflow:hidden;cursor:pointer;container-type:size;background:var(--heat-1);color:var(--heat-ink-1)}
@media (min-width:768px){.tm-group,.tm-cell{left:var(--wx);top:var(--wy);width:var(--ww);height:var(--wh)}}
.tm-gh{flex:none;display:flex;align-items:center;gap:var(--space-2);height:22px;margin:0 1px;padding:0 6px;border-radius:var(--radius-xs);background:var(--inset);font-size:var(--text-2xs);color:var(--text-2);line-height:1;white-space:nowrap;overflow:hidden}
.tm-gh b{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;font-weight:var(--weight-semibold);color:var(--text)}
.tm-gh .num{flex:none}
@container (width < 150px){.tm-gh .num{display:none}}
.tm-body{position:relative;flex:1;min-height:0}
.tm-cell--flag{background:var(--heat-4);color:var(--heat-ink-4)}
.tm-cell--rest{cursor:default}
.tm-cell:hover,.tm-cell.is-on{box-shadow:inset 0 0 0 2px var(--text)}
.tm-lab{display:flex;flex-direction:column;gap:2px;min-width:0;line-height:var(--leading-snug)}
.tm-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;font-size:var(--text-xs);font-weight:var(--weight-semibold);overflow-wrap:break-word;hyphens:auto}
.tm-fig{overflow:hidden;font-size:var(--text-2xs);white-space:nowrap;text-overflow:ellipsis}
.tm-fig b{font-weight:var(--weight-semibold)}
@container (height < 80px){.tm-name{-webkit-line-clamp:2}}
@container (height < 60px){.tm-name{-webkit-line-clamp:1}}
@container (height < 40px){.tm-amt,.tm-sep{display:none}}
.tm-num{display:inline-grid;place-items:center;flex:none;min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-pill);background:var(--surface);box-shadow:inset 0 0 0 1px var(--border-strong);font-size:var(--text-2xs);font-weight:var(--weight-semibold);line-height:1;color:var(--text)} /* taste-skill-ignore : pastille numérotée, comme .ch-pin */
.tm-cell>.tm-num{position:absolute;top:3px;left:3px}
.tm-ns{display:none}
@media (max-width:767px){.tm-p-short .tm-nl,.tm-p-nopc .tm-pc{display:none}.tm-p-short .tm-ns{display:inline}.tm-p-name .tm-amt,.tm-p-name .tm-sep,.tm-p-none .tm-lab,.tm-p-full>.tm-num,.tm-p-name>.tm-num{display:none}}
@media (min-width:768px){.tm-w-short .tm-nl,.tm-w-nopc .tm-pc{display:none}.tm-w-short .tm-ns{display:inline}.tm-w-name .tm-amt,.tm-w-name .tm-sep,.tm-w-none .tm-lab,.tm-w-full>.tm-num,.tm-w-name>.tm-num{display:none}}
.tm-sw{display:inline-block;width:14px;height:12px;border-radius:2px;background:var(--heat-1);box-shadow:inset 0 0 0 1px var(--border)} /* taste-skill-ignore : pastille de légende pâle, bord pour la voir */
.tm-sw--flag{background:var(--heat-4);box-shadow:none}
.tm-more{list-style:none;margin:var(--space-3) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);font-size:var(--text-xs);color:var(--text-2)}
.tm-more li{display:inline-flex;align-items:center;gap:6px;min-width:0}
.tm-more b{font-weight:var(--weight-semibold);color:var(--text)}
.tm-scale{display:inline-flex;gap:2px}
.tm-scale i{display:block;width:14px;height:12px;border-radius:2px;background:var(--heat-1)}
.tm-scale .tm-cell--2{background:var(--heat-2)}.tm-scale .tm-cell--3{background:var(--heat-3)}.tm-scale .tm-cell--4{background:var(--heat-4)}

/* Audience : âge × genre (vrai tableau teinté) et pays (barres) — lecture seule */
.aud{margin-bottom:var(--space-5)}
.aud-ro{display:flex;align-items:flex-start;gap:var(--space-2);margin:0 var(--px) var(--space-5);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--inset);font-size:var(--text-sm);color:var(--text-2)}
.aud-ro .ic{flex:none;margin-top:2px}
.aud>.block-empty{margin:0 var(--px)}
.aud-grid{display:grid;gap:var(--space-6);padding:0 var(--px)}
/* Ordinateur : les deux blocs partagent leurs rangées (titre et exports, puis données) : premières lignes alignées */
@media (min-width:1100px){.aud-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-rows:auto auto;row-gap:0;align-items:start}.aud-grid>.aud-part{display:grid;grid-row:span 2;grid-template-rows:subgrid}.aud .v2-head{flex-wrap:nowrap}}
.aud .v2{border:0;border-radius:0;padding:0;background:none}
.aud-h{font-size:var(--text-lg);font-weight:var(--weight-semibold)}
.aud-part>.block-empty{margin-top:var(--space-2)}
.hm{width:100%;border-collapse:separate;border-spacing:3px;margin:-3px}
.hm thead th{height:24px;padding:0;vertical-align:bottom;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-2);text-align:center}
.hm tbody th{padding-right:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-2);text-align:left;white-space:nowrap}
.hm-age-l{display:none}
@media (min-width:600px){.hm-age-l{display:inline}.hm-age-s{display:none}}
.hm-c{height:54px;padding:4px;border-radius:var(--radius-sm);text-align:center;vertical-align:middle;background:var(--heat-1);color:var(--heat-ink-1);line-height:var(--leading-snug)}
@media (min-width:600px){.hm-c{padding:6px 8px}}
.hm-c--2{background:var(--heat-2);color:var(--heat-ink-2)}
.hm-c--3{background:var(--heat-3);color:var(--heat-ink-3)}
.hm-c--4{background:var(--heat-4);color:var(--heat-ink-4)}
.hm-c--thin{background:var(--inset);color:var(--text-2)}
.hm-c--na{background:var(--surface);color:var(--text-3);box-shadow:inset 0 0 0 1px var(--border-strong)}
.hm-c.is-on{box-shadow:inset 0 0 0 2px var(--text)}
.hm-v{display:block;font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap}
@media (min-width:600px){.hm-v{font-size:var(--text-sm)}}
.hm-c--thin .hm-v,.hm-c--na .hm-v{font-size:var(--text-2xs);font-weight:var(--weight-medium);white-space:normal}
.hm-s{display:block;margin-top:1px;font-size:var(--text-2xs);white-space:nowrap}
.cb-head{display:flex;justify-content:space-between;align-items:flex-end;height:24px;margin:0;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-2)}
.cb-list{list-style:none;margin:3px 0 0;padding:0}
.cb-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px var(--space-3);padding:var(--space-2) 0;border-top:1px solid var(--border);border-radius:var(--radius-xs)}
.cb-row:first-child{border-top:0}
.cb-row.is-on .cb-name{text-decoration:underline;text-underline-offset:3px}
.cb-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);min-width:0;overflow-wrap:anywhere}
.cb-fig{font-size:var(--text-sm);font-weight:var(--weight-semibold);text-align:right}
.cb-track{grid-column:1/-1;display:block;height:10px;background:var(--surface-2);border-radius:var(--radius-pill);overflow:hidden}
.cb-track i{display:block;height:100%;border-radius:inherit;background:var(--chart)}
.cb-row--thin .cb-track i{background:var(--chart-muted)}
.cb-row--thin .cb-name,.cb-row--thin .cb-fig{color:var(--text-2)}
.cb-row--rest .cb-name,.cb-row--rest .cb-fig{font-weight:var(--weight-medium);color:var(--text-2)}
.cb-sub{grid-column:1/-1;font-size:var(--text-xs);color:var(--text-2)}

/* Boutique (visible seulement quand des achats remontent) */
.shop{margin-bottom:var(--space-5)}
.sec-head{margin-bottom:var(--space-4)}
.sec-head h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title)}
.sec-head p{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--text-2)}
.shop-grid{display:grid;gap:var(--space-4)}
.shop-grid>*{min-width:0}
@media (min-width:1100px){.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.shop-products{grid-column:1/-1}}
.shop .tcard-head h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title)}
.shop .panel>.table-wrap,.shop .panel>.shop-more{margin:0 var(--px)}
.shop-table tr.is-bad th{color:var(--danger)}
.shop-sides{display:grid;gap:var(--space-5);padding:0 var(--px)}
@media (min-width:600px){.shop-sides{grid-template-columns:repeat(2,minmax(0,1fr))}}
.shop-side h4{margin:0;font-size:var(--text-md);font-weight:var(--weight-semibold)}
.shop-figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);margin:var(--space-3) 0;padding:var(--space-3) 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.shop-figs dt{font-size:var(--text-xs);color:var(--text-2);white-space:nowrap}
.shop-figs dd{margin:2px 0 0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-regular);letter-spacing:var(--tracking-kpi)}
.shop-adsets,.shop-segs{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.shop-adsets li{display:flex;flex-direction:column;gap:2px;font-size:var(--text-sm)}
.shop-adsets li .num{color:var(--text-2)}
.shop-segs{padding:0 var(--px)}
.shop-segs li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px var(--space-3);padding:var(--space-2) 0;border-top:1px solid var(--border)}
.shop-segs li:first-child{border-top:0}
.shop-segs .small{grid-column:1/-1}
.shop-seg-n{font-weight:var(--weight-semibold)}
.shop .panel>.block-empty{margin:0 var(--px)}
.shop-wait{margin-top:calc(var(--space-5) * -0.5)}

/* Repères de saison sur les graphiques jour par jour */
/* Repère de saison : liseré de 2 px en haut du tracé, net du premier au dernier jour, et son nom en pastille dans une
   rangée réservée au-dessus du tracé (jamais sous une courbe ni dans la zone grise des jours provisoires). */
.ch-season{position:absolute;top:0;left:var(--x);width:var(--w);height:7px;border:2px solid var(--text);border-bottom:0;pointer-events:none}
.ch-season-tag{position:absolute;top:calc(2px - var(--pad-top));left:var(--x);z-index:1;max-width:60%;overflow:hidden;text-overflow:ellipsis;padding:1px 8px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);font-size:var(--text-2xs);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--text);white-space:nowrap}
.ch-season-tag--end{left:auto;right:calc(100% - var(--x2))}
.ch-frame[style*="--pad-top"]{padding-top:var(--pad-top)}
@media (max-width:599px){.ch-frame[style*="--pad-top"]{padding-top:var(--pad-top-n)}.ch-season-tag{top:calc(2px - var(--pad-top-n))}.ch-season-tag--r2{top:calc(26px - var(--pad-top-n))}}
.ch-seasons{list-style:none;margin:var(--space-3) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);font-size:var(--text-sm)}
.ch-seasons li{display:inline-flex;align-items:center;gap:var(--space-2)}
.ch-seasons b{font-weight:var(--weight-semibold)}
.sw-season{display:inline-block;width:14px;height:7px;border:2px solid var(--text);border-bottom:0;vertical-align:1px}

/* Repères de saison dans Règles et réglages */
.mk-list{list-style:none;margin:0 0 var(--space-4);padding:0}
.mk-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4)}
.mk-row+.mk-row{border-top:1px solid var(--border)}
.mk-main{flex:1 1 16rem;min-width:0}
.mk-title{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}
.mk-title b{font-weight:var(--weight-semibold);overflow-wrap:anywhere}
.mk-meta{margin-top:2px;color:var(--text-2)}
.mk-cmp{margin-top:2px}
.mk-form{padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);background:var(--inset)}
.mk-add-h{font-size:var(--text-md);font-weight:var(--weight-semibold);margin-bottom:var(--space-3)}
.mk-fields{display:grid;gap:var(--space-3)}
@media (min-width:600px){.mk-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.mk-label{grid-column:1/-1}}
.mk-hint{margin-top:var(--space-3)}
.mk-go{margin-top:var(--space-3)}
.creas-scatter{margin:var(--space-6) 0}

/* ---------------- Spec 019 (lot 11b) : équipe, rôles et interface honnête ----------------
   Ce que le rôle ne permet pas n'est pas proposé (layout.ts, applyAccess) ; le serveur le refuse de toute façon. */
form[data-denied][hidden]{display:none!important}
.ro-fields{display:contents;border:0;margin:0;padding:0;min-width:0}
form[data-denied=ro] :is(button[type=submit],button:not([type]),input[type=submit],.form-actions,.form-actions-row){display:none}
.ro-note{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--text-2)}
.ro-note>.ic{flex:none}
body[data-role=viewer] :is([data-min=editor],[data-min=admin],[data-min=owner]),
body[data-role=editor] :is([data-min=admin],[data-min=owner]),
body[data-role=admin] [data-min=owner]{display:none!important}
/* Lecteur : une ligne discrète en tête de chaque écran (pas un bandeau d'alerte : rien n'est cassé) */
.ro-band{display:flex;align-items:flex-start;gap:var(--space-2);margin:0 0 var(--space-4);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--surface-2);font-size:var(--text-sm);color:var(--text-2)}
.ro-band>.ic{flex:none;margin-top:2px;color:var(--text)}
.ro-band p{margin:0;min-width:0}
.ro-band b{color:var(--text);font-weight:var(--weight-semibold)}
/* Organisation active (pied de la barre latérale, deux organisations ou plus) : le menu s'ouvre vers le haut */
.org-switch{position:relative}
.org-switch .who{display:flex;flex-direction:column;min-width:0;flex:1;line-height:var(--leading-snug);text-align:left}
.org-switch .who small{color:var(--text-2);font-size:var(--text-xs)}.org-switch .who b{font-size:var(--text-sm);font-weight:var(--weight-semibold)}
.sidebar .org-switch>summary{display:flex;align-items:center;gap:var(--space-3);min-height:48px;padding:var(--space-1) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);transition:border-color var(--duration-fast) var(--ease)}
.sidebar .org-switch>summary:hover,.sidebar .org-switch[open]>summary{border-color:var(--border-strong)}
.org-switch>summary>.ic{color:var(--text-3);transition:transform var(--duration) var(--ease)}
.org-switch[open]>summary>.ic{transform:rotate(180deg)}
.menu-list--up{top:auto;bottom:calc(100% + 6px);transform-origin:bottom left}
.user-menu .menu-list--spaces{min-width:280px}
/* Réglages → Équipe */
.team-link-card{padding:0}
.team-link-card .choice{border:0;border-radius:inherit;padding:var(--space-4)}
.tm-card{container-type:inline-size}
.tm-list{list-style:none;margin:0;padding:0}
.tm-row{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-areas:"mark who" ". access" "edit edit";column-gap:var(--space-3);row-gap:var(--space-2);padding:var(--space-4) 0}
.tm-row:first-child{padding-top:var(--space-1)}.tm-row:last-child{padding-bottom:var(--space-1)}
.tm-row+.tm-row{border-top:1px solid var(--border)}
.tm-mark{grid-area:mark;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--surface-3);color:var(--text-2);font-size:var(--text-xs);font-weight:var(--weight-semibold)}
.tm-who{grid-area:who;display:flex;flex-direction:column;gap:2px;min-width:0;align-self:center}
.tm-email{font-size:var(--text-md);font-weight:var(--weight-semibold);overflow-wrap:anywhere}
.tm-name{display:block;min-width:0}
.tm-who small{font-size:var(--text-xs);color:var(--text-2)}
.tm-you{display:inline-block;margin-left:var(--space-1);padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--surface-3);color:var(--text-2);font-size:var(--text-2xs);font-weight:var(--weight-medium);vertical-align:2px}
.tm-access{grid-area:access;display:flex;flex-direction:column;gap:var(--space-1);min-width:0}
.tm-role{font-size:var(--text-sm);font-weight:var(--weight-semibold)}
.tm-scopes{display:flex;flex-wrap:wrap;gap:var(--space-1)}
.tm-scope{display:inline-flex;align-items:baseline;gap:var(--space-2);max-width:100%;padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--surface-2);font-size:var(--text-xs);color:var(--text-2)}
.tm-scope-brand{color:var(--text);font-weight:var(--weight-medium);overflow-wrap:anywhere;min-width:0}
.tm-state--off{color:var(--warning);font-weight:var(--weight-semibold)}
.tm-empty{margin:var(--space-3) 0 var(--space-1)}
.tm-edit{grid-area:edit;min-width:0}
.tm-edit>summary{list-style:none;width:max-content;margin-left:calc(36px + var(--space-3))}
.tm-edit>summary::-webkit-details-marker{display:none}
.tm-edit>summary>.ic{transition:transform var(--duration) var(--ease)}
.tm-edit[open]>summary>.ic{transform:rotate(180deg)}
.tm-panel{display:grid;gap:var(--space-5);margin-top:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface-2)}
.tm-form{display:grid;gap:var(--space-3);margin:0;min-width:0}
.tm-form-go{display:flex;flex-wrap:wrap;gap:var(--space-2)}
/* Spec 027 : « Nom de l'équipe » — le champ et « Renommer » sur une rangée dès 520 px de panneau, l'aide dessous */
.tm-name-form{display:grid;gap:var(--space-2);margin:0;min-width:0}
.tm-name-row{display:grid;gap:var(--space-3)}
.tm-name-row .field{margin:0;min-width:0}
@container (min-width:520px){.tm-name-row{grid-template-columns:minmax(0,1fr) auto;align-items:end}}
@media (max-width:479px){.tm-name-row .btn{width:100%}}
.tm-roles{border:0;padding:0;margin:0;min-width:0}
.tm-roles legend{margin-bottom:var(--space-2)}
/* v3 : cartes de rôle en groupes « inset » sans filet ; le rôle choisi est cerclé d'accent */
.tm-roles .scen-body{border-color:transparent;background:var(--inset)}
.tm-roles .scen-opt:hover .scen-body{border-color:var(--border)}
.tm-roles .scen-opt input:checked+.scen-body{border-color:var(--accent);background:var(--surface)}
.tm-remove{display:grid;gap:var(--space-2);margin:0;padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface);border-left:3px solid var(--danger)}
.tm-leave{background:var(--surface-2)}
.tm-remove-title{font-weight:var(--weight-semibold);overflow-wrap:anywhere}
.tm-remove .check{font-weight:var(--weight-medium)}
.tm-invite{display:grid;gap:var(--space-5);margin:0}
.tm-email-field{max-width:440px}
.scope-fs{display:grid;gap:var(--space-1);border:0;padding:0;margin:0;min-width:0}
.scope-fs legend{margin-bottom:var(--space-1)}
.scope-fs .hint{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--text-2)}
.scope-mode{align-items:center}
.scope-all{padding-left:32px;max-width:calc(32px + 320px)}
.scope-list{list-style:none;margin:0;padding:0 0 0 32px;display:grid;gap:var(--space-1)}
.scope-brand{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-1);padding-bottom:var(--space-2)}
.scope-brand-check span{overflow-wrap:anywhere}
.scope-fs:has(input[name=perimetre][value=liste]:checked) .scope-all{display:none}
.scope-fs:has(input[name=perimetre][value=tout]:checked) .scope-list{display:none}
/* Marque non cochée : sa zone est estompée et ne se choisit pas (le serveur l'ignore de toute façon) */
.scope-brand:has(.scope-brand-check input:not(:checked)) .select{opacity:.5;pointer-events:none}
.tm-field-error{display:flex;align-items:flex-start;gap:var(--space-2);margin:0;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--danger)}
.tm-field-error>.ic{flex:none;margin-top:1px}
/* Spec 036 : état du mot de passe d'un membre dont le compte a été créé par un admin (mot + icône, jamais la couleur seule) */
.tm-pw{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--text-2)}
.tm-pw>.ic{flex:none;color:var(--text-3)}
.tm-pw--expired{color:var(--warning);font-weight:var(--weight-semibold)}
.tm-pw--expired>.ic{color:currentColor}
/* « Générer un nouveau mot de passe » : même bloc que « Retirer », liseré ambre (rien n'est supprimé) */
.tm-regen{border-left-color:var(--warning)}
/* « Comment donner l'accès » : le bouton prend le libellé du choix (CSS :has) ; sans :has, « Valider » */
.tm-go{display:contents}
.tm-go--invitation,.tm-go--compte{display:none}
@supports selector(:has(*)){
  .tm-invite .tm-go--any{display:none}
  .tm-invite:has(input[name=acces][value=invitation]:checked) .tm-go--invitation,
  .tm-invite:has(input[name=acces][value=compte]:checked) .tm-go--compte{display:contents}
}
/* Spec 036 : page « Mot de passe provisoire » (affichée une seule fois). Le mot de passe domine : JetBrains Mono 500,
   sur une seule ligne (taille calée sur le plus long possible, 38 caractères = 22,8 em de chasse fixe, d'après la largeur
   du panneau), « Copier » toujours dessous : pleine largeur au téléphone, à sa taille dès 520 px de panneau. */
.tp-head h1{overflow-wrap:anywhere;text-wrap:balance}
/* Téléphone : l'adresse e-mail du titre tient sur sa propre ligne (2 lignes au plus) */
@media (max-width:479px){.tp-head h1{font-size:var(--text-2xl)}}
@media (max-width:359px){.tp-head h1{font-size:var(--text-xl)}}
/* Titre focalisé par le script (lecteurs d'écran) : pas d'anneau, ce n'est pas une commande */
.tp-head h1:focus{outline:none}
.tp{display:grid;gap:var(--space-4);align-items:stretch}
@media (min-width:1024px){.tp{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--space-5)}}
.tp-main,.tp-side{container-type:inline-size}
.tp-label{margin:0 0 var(--space-3);font-family:inherit;color:var(--text-2)}
.tp-secret{--tp-pad:var(--space-3);display:flex;flex-direction:column;align-items:stretch;gap:var(--space-3);padding:var(--tp-pad);border-radius:var(--radius-lg);background:var(--inset)}
.tp-password{margin:0;min-width:0}
/* Une seule ligne : la taille suit la longueur du mot de passe (--tp-len, posé sur .tp : la longueur seule, jamais le texte ;
   38 au plus = 22,8 em de chasse fixe). Sous 12 px (panneau très étroit), coupure seulement après un tiret. */
.tp-password code{display:block;font-family:var(--font-mono);font-size:clamp(12px,calc((100cqi - 2 * var(--tp-pad)) / (var(--tp-len,38) * 0.6 + 0.4)),var(--text-3xl));font-weight:var(--weight-medium);line-height:var(--leading-snug);letter-spacing:0;color:var(--text);white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none;font-variant-ligatures:none;user-select:all;-webkit-user-select:all}
.tp-secret>.tp-copy{flex:none;align-self:stretch;width:100%}
@container (min-width:400px){.tp-secret{--tp-pad:var(--space-4)}}
@container (min-width:520px){.tp-secret{--tp-pad:var(--space-5)}.tp-secret>.tp-copy{align-self:flex-start;width:auto}}
.tp-until{display:flex;gap:var(--space-2);margin-top:var(--space-3);font-size:var(--text-sm);color:var(--text-2)}
.tp-until>.ic{flex:none;margin-top:2px}
.tp-warn{display:flex;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--warning-soft);color:var(--text);font-size:var(--text-sm)}
.tp-warn>.ic{flex:none;margin-top:1px;color:var(--warning)}
.tp-warn b{font-weight:var(--weight-semibold)}
/* Message à transmettre : titre, aide, message, puis « Copier » pleine largeur (téléphone) ; dès 600 px d'écran (et
   330 px de panneau), « Copier » à droite du titre. Adresses et mot de passe insécables (coupures entre morceaux par <wbr> seulement). */
.tp-msg{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "hint" "msg" "copy";align-items:center}
.tp-msg-title{grid-area:title;font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:var(--tracking-title);line-height:1.25}
.tp-msg-hint{grid-area:hint;margin-top:var(--space-1)}
.tp-msg>.tp-copy{grid-area:copy;align-self:stretch;width:100%;margin-top:var(--space-3)}
@media (min-width:600px){@container (min-width:330px){
  .tp-msg{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title copy" "hint hint" "msg msg";column-gap:var(--space-3)}
  .tp-msg>.tp-copy{align-self:center;width:auto;margin-top:0}
}}
.tp-message{grid-area:msg;margin:var(--space-3) 0 0;padding:var(--space-4);border-radius:var(--radius-lg);background:var(--inset);color:var(--text);font-family:inherit;font-size:var(--text-sm);line-height:1.6;white-space:pre-wrap;overflow-wrap:normal}
.tp-nb{white-space:nowrap}
.tp-addr{display:inline-block;max-width:100%;vertical-align:bottom}
/* Mot de passe du message : chasse fixe, à la taille du texte, réduit (11 px au moins) pour tenir sur sa ligne ;
   seulement en dessous, coupure après un tiret (jamais en plein mot) */
.tp-mono{display:inline-block;max-width:100%;vertical-align:bottom;white-space:normal;font-family:var(--font-mono);font-weight:var(--weight-medium);font-size:max(var(--text-2xs),min(1em,calc((100cqi - 2 * var(--space-4)) / (var(--tp-len,38) * 0.6 + 0.4))));font-variant-ligatures:none}
.tp-actions{margin-top:var(--space-6)}
/* Page « Choisis ton mot de passe » : le compte rappelé, « Se déconnecter » en lien sous un filet */
.fp-account{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--surface-2);font-size:var(--text-sm);color:var(--text-2)}
.fp-account>.ic{flex:none}
.fp-account b{color:var(--text);font-weight:var(--weight-medium)}
.fp-account>span{min-width:0}
.fp-out{margin-bottom:0}
.fp-out-btn{padding:0 2px;border:0;background:none;font:inherit;font-weight:var(--weight-semibold);color:var(--accent);cursor:pointer}
.tm-role-list{margin:0;display:grid}
.tm-role-item{display:grid;gap:2px;padding:var(--space-3) 0}
.tm-role-item+.tm-role-item{border-top:1px solid var(--border)}
.tm-role-item:first-child{padding-top:var(--space-1)}.tm-role-item:last-child{padding-bottom:var(--space-1)}
.tm-role-item dt{font-weight:var(--weight-semibold)}
.tm-role-item dd{margin:0;font-size:var(--text-sm);color:var(--text-2)}
@container (min-width:560px){
  .scope-brand{grid-template-columns:minmax(0,1fr) minmax(200px,260px);align-items:center;column-gap:var(--space-4);padding-bottom:0}
}
@container (min-width:640px){
  .tm-row{grid-template-columns:36px minmax(0,1fr) minmax(0,1fr);grid-template-areas:"mark who access" "edit edit edit";column-gap:var(--space-4)}
  .tm-list--edit>.tm-row{padding-right:136px}
  .tm-list--edit .tm-edit{margin-right:-136px}
  .tm-edit>summary{position:absolute;top:var(--space-4);right:0;margin:0}
  .tm-row:first-child .tm-edit>summary{top:var(--space-1)}
  .tm-access{align-self:center}
}
@media (min-width:960px){.tm-scope{padding-block:1px}}
/* Page /invitation : ce que l'on rejoint, en trois lignes à filets */
.inv-facts{margin:var(--space-5) 0 0;border-top:1px solid var(--border)}
.inv-facts>div{display:grid;grid-template-columns:80px minmax(0,1fr);gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border)}
.inv-facts dt{font-size:var(--text-sm);color:var(--text-2)}
.inv-facts dd{margin:0;display:flex;flex-direction:column;gap:2px;min-width:0}
.inv-facts dd.tm-scopes{flex-direction:row}
.inv-email{font-weight:var(--weight-semibold);overflow-wrap:anywhere}

/* ===================================================================== Pilote (spec 022, lot 13b)
   Même système que Pubs : grand titre et phrase de constat, grands panneaux (liste ADS_PANELS), groupes « inset » dedans
   (ADS_INSETS), une seule couleur d'action. Piste à 4 entrées (Organique | Pubs | Pilote | Marque) qui tient à 320 px. */
.app--four .view-tabs a,.app--four .view-tabs button{padding:0 var(--space-2)}
@media (max-width:359px){.app--four .view-tabs--top a,.app--four .view-tabs--top button{font-size:var(--text-xs)}}
@media (min-width:768px){.app--four .appbar .view-tabs--bar{width:clamp(320px,40vw,440px)}}
.pd-main>*{min-width:0}
/* En-tête des 5 écrans du Pilote : le filtre de marque toujours au même endroit (à droite du titre dès 768 px, sous la
   phrase sur téléphone), quelle que soit la longueur de la phrase. */
/* Spec 029 (lot 19c) : la phrase sous le titre garde toute la largeur jusqu'à 1 023 px ; les boutons de l'en-tête passent dessous */
@media (min-width:1024px){.pi-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end}}
@media (max-width:1023px){.pi-head{flex-direction:column;align-items:flex-start}.pi-head>div:first-child{width:100%}}
.pi-head-side{align-items:center}
.pi-menu>summary b{color:var(--text);font-weight:var(--weight-semibold)}
.pi-menu>summary .ic{color:var(--text-2);transition:transform var(--duration-fast) var(--ease)}
.pi-menu[open]>summary .ic{transform:rotate(180deg)}
.pi-menu>summary:hover{background:var(--surface-3)}
.pi-menu .menu-list{min-width:220px}
.pi-note{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-2);max-width:64ch}
.pi-note>.ic{flex:none;margin-top:2px;color:var(--text)}
/* Niveau de risque d'une décision : un point et un mot (jamais la couleur seule) */
.pi-risk{display:inline-flex;align-items:center;gap:6px;font-weight:var(--weight-medium);color:var(--text-2)}
.pi-risk::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--text-3);flex:none}
.pi-risk--down{color:var(--success)}.pi-risk--down::before{background:var(--success)}
.pi-risk--up{color:var(--warning)}.pi-risk--up::before{background:var(--warning)}
.pd-soon{color:var(--warning);font-weight:var(--weight-medium)}

/* Vue d'ensemble : l'interrupteur général en tête (la chose dominante), puis « À décider » et le journal côte à côte, puis l'autonomie */
.pi-overview{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5)}
.pi-overview>*{min-width:0}
@media (min-width:1024px){.pi-overview{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:var(--space-6)}.pi-switch,.pi-recent{grid-column:1/-1}}
.pi-switch{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-4) var(--space-8);padding:var(--space-5)}
@media (min-width:768px){.pi-switch{padding:var(--space-6)}}
.pi-switch--off{background:var(--warning-soft);border-color:color-mix(in srgb,var(--warning) 30%,transparent)}
.pi-switch-text{display:grid;gap:var(--space-2);flex:1 1 420px;min-width:0}
.pi-switch-state .st{font-size:var(--text-sm)}
.pi-switch-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:1.2}
.pi-switch-say{color:var(--text-2);max-width:62ch}
.pi-switch--off .pi-switch-say{color:var(--text)}
.pi-incident{display:flex;align-items:flex-start;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);max-width:62ch}
.pi-incident>.ic{flex:none;margin-top:2px;color:var(--danger)}
.pi-incident b{font-weight:var(--weight-semibold)}
.pi-incident--done{color:var(--text-2)}
.pi-incident--done>.ic{color:var(--text-3)}
.pi-incident--done b{color:var(--text)}
/* Spec 025 : ligne « Santé des connexions » sous l'incident (icône + mot, jamais la couleur seule) */
.pi-health{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-2);max-width:62ch}
.pi-health>.ic{flex:none;margin-top:2px}
.pi-health--ok>.ic{color:var(--success)}
.pi-health--warn{color:var(--text)}.pi-health--warn>.ic{color:var(--warning)}
.pi-health--fail{color:var(--text)}.pi-health--fail>.ic{color:var(--danger)}
.pi-health b{font-weight:var(--weight-semibold)}
.pi-health-link{display:flex;width:fit-content;margin-top:var(--space-1);padding:0}
@media (min-width:960px){.pi-health-link{min-height:var(--control)}}
/* Téléphone et tablette : en marche, l'interrupteur tient sur une ligne (point vert, « En marche », Tout arrêter) pour
   laisser « À décider » au premier écran ; un incident non résolu reste affiché. */
@media (max-width:767px){
  .pi-switch--on{flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-5)}
  .pi-switch--on .pi-switch-text{flex:1 1 0}
  .pi-switch--on .pi-switch-title,.pi-switch--on .pi-switch-say,.pi-switch--on .pi-incident--done{display:none}
  .pi-switch--on .pi-incident{margin-top:0}
  .pi-switch--on .pi-switch-state .st{font-size:var(--text-md)}
  /* Santé des connexions à surveiller : la phrase prend toute la largeur, « Tout arrêter » passe dessous. */
  .pi-switch--on:has(.pi-health--warn,.pi-health--fail){padding:var(--space-4) var(--space-5)}
  .pi-switch--on:has(.pi-health--warn,.pi-health--fail) .pi-switch-text{flex-basis:100%}
}
.pi-stop{flex:none;max-width:100%}
.pi-stop>summary{list-style:none}.pi-stop>summary::-webkit-details-marker{display:none}
.pi-stop[open]{flex:1 1 100%}
.pi-stop[open]>summary{display:none}
.pi-stop-form{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-5);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--danger-soft)}
.pi-stop-form p{flex:1 1 320px;max-width:64ch;color:var(--text)}
.pi-resume{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);flex:none;max-width:100%}
.pi-panel{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5)}
@media (min-width:768px){.pi-panel{padding:var(--space-6)}}
.pi-panel-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-1) var(--space-4)}
.pi-panel-head h2{display:flex;align-items:baseline;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:var(--tracking-title)}
.pi-panel-head h2 small{font-family:var(--font);font-size:var(--text-md);font-weight:var(--weight-regular);color:var(--text-2)}
.pi-panel-head .link--touch{margin:calc((var(--touch) - 1.5em) / -2) 0}
.pi-count{font-size:var(--text-sm);color:var(--text-2)}
.pi-panel-say{color:var(--text-2);font-size:var(--text-sm);max-width:68ch}
.pi-panel-foot{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:auto}
.pi-dec-list,.pi-ev-list,.pi-lv-list{list-style:none;margin:0;padding:0;overflow:hidden}
.pi-dec-list>li+li,.pi-ev-list>li+li,.pi-lv-list>li+li{border-top:1px solid var(--border)}
.pi-dec-row{display:flex;flex-direction:column;gap:var(--space-1);min-height:var(--touch);padding:var(--space-3) var(--space-4);color:inherit;text-decoration:none;transition:background var(--duration-fast) var(--ease)}
.pi-dec-row:hover{background:color-mix(in srgb,var(--surface-2) 55%,transparent)}
.pi-dec-row:hover b{text-decoration:underline;text-underline-offset:3px}
.pi-dec-row:focus-visible{outline-offset:-2px}
.pi-dec-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.pi-dec-main b{font-weight:var(--weight-semibold);line-height:var(--leading-snug);overflow-wrap:anywhere}
.pi-dec-obj{font-size:var(--text-sm);color:var(--text-2);overflow-wrap:anywhere}
.pi-dec-why{font-size:var(--text-sm);color:var(--text-2);overflow-wrap:anywhere;max-width:72ch}
.pi-dec-meta{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);font-size:var(--text-sm);color:var(--text-2)}
/* Une ligne du journal : (heure) | qui | ce qui s'est passé, puis domaine et marque en petit */
.pi-ev{display:grid;grid-template-columns:20px minmax(0,1fr);gap:var(--space-1) var(--space-3);align-items:start;padding:var(--space-3) var(--space-4)}
.pi-ev:not(.pi-ev--day){grid-template-columns:44px 20px minmax(0,1fr)}
.pi-ev-time{font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:var(--leading-snug)}
.pi-ev-who{display:flex;padding-top:2px;color:var(--text-3)}
.pi-ev-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.pi-ev-text{line-height:var(--leading-snug);overflow-wrap:anywhere}
.pi-ev-meta{font-size:var(--text-sm);color:var(--text-2);overflow-wrap:anywhere}
.pi-ev--incident .pi-ev-who{color:var(--danger)}
.pi-ev--incident .pi-ev-text{font-weight:var(--weight-semibold)}
@media (min-width:768px){.pi-ev:not(.pi-ev--day){grid-template-columns:56px 20px minmax(0,1fr);column-gap:var(--space-4)}}
/* Autonomie en un coup d'œil : Contenu et Pubs côte à côte, un niveau en mot par domaine */
.pi-levels{container-type:inline-size}
.pi-lv-groups{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4)}
@container (min-width:640px){.pi-lv-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}}
.pi-lv-group{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
.pi-lv-group h3{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-2)}
.pi-lv-list>li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:var(--touch);padding:var(--space-2) var(--space-4)}
.pi-lv-list>li>span:first-child{min-width:0;overflow-wrap:anywhere}
.pi-lv{display:inline-flex;align-items:center;gap:4px;flex:none;height:24px;padding:0 10px;border-radius:var(--radius-pill);background:var(--surface-2);color:var(--text-2);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap}
.pi-lv--propose{background:var(--surface-3);color:var(--text)}
.pi-lv--auto{background:var(--accent-soft);color:var(--accent-soft-text)}
.pi-empty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);padding:var(--space-6) var(--space-5)}
@media (min-width:768px){.pi-empty{padding:var(--space-8)}}
.pi-empty h2{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:var(--tracking-title);line-height:1.2}
.pi-empty p{color:var(--text-2);max-width:62ch}
.pi-empty-acts{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-1)}
.pi-empty-acts:empty{display:none}

/* Décisions : onglets et « Tout valider » sur une rangée, puis une carte par décision (requête de conteneur) */
.pd-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-6);margin-bottom:var(--space-5)}
.pd-tabs{flex:none}
.pd-count{margin-left:var(--space-2);color:var(--text-2);font-weight:var(--weight-regular)}
.pd-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);min-width:0}
.pd-bulk-say{flex:1 1 240px;max-width:46ch;font-size:var(--text-sm);color:var(--text-2)}
@media (min-width:1024px){.pd-bulk{flex-direction:row-reverse;flex-wrap:nowrap}.pd-bulk-say{text-align:right}}
.pd-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-4)}
.pd{padding:var(--space-5);container-type:inline-size;scroll-margin-top:calc(var(--sticky-top) + var(--space-4))}
@media (min-width:768px){.pd{padding:var(--space-6)}}
.pd-in{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3)}
.pd-in>*{min-width:0}
/* Téléphone : « Pourquoi » se lit avant les boutons (la colonne de gauche s'ouvre dans la grille) */
.pd-main{display:contents}
.pd-in>.pd-why{order:1}
.pd-main>.pd-acts,.pd-main>.pd-up,.pd-main>.pd-done{order:2}
.pd-tags{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-4);font-size:var(--text-sm);color:var(--text-2)}
.pd-q{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:var(--leading-snug);text-wrap:balance;overflow-wrap:anywhere}
.pd-q-obj{display:flex;align-items:flex-start;gap:var(--space-2);margin-top:var(--space-1);font-family:var(--font);font-size:var(--text-sm);font-weight:var(--weight-regular);letter-spacing:0;color:var(--text-2);overflow-wrap:anywhere}
.pd-q-obj>.ic{flex:none;margin-top:2px}
/* Spec 026 : titre du post en lien (zone de 44 px) : l'icône reste sur sa ligne, centrée */
.pd-q-obj--link{align-items:center}
.pd-q-obj--link>.ic{margin-top:0}
.pd-q-none{font-style:italic}
.pd-q-st--approved,.pd-q-st--executed{color:var(--success)}
.pd-q-st--failed{color:var(--danger)}
.pd-q-st--rejected,.pd-q-st--expired{color:var(--text-2)}
.pd-why--fold{padding:0 var(--space-4)}
.pd-why--fold>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:var(--touch);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-2);cursor:pointer}
.pd-why--fold>summary::-webkit-details-marker{display:none}
.pd-why--fold>summary .ic{transition:transform var(--duration-fast) var(--ease)}
.pd-why--fold[open]{padding-bottom:var(--space-4)}
.pd-why--fold[open]>summary .ic{transform:rotate(180deg)}
.pd-why--fold>summary:hover{color:var(--text)}
.pd-why{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4)}
.pd-why h4{margin:0;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-2)}
.pd-why p{max-width:68ch;overflow-wrap:anywhere}
.pd-budget{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2)}
.pd-budget>.ic{color:var(--text-3)}
.pd-budget-fig{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-regular);letter-spacing:var(--tracking-kpi);line-height:1.1}
.pd-budget-lab{font-size:var(--text-sm);color:var(--text-2)}
.pd-facts{display:grid;gap:var(--space-2);margin:0}
.pd-facts dt{font-size:var(--text-xs);color:var(--text-2)}
.pd-facts dd{margin:2px 0 0;font-size:var(--text-sm);overflow-wrap:anywhere}
.pd-done{font-size:var(--text-sm);color:var(--text-2);overflow-wrap:anywhere}
.pd-acts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding-top:var(--space-1)}
.pd-acts form{margin:0}
.pd-acts--no{padding-top:0}
.pd-lock{display:flex;align-items:flex-start;gap:var(--space-2);flex:1 1 260px;font-size:var(--text-sm);color:var(--text-2)}
.pd-lock>.ic{flex:none;margin-top:2px;color:var(--text)}
.pd-no>summary{list-style:none}.pd-no>summary::-webkit-details-marker{display:none}
.pd-no[open]{flex:1 1 100%}
.pd-no[open]>summary{display:none}
.pd-no-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3)}
.pd-no-form .field{flex:1 1 260px}
.pd-up{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);box-shadow:inset 3px 0 0 var(--warning)}
.pd-up-form{display:flex;flex-direction:column;gap:var(--space-3);margin:0}
.pd-up>.pd-acts{padding-top:0}
.pd-up-title{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--warning)}
.pd-up-title>.ic{flex:none;margin-top:2px}
.pd-amount{max-width:12rem}
.pd-up .check{align-items:flex-start}
.pd--closed .pd-q{font-size:var(--text-lg)}
@container (min-width:720px){
  .pd-in{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);column-gap:var(--space-6);align-items:start}
  .pd-main{display:flex;flex-direction:column;gap:var(--space-3)}
  .pd-in>.pd-why{order:0}
}

/* Autonomie : la portée, « Tout automatiser », puis Contenu et Pubs, un domaine par ligne (sélecteur à 3 positions) */
.pa-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-5);margin-bottom:var(--space-5)}
.pa-say{font-size:var(--text-sm);color:var(--text-2);max-width:60ch}
.pa-preset{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4) var(--space-6);margin-bottom:var(--space-5);padding:var(--space-5)}
@media (min-width:768px){.pa-preset{padding:var(--space-5) var(--space-6)}}
.pa-preset-text{flex:1 1 320px;min-width:0}
.pa-preset-text h2{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:var(--tracking-title)}
.pa-preset-text p{margin-top:var(--space-1);color:var(--text-2);max-width:60ch}
.pa-preset-text .ic{color:var(--text);vertical-align:-2px}
.pa-preset-go{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);max-width:100%}
.pa-groups{display:flex;flex-direction:column;gap:var(--space-5)}
.pa-group{padding:var(--space-5) var(--space-5) var(--space-2);container-type:inline-size}
@media (min-width:768px){.pa-group{padding:var(--space-6) var(--space-6) var(--space-3)}}
.pa-group .pi-panel-head{margin-bottom:var(--space-2)}
.pa-count{font-size:var(--text-sm);color:var(--text-2)}
.pa-list{list-style:none;margin:0;padding:0}
.pa-row+.pa-row{border-top:1px solid var(--border)}
.pa-in{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);padding:var(--space-4) 0}
.pa-text h3{font-size:var(--text-md);font-weight:var(--weight-semibold)}
.pa-help{margin-top:2px;color:var(--text-2);font-size:var(--text-sm);max-width:56ch}
.pa-src{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--text-2)}
.pa-ctl{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
.pa-effects{font-size:var(--text-sm);color:var(--text-2);min-height:1.5em}
.pa-effect{display:none}
.pa-form:has(.seg-opt--off input:checked) .pa-effect--off,.pa-form:has(.seg-opt--propose input:checked) .pa-effect--propose,.pa-form:has(.seg-opt--auto input:checked) .pa-effect--auto{display:inline}
@supports selector(:has(*)){
  .pa-save,.pa-confirm{display:none}
  .pa-form:has(input[name=niveau]:checked:not(:default)) .pa-save{display:flex}
  .pa-form:has(.seg-opt--auto input:checked:not(:default)) .pa-confirm{display:flex}
}
.pa-lock{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-2);max-width:52ch}
.pa-lock>.ic{flex:none;margin-top:2px;color:var(--text)}
@container (min-width:680px){
  .pa-in{grid-template-columns:minmax(0,1fr) minmax(300px,360px);column-gap:var(--space-8);align-items:start}
}
/* Sélecteur segmenté (vrais boutons radio) : piste pilule, le choix posé en blanc ; flèches du clavier natives */
.seg{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;margin:0;padding:2px;border:0;border-radius:var(--radius-pill);background:var(--surface-2);min-width:0}
.seg-opt{position:relative;display:flex;min-width:0}
.seg-opt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.seg-opt span{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:var(--touch);padding:0 var(--space-2);border-radius:var(--radius-pill);color:var(--text-2);font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;
  transition:background var(--duration) var(--ease),color var(--duration-fast) var(--ease)}
.seg-opt:hover span{color:var(--text)}
.seg-opt input:checked+span{background:var(--raised);color:var(--text);font-weight:var(--weight-semibold);box-shadow:var(--shadow-1)}
.seg-opt input:checked+span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}
.seg:disabled .seg-opt input:checked+span::before{background:var(--text-2)}
.seg-opt input:focus-visible+span{outline:2px solid var(--focus);outline-offset:1px}
.seg:disabled .seg-opt input{cursor:not-allowed}
.seg:disabled .seg-opt:hover span{color:var(--text-2)}
.seg:disabled .seg-opt input:checked+span{box-shadow:none;background:var(--surface-3)}
@media (max-width:379px){.seg-opt span{font-size:var(--text-xs);padding:0 var(--space-1)}}
:root[data-theme=dark] .seg-opt input:checked+span{box-shadow:0 0 0 1px var(--border-strong)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .seg-opt input:checked+span{box-shadow:0 0 0 1px var(--border-strong)}}

/* Journal du Pilote : domaine en piste, marque et période en menus, une seule rangée sur ordinateur */
.pj-filters{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3);margin:0 0 var(--space-4)}
.pj-menus{display:flex;flex-wrap:wrap;gap:var(--space-2)}
@media (max-width:639px){.pj-domains{width:100%}.pj-domains>*{flex:1}}
@media (min-width:1024px){.pj-filters{margin-bottom:var(--space-6)}}
.pj .pi-ev{padding:var(--space-3) var(--space-4)}

/* Pubs → Réglages : les règles ont déménagé dans le Pilote (un panneau, un lien) */
.moved-note>span[id]{position:absolute}
.moved-note{display:flex;position:relative;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-6);margin:0 0 var(--space-6);padding:var(--space-5)}
@media (min-width:768px){.moved-note{padding:var(--space-5) var(--space-6)}}
.moved-text{flex:1 1 320px;min-width:0}
.moved-text h2{font-size:var(--text-md);font-weight:var(--weight-semibold)}
.moved-text p{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--text-2);max-width:72ch}

/* ---------------------------------------------------------------- Conversations (spec 028, lot 18b)
   Une boîte unique : liste des fils à gauche, fil ouvert à droite dès 1 024 px (maître-détail) ; téléphone et tablette :
   deux pages (la liste, puis le fil avec son lien de retour). Panneaux blancs, groupes « inset », bulles en neutres :
   le public sur « inset », nos réponses sur l'accent pâle (le seul aplat d'accent, il dit « c'est toi »). */
.nav-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-pill);background:var(--accent);color:var(--text-on-accent);font-size:var(--text-xs);font-weight:var(--weight-semibold);line-height:1;letter-spacing:0}
.subnav .nav a .nav-count{margin-left:2px}
.bottom-nav a .nav-count{position:absolute;top:2px;left:calc(50% + 4px);min-width:18px;height:18px;padding:0 5px;font-size:var(--text-2xs)}
.cv-filters{display:flex;flex-direction:column;gap:var(--space-2);margin:0 0 var(--space-4);scroll-margin-top:calc(var(--sticky-top) + var(--space-4))}
.cv-filters .tabs a{white-space:nowrap;padding:0 var(--space-3)}
@media (min-width:640px){.cv-filters{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between}.cv-filters .tabs--full{width:max-content}.cv-filters .tabs--full>*{flex:none}.cv-filters .tabs a{padding:0 var(--space-4)}}
@media (min-width:768px){.cv-filters{margin-bottom:var(--space-5)}}
.cv{display:grid;gap:var(--space-4);min-width:0}
.cv-side,.cv-main{min-width:0}
@media (max-width:1023.98px){
  .cv-page:not(.cv-page--thread) .cv-main{display:none}
  .cv-page--thread .cv-side,.cv-page--thread .cv-filters{display:none}
  .cv-page--thread .cv-head{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
}
@media (min-width:1024px){
  .cv{grid-template-columns:minmax(300px,360px) minmax(0,1fr);align-items:start;gap:var(--space-5)}
  /* La liste suit le fil : collée sous la barre (sticky-top), défilement interne si elle dépasse la fenêtre. */
  .cv-side{position:sticky;top:calc(var(--sticky-top) + var(--space-4));max-height:calc(100vh - var(--sticky-top) - var(--space-8));overflow-y:auto;overscroll-behavior:contain;border-radius:var(--radius-2xl);scrollbar-width:thin}
  .cv-back{display:none}
}
.cv-list{list-style:none;margin:0;padding:var(--space-2);border-radius:var(--radius-xl);background:var(--surface)}
.cv-list>li+li{margin-top:2px}
.cv-row{display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:var(--space-3);align-items:start;padding:var(--space-3);border-radius:var(--radius-lg);color:var(--text);text-decoration:none;transition:background-color var(--duration-fast) var(--ease)}
.cv-row:hover{background:var(--inset)}
.cv-row[aria-current=page]{background:var(--surface-2)}
@media (min-width:1024px){.cv-row--shown{background:var(--surface-2)}}
.cv-row:focus-visible{outline-offset:-2px}
.cv-row .cv-av{margin-top:2px}
.cv-row-main{display:grid;gap:2px;min-width:0}
.cv-row-top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);min-width:0}
.cv-row-who{min-width:0;overflow-wrap:anywhere;font-weight:var(--weight-medium)}
.cv-row--open .cv-row-who{font-weight:var(--weight-semibold)}
.cv-row-time{flex:none;display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--text-2);white-space:nowrap}
.cv-row--dot .cv-row-time::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}
.cv-row-sub{display:flex;flex-wrap:wrap;align-items:center;gap:4px var(--space-2);font-size:var(--text-xs);color:var(--text-2)}
.cv-row-sub .net-mark{color:var(--text-2)}
.cv-soon{display:inline-flex;align-items:center;gap:4px;color:var(--text-2);font-weight:var(--weight-medium)}
.cv-soon .ic{flex:none;color:var(--warning)}
.cv-row-prev{font-size:var(--text-sm);line-height:1.4;color:var(--text-2);overflow-wrap:anywhere}
.cv-row-you{color:var(--text);font-weight:var(--weight-medium)}
.cv-erased{font-style:italic;color:var(--text-2)}
.cv-ad{display:inline-flex;align-items:center;height:20px;padding:0 var(--space-2);border-radius:var(--radius-xs);background:var(--ad-soft);color:var(--ad);font-size:var(--text-xs);font-weight:var(--weight-semibold);line-height:1}
.cv-av{font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:calc(var(--size) * .42)}
.cv-av .ic{color:var(--text-2)}
.cv-side .empty{border-radius:var(--radius-xl)}
.cv-empty{max-width:720px}.cv-empty--start{max-width:none}
.cv-start{display:grid;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-xl);background:var(--surface)}
.cv-start-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--radius-lg);background:var(--inset);color:var(--text-2)}
.cv-start-body{display:grid;gap:var(--space-3);justify-items:start;min-width:0}
.cv-start-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:1.25}
.cv-start-body>p{max-width:62ch;color:var(--text-2)}
.cv-start-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-5);margin-top:var(--space-1)}
@media (min-width:768px){.cv-start{grid-template-columns:48px minmax(0,1fr);column-gap:var(--space-5);padding:var(--space-8);border-radius:var(--radius-2xl)}}
.cv-thread{display:flex;flex-direction:column;min-width:0}
@media (min-width:768px){.cv-thread,.cv-list{border-radius:var(--radius-2xl)}.cv-thread{padding:var(--space-6)}}
.cv-thread--none{display:grid;place-items:center;min-height:240px;text-align:center}
.cv-back{margin:calc(var(--space-2) * -1) 0 var(--space-2)}
.cv-th-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}
.cv-th-id{display:flex;align-items:center;gap:var(--space-3);min-width:0;flex:1 1 220px}
.cv-th-names{min-width:0}
.cv-th-name{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:1.2;overflow-wrap:break-word}
@media (max-width:399.98px){.cv-th-name{font-size:var(--text-xl)}}
.cv-th-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px var(--space-3);margin-top:4px;font-size:var(--text-sm);color:var(--text-2)}
.cv-net{display:inline-flex;align-items:center;gap:6px}
.cv-th-side{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}
.cv-th-actions{display:flex;align-items:center;gap:var(--space-2)}
.cv-th-actions form{margin:0}
.cv-more>summary{display:grid;place-items:center;width:var(--control);height:var(--control);border-radius:var(--radius-pill);background:var(--surface-2);color:var(--text-2);cursor:pointer;list-style:none}
.cv-more>summary::-webkit-details-marker{display:none}
.cv-more>summary:hover{background:var(--surface-3);color:var(--text)}
.cv-more .menu-list{min-width:280px}
.cv-more .menu-list .danger .ic{color:var(--danger)}
.cv-post{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-lg);background:var(--inset)}
.cv-post>.ic{flex:none;margin-top:3px;color:var(--text-2)}
.cv-post>div{min-width:0}
.cv-post-cap{font-weight:var(--weight-medium);overflow-wrap:anywhere}
.cv-post-links{display:flex;flex-wrap:wrap;gap:0 var(--space-4);font-size:var(--text-sm)}
.cv-window{display:flex;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-4);font-size:var(--text-sm);color:var(--text-2)}
.cv-window .ic{flex:none;margin-top:2px}
.cv-window b{color:var(--text);font-weight:var(--weight-semibold)}
.cv-window--late .ic{color:var(--warning)}
.cv-flow{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-2) 0 var(--space-5)}
.cv-day-title{display:flex;justify-content:center;margin-bottom:var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-2)}
.cv-msgs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-4)}
.cv-msg{display:flex;flex-direction:column;align-items:flex-start;max-width:min(560px,90%)}
.cv-msg--out{align-self:flex-end;align-items:flex-end}
.cv-bubble{padding:var(--space-2) var(--space-4);border-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-sm);background:var(--inset);color:var(--text);line-height:var(--leading)}
.cv-msg--out .cv-bubble{border-bottom-left-radius:var(--radius-xl);border-bottom-right-radius:var(--radius-sm);background:var(--accent-soft)}
.cv-bubble p{white-space:pre-line;overflow-wrap:anywhere}
.cv-bubble .cv-erased{font-size:var(--text-sm)}
.cv-msg--hidden .cv-bubble{background:transparent;box-shadow:inset 0 0 0 1px var(--border-strong);color:var(--text-2)}
.cv-msg-meta{display:flex;flex-wrap:wrap;align-items:center;gap:2px var(--space-3);margin-top:var(--space-1);font-size:var(--text-xs);color:var(--text-2)}
.cv-msg--out .cv-msg-meta{justify-content:flex-end}
.cv-msg-meta .badge{gap:4px}
.cv-hide{margin:0}
.cv-hide .btn{padding:0 var(--space-2);font-size:var(--text-xs)}
@media (min-width:1024px){.cv-hide .btn{min-height:32px}}
.cv-note{font-size:var(--text-xs);color:var(--text-2);text-align:center}
.cv-fail{display:inline-flex;align-items:flex-start;gap:4px;color:var(--danger);font-weight:var(--weight-medium);text-align:left}
.cv-fail .ic{flex:none;margin-top:1px}
.cv-unknown{display:grid;gap:var(--space-2);justify-items:start;margin-top:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--warning-soft);color:var(--text);text-align:left;max-width:100%}
.cv-unknown-title{display:flex;align-items:center;gap:6px;font-weight:var(--weight-semibold)}
.cv-unknown-title .ic{flex:none;color:var(--warning)}
.cv-unknown form{margin:0}
.cv-compose{display:grid;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--inset)}
.cv-compose .field{margin:0}
.cv-compose .textarea{min-height:112px}
.cv-compose-foot{display:grid;gap:var(--space-3)}
.cv-compose-foot>.btn{justify-self:end}
@media (min-width:640px){.cv-compose-foot{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:var(--space-4)}}
.cv-compose-meta{display:grid;gap:var(--space-1);min-width:0}
.cv-compose-foot .char-count{text-align:left}
.cv-hint{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--text-2)}
.cv-hint .ic{flex:none;color:var(--warning)}
/* Même langage d'alerte que « Envoi incertain » (.cv-unknown) : aplat warning-soft, coins lg, sans filet. */
.cv-confirm{display:grid;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--warning-soft);color:var(--text)}
.cv-confirm:focus{outline:none}
.cv-confirm-title{display:flex;align-items:center;gap:6px;font-weight:var(--weight-semibold)}
.cv-confirm-title .ic{color:var(--warning)}
.cv-confirm ul{margin:0;padding-left:var(--space-5);font-size:var(--text-sm);display:grid;gap:var(--space-1)}
.cv-confirm ul li{list-style:disc}
.cv-compose--locked{justify-items:start}
.cv-lock,.cv-readonly{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-2)}
.cv-lock .ic,.cv-readonly .ic{flex:none;margin-top:2px}
.cv-readonly{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--inset)}

/* ============================================================ Spec 029, lot 19b1 : sous-pages, fenêtres, sommaire de cartes */
/* Menu « Plus » de l'en-tête ou d'une ligne : un bouton secondaire rond, le libellé dès 480 px (icône seule en dessous). */
.more>summary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control);min-width:var(--control);padding:0 var(--space-4);border-radius:var(--radius-pill);background:var(--surface-2);color:var(--text);font-size:var(--text-sm);font-weight:var(--weight-medium)}
.more>summary:hover{background:var(--surface-3)}
.more>summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.more[open]>summary{background:var(--surface-3)}
.more .menu-list{min-width:248px}
@media (max-width:479px){.more>summary{padding:0}.more-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
@media (pointer:coarse){.more>summary{min-height:var(--touch);min-width:var(--touch)}}

/* Fenêtre (une action à un seul but) : ouverte par son adresse, une page avec son panneau ; ouverte par le script, un
   <dialog> centré, le même panneau. Titre en Inter Display, phrase dessous, actions en bas (Annuler toujours à droite). */
.fenetre{max-width:640px;padding:var(--space-6);border-radius:var(--radius-xl);background:var(--surface)}
:root[data-theme=dark] .fenetre{box-shadow:inset 0 0 0 1px var(--border)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .fenetre{box-shadow:inset 0 0 0 1px var(--border)}}
@media (min-width:768px){.fenetre{border-radius:var(--radius-2xl);padding:var(--space-8)}}
.fenetre>h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-display);line-height:var(--leading-snug);overflow-wrap:anywhere;text-wrap:balance}
.fenetre>h1:focus{outline:none}
.fen-lede{margin-top:var(--space-2);color:var(--text-2);max-width:60ch;text-wrap:pretty}
.fen-body{display:grid;gap:var(--space-4);margin-top:var(--space-6);min-width:0}
.fen-body>form{display:grid;gap:var(--space-4);margin:0;min-width:0}
.fen-sub{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-semibold);margin-bottom:calc(-1 * var(--space-3))}
.fen-list{margin:0;padding:var(--space-1) var(--space-4);border-radius:var(--radius-lg);background:var(--inset)}
.fen-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}
@media (max-width:479px){.fen-actions{flex-direction:column-reverse}.fen-actions .btn{width:100%}}
.fenetre--danger>h1{color:var(--text)}
.fenetre--danger .fen-body{padding-left:var(--space-4);border-left:3px solid var(--danger)}
.fen-dialog{overscroll-behavior:contain;border:0;padding:0;margin:auto;background:transparent;color:var(--text);width:min(640px,calc(100vw - 2 * var(--space-4)));max-width:none;max-height:calc(100dvh - 2 * var(--space-4))}
.fen-dialog::backdrop{background:var(--overlay)}
.fen-dialog[open]{animation:modal-in var(--duration-slow) var(--ease)}
.fen-box{max-height:calc(100dvh - 2 * var(--space-4));overflow:auto;border-radius:var(--radius-2xl);background:var(--surface);box-shadow:var(--shadow-3);border:1px solid var(--border)}
.fen-box>.fenetre{max-width:none;border-radius:0;box-shadow:none;background:transparent}
.fen-dialog--quitter{width:min(440px,calc(100vw - 2 * var(--space-4)))}
.fen-dialog--quitter .fen-box{padding:var(--space-6)}
.fen-dialog--quitter h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold)}
.fen-dialog--quitter .fen-actions{margin-top:var(--space-5)}
/* Barre d'actions d'une fenêtre ouverte : collée au bas du panneau quand le contenu défile (téléphone surtout), sur toute
   sa largeur, avec un filet au-dessus. Le bas du panneau devient celui de la barre. */
.fen-box>.fenetre{--fen-pad:var(--space-6)}
@media (min-width:768px){.fen-box>.fenetre{--fen-pad:var(--space-8)}}
@media (max-width:479px){.fen-box>.fenetre{padding:var(--space-5);--fen-pad:var(--space-5)}}
.fen-box>.fenetre:has(.fen-actions){padding-bottom:0}
.fen-box .fen-actions{position:sticky;bottom:0;z-index:1;margin:0 calc(-1 * var(--fen-pad));padding:var(--space-4) var(--fen-pad) var(--fen-pad);background:var(--surface);border-top:1px solid var(--border)}
.fen-box .fenetre--danger .fen-actions{margin-left:calc(-1 * (var(--fen-pad) + var(--space-4) + 3px));padding-left:calc(var(--fen-pad) + var(--space-4) + 3px)}
@media (min-width:480px){.fen-box .fen-actions{padding-bottom:var(--space-6)}}
@media (max-width:479px){.fen-box .fen-actions{padding-top:var(--space-3);padding-bottom:var(--space-4)}}

/* Sous-page : lien de retour au-dessus du titre, contenu en colonne, l'enregistrement en bas. */
.subpage{display:grid;gap:var(--space-5);align-items:start;min-width:0}
.subpage>*{min-width:0}
.subpage:not(.subpage--aside){max-width:760px}
@media (min-width:1024px){.subpage--aside{grid-template-columns:minmax(0,1fr) 300px}.subpage--aside .disp-preview{position:sticky;top:calc(var(--topbar-h) + var(--space-4));margin-top:0}}
.disp-form{display:grid;gap:var(--space-5)}
.disp-colors{border:0;padding:0;margin:0;min-width:0}
.disp-colors legend{margin-bottom:var(--space-2)}
.disp-more{min-width:0}
.disp-more>summary{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch);cursor:pointer;font-weight:var(--weight-medium)}
.disp-more>summary .muted{font-weight:var(--weight-regular)}
.disp-more-body{display:grid;gap:var(--space-4);margin-top:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--inset)}
.sub-fold{margin-top:0}
.sv-speed{font-family:var(--font-display);font-size:var(--text-xl);line-height:var(--leading-snug);text-wrap:balance;max-width:40ch}
.sv-note{margin-top:var(--space-3)}
.sv-slow{display:flex;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--warning-soft)}
.sv-slow>.ic{flex:none;margin-top:2px;color:var(--warning)}
.sv-slow ul{margin:var(--space-2) 0;padding-left:var(--space-5)}

/* Réglages : sommaire de cartes (E-08). Une carte = titre, état en une ligne, un bouton ; Apparence règle sur place. */
.sum-notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-5);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-lg);background:var(--accent-soft);color:var(--accent-soft-text)}
.sum-notice p{display:flex;align-items:center;gap:var(--space-2);margin:0;font-weight:var(--weight-medium)}
.sum-notice p>.ic{flex:none}
.lang-notice p>span{text-wrap:balance}
.sum-notice form{margin:0}
/* Bandeau P4 (spec 038) : la même ligne pâle d'accent, en tête de l'écran ; « Passer en français » et la croix. */
.lang-notice{margin-bottom:var(--space-4)}
.lang-notice-acts{display:flex;align-items:center;gap:var(--space-1)}
.lang-notice .icon-btn{background:transparent;color:inherit}
.lang-notice .icon-btn:hover{background:var(--raised)}
.sum-grid{display:grid;gap:var(--space-4);grid-template-columns:minmax(0,1fr)}
@media (min-width:768px){.sum-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}.sum-card--wide{grid-column:1/-1}}
.sum-card{position:relative;display:flex;flex-direction:column;gap:var(--space-4);min-width:0;scroll-margin-top:calc(var(--topbar-h) + var(--space-6))}
.sum-card:target{box-shadow:0 0 0 2px var(--accent)}
.sum-anchor{position:absolute;top:0;left:0;width:1px;height:1px;scroll-margin-top:calc(var(--topbar-h) + var(--space-6))}
.sum-text h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title)}
.sum-state{margin-top:var(--space-1);color:var(--text-2);overflow-wrap:anywhere}
.sum-warn{color:var(--warning);font-weight:var(--weight-semibold)}
.sum-alert{display:flex;align-items:center;gap:var(--space-2);margin:0;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--warning)}
.sum-alert>.ic{flex:none}
.sum-go{margin-top:auto}
.sum-appearance{display:grid;gap:var(--space-4)}
.sum-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}
.sum-row--stack{display:grid;justify-content:stretch}
.sum-label{font-weight:var(--weight-medium)}
/* Mode et langue l'un sous l'autre (spec 038) ; « Rien que pour toi » sous le mot « Langue ». */
.sum-pair{display:grid;gap:var(--space-4);align-content:start}
.sum-row--lang .sum-label{display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.sum-note{font-size:var(--text-xs);font-weight:var(--weight-regular);color:var(--text-2)}
@media (min-width:1024px){.sum-card--wide .sum-appearance{grid-template-columns:auto minmax(0,1fr);align-items:start;column-gap:var(--space-10)}.sum-card--wide .sum-row--stack{grid-template-columns:auto minmax(0,1fr);align-items:center}}

/* Marque : vue d'ensemble (E-02). Les canaux à gauche, Santé et Stratégie en une phrase à droite dès 1 024 px. */
.ov-grid{display:grid;gap:var(--space-4);align-items:start}
@media (min-width:1024px){.ov-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--space-5)}}
.ov-side{display:grid;gap:var(--space-4);min-width:0}
@media (min-width:768px) and (max-width:1023px){.ov-side{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ov-card{min-width:0;scroll-margin-top:calc(var(--topbar-h) + var(--space-6))}
.ov-channels .card-head{flex-wrap:wrap;row-gap:var(--space-1)}
.ov-more{display:inline-flex;align-items:center;gap:var(--space-1)}
.ov-line h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold)}
.ov-line p{margin:var(--space-2) 0 var(--space-3);color:var(--text-2);text-wrap:pretty}
.ov-line .link{display:inline-flex;align-items:center;gap:var(--space-1)}
.ch-row--overview{grid-template-columns:36px minmax(0,1fr);grid-template-areas:"mark text" "mark state"}
.ch-row--overview .ch-name{overflow-wrap:anywhere}
@media (min-width:640px){.ch-row--overview{grid-template-columns:36px minmax(0,1fr) auto;grid-template-areas:"mark text state"}.ch-row--overview .ch-state{justify-self:end}}
/* Publication par réseau : délais et condition repliés (« Plus de réglages »). */
.cs-more{min-width:0}
.cs-more>summary{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch);cursor:pointer;font-weight:var(--weight-medium)}
.cs-more>summary .muted{font-weight:var(--weight-regular)}
.cs-more[open]>summary{margin-bottom:var(--space-3)}

/* Équipe : invitations en attente au-dessus, puis les membres ; rôle et périmètre en mots ; « Plus » par ligne. */
.tm-stack{display:grid;gap:var(--space-5)}
.tm-card .card-head{margin-bottom:var(--space-2)}
.tm-row{grid-template-columns:36px minmax(0,1fr) auto;grid-template-areas:"mark who more" ". access more";align-items:center}
.tm-row>.tm-access{grid-area:access;margin:0;font-size:var(--text-sm);color:var(--text-2);overflow-wrap:anywhere}
.tm-row>.tm-row-more,.tm-row>.tm-invite-acts{grid-area:more;align-self:center}
/* Les actions d'une ligne (« ⋯ » d'un membre, « Renvoyer » et « Annuler » d'une invitation) : une seule rangée, collée
   à la marge droite de la carte, dans une colonne de même largeur pour les deux listes. */
.tm-list--edit>.tm-row{padding-right:0}
.tm-invite-acts{display:flex;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:var(--space-1)}
.tm-invite-acts form{margin:0}
.tm-invite-acts .btn{white-space:nowrap}
.tm-row>.tm-row-more,.tm-row>.tm-invite-acts{justify-self:end}
@container (max-width:519px){.tm-row--invite{grid-template-areas:"mark who" ". access" ". more";grid-template-columns:36px minmax(0,1fr)}.tm-row--invite .tm-invite-acts{justify-self:start;justify-content:flex-start;margin-left:calc(-1 * var(--space-3))}}
@container (min-width:720px){.tm-row{grid-template-columns:36px minmax(0,5fr) minmax(0,6fr) 13rem;grid-template-areas:"mark who access more"}}
.tm-row-more>summary{padding:0}
.tm-row-more .more-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tm-invite .field{max-width:440px}
.disp-more>summary,.cs-more>summary{list-style:none}
.disp-more>summary::-webkit-details-marker,.cs-more>summary::-webkit-details-marker{display:none}
.disp-more>summary::after,.cs-more>summary::after{content:"";width:7px;height:7px;margin-left:var(--space-1);border:solid currentColor;border-width:0 1.75px 1.75px 0;transform:translateY(-2px) rotate(45deg);transition:transform var(--duration) var(--ease)}
.disp-more[open]>summary::after,.cs-more[open]>summary::after{transform:translateY(1px) rotate(-135deg)}
.tm-note{margin-top:var(--space-3)}

/* ============================================================ Spec 029, lot 19b2 : règles en phrases, constructeur, Pubs → Réglages */
.card-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:1.25;margin-bottom:var(--space-4)}
.rl-card-lede{margin:calc(-1 * var(--space-2)) 0 var(--space-4);max-width:68ch}
/* Ligne d'état des garde-fous à gauche, « Nouvelle règle » à droite (au-dessus, pleine largeur, au téléphone). */
.rl-bar,.pr-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-4);margin:0 0 var(--space-5)}
.rl-bar>.btn--primary,.pr-bar>.btn--primary{flex:none}
@media (max-width:639px){.rl-bar{flex-direction:column-reverse;align-items:stretch}.rl-bar>.btn--primary{justify-content:center}.rl-bar>.rl-guards{flex:none}}
.rl-guards{display:flex;flex:1 1 320px;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3);min-width:0;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-lg)}
.rl-guards-text{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-3);margin:0;min-width:0;font-size:var(--text-sm);color:var(--text-2)}
.rl-guards-text .st{font-weight:var(--weight-semibold);color:var(--text)}
.rl-guards>.btn{flex:none}
.rl-head>.rl-more{margin-left:auto}
.rl-head{flex-wrap:nowrap;align-items:flex-start}
.rl-head>.rl-name{flex:1 1 auto}
.rl-head>.rl-tags{flex:none;padding-top:2px}
@media (max-width:639px){.rl-head{flex-wrap:wrap}.rl-head>.rl-name{flex-basis:calc(100% - var(--touch) - var(--space-3))}.rl-head>.rl-tags{order:3;flex-basis:100%;padding-top:0}.rl-head>.rl-more{order:2}}
.rl-name a{display:inline-flex;align-items:center;min-height:var(--touch);margin-block:calc((1.4em - var(--touch)) / 2);color:inherit;text-decoration:none}
.rl-name a:hover{text-decoration:underline;text-underline-offset:3px}
.rl-name a:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-xs)}
.rl-more>summary{padding:0}
.rl-more .more-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rl-sentence{max-width:72ch}
.rl-trial-line{display:flex;align-items:flex-start;gap:var(--space-2);margin:0;color:var(--text-2)}
.rl-trial-line>.ic{flex:none;margin-top:2px}
.rl-trial-line .link{margin-left:var(--space-1)}
.rl-journal-fold{margin-top:var(--space-5)}
.rl-state{display:grid;gap:var(--space-3);padding:var(--space-5)}
@media (min-width:768px){.rl-state{padding:var(--space-5) var(--space-6)}}
.rl-state .card-title{margin:0}
.subpage--wide:not(.subpage--aside){max-width:880px}
/* Premier écran du constructeur : les modèles (une ligne cliquable chacun), « Partir de zéro » en dernier, tireté. */
.tp-picks{list-style:none;margin:0;padding:0 var(--space-2);border-radius:var(--radius-lg)}
.tp-picks>li+li{border-top:1px solid var(--border)}
.tp-pick{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch);padding:var(--space-3) var(--space-2);color:var(--text);text-decoration:none;border-radius:var(--radius-md)}
.tp-pick:hover{background:var(--surface-2)}
.tp-pick:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.tp-pick>.ic{flex:none;margin-left:auto;color:var(--text-3)}
.tp-pick-text{display:grid;gap:2px;min-width:0}
.tp-pick-text b{font-weight:var(--weight-semibold);overflow-wrap:anywhere}
.tp-pick--blank{margin:var(--space-2) 0;border:1px dashed var(--border-strong)}
.tp-picks>li:has(.tp-pick--blank){border-top:0}
/* Formulaire court : « Plus de réglages » replié, ses groupes séparés par l'espace et un sous-titre. */
.rb-plus>.rb-more-body{display:grid;gap:var(--space-5)}
.rb-sub{padding:0;margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold)}
.rb-plus .rb-group{min-width:0;margin:0;padding:0;border:0}
.rb-card>.sim{margin-top:var(--space-5)}
.prf-more{margin-top:var(--space-3)}
.gf-more{margin-top:var(--space-5)}
.sum-state .st{font-size:inherit}
/* Pubs → Réglages : jauge et arrêt d'urgence dans la carte « Publicités Meta » (RM-06, sans dévoilement). */
.sum-card--money .sum-extra{display:grid;gap:var(--space-4)}
.sum-stop{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border)}
.sum-stop p{margin:0;max-width:56ch}
@media (min-width:1024px){.sum-card--money{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);grid-template-areas:"text extra" "go extra";column-gap:var(--space-8);align-items:start}.sum-card--money>.sum-text{grid-area:text}.sum-card--money>.sum-extra{grid-area:extra}.sum-card--money>.sum-go{grid-area:go;margin-top:0}}
.tm-search{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}
.tm-search .input{flex:1 1 auto;min-width:0}
.tm-perso .scen{margin-top:var(--space-2)}
/* « Personnaliser » : le libellé et son chevron sur une ligne, le résumé des choix dessous (jamais un chevron seul). */
.tm-perso>summary{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"lab chev" "sum sum";align-items:center;justify-items:start;column-gap:var(--space-2);row-gap:2px;padding-block:var(--space-2)}
.tm-perso>summary::after{grid-area:chev}
.tm-perso-lab{grid-area:lab}
.tm-perso-sum{grid-area:sum;font-size:var(--text-sm);overflow-wrap:anywhere}
/* Correction du lot 19b2 (critique) */
/* Sous-pages de Pubs → Réglages et Garde-fous : toute la colonne, comme la sous-page Équipe. */
.subpage.subpage--full{max-width:none}
.ads-stop-row{margin-top:var(--space-5)}
/* Pilote → Règles : « Nouvelle règle » à droite du titre ; la phrase dessous, sur toute la largeur de la colonne. */
.pr-head{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title acts" "lede lede";align-items:center;column-gap:var(--space-4);row-gap:0}
.pr-head>div:first-child{display:contents}
.pr-head h1{grid-area:title;min-width:0}
.pr-head h1+p{grid-area:lede;text-wrap:pretty}
.pr-head>.page-actions{grid-area:acts;justify-content:flex-end;align-items:center}
@media (max-width:639px){.pr-head{grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "lede" "acts";row-gap:var(--space-4)}.pr-head>.page-actions{justify-content:flex-start}}
/* Une règle de la liste : le « ⋯ » (44 px) ne creuse plus l'écart entre le nom et la phrase (environ 10 px). */
.rl-item>.rl-head>.rl-more{margin-block:calc((var(--text-md) * 1.4 - var(--touch)) / 2)}
/* Constructeur au téléphone : « Si » et « pendant » au-dessus de leurs menus, les premiers menus alignés. */
@media (max-width:479px){.rb-cond>.rb-word,.rb-after>.rb-word{flex:1 1 100%;min-height:0}
  /* La valeur et sa période partagent une ligne : l'unité (« × », « € ») reste entre les deux, jamais seule au bout. */
  .rb-cond>.rb-c-val{flex:1 1 7rem;max-width:none}.rb-cond>.rb-c-win{flex:1 1 9rem;max-width:none}}
.rb-soon{margin:0}
/* Sommaire : « Gérer » juste sous le résumé de Publicités Meta ; Apparence en 2 × 2 puis sur 4 colonnes, libellés en haut. */
@media (min-width:1024px){.sum-card--money{grid-template-rows:auto 1fr}.sum-card--money>.sum-go{align-self:start}
  .sum-card--wide .sum-row--stack{align-items:start}
  .sum-card--wide .sum-appearance .sum-label{display:flex;align-items:center;min-height:var(--touch)}
  .sum-card--wide .sum-appearance .sum-row--lang .sum-label{flex-direction:column;align-items:flex-start;justify-content:center}
  /* Mode et Langue : une colonne de libellés, une colonne de sélecteurs alignés à gauche (même bord pour les deux). */
  .sum-card--wide .sum-pair{grid-template-columns:auto auto;justify-content:start;column-gap:var(--space-6)}
  .sum-card--wide .sum-pair>.sum-row{display:contents}
  .sum-card--wide .accent-switch{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1280px){.sum-card--wide .accent-switch{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Une liste de choix trop longue pour sa largeur se termine par des points de suspension, sans déborder. */
.select{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;min-width:0;max-width:100%}
@supports selector(:has(*)){
  .fenetre .tm-go--any{display:none}
  .fenetre:has(input[name=acces][value=invitation]:checked) .tm-go--invitation,
  .fenetre:has(input[name=acces][value=compte]:checked) .tm-go--compte{display:contents}
}


/* Lot 19b3 (spec 029, E-22 à E-24) : bloc replié d'un formulaire en panneau (titre, résumé en une ligne, chevron). */
.fold-card{padding:0}
.fold-card>summary{list-style:none;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title chev" "sum sum";align-items:center;column-gap:var(--space-3);row-gap:2px;min-height:var(--touch);padding:var(--space-4) var(--space-5);border-radius:var(--radius-xl);cursor:pointer}
.fold-card>summary::-webkit-details-marker{display:none}
.fold-card>summary:hover{background:var(--surface-2)}
.fold-card[open]>summary{border-radius:var(--radius-xl) var(--radius-xl) 0 0}
.fold-card>summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.fold-card>summary>.ic:last-child{grid-area:chev;color:var(--text-2);transition:transform var(--duration) var(--ease)}
.fold-card[open]>summary>.ic:last-child{transform:rotate(180deg)}
.fold-card-title{grid-area:title;display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-md);font-weight:var(--weight-semibold)}
.fold-card-title .ic{color:var(--text-3);flex:none}
.fold-card-sum{grid-area:sum;min-width:0;font-size:var(--text-sm);color:var(--text-2);overflow-wrap:anywhere}
.fold-card-sum--changed{color:var(--text);font-weight:var(--weight-medium)}
.fold-card-sum--changed::before{content:"";display:inline-block;width:6px;height:6px;margin-right:var(--space-2);border-radius:50%;background:var(--accent);vertical-align:middle;transform:translateY(-1px)}
.fold-card:not([open])>.fold-card-body{display:none}
.fold-card-body{display:grid;gap:var(--space-4);padding:0 var(--space-5) var(--space-5)}
@media (min-width:768px){.fold-card>summary{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"title sum chev";column-gap:var(--space-4)}.fold-card-sum{text-align:right}}
@media (prefers-reduced-motion:reduce){.fold-card>summary>.ic:last-child{transition:none}}
.np-links{margin-top:var(--space-3)}
.np-links .disp-more-body .field+.hint{margin-top:0}
.np-space{margin-top:var(--space-3)}
/* Actions de Créer : Programmer, Enregistrer en brouillon, Aperçu (téléphone et tablette seulement). */
.compose-actions{flex-wrap:wrap;align-items:center}
.compose-brouillon-note{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0}
/* Pubs → Créer (E-25) : piste du type, rappel du plafond et total juste avant le bouton (RM-06). */
.camp-type{margin-bottom:var(--space-4)}
.camp-template{margin-bottom:var(--space-3)}
.camp-template .template-picker{margin-bottom:0}
.form-sections-foot{display:grid;gap:var(--space-3)}
.camp-cap{display:grid;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-radius:var(--radius-xl);background:var(--surface)}
.camp-cap .cap-gauge{margin:0}
.camp-left,.camp-total{margin:0;font-size:var(--text-sm);color:var(--text-2)}
.camp-total{font-size:var(--text-md);color:var(--text)}
.camp-custom{min-width:0;align-self:start}
.camp-over{color:var(--danger);font-weight:var(--weight-medium)}
/* Pilote → Vue d'ensemble (E-26) : l'interrupteur en tête, puis 3 lignes d'état, chacune avec son lien. */
@media (min-width:1024px){.pi-overview--short{grid-template-columns:minmax(0,1fr)}}
.pi-state{padding:var(--space-2) var(--space-5)}
@media (min-width:768px){.pi-state{padding:var(--space-2) var(--space-6)}}
.pi-lines{list-style:none;margin:0;padding:0}
.pi-line{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"ic text" ". go";align-items:start;column-gap:var(--space-3);row-gap:0;padding:var(--space-3) 0}
.pi-line+.pi-line{border-top:1px solid var(--border)}
.pi-line-ic{grid-area:ic;display:inline-flex;margin-top:2px;color:var(--text-3)}
.pi-line--todo .pi-line-ic{color:var(--accent)}
.pi-line-text{grid-area:text;margin:0;min-width:0;max-width:68ch;text-wrap:pretty}
.pi-line-text b{font-weight:var(--weight-semibold)}
.pi-line-lab{font-weight:var(--weight-semibold)}
.pi-line-lab::after{content:" ·"}
.pi-line-meta{color:var(--text-2);white-space:nowrap}
.pi-line-meta::before{content:"· "}
.pi-line-go{grid-area:go;display:inline-flex;align-items:center;gap:2px;width:fit-content;padding:0}
@media (min-width:768px){.pi-line{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"ic text go";align-items:center;column-gap:var(--space-4);min-height:var(--touch)}.pi-line-ic{margin-top:0}}
/* Autonomie (E-27) : « En savoir plus » sous le nom du domaine ; « Tout automatiser » en fenêtre, dans l'en-tête. */
.pa-more>summary{min-height:var(--touch);font-size:var(--text-sm);color:var(--text-2);font-weight:var(--weight-regular)}
.pa-more>summary:hover{color:var(--text)}
.pa-more-body{display:grid;gap:var(--space-2);margin-top:var(--space-1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--inset)}
.pa-more-body .pa-help,.pa-more-body .pa-src{margin:0}
.pa-levels{display:grid;gap:var(--space-1);margin:0;font-size:var(--text-sm)}
.pa-levels>div{display:grid;grid-template-columns:minmax(6.5rem,auto) minmax(0,1fr);gap:var(--space-2)}
.pa-levels dt{font-weight:var(--weight-semibold)}
.pa-levels dd{margin:0;color:var(--text-2)}
.pa-scope a,.camp-type a{min-height:var(--touch)}
@media (min-width:960px){.pa-scope a,.camp-type a{min-height:var(--control)}}
.pa-preset-form{display:grid;gap:var(--space-3)}
/* Accueil (E-33) : raccourcis sous le titre, 3 au plus, en pastilles ; aucune zone quand rien n'attend (E-34). */
.home-shortcuts{margin:calc(var(--space-2) * -1) 0 var(--space-5)}
.home-shortcuts ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}
.home-shortcut-form{margin:0}
.home-shortcut{display:inline-flex;border:0;font:inherit;cursor:pointer;align-items:center;gap:var(--space-2);min-height:var(--touch);padding:0 var(--space-3) 0 var(--space-4);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font-weight:var(--weight-medium);text-decoration:none;transition:background var(--duration-fast) var(--ease)}
.home-shortcut>.ic:first-child{color:var(--accent)}
.home-shortcut>.ic:last-child{color:var(--text-3)}
.home-shortcut:hover{background:var(--surface-2)}
.home-shortcut:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media (max-width:479px){.home-shortcuts li{flex:1 1 100%}.home-shortcut{width:100%}.home-shortcut>span{flex:1 1 auto}}
@media (prefers-reduced-motion:reduce){.home-shortcut{transition:none}}
@media print{
  @page{size:A4;margin:14mm 12mm 16mm}
  :root,:root[data-theme],:root:not([data-theme=light]){--bg:#F0F0EE;--surface:#FFFFFF;--inset:#F4F4F3;--surface-2:#E8E8E3;--surface-3:#DEDED8;--raised:#FFFFFF;--overlay:rgb(17 18 20 / 0.45);--text:#111214;--text-2:#5E5F64;--text-3:#606166;--border:#E4E4DF;--border-strong:#CFCFC9;--border-input:#7D7F85;--brand:#0B5E7E;--brand-field:#0A4A63;--brand-field-2:#0E5874;--text-on-brand:#FFFFFF;--text-on-brand-2:#C7DFE8;--accent:#0B5E7E;--accent-hover:#084B66;--accent-soft:#E1F0F5;--accent-soft-text:#0A4A63;--text-on-accent:#FFFFFF;--focus:#0B5E7E;--chart:#0B5E7E;--chart-muted:#B9DCE8;--heat-1:#D8E5EA;--heat-ink-1:#111214;--heat-2:#A7C5D1;--heat-ink-2:#111214;--heat-3:#5E95AA;--heat-ink-3:#111214;--heat-4:#0B5E7E;--heat-ink-4:#FFFFFF;--success:#1A7140;--success-soft:#E3F1E8;--warning:#8F5600;--warning-soft:#F7EEDD;--danger:#C02C24;--danger-hover:#A2231D;--danger-soft:#F9E5E3;--text-on-danger:#FFFFFF;--status-queued:#2B4C9B;--status-queued-soft:#E6EBF6;--status-preparing:#8F5600;--status-preparing-soft:#F7EEDD;--status-ready:#141517;--status-ready-soft:#E6E6E1;--status-published:#1A7140;--status-published-soft:#E3F1E8;--status-failed:#C02C24;--status-failed-soft:#F9E5E3;--status-cancelled:#55575C;--status-cancelled-soft:#EFEFEA;--status-draft:#7A4A2A;--status-draft-soft:#F3E9E1;--best-time:color-mix(in srgb, var(--accent) 7%, transparent);--best-time-line:color-mix(in srgb, var(--accent) 38%, transparent);--now-line:#C02C24;--ad:#9A2A8A;--ad-soft:#F7E9F4;--shadow-1:0 1px 2px rgb(17 18 20 / 0.05);--shadow-2:0 12px 32px -12px rgb(17 18 20 / 0.24);--shadow-3:0 28px 64px -20px rgb(17 18 20 / 0.34);color-scheme:light}
  :root[data-accent=prune],:root[data-accent=prune][data-theme],:root[data-accent=prune]:not([data-theme=light]){--accent:#7A2D66;--accent-hover:#63234F;--accent-soft:#F5E8F1;--accent-soft-text:#5E2250;--text-on-accent:#FFFFFF;--focus:#7A2D66;--chart:#7A2D66;--chart-muted:#E4C3DA;--heat-1:#EADDE7;--heat-ink-1:#111214;--heat-2:#CFB3C8;--heat-ink-2:#111214;--heat-3:#A7749A;--heat-ink-3:#111214;--heat-4:#7A2D66;--heat-ink-4:#FFFFFF;}:root[data-accent=mousse],:root[data-accent=mousse][data-theme],:root[data-accent=mousse]:not([data-theme=light]){--accent:#4D5A12;--accent-hover:#3E490C;--accent-soft:#EEF1DD;--accent-soft-text:#3D470E;--text-on-accent:#FFFFFF;--focus:#4D5A12;--chart:#4D5A12;--chart-muted:#D3DBA6;--heat-1:#E3E5D9;--heat-ink-1:#111214;--heat-2:#BFC4AA;--heat-ink-2:#111214;--heat-3:#8A9263;--heat-ink-3:#111214;--heat-4:#4D5A12;--heat-ink-4:#FFFFFF;}:root[data-accent=graphite],:root[data-accent=graphite][data-theme],:root[data-accent=graphite]:not([data-theme=light]){--accent:#141517;--accent-hover:#2C2E33;--accent-soft:#E6E6E1;--accent-soft-text:#141517;--text-on-accent:#FFFFFF;--focus:#141517;--chart:#141517;--chart-muted:#C9C9C2;--heat-1:#D9DADA;--heat-ink-1:#111214;--heat-2:#AAABAB;--heat-ink-2:#111214;--heat-3:#646566;--heat-ink-3:#FFFFFF;--heat-4:#141517;--heat-ink-4:#FFFFFF;}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  html,body{background:var(--surface)}
  .sidebar,.topbar,.bottom-nav,.toasts,.skip-link,.no-print,.btn,.icon-btn,.switch{display:none!important}
  .app{display:block;padding:0}
  .main{padding:0;max-width:none}
  h1{font-size:var(--text-2xl)}
  h2,h3,.card-head{break-after:avoid}
  .page-head{margin-bottom:var(--space-3)}
  .card{box-shadow:none;padding:var(--space-3) var(--space-4);break-inside:avoid}
  .report-card--analysis{break-inside:auto}
  .card-head{margin-bottom:var(--space-2)}
  /* Grilles « auto-fit » : 4 chiffres clés et 2 colonnes sur une page A4, sans dépendre de la largeur de l'écran qui lance l'impression */
  .kpis{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:var(--space-2)}
  .kpi-value{font-size:var(--text-2xl)}
  .report-kpis .kpi-sub--wrap{flex-direction:column;align-items:flex-start}
  .report-grid{gap:var(--space-3)}
  .report-cols{grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:var(--space-4) var(--space-6)}
  .mini-stats{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr))}
  .kpi,.kpi-value{min-width:0;overflow-wrap:anywhere}
  .rank-item{grid-template-columns:28px minmax(6rem,1fr) auto}
  .banner{break-inside:avoid}
  .rank-item,.gbars li{break-inside:avoid}
  a{color:inherit;text-decoration:none}
  .print-only{display:block}
  .print-brand{margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border);font-size:var(--text-xs);color:var(--text-2)}
  .report-foot{margin-top:var(--space-3)}
}
