/* Shared icon paint; child artwork can retain its own optical exceptions. */
.wy-icon{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
:where(.wy-icon:not([width])){width:16px}
:where(.wy-icon:not([height])){height:16px}
.wy-icon--fill{fill:currentColor}.wy-icon--black{fill:black}.wy-icon--no-stroke{stroke:none}.wy-icon--gold{stroke:var(--wyGold2)}
.wy-icon--w10{stroke-width:1}.wy-icon--w12{stroke-width:1.2}.wy-icon--w16{stroke-width:1.6}.wy-icon--w17{stroke-width:1.7}.wy-icon--w18{stroke-width:1.8}.wy-icon--w20{stroke-width:2}.wy-icon--w24{stroke-width:2.4}.wy-icon--w27{stroke-width:2.7}
.wy-icon--butt{stroke-linecap:butt}.wy-icon--square{stroke-linecap:square}.wy-icon--miter{stroke-linejoin:miter}

/* ═══════════════════════════════════════════════════════════════════════
   Wytt — Atelier design system
   Port of the design handoff (Wytt-Atelier.dc.html) to the Phoenix codebase.
   App components (foundations live in tokens.css): the first section holds what is left of the
   former app.css (global reset, JS overlays, older class names still
   produced), kept first so the cascade order is unchanged.
   Theme: `.wy-dark` on <html> flips the tokens (see root.html.heex anti-FOUC).
   ═══════════════════════════════════════════════════════════════════════ */

/* ─── Legacy base (ex-app.css) ────────────────────────────────────────
   Global reset and the old class names still produced by HEEx or by the
   TipTap hook (selection bubble, link dialog). Must stay first.
   The document background follows the theme so no dark band shows when the
   page bounces past its edges. */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{font-family:var(--wy-font-ui);font-size:var(--font-size-base);background:var(--wyPaper);color:var(--wyInk);line-height:1.5;min-height:100vh}
a{color:var(--wyAccent);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{font-family:var(--wy-font-ui)}
.flash-messages{position:fixed;top:var(--spacing-lg);right:var(--spacing-lg);z-index:1000;display:flex;flex-direction:column;gap:var(--spacing-sm)}
.nav-sidebar{width:240px;min-width:240px;background:var(--color-bg-card);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:fixed;left:0;top:0;height:100vh;z-index:100;transition:transform var(--transition-normal)}
@media (max-width: 768px){
.nav-sidebar{transform:translateX(-100%)}
}
.editor-competitor-title{margin:0.2rem 0 0;font-size:0.8125rem;color:var(--color-text-secondary);word-break:break-word}
.editor-selection-bubble{position:fixed;z-index:1200;display:inline-flex;align-items:center;gap:var(--wy-s1);padding:6px;border-radius:12px;border:1px solid rgba(255, 255, 255, 0.28);background:rgba(245, 245, 245, 0.18);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 12px 28px rgba(0, 0, 0, 0.38);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(6px);transition:opacity 120ms ease, transform 120ms ease, visibility 120ms ease}
.editor-selection-bubble.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.editor-selection-bubble__btn{min-width:32px;height:30px;padding:0 var(--wy-s2);border:none;border-radius:8px;background:transparent;color:rgba(255, 255, 255, 0.92);font-size:12px;font-weight:700;line-height:1;letter-spacing:0.01em;cursor:pointer;transition:background 120ms ease, color 120ms ease}
.editor-selection-bubble__btn:hover{background:rgba(255, 255, 255, 0.14);color:#ffffff}
.editor-selection-bubble__btn.is-active{background:rgba(255, 255, 255, 0.24);color:#ffffff}
.editor-selection-bubble__btn.is-italic{font-style:italic}
.editor-selection-bubble__btn.is-underline{text-decoration:underline;text-underline-offset:2px}
.editor-selection-bubble__btn.is-link{min-width:46px;font-size:var(--wy-text-meta);font-weight:600}
.editor-link-dialog__overlay{position:fixed;inset:0;z-index:1300;display:none;align-items:center;justify-content:center;padding:var(--wy-s4);background:rgba(0, 0, 0, 0.48)}
.editor-link-dialog__overlay.is-visible{display:flex}
.editor-link-dialog{width:min(520px, calc(100vw - 32px));border-radius:16px;border:1px solid rgba(255, 255, 255, 0.1);background:#1c1c1e;box-shadow:0 24px 80px rgba(0, 0, 0, 0.5);color:#ffffff;overflow:hidden}
.editor-link-dialog__header{display:flex;align-items:center;justify-content:space-between;gap:var(--wy-s3);padding:1.25rem 1.5rem;border-bottom:var(--wy-hairline) solid rgba(255, 255, 255, 0.08)}
.editor-link-dialog__title{font-size:1.125rem;font-weight:600;line-height:1.2;margin:0}
.editor-link-dialog__close{width:28px;height:28px;border:none;border-radius:var(--wy-r-pill);background:rgba(255, 255, 255, 0.1);color:rgba(255, 255, 255, 0.72);padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.editor-link-dialog__close:hover{background:rgba(255, 255, 255, 0.18);color:#ffffff}
.editor-link-dialog__close-icon{width:14px;height:14px;display:block}
.editor-link-dialog__form{display:grid;gap:0.75rem;padding:1.25rem 1.5rem 1.5rem}
.editor-link-dialog__field{display:grid;gap:6px}
.editor-link-dialog__label{font-size:13px;font-weight:600;color:rgba(255, 255, 255, 0.92)}
.editor-link-dialog__input,.editor-link-dialog__select{width:100%;height:40px;border-radius:8px;border:1px solid rgba(255, 255, 255, 0.12);background:rgba(255, 255, 255, 0.06);color:#ffffff;font-size:var(--wy-text-body);padding:0 var(--wy-s3)}
.editor-link-dialog__select{appearance:none;-webkit-appearance:none;padding-right:2.25rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23b0b0b0' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.editor-link-dialog__input::placeholder{color:rgba(255, 255, 255, 0.55)}
.editor-link-dialog__input:focus,.editor-link-dialog__select:focus{outline:none;border-color:rgba(255, 255, 255, 0.3)}
.editor-link-dialog__actions{display:flex;justify-content:flex-end;align-items:center;gap:var(--wy-s2);margin-top:2px}
.editor-link-dialog__btn{height:36px;border:none;border-radius:10px;padding:0 14px;font-size:13px;font-weight:600;cursor:pointer}
.editor-link-dialog__btn--ghost{background:rgba(255, 255, 255, 0.08);color:rgba(255, 255, 255, 0.92)}
.editor-link-dialog__btn--ghost:hover{background:rgba(255, 255, 255, 0.14)}
.editor-link-dialog__btn--danger{margin-right:auto;background:rgba(197, 26, 32, 0.12);color:#ff8f93}
.editor-link-dialog__btn--danger:hover{background:rgba(197, 26, 32, 0.22)}
.editor-link-dialog__btn--primary{background:var(--color-primary);color:#ffffff}
.editor-link-dialog__btn--primary:hover{background:var(--color-primary-hover)}
.tiptap-content{min-height:100%;padding:0}
.tiptap-content .ProseMirror{outline:none;min-height:400px;padding:0;font-size:1rem;line-height:1.75;color:var(--color-text);background:transparent}
.tiptap-content .ProseMirror:focus{outline:none}
.tiptap-content .ProseMirror p{margin:0 0 1rem 0}
.tiptap-content .ProseMirror > :first-child{margin-top:0}
.tiptap-content .ProseMirror h1{font-size:1.75rem;font-weight:700;margin:1.5rem 0 1rem 0;color:var(--color-text)}
.tiptap-content .ProseMirror h2{font-size:1.5rem;font-weight:600;margin:1.5rem 0 1rem 0;color:var(--color-text)}
.tiptap-content .ProseMirror h3{font-size:1.25rem;font-weight:600;margin:1.5rem 0 1rem 0;color:var(--color-text)}
.tiptap-content .ProseMirror h4{font-size:1.125rem;font-weight:600;margin:1.5rem 0 1rem 0;color:var(--color-text)}
.tiptap-content .ProseMirror ul,.tiptap-content .ProseMirror ol{padding-left:1.5rem;margin:1rem 0}
.tiptap-content .ProseMirror li{margin:0.5rem 0}
.tiptap-content .ProseMirror a{color:var(--wytt-red);text-decoration:underline;cursor:pointer}
.tiptap-content .ProseMirror a:hover{opacity:0.8}
.tiptap-content .ProseMirror strong{font-weight:600}
.tiptap-content .ProseMirror em{font-style:italic}
.tiptap-content .ProseMirror u{text-decoration:underline}
.tiptap-content .ProseMirror s{text-decoration:line-through}
.tiptap-content .ProseMirror code{background:var(--color-bg-hover);padding:0.125rem 0.25rem;border-radius:0.25rem;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:0.875rem}
.tiptap-content .ProseMirror pre{background:var(--color-bg-hover);padding:1rem;border-radius:0.5rem;overflow-x:auto;margin:1rem 0}
.tiptap-content .ProseMirror blockquote{border-left:1px solid var(--color-border);padding-left:1rem;margin:1rem 0;font-style:italic;color:var(--color-text-muted)}
.phx-submit-loading .wy-btn,.wy-btn.phx-click-loading{opacity:0.7;pointer-events:none}
button[disabled][data-phx-disabled]{opacity:0.7;cursor:not-allowed}
.save-status{display:inline-flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);font-weight:500;transition:all var(--transition-fast)}
.save-status--saving{color:var(--color-text-muted);animation:save-pulse 1.2s ease-in-out infinite}
.save-status--saved{color:var(--color-success)}
@media (prefers-reduced-motion: reduce){
.save-status--saving{animation:none !important;transition:none !important}
}
.nav-sidebar{background:rgba(28, 28, 28, 0.85);backdrop-filter:blur(12px)}
.apple-card__footer-action{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1rem 1.5rem;border-top:1px solid rgba(255, 255, 255, 0.1)}
.table-pagination__pages{display:inline-flex;align-items:center;gap:0.375rem}
.table-pagination__page{width:2rem;height:2rem;border:1px solid rgba(255, 255, 255, 0.14);border-radius:var(--wy-r-pill);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:all 200ms ease}
.table-pagination__page:hover{border-color:rgba(255, 255, 255, 0.28);color:var(--color-text)}
.table-pagination__page--active{border-color:rgba(255, 255, 255, 0.36);background:rgba(255, 255, 255, 0.16);color:var(--color-text);cursor:default}
.seo-ctr-chart{margin-top:1rem}
.seo-ctr-chart__svg{width:100%;height:auto;display:block}
.seo-ctr-chart__grid{stroke:rgba(255, 255, 255, 0.08);stroke-width:1}
.seo-ctr-chart__baseline{stroke:rgba(255, 255, 255, 0.25);stroke-width:1;stroke-dasharray:4 4}
.seo-ctr-chart__line{fill:none;stroke-width:2.25}
.seo-ctr-chart__line--article{stroke:#35b3ff}
.seo-ctr-chart__line--site{stroke:#7ddf85}
.seo-ctr-chart__dot{stroke-width:1.5}
.seo-ctr-chart__dot--article{fill:#35b3ff;stroke:#35b3ff}
.seo-ctr-chart__dot--site{fill:#7ddf85;stroke:#7ddf85}
.seo-ctr-chart__label{fill:var(--color-text-secondary);font-size:10px}
.seo-ctr-legend{display:flex;gap:1rem;align-items:center;margin-top:0.625rem}
.seo-ctr-legend__item{display:inline-flex;align-items:center;gap:0.35rem;color:var(--color-text-secondary);font-size:var(--font-size-sm)}
.seo-ctr-legend__dot{width:0.6rem;height:0.6rem;border-radius:var(--wy-r-pill);display:inline-block}
.seo-ctr-legend__dot--article{background:#35b3ff}
.seo-ctr-legend__dot--site{background:#7ddf85}
@media (max-width:639.98px){
.seo-ctr-legend{flex-wrap:wrap}
}
@keyframes save-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }

/* ─── Fonts ─────────────────────────────────────────────────────────── */
@font-face{font-family:'Eczar';font-style:normal;font-weight:400 800;font-display:swap;src:url('/assets/fonts/atelier/Eczar-variable-bf868749084dbcf8b61a1c3fd5661ebc.woff2?vsn=d') format('woff2')}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/atelier/SchibstedGrotesk-variable-c5e9a9901938d27cc1f895de4b3b32ec.woff2?vsn=d') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/atelier/IBMPlexMono-400-814fe1615d4dbc7bbd92d26a6bda0905.woff2?vsn=d') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/atelier/IBMPlexMono-500-6708425c446b05de1c2d471a0eaf4099.woff2?vsn=d') format('woff2')}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:200 800;font-display:swap;src:url('/assets/fonts/atelier/Newsreader-variable-057433e2a6ebe70b2ca47ff7a5b698fd.woff2?vsn=d') format('woff2')}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:200 800;font-display:swap;src:url('/assets/fonts/atelier/Newsreader-Italic-variable-86703cdb05e63282c320c747d511a97d.woff2?vsn=d') format('woff2')}

/* Tokens partagés : tokens.css, chargé avant cette feuille. */

/* ─── Keyframes ─────────────────────────────────────────────────────── */
@keyframes wy-spin{to{transform:rotate(360deg)}}
@keyframes wy-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes wy-shimmer{0%{background-position:-320px 0}100%{background-position:320px 0}}
@keyframes wy-toast-hide{to{opacity:0;transform:translateY(8px);visibility:hidden}}

/* ─── Base (scoped to .wy-root so legacy pages keep app.css) ────────── */
.wy-root{position:relative;min-height:100vh;background:var(--wyDesk);font-family:var(--wy-font-ui);color:var(--wyInk);-webkit-font-smoothing:antialiased}
.wy-root,.wy-root *{box-sizing:border-box}
/* Sélection on-brand dans les deux thèmes : teinte lajvard OPAQUE, calculée sur le papier
   (24 % en clair, 50 % en sombre) pour une seule nuance, sans superposition entre éléments
   imbriqués ni débord plus foncé en fin de ligne. Texte 9,5:1 (clair), 6,7:1 (sombre). */
::selection,.wy-root ::selection,.wy-root input::selection,.wy-root textarea::selection{background:var(--wySelBg);color:var(--wySelInk)}
/* Focus visible = filet lajvard (contraste ≥ 3:1 sur tous les fonds, L18) ;
   le focus d'un CHAMP passe au liséré lajvard avec son halo, règle groupée plus bas. */
.wy-root *:focus-visible{outline:2px solid var(--wyAccent);outline-offset:2px}
.wy-root ::-webkit-scrollbar{width:10px;height:10px}
.wy-root ::-webkit-scrollbar-thumb{background:var(--wyScroll);border:3px solid var(--wyPaper);border-radius:6px}
:where(.wy-root) button{font-family:inherit;cursor:pointer}
.wy-root input,.wy-root textarea{font-family:inherit}

/* ─── Shell: sidebar + content (fixed sidebar + margin, checkbox-hack) ─ */
.wy-nav{position:fixed;left:0;top:0;height:100vh;width:248px;flex:none;background:var(--wyRail);border-right:1px solid var(--wyLine);display:flex;flex-direction:column;z-index:100;transition:transform var(--wy-duration-panel) ease}
/* Logo, icônes des liens et e-mail sur un même bord : 24 px (12 de liste + 12 de lien). */
.wy-nav__head{padding:22px var(--wy-s6) 18px;display:flex;align-items:center;gap:10px;border-bottom:var(--wy-hairline) solid var(--wyLine)}
.wy-nav__brand{font-family:var(--wy-font-editorial);font-weight:700;font-size:24px;color:var(--wyInk2)}
.wy-nav__logo{flex:none;display:block;border-radius:8px}
.wy-nav__logo--dark{display:none}
html.wy-dark .wy-nav__logo{display:none}
html.wy-dark .wy-nav__logo--dark{display:block}
.wy-nav__list{padding:var(--wy-s4) var(--wy-s3);display:flex;flex-direction:column;gap:3px}
.wy-navitem{display:flex;align-items:center;gap:11px;padding:10px var(--wy-s3);border:none;border-radius:11px;background:transparent;color:var(--wyInk5);font-size:var(--wy-text-control-lg);font-weight:500;text-align:left;text-decoration:none;cursor:pointer}
.wy-navitem:hover{background:var(--wyCard);text-decoration:none}
.wy-navitem--active{background:var(--wyCard);color:var(--wyInk2);font-weight:600;box-shadow:0 6px 20px -12px rgba(var(--wyShdw),.14)}
.wy-navitem__icon{width:18px;height:18px;flex:none;display:grid;place-items:center;color:inherit}
.wy-navitem__icon svg{width:18px;height:18px}
.wy-navitem__diamond{margin-left:auto;width:6px;height:6px;flex:none;background:var(--wyAccent);transform:rotate(45deg)}
.wy-nav__spacer{flex:1}
.wy-nav__foot{padding:var(--wy-s4) var(--wy-s6);border-top:1px solid var(--wyLine)}
.wy-nav__email{font-size:var(--wy-text-control);font-weight:600;color:var(--wyInk3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wy-nav__signout{margin-top:5px;font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);color:var(--wyInk5);background:none;border:none;padding:0;cursor:pointer;text-decoration:none;display:inline-block}
.wy-nav__signout:hover{color:var(--wyAccent);text-decoration:none}

.wy-main{margin-left:248px;min-height:100vh;background-color:var(--wyPaper);background-image:var(--wyGrain);background-size:300px 300px}

/* Mobile nav (≤768px) — pure CSS checkbox hack, CSP-safe, JS-free. */
.wy-navtoggle{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
/* Au-dessus de 768 px le menu est toujours ouvert : la case invisible sort du parcours clavier. */
@media (min-width:769px){.wy-navtoggle{display:none}}
.wy-navbtn,.wy-navback,.wy-navtheme{display:none}
@media (max-width:768px){
  /* Fermé, le menu sort aussi du parcours clavier (visibility, après la glissade). */
  .wy-nav{transform:translateX(-100%);visibility:hidden;transition:transform var(--wy-duration-panel) ease,visibility 0s var(--wy-duration-panel)}
  .wy-navtoggle:checked ~ .wy-nav{transform:none;visibility:visible;transition:transform var(--wy-duration-panel) ease}
  .wy-navtoggle:focus-visible + .wy-navbtn{outline:2px solid var(--wyAccent);outline-offset:2px}
  .wy-navbtn{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--wy-s1);position:absolute;top:12px;left:var(--wy-s4);width:44px;height:44px;z-index:120;background:var(--wyCard);border:1px solid var(--wyLine3);border-radius:10px;cursor:pointer}
  .wy-navbtn span{display:block;width:20px;height:2px;background:var(--wyInk4);border-radius:2px}
  .wy-navtoggle:checked ~ .wy-navback{display:block;position:fixed;inset:0;background:rgba(var(--wyShdw),.42);z-index:90}
  .wy-main{margin-left:0;padding-top:56px}
  .wy-navtheme{display:block;position:absolute;top:calc(12px + (44px - var(--wy-ctl-h)) / 2);right:var(--wy-s4);z-index:85}
  .wy-main:not(.wy-main--flush) .wy-themebtn{display:none}
  /* Le logo se décale à droite du bouton menu, qui reste au-dessus du panneau ouvert. */
  .wy-nav__head{padding-left:68px;min-height:68px}
}

/* View container shared by the 4 list views. */
.wy-view,.wy-set{max-width:var(--wy-view-max);margin:0 auto;padding:var(--wy-page-top) var(--wy-page-gutter) var(--wy-page-bottom)}

/* ─── View header (h1 + count pill + theme toggle) ──────────────────── */
/* Sans frise décorative, l’écart sous l’en-tête sépare seul la vue (24 px). */
.wy-vhead{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--wy-s6);margin-bottom:var(--wy-s6)}
.wy-vhead+.wy-det__sub{margin-top:0}
.wy-vhead__title{font-family:var(--wy-font-editorial);font-weight:700;font-size:var(--wy-text-page);line-height:1;color:var(--wyInk2);margin:0}
.wy-vhead__actions{display:flex;align-items:center;gap:var(--wy-s3);flex:none}
/* Sous 640 px le titre a sa ligne : il tombe au même y sur toutes les pages, actions ou non. */
@media (max-width:639.98px){.wy-vhead{flex-wrap:wrap;row-gap:var(--wy-s3)}.wy-vhead__title{flex:1 1 100%;font-size:var(--wy-text-page-mobile);min-width:0}.wy-vhead__actions:not(:has(> :not(.wy-themebtn))){display:none}}
.wy-count{font-family:var(--wy-font-mono);font-size:12px;color:var(--wyInk5);padding:5px var(--wy-s3);background:var(--wyCard);border:1px solid var(--wyLine3);border-radius:var(--wy-r-pill);white-space:nowrap}
.wy-credchip{font-family:var(--wy-font-mono);font-size:12px;color:var(--wyGold2);background:var(--wyCard);border:1px solid var(--wyLine3);border-radius:var(--wy-r-pill);white-space:nowrap;text-decoration:none;cursor:pointer}
.wy-credchip:hover{border-color:var(--wyGold2);text-decoration:none}
.wy-credchip--low{color:var(--wyWarn);background:var(--wyWarnBg);border-color:var(--wyWarnBd)}

/* Theme toggle button — sun in dark, moon in light. */
.wy-themebtn{flex:none;display:grid;place-items:center;border:1px solid var(--wyLine3);background:var(--wyCard);color:var(--wyInk4);cursor:pointer}
.wy-themebtn:hover{border-color:var(--wyAccent);color:var(--wyAccent)}
.wy-themebtn .wy-sun{display:none}
.wy-themebtn .wy-moon{display:block}
html.wy-dark .wy-themebtn .wy-sun{display:block}
html.wy-dark .wy-themebtn .wy-moon{display:none}

/* ─── Focus des champs : liséré lajvard + halo (spec) ────────────────
   Une seule règle pour tous les champs de l'app — les classes listées sont
   celles qui portaient `border-color:var(--wyBandline)` au focus. */
.wy-root input:where(:not([type=checkbox],[type=radio])):focus,.wy-root textarea:focus,.wy-root select:focus,
.wy-cmdbar__field:focus-within{border-color:var(--wyAccent);box-shadow:0 0 0 3px color-mix(in srgb,var(--wyAccent) 18%,transparent);outline:none}
.wy-root input[aria-invalid="true"]:focus{border-color:var(--wy-vermillon);box-shadow:0 0 0 3px color-mix(in srgb,var(--wy-vermillon) 18%,transparent)}

/* ─── Étoile Lajvard : médaillon, coins, tête de barre ────────────────
   Le glow d'or est un MOMENT produit (attente, succès) : il ne s'allume que
   sur `--pulse`, jamais en décor permanent. */
.wy-star{display:block;flex:none}
.wy-star--pulse{animation:wy-starglow 2.6s ease-in-out infinite}
@keyframes wy-starglow{0%,100%{filter:drop-shadow(0 0 3px rgba(211,169,60,.25))}50%{filter:drop-shadow(0 0 16px rgba(211,169,60,.8))}}
@media (prefers-reduced-motion:reduce){.wy-star--pulse{animation:none}}
.wy-coins{position:absolute;inset:0;pointer-events:none}
.wy-coin{position:absolute;opacity:.35}
.wy-coin--tl{top:12px;left:12px}.wy-coin--tr{top:12px;right:12px}
.wy-coin--bl{bottom:12px;left:12px}.wy-coin--br{bottom:12px;right:12px}

/* ─── Barre de génération ornementale (frise qui s'allonge) ───────────
   La frise pleine échelle remplit la piste, l'étoile veille en tête, le
   pourcentage se lit HORS de la barre (spec) — jamais un texte sur le motif. */
.wy-genbar{display:flex;align-items:center;gap:10px;margin-top:var(--wy-s2)}
.wy-genbar__track{flex:1;min-width:0;position:relative;height:22px;border:1px solid var(--wyLine3);background:var(--wyCard);border-radius:var(--wy-r-s);overflow:hidden}
.wy-genbar__fill{position:absolute;top:0;bottom:0;left:0;border-radius:9px 3px 3px 9px;background-image:url(/images/atelier/frise-5bcda82ca3b2511dcf3faf69f09691ad.svg?vsn=d);background-size:auto 100%;background-repeat:repeat-x;background-position:left center;box-shadow:0 0 9px rgba(211,169,60,.4);transition:width .4s ease}
.wy-genbar__lead{position:absolute;top:50%;right:2px;margin-top:-9px}
.wy-genbar__pct{flex:none;font-family:var(--wy-font-mono);font-size:11.5px;color:var(--wyInk5)}

/* ─── Standard des contrôles (docs/product/mobile-standard.md) ─────────
   Une seule famille : hauteur --wy-ctl-h (32 px, 44 px sous 640 px), rayon
   --wy-r-s, marge horizontale --wy-s3. --wy-ctl-h-lg seulement pour le bouton
   accolé à un grand champ ou l'appel à l'action seul de sa rangée ; dans une
   barre, tout a la même hauteur. 999px reste aux pastilles et chips. Les règles de chaque
   classe, plus bas, ne portent que leurs couleurs et leurs variantes. */
.wy-modal__confirm,.wy-modal__link,.wy-pub-platform,
.wy-root .editor-link-dialog__btn,.wy-tb-btn{min-height:var(--wy-ctl-h);padding:var(--wy-s1) var(--wy-s3);border-radius:var(--wy-r-s);font-size:var(--wy-text-control);line-height:1.2}
.wy-support-pill{min-height:var(--wy-ctl-h-lg);padding:var(--wy-s1) var(--wy-s4);font-size:var(--wy-text-control-lg)}
.wy-themebtn,.wy-root .editor-link-dialog__close,.wy-tb-btn--sq,.wy-root .table-pagination__page{flex:none;width:var(--wy-ctl-h);height:var(--wy-ctl-h);min-height:0;padding:0;border-radius:var(--wy-r-s)}
.wy-credchip,.wy-coachtab,.wy-dur{display:inline-flex;align-items:center;min-height:var(--wy-ctl-h);padding:0 var(--wy-s3);border-radius:var(--wy-r-pill)}
.wy-artbar__input,.wy-cmdbar__field,.wy-field__input,.wy-modal__input,.wy-input,.wy-input-group,.wy-support-input,
.wy-root .editor-link-dialog__input,.wy-root .editor-link-dialog__select{border-radius:var(--wy-r-s)}
/* Pagination partagée (TableComponents) : couleurs Atelier au lieu du thème sombre hérité. */
.wy-root .apple-card__footer-action{flex-wrap:wrap;gap:var(--wy-s2);padding:var(--wy-s4) 0;border-top-color:var(--wyLine)}
.wy-root .table-pagination__page{border:1px solid var(--wyLine3);background:var(--wyCard);color:var(--wyInk4)}
.wy-root .table-pagination__page:hover{border-color:var(--wyAccent);background:var(--wyCard);color:var(--wyAccent)}
.wy-root .table-pagination__page--active{border-color:var(--wyAccent);background:var(--wyLapisBg);color:var(--wyLapis)}

/* ─── Boutons : un seul jeu, .wy-btn + modificateurs ─────────────────────
   .wy-btn seul = neutre (filet, fond carte). Variantes : --primary (plein
   lajvard), --secondary (contour lajvard), --tertiary (lien souligné), --danger
   (plein vermillon), --ghost (ni filet ni fond ; avec --danger, suppression
   discrète). Tailles : --lg (bouton d'un grand champ ou seul de sa rangée, jamais
   dans une barre), --icon (carré).
   Mise en page : --grow (partage une rangée), --block (pleine largeur).
   Même nommage que l'Atelier IA (editor-ai.css). Restent à part : la barre
   d'outils de l'éditeur (.wy-tb-btn, boutons bascule groupés), le dialogue de
   lien construit en JS, les pastilles et les boutons de navigation. */
.wy-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--wy-s2);min-height:var(--wy-ctl-h);padding:var(--wy-s1) var(--wy-s3);border:1px solid var(--wyLine3);border-radius:var(--wy-r-s);background:var(--wyCard);color:var(--wyInk4);font-family:var(--wy-font-ui);font-size:var(--wy-text-control);font-weight:600;line-height:1.2;letter-spacing:normal;text-transform:none;text-align:center;text-decoration:none;cursor:pointer}
/* Le reset hérité l'emportait dans un conteneur mono (« Ajouter un site »). */
.wy-root .wy-btn{font-family:var(--wy-font-ui)}
.wy-btn:hover{border-color:var(--wyAccent);color:var(--wyAccent);text-decoration:none}
:is(.wy-btn,.wy-themebtn,.wy-tb-btn,.wy-rowact):active:not(:disabled){filter:brightness(.94)}
.wy-btn:disabled{opacity:var(--wy-disabled-opacity);cursor:default}
.wy-btn--primary,.wy-btn--primary:hover{border-color:var(--wyAccentSolid,var(--wyAccent));background:var(--wyAccentSolid,var(--wyAccent));color:var(--wyOnAccentSolid,var(--wyOnAccent))}
.wy-btn--primary:hover:not(:disabled){border-color:var(--wyAccentSolidHover,var(--wyAccent2));background:var(--wyAccentSolidHover,var(--wyAccent2))}
.wy-btn--secondary{border-color:var(--wyAccent);background:transparent;color:var(--wyAccent)}
.wy-btn--secondary:hover:not(:disabled){background:var(--wyOverBg);color:var(--wyLapis)}
.wy-btn--tertiary,.wy-btn--tertiary:hover{border-color:transparent;background:transparent;color:var(--wyAccent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.wy-btn--danger,.wy-btn--danger:hover{border-color:var(--wyDanger);background:var(--wyDanger);color:var(--wyPaper)}
.wy-btn--danger:hover:not(:disabled){filter:brightness(.94)}
.wy-btn--ghost,.wy-btn--ghost.wy-btn--danger{border-color:transparent;background:transparent;color:var(--wyMute);filter:none}
.wy-btn--ghost:hover:not(:disabled){border-color:transparent;background:var(--wyHover);color:var(--wyInk3)}
.wy-btn--ghost.wy-btn--danger:hover:not(:disabled){background:var(--wyDangerBg);color:var(--wyDanger);filter:none}
.wy-btn--lg{min-height:var(--wy-ctl-h-lg);padding:var(--wy-s1) var(--wy-s4);font-size:var(--wy-text-control-lg)}
.wy-btn--icon{flex:none;width:var(--wy-ctl-h);height:var(--wy-ctl-h);min-height:0;padding:0;font-size:var(--wy-text-field-mobile);line-height:1}
.wy-btn--grow{flex:1}
.wy-btn--block{display:flex;width:100%}
.wy-modal .wy-btn--block{margin-top:var(--wy-s2)}

/* ─── Card / table row ──────────────────────────────────────────────── */
.wy-card{background:var(--wyCard);border:1px solid var(--wyLine3);border-radius:var(--wy-r-m);box-shadow:var(--wy-shadow-card)}
/* Secondaire (contour lajvard) / tertiaire (lien souligné) — spec Lajvard. */
/* Atelier raw text blocks (prompts, responses) and their compact secondary links. */
.wy-atelier-code{overflow:auto;white-space:pre-wrap;word-break:break-word;background:var(--wyRail);border:1px solid var(--wyLine3);border-radius:11px;color:var(--wyInk3);padding:14px;font-family:var(--wy-font-mono);font-size:var(--wy-text-control);line-height:1.55}
.wy-atelier-code--article{max-height:50vh;margin:var(--wy-s2) 0 0}
.wy-atelier-code--essai{max-height:55vh;margin:0}
.wy-atelier-code--carte{max-height:60vh;margin:var(--wy-s3) 0 0}
.wy-row{padding:var(--wy-s4);border-bottom:var(--wy-hairline) solid var(--wyRowline);border-radius:0;box-shadow:none}
.wy-row:hover{background:var(--wyHover)}
.wy-seorow .wy-rowact{opacity:0;transition:opacity var(--wy-duration-enter) ease}
.wy-seorow:hover .wy-rowact,.wy-seorow:focus-within .wy-rowact{opacity:1}

/* ─── Status pills (5 states) ───────────────────────────────────────── */
.wy-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:var(--wy-s1) var(--wy-s3);border-radius:var(--wy-r-pill);border:1px solid transparent;font-family:var(--wy-font-mono);font-size:var(--wy-text-label);line-height:1}
.wy-pill--generating{background:var(--wyWarnBg);border-color:var(--wyWarnBd);color:var(--wyWarn)}
.wy-pill--ready{background:var(--wyLapisBg);border-color:var(--wyLapisBd);color:var(--wyLapis)}
.wy-pill--testing{background:var(--wyOkTint2);border-color:var(--wyOkBd2);color:var(--wyOlive2)}
.wy-pill--done{background:var(--wyOkTint);border-color:var(--wyOkBd2);color:var(--wyOk)}
.wy-pill--failed{background:var(--wyDangerBg);border-color:var(--wyDangerBd);color:var(--wyDanger)}
.wy-dot{width:5px;height:5px;flex:none;border-radius:50%;background:currentColor}
.wy-dot--diamond{border-radius:0;transform:rotate(45deg)}
.wy-dot--pulse{animation:wy-pulse 1.5s ease infinite}
.wy-check{font-size:var(--wy-text-meta);line-height:1}

/* ─── Command bar (Titres SEO / NLP generate bar) ───────────────────── */
.wy-cmdbar{padding:var(--wy-s4)}
.wy-cmdbar__row{display:flex;gap:var(--wy-s3);align-items:center}
/* Grand champ + bouton : une seule hauteur, --wy-ctl-h-lg, pour le champ et son bouton. */
.wy-cmdbar__field{flex:1;display:flex;align-items:center;gap:10px;height:var(--wy-ctl-h-lg);border:1px solid var(--wyLine3);background:var(--wyPaper);padding:0 14px}
.wy-cmdbar__input{flex:1;border:none;background:transparent;padding:0;font-size:var(--wy-text-body);color:var(--wyInk3);outline:none}

/* ─── Toast (bottom-center, auto-fades ~2.3s, CSS-only) ─────────────── */
.wy-toaster{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:80;display:flex;flex-direction:column;gap:var(--wy-s2);align-items:center;pointer-events:none}
.wy-toast{pointer-events:auto;border:1px solid var(--wyLine3);background:var(--wyCard);color:var(--wyInk2);padding:var(--wy-s2) var(--wy-s4);border-radius:var(--wy-r-s);font-size:13px;box-shadow:var(--wy-shadow-float);animation:wy-rise var(--wy-duration-toast) ease both,wy-toast-hide var(--wy-duration-exit) ease 2.3s forwards}
.wy-toast--error{border-color:var(--wyDangerBd);background:var(--wyDangerBg);color:var(--wyDanger)}

/* ═══════════════════════════════════════════════════════════════════════
   EDITOR (full-screen). Markup ids (#wy-grid, #wy-leftcol, #wy-rightcol,
   #wytt-editor, #wy-toolbar, #wy-scrim, #wy-main, #wy-topbar, #wy-title,
   #wy-left, #wy-right) come from the editor
   view. Dock / drawer state classes live on #wy-grid:
     .wy-dock-left-off / .wy-dock-right-off  → collapse a rail to width 0
     .wy-left-open / .wy-right-open           → open the mobile drawer overlay
   ═══════════════════════════════════════════════════════════════════════ */
/* Infobulle (sceau de l'IA, Publier sans destination) : ici pour toutes les pages,
   l'Atelier IA n'est pas chargé pour tout le monde. Masquée une fois le panneau ouvert. */
.wy-tip{position:relative}.wy-tip::after{content:attr(data-tip);position:absolute;right:0;top:calc(100% + var(--wy-s2));z-index:100;padding:calc(var(--wy-s1) * 1.25) calc(var(--wy-s3) * .75);border:1px solid var(--wyLine3);border-radius:var(--wy-r-s);background:var(--wyCard);color:var(--wyInk3);box-shadow:var(--wy-shadow-float);font:12px/1.3 var(--wy-font-ui);white-space:nowrap;pointer-events:none;opacity:0}
.wy-tip:hover::after,.wy-tip:focus-visible::after{opacity:1}
.wy-tip[aria-expanded=true]::after{display:none}
/* Lien d'évitement : invisible jusqu'au premier Tab. */
.wy-skip{position:fixed;top:var(--wy-s2);left:var(--wy-s4);z-index:120;display:inline-flex;align-items:center;min-height:var(--wy-ctl-h);padding:0 var(--wy-s3);border-radius:var(--wy-r-s);background:var(--wyCard);border:1px solid var(--wyAccent);color:var(--wyAccent);font-size:var(--wy-text-control);font-weight:600;text-decoration:none;transform:translateY(-200%)}
.wy-skip:focus{transform:none}
/* « Aller au texte » : le texte s'arrête sous la barre du haut et la barre d'outils collantes. */
#wytt-editor{scroll-margin-top:calc(var(--wy-head,64px) + var(--wy-s4) + var(--wy-ctl-h) + var(--wy-s3) + 1px + var(--wy-s4))}
.nlp-writing-document #wytt-editor{scroll-margin-top:calc(var(--wy-s3) * 2 + var(--wy-ctl-h) + 1px + var(--wy-s4))}
@media (max-width:639.98px){:is(#editor-page,#nlp-show-page) #wytt-editor{scroll-margin-top:calc(var(--wy-head,64px) + var(--wy-s1) * 2 + var(--wy-ctl-h) + 1px + var(--wy-s4))}}
/* Lien de sortie qui attend l'enregistrement (aria-busy posé par le hook). */
a[aria-busy=true]{position:relative;cursor:progress}
a[aria-busy=true][data-busy-label]::before{content:attr(data-busy-label);position:absolute;left:0;top:calc(100% + var(--wy-s2));z-index:100;padding:var(--wy-s1) var(--wy-s2);border:1px solid var(--wyLine3);border-radius:var(--wy-r-s);background:var(--wyCard);color:var(--wyInk4);font:var(--wy-text-meta)/1.3 var(--wy-font-mono);white-space:nowrap;pointer-events:none}
/* Conflit de version : dans la colonne du texte, collée sous la barre d'outils (jamais
   sur un rail, ni sur la barre). Hauteur de la barre d'outils : 16 + contrôle + 12 + filet
   (article), 12 + contrôle + 12 + filet (NLP), 4 + contrôle + 4 + filet sous 640 px. */
.wy-conflict{position:sticky;z-index:19;display:flex;flex-wrap:wrap;align-items:center;gap:var(--wy-s3);margin:var(--wy-s4) 0;padding:var(--wy-s3) var(--wy-s4);border:1px solid var(--wyDangerBd);border-radius:var(--wy-r-m);background:var(--wyDangerBg);color:var(--wyInk3);box-shadow:var(--wy-shadow-float)}
:is(#wy-main,#nlp-draft-editor-card) > .wy-conflict{top:calc(var(--wy-head) + var(--wy-s4) + var(--wy-ctl-h) + var(--wy-s3) + 1px + var(--wy-s2))}
.nlp-writing-sheet > .wy-conflict{top:calc(var(--wy-s3) * 2 + var(--wy-ctl-h) + 1px + var(--wy-s2));margin-inline:var(--wy-x)}
@media (max-width:639.98px){:is(#wy-main,#nlp-draft-editor-card) > .wy-conflict{top:calc(var(--wy-head) + var(--wy-s1) * 2 + var(--wy-ctl-h) + 1px + var(--wy-s2))}}
@media (min-width:1090px){.wy-ai-chat-open :is(#wy-main,#nlp-draft-editor-card) > .wy-conflict{top:calc(var(--wy-head) + var(--wy-s2))}}
.wy-conflict__text{flex:1 1 280px;margin:0;font-size:13px;line-height:1.5}
.wy-conflict__text strong{display:block;color:var(--wyDanger)}
.wy-conflict__actions{display:flex;flex-wrap:wrap;gap:var(--wy-s2)}

/* Barre de mise en forme commune (format_toolbar/1) : article et NLP. */
.wy-fmtbar{display:flex;align-items:center;gap:var(--wy-s2);flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}
.wy-fmtbar > *{flex:none}
.wy-fmtbar button{display:inline-flex;align-items:center;justify-content:center}
.wy-fmtbar > .wy-tb-spacer{flex:1}
#wy-toolbar{position:sticky;top:var(--wy-head);z-index:20;background-color:var(--wyPaper);background-image:var(--wyGrain);background-size:300px 300px;border-bottom:var(--wy-hairline) solid var(--wyLine)}
/* Copies HTML / Markdown : en ligne au-dessus de 640 px, menu (popover natif) en dessous. */
.wy-tb-copy[popover]{position:static;inset:auto;width:auto;height:auto;margin:0;padding:0;color:inherit;display:flex}
.wy-fmtbar .wy-tb-more{display:none}
/* Dimensions des boutons de tiroir gardées en attendant la spécification de la barre du haut. */
.wy-drawerbtn{justify-content:flex-start;gap:7px;font-weight:500}
/* Article rails; the mobile drawer rules below override position/top/max-height by ID. */
.wy-rail{position:sticky;top:var(--wy-head);max-height:calc(100dvh - var(--wy-head));overflow:auto;padding:var(--wy-s4) var(--wy-rail-xr) 88px var(--wy-rail-x);background:var(--wyRail)} /* 2 px de moins à droite : la barre de défilement du rail équilibre la marge */
.wy-legend-item{display:inline-flex;align-items:center;gap:5px;font-size:var(--wy-text-label);color:var(--wyInk5)}
/* Grands écrans (docs/product/editor-layout-spec.md § 5) : le texte prend sa mesure, la
   gouttière suit l'écran, les rails se partagent le reste (44/56) entre leurs bornes. Chat
   ouvert, la place disponible est l'écran moins le chat. */
#wy-grid{--avail:100vw;--wy-gutter:clamp(40px,calc((var(--avail) - 1350px) * .2 + 40px),160px);--rest:calc(var(--avail) - var(--wy-measure) - 2 * var(--wy-gutter));--colL:clamp(264px,calc(var(--rest) * .44),480px);--colR:clamp(336px,calc(var(--rest) * .56),600px);grid-template-columns:var(--colL) minmax(0,1fr) var(--colR);transition:grid-template-columns var(--wy-duration-layout) var(--wy-ease-layout)}
#wy-leftcol,#wy-rightcol{min-width:0;background:var(--wyRail)}
#wy-leftcol{border-right:1px solid var(--wyLine)}
#wy-rightcol{border-left:1px solid var(--wyLine)}
#wy-grid.wy-dock-left-off{--colL:0px}
#wy-grid.wy-dock-right-off{--colR:0px}
#wy-grid.wy-dock-left-off #wy-leftcol{overflow:hidden;border-right:none}
#wy-grid.wy-dock-right-off #wy-rightcol{overflow:hidden;border-left:none}
#wy-scrim{display:none;position:fixed;inset:0;z-index:70;background:rgba(var(--wyShdw),.42)}
/* La page de l'éditeur ne défile jamais à l'horizontale : un contenu trop large est rogné au
   lieu de décaler la barre du haut et les colonnes (chat ouvert, focus, geste du pavé tactile).
   `clip` ne crée pas de conteneur de défilement : la barre du haut reste collante. */
#editor-page,#nlp-show-page{overflow-x:clip}
/* Géométrie : docs/product/editor-layout-spec.md. Un seul bord gauche pour la
   barre d'outils, l'étiquette mot-clé et le texte ; la colonne se centre sur
   --wy-measure quand la place dépasse la mesure de lecture. */
#editor-header{box-shadow:var(--wy-shadow-bar)}
#wy-topbar{padding:0 var(--wy-s4)}
#wy-topbar > div:first-child{gap:var(--wy-s3)}
#wy-topbar > div:last-child{gap:var(--wy-s2)}
/* 96 px en bas : la fin du texte reste au-dessus de la pastille d'aide. */
#wy-main{padding:0 max(var(--wy-gutter),calc((100% - var(--wy-measure)) / 2)) 96px}
#wy-toolbar{padding:var(--wy-s4) 0 var(--wy-s3)}
/* Le mot-clé cible est monté dans la barre du haut : le texte garde son souffle sous la barre d’outils. */
#wy-toolbar ~ :is(#wytt-editor-mount,#nlp-tiptap-editor,.wy-doc,[phx-hook="TiptapEditor"]){margin-top:var(--wy-s6)}
/* Très grands écrans à forte densité (1440p de 27 pouces et plus, 4K à 100 %) : le texte
   édité et sa mesure grandissent ensemble, le nombre de signes par ligne ne change pas. */
@media (min-width:2150px) and (min-height:1200px){
  :is(#editor-page,#nlp-show-page){--wy-text-editor:calc(1.125rem * 19 / 17);--wy-text-h1:calc(2rem * 19 / 17);--wy-text-h2:calc(1.5rem * 19 / 17);--wy-text-h3:calc(1.21875rem * 19 / 17);--wy-measure:916px}
}
@media (min-width:2910px) and (min-height:1800px){
  :is(#editor-page,#nlp-show-page){--wy-text-editor:calc(1.125rem * 22 / 17);--wy-text-h1:calc(2rem * 22 / 17);--wy-text-h2:calc(1.5rem * 22 / 17);--wy-text-h3:calc(1.21875rem * 22 / 17);--wy-measure:1061px}
}
/* Rails (docs/product/editor-layout-spec.md § 5) : Sémantique, l'information principale, reste
   ancré le plus longtemps ; Coaching passe en tiroir le premier. Place = écran, ou écran − 440 px
   chat ouvert à partir de 1 090 px. Deux rails dès 1 320 px de place, Sémantique seul dès
   1 056 px, tiroirs en dessous : le texte garde au moins 640 px. Seuils doublés dans
   tiptap_editor.js (railDocked). Tiroir : sous la barre du haut, caché (visibility) une fois refermé. */
@media (max-width:1319.98px){
  #wy-grid{--colL:0px}
  #wy-leftcol{border-right:none;background:transparent;overflow:visible}
  #wy-left{position:fixed;top:var(--wy-head);bottom:0;left:0;width:min(86vw,340px);max-height:calc(100dvh - var(--wy-head));z-index:80;transform:translateX(-106%);visibility:hidden;transition:transform var(--wy-duration-panel) ease,visibility 0s var(--wy-duration-panel)}
  #wy-left .wy-drawer-close{display:flex}
  #editor-coaching .wy-coach__head{padding-right:calc(var(--wy-ctl-h) + var(--wy-s4))}
  #wy-grid.wy-left-open #wy-left{transform:none;visibility:visible;transition:transform var(--wy-duration-panel) ease;box-shadow:10px 0 50px rgba(var(--wyShdw),.35)}
  #wy-grid.wy-left-open #wy-scrim{display:block}
}
@media (min-width:1090px) and (max-width:1759.98px){
  .wy-ai-chat-open #wy-grid{--colL:0px}
  .wy-ai-chat-open #wy-leftcol{border-right:none;background:transparent;overflow:visible}
  .wy-ai-chat-open #wy-left{position:fixed;top:var(--wy-head);bottom:0;left:0;width:min(86vw,340px);max-height:calc(100dvh - var(--wy-head));z-index:80;transform:translateX(-106%);visibility:hidden;transition:transform var(--wy-duration-panel) ease,visibility 0s var(--wy-duration-panel)}
  .wy-ai-chat-open #wy-left .wy-drawer-close{display:flex}
  .wy-ai-chat-open #editor-coaching .wy-coach__head{padding-right:calc(var(--wy-ctl-h) + var(--wy-s4))}
  .wy-ai-chat-open #wy-grid.wy-left-open #wy-left{transform:none;visibility:visible;transition:transform var(--wy-duration-panel) ease;box-shadow:10px 0 50px rgba(var(--wyShdw),.35)}
  .wy-ai-chat-open #wy-grid.wy-left-open #wy-scrim{display:block}
}
@media (max-width:1055.98px){
  #wy-grid{--colR:0px}
  #wy-rightcol{border-left:none;background:transparent;overflow:visible}
  #wy-right{position:fixed;top:var(--wy-head);bottom:0;right:var(--wy-chat-w,0px);width:min(92vw,372px);max-height:calc(100dvh - var(--wy-head));z-index:80;transform:translateX(106%);visibility:hidden;transition:transform var(--wy-duration-panel) ease,visibility 0s var(--wy-duration-panel)}
  #wy-right .wy-drawer-close{display:flex}
  #wy-grid.wy-right-open #wy-right{transform:none;visibility:visible;transition:transform var(--wy-duration-panel) ease;box-shadow:-10px 0 50px rgba(var(--wyShdw),.35)}
  #wy-grid.wy-right-open #wy-scrim{display:block}
  #wy-main{--wy-gutter:var(--wy-s4)}
}
@media (min-width:1090px) and (max-width:1495.98px){
  .wy-ai-chat-open #wy-grid{--colR:0px}
  .wy-ai-chat-open #wy-rightcol{border-left:none;background:transparent;overflow:visible}
  .wy-ai-chat-open #wy-right{position:fixed;top:var(--wy-head);bottom:0;right:var(--wy-chat-w,0px);width:min(92vw,372px);max-height:calc(100dvh - var(--wy-head));z-index:80;transform:translateX(106%);visibility:hidden;transition:transform var(--wy-duration-panel) ease,visibility 0s var(--wy-duration-panel)}
  .wy-ai-chat-open #wy-right .wy-drawer-close{display:flex}
  .wy-ai-chat-open #wy-grid.wy-right-open #wy-right{transform:none;visibility:visible;transition:transform var(--wy-duration-panel) ease;box-shadow:-10px 0 50px rgba(var(--wyShdw),.35)}
  .wy-ai-chat-open #wy-grid.wy-right-open #wy-scrim{display:block}
  /* Deux tiroirs à côté du chat : gouttière 24 px, le texte garde 600 px dès 1 090 px. */
  .wy-ai-chat-open #wy-main{--wy-gutter:var(--wy-s6)}
}
@media (max-width:639.98px){
  #wy-toolbar{padding:var(--wy-s1) 0}
  .wy-fmtbar .wy-tb-more{display:inline-flex}
  /* La barre défile de côté : le fondu montre les boutons cachés (listes, lien, copier). */
  @supports (animation-timeline:scroll()){.wy-fmtbar{animation:wy-table-fade linear both;animation-timeline:scroll(self inline);mask-image:linear-gradient(to right,transparent,#000 var(--wy-fade-start),#000 calc(100% - var(--wy-fade-end)),transparent)}}
  .wy-tb-copy[popover]:not(:popover-open){display:none}
  .wy-tb-copy[popover]:popover-open{position:fixed;top:calc(var(--wy-head) + var(--wy-ctl-h) + var(--wy-s3));right:var(--wy-s4);left:auto;bottom:auto;box-shadow:var(--wy-shadow-float)}
  .wy-btnlabel{display:none}
}
/* Texte des articles : Newsreader (axe optique figé à 16 dans le fichier), chiffres lignés, vraie italique (pas d'oblique synthétique). */
#wytt-editor{outline:none;font-family:var(--wy-font-article);font-size:var(--wy-text-editor);line-height:var(--wy-leading-editor);font-weight:var(--wy-weight-article);font-variant-numeric:lining-nums;font-synthesis:none;color:var(--wyArticleInk)}
#wytt-editor h1{font-family:var(--wy-font-editorial);font-weight:600;font-size:var(--wy-text-h1);line-height:var(--wy-leading-h1);color:var(--wyArticleHead);margin:0 0 var(--wy-s4);letter-spacing:-.005em}
#wytt-editor h2{font-family:var(--wy-font-editorial);font-weight:600;font-size:var(--wy-text-h2);line-height:var(--wy-leading-heading);color:var(--wyArticleHead);margin:var(--wy-s8) 0 var(--wy-s3)}
#wytt-editor h3{font-family:var(--wy-font-editorial);font-weight:600;font-size:var(--wy-text-h3);line-height:var(--wy-leading-heading);color:var(--wyArticleHead);margin:var(--wy-s6) 0 var(--wy-s2)}
#wytt-editor p{margin:0 0 var(--wy-s4)}
#wytt-editor ul,#wytt-editor ol{margin:0 0 var(--wy-s4) var(--wy-s6);padding:0}
#wytt-editor li{margin:0 0 var(--wy-s1)}
#wytt-editor a{color:var(--wyAccent);text-decoration:underline;text-underline-offset:2px}
#wytt-editor strong{font-weight:600}
/* Code en ligne et blocs : surface douce du thème (plus de barre noire en clair), mono. */
#wytt-editor code,.wy-vcard__text code{padding:.08em .35em;border:1px solid var(--wyLine3);border-radius:6px;background:var(--wyTrack);color:var(--wyInk2);font-family:var(--wy-font-mono);font-size:.84em;overflow-wrap:anywhere}
#wytt-editor pre,.wy-vcard__text pre{margin:0 0 var(--wy-s4);padding:var(--wy-s3) var(--wy-s4);border:1px solid var(--wyLine3);border-radius:var(--wy-r-s);background:var(--wyTrack);color:var(--wyInk2);overflow-x:auto;font-size:15px;line-height:1.55}
#wytt-editor pre code,.wy-vcard__text pre code{padding:0;border:0;background:none;font-size:.86em;overflow-wrap:normal}
/* Tableau : il tient dans la colonne ; les cellules se plient au mot, jamais à la lettre ; 17,5 px, plancher du texte d'article.
   Seul un tableau trop large pour la colonne défile, avec un fondu sur le bord qui cache du contenu. */
#wytt-editor .tableWrapper{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
#wytt-editor table{border-collapse:collapse;font-variant-numeric:lining-nums tabular-nums;width:100%;table-layout:auto;margin:0}
#wytt-editor :is(td,th){min-width:6rem;border:1px solid var(--wyLine3);padding:var(--wy-s2) var(--wy-s3);vertical-align:top;text-align:start;font-size:calc(var(--wy-text-editor) * 35 / 36);line-height:1.35;overflow-wrap:break-word}
#wytt-editor th{font-weight:600;background:var(--wyRail)}
/* Plusieurs cases sélectionnées : ProseMirror masque la sélection native, on la redessine. */
#wytt-editor .selectedCell{background:var(--wySelBg)}
@property --wy-fade-start{syntax:'<length>';inherits:false;initial-value:0px}
@property --wy-fade-end{syntax:'<length>';inherits:false;initial-value:0px}
@keyframes wy-table-fade{from{--wy-fade-start:0px;--wy-fade-end:48px}50%{--wy-fade-start:48px;--wy-fade-end:48px}to{--wy-fade-start:48px;--wy-fade-end:0px}}
@supports (animation-timeline:scroll()){#wytt-editor .tableWrapper{animation:wy-table-fade linear both;animation-timeline:scroll(self inline);mask-image:linear-gradient(to right,transparent,#000 var(--wy-fade-start),#000 calc(100% - var(--wy-fade-end)),transparent)}}
#wytt-editor td p:last-child,#wytt-editor th p:last-child{margin-bottom:0}
/* Surlignage du terme choisi, à la couleur de son état (pastille, légende). */
::highlight(wy-term--todo){background:var(--wyMuteBd);color:var(--wyArticleHead)}
::highlight(wy-term--ok){background:var(--wyOkBd);color:var(--wyArticleHead)}
::highlight(wy-term--over){background:var(--wyDangerBd);color:var(--wyArticleHead)}

/* ═══════════════════════════════════════════════════════════════════════
   VIEW-SPECIFIC CSS — each view agent appends its rules under its section.
   Keep selectors scoped (prefix .wy-view or a view-specific class) so views
   never collide with one another.
   ═══════════════════════════════════════════════════════════════════════ */

/* ═══ VIEW: articles ═══ */
/* Generate bar (create-article form styled as a .wy-card). */
.wy-artbar{padding:var(--wy-s4);display:flex;gap:var(--wy-s3);align-items:center}
.wy-artbar__input{flex:1;min-width:0;height:var(--wy-ctl-h-lg);border:1px solid var(--wyLine3);background:var(--wyPaper);padding:0 14px;font-size:var(--wy-text-body);color:var(--wyInk3);outline:none;font-family:inherit}
.wy-artbar__input::placeholder{color:var(--wyMute)}
.wy-artbar__input:disabled{opacity:.5;cursor:not-allowed}
.wy-artlink{color:var(--wyAccent);text-decoration:underline;text-underline-offset:2px}

/* Grid table. */
.wy-arttable{overflow-x:auto;margin:0 -4px;padding:0 var(--wy-s1)}
.wy-arttable__inner{min-width:700px}
.wy-arthead{display:grid;grid-template-columns:1fr 128px 74px 84px 124px 44px;padding:0 var(--wy-s4) var(--wy-s3);border-bottom:var(--wy-hairline) solid var(--wyLine)}
.wy-artth{font-family:var(--wy-font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--wyInk5);background:none;border:none;padding:0;text-align:left;font-weight:400}
button.wy-artth{cursor:pointer}
button.wy-artth:hover{color:var(--wyInk4)}
.wy-artth-cell{display:grid}
.wy-artth--c{text-align:center;justify-self:center}
.wy-artth--active{color:var(--wyInk4)}

.wy-artrow{position:relative;display:grid;grid-template-columns:1fr 128px 74px 84px 124px 44px;align-items:center;padding:var(--wy-s4);border-bottom:var(--wy-hairline) solid var(--wyRowline);border-radius:0;box-shadow:none}
.wy-artrow:hover{background:var(--wyHover)}
.wy-artrow--generating{opacity:.8}
.wy-artrow__cell{min-width:0;padding-right:var(--wy-s4)}
.wy-artrow__kw{font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);color:var(--wyAccent);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wy-artrow__title{display:block;font-size:var(--wy-text-body);color:var(--wyInk2);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none}
.wy-artrow__title--muted{color:var(--wyInk5);font-style:italic;font-weight:400}
/* Stretched link: whole ready row navigates; delete button stays clickable above it. */
a.wy-artrow__link::after{content:"";position:absolute;inset:0}
/* Couverture : la couleur vient de la barre sémantique (semantic_bar/1), la
   cellule ne garde que la mise en page et la teinte du « — ». */
.wy-artrow__score{text-align:center;font-family:var(--wy-font-mono);font-size:var(--wy-text-body);color:var(--wyInk5)}
.wy-artrow__words{text-align:center;font-family:var(--wy-font-mono);font-size:var(--wy-text-control);color:var(--wyInk5)}
.wy-artrow__date{font-family:var(--wy-font-mono);font-size:11.5px;color:var(--wyInk5)}
.wy-artrow__actions{text-align:right}
/* Au-dessus du lien qui couvre la ligne. */
.wy-artdel{position:relative;z-index:1}

/* Generation shimmer (score / words while a row is still being written). */
.wy-artshim{display:inline-block;height:11px;width:30px;border-radius:5px;background-color:var(--wyShimBase);background-image:linear-gradient(90deg,transparent 0,var(--wyShimHi) 50%,transparent 100%);background-size:160px 100%;background-repeat:no-repeat;animation:wy-shimmer 1.25s ease-in-out infinite}
.wy-artshim--w{width:38px}
.wy-artshim--title{width:min(340px,60%);height:15px;border-radius:6px}
.wy-artskel{padding:var(--wy-s4);border-bottom:var(--wy-hairline) solid var(--wyRowline)}

/* État vide : médaillon (étoile qui veille) + coins étoilés, carte cernée
   d'un liseré FIN sur les quatre bords — jamais une barre latérale. */
.wy-artempty{position:relative;padding:52px 30px;text-align:center;background:var(--wyCard);border:1px solid var(--wyLine3);border-radius:var(--wy-r-m);display:flex;flex-direction:column;align-items:center}
.wy-artempty__title{font-family:var(--wy-font-editorial);font-weight:700;font-size:22px;color:var(--wyInk2);margin:14px 0 6px}
.wy-artempty__desc{font-size:13px;color:var(--wyInk5);line-height:1.55;max-width:360px;margin:0 auto}

/* Delete confirmation modal. */
.wy-artmodal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;background:rgba(var(--wyShdw),.52);animation:wy-rise var(--wy-duration-enter) ease both}
.wy-artmodal__card{width:466px;max-width:100%;max-height:88vh;overflow:auto;background:var(--wyCard);border:1px solid var(--wyLine3);border-radius:var(--wy-r-m);box-shadow:var(--wy-shadow-dialog)}
.wy-artmodal__head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:var(--wy-hairline) solid var(--wyDangerBd);background:var(--wyDangerBg)}
.wy-artmodal__title{font-family:var(--wy-font-editorial);font-weight:700;font-size:21px;color:var(--wyDanger)}
.wy-artmodal__body{padding:20px 22px 22px}
.wy-artmodal__text{font-size:var(--wy-text-control-lg);color:var(--wyInk4);line-height:1.6;margin:0 0 18px}
.wy-artmodal__actions{display:flex;gap:10px}

/* ═══ VIEW: seo-titles ═══ */
/* Micro-note under the generate bar (credits reminder / insufficient warning). */
.seo-note{display:flex;align-items:center;gap:var(--wy-s2);margin:var(--wy-s3) 0 var(--wy-s6);padding-left:0;font-family:var(--wy-font-mono);font-size:11.5px;color:var(--wyInk5)}
.seo-note__diamond{color:var(--wyGold2)}
/* Même note sous la barre de commande des trois listes ; « crédits insuffisants » en ambre. */
.seo-note--warn{color:var(--wyWarn)}
.seo-note__link{color:var(--wyAccent);text-decoration:underline;text-underline-offset:2px}

/* Grid "table" (header + rows share .seo-grid). */
.seo-tablewrap{overflow-x:auto;margin:0 -4px;padding:0 var(--wy-s1)}
.seo-tablewrap__inner{min-width:760px}
.seo-grid{display:grid;grid-template-columns:minmax(150px,.85fr) minmax(240px,1.7fr) 132px 128px 64px;align-items:center}
.seo-head{padding:0 var(--wy-s4) var(--wy-s3);border-bottom:var(--wy-hairline) solid var(--wyLine)}
.seo-head__cell{background:none;border:none;padding:0;font-family:var(--wy-font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--wyInk5);text-align:left;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.seo-head__cell:hover{color:var(--wyInk5)}
.seo-head__cell--active{color:var(--wyInk5)}
.seo-head__caret{color:var(--wyAccent)}

.seo-cell--keyword{min-width:0;padding-right:var(--wy-s4);font-family:var(--wy-font-mono);font-size:var(--wy-text-control);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seo-cell--keyword a{color:var(--wyAccent);text-decoration:none}
.seo-cell--keyword a:hover{text-decoration:underline}
.seo-cell--title{min-width:0;padding-right:20px;font-size:var(--wy-text-body);font-weight:500;color:var(--wyInk2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seo-cell--title--empty{font-size:var(--wy-text-control-lg);font-weight:400;color:var(--wyInk5);font-style:italic}
.seo-cell--date{font-family:var(--wy-font-mono);font-size:11.5px;color:var(--wyInk5)}
.seo-cell--act{display:flex;align-items:center;justify-content:flex-end;gap:2px}

/* Shimmer line for a row that is still generating (README §Keyframes spec). */
.seo-shim{height:15px;width:72%;border-radius:6px;background-color:var(--wyShimBase);background-image:linear-gradient(90deg,transparent 0,var(--wyShimHi) 50%,transparent 100%);background-size:320px 100%;background-repeat:no-repeat;animation:wy-shimmer 1.25s ease-in-out infinite}
.seo-shim--kw{width:60%}.seo-shim--status{width:70px}.seo-shim--date{width:80px}

/* Empty state (girih seal + preview table + CTA). */
.seo-empty{display:flex;flex-direction:column;align-items:center}
.seo-empty__head{text-align:center;padding:26px 0 22px}
.seo-empty__title{margin:var(--wy-s3) 0 var(--wy-s1);font-family:var(--wy-font-editorial);font-weight:600;font-size:18px;color:var(--wyInk2)}
.seo-empty__desc{margin:0;font-size:var(--wy-text-control-lg);color:var(--wyInk5);max-width:440px}
.seo-empty .seo-tablewrap{width:100%}
.seo-empty__cta{margin-top:26px;display:inline-block;text-decoration:none}

/* Modals (delete confirm / GSC warning) — Atelier tokens, theme-aware. */
.seo-overlay{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;background:rgba(var(--wyShdw),.52);animation:wy-rise var(--wy-duration-enter) ease both}
.seo-modal{width:466px;max-width:100%;max-height:88vh;overflow:auto;background:var(--wyCard);border:1px solid var(--wyLine3);border-radius:var(--wy-r-m);box-shadow:var(--wy-shadow-dialog)}
.seo-modal__head{display:flex;align-items:center;justify-content:space-between;gap:var(--wy-s3);padding:20px 22px;border-bottom:var(--wy-hairline) solid var(--wyLine)}
.seo-modal__title{margin:0;font-family:var(--wy-font-editorial);font-weight:700;font-size:19px;color:var(--wyInk2)}
.seo-modal__body{padding:20px 22px}
.seo-modal__text{margin:0 0 var(--wy-s4);font-size:var(--wy-text-body);line-height:1.6;color:var(--wyInk4)}
.seo-modal__hint{margin:0 0 var(--wy-s3);font-family:var(--wy-font-mono);font-size:12px;color:var(--wyInk5)}
.seo-modal__link{color:var(--wyAccent);text-decoration:underline;text-underline-offset:2px}
.seo-modal__optout{display:flex;align-items:center;gap:var(--wy-s2);font-size:13px;color:var(--wyInk5);cursor:pointer}
.seo-modal__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}

/* ── seo-titles: show (run detail) ─────────────────────────────────────
   The .wy-det* / .wy-back / .wy-field / .wy-prog / .wy-topt scaffolding is
   shared by BOTH detail pages (seo-titles show + nlp show) — defined once
   here, reused there. .wy-ctr* and the seo-ctr-chart overrides are seo-only. */
.wy-back{display:inline-flex;align-items:center;gap:7px;margin-bottom:var(--wy-s4);font-size:13px;color:var(--wyInk5);text-decoration:none}
.wy-back--inline{display:inline}
.wy-back:hover{color:var(--wyAccent)}
.wy-back svg{width:16px;height:16px;margin-left:-5px}
.wy-det__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--wy-s4);margin-bottom:var(--wy-s6)}
.wy-det__idwrap{min-width:0;display:flex;flex-direction:column;gap:11px}
.wy-det__badges{display:flex;align-items:center;gap:var(--wy-s2);flex-wrap:wrap}
.wy-det__mock{display:inline-flex;align-items:center;padding:var(--wy-s1) var(--wy-s3);border-radius:var(--wy-r-pill);border:1px solid var(--wyLine3);background:var(--wyCard);font-family:var(--wy-font-mono);font-size:var(--wy-text-label);color:var(--wyInk5)}
.wy-det__sub{margin:18px 0 26px;max-width:640px;font-size:var(--wy-text-control-lg);line-height:1.55;color:var(--wyInk5)}
.wy-det__card{margin-bottom:20px;overflow:hidden}
.wy-det__caphead{display:flex;align-items:center;justify-content:space-between;gap:var(--wy-s3);padding:var(--wy-s4) 20px;border-bottom:var(--wy-hairline) solid var(--wyRowline)}
.wy-det__captitle{margin:0;font-family:var(--wy-font-editorial);font-weight:600;font-size:18px;color:var(--wyInk2)}
.wy-det__body{padding:20px}
.wy-det__rows{padding:2px 0}
.wy-det__row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--wy-s4);padding:var(--wy-s3) 20px;border-bottom:var(--wy-hairline) solid var(--wyRowline)}
.wy-det__row:last-child{border-bottom:none}
.wy-det__label{flex:none;font-family:var(--wy-font-mono);font-size:var(--wy-text-label);letter-spacing:.08em;text-transform:uppercase;color:var(--wyInk5)}
.wy-det__val{min-width:0;font-size:var(--wy-text-body);color:var(--wyInk2);text-align:right;word-break:break-word}
.wy-det__val--mono{font-family:var(--wy-font-mono);font-size:13px;color:var(--wyInk3)}
.wy-det__val--muted{color:var(--wyInk5)}
.wy-det__brow{padding:14px 20px;border-bottom:var(--wy-hairline) solid var(--wyRowline)}
.wy-det__brow:last-child{border-bottom:none}
/* Trace : appel, contexte et coût sur trois lignes plutôt que bout à bout. */
.wy-det__brow--stack{display:grid;gap:var(--wy-s1)}
.wy-det__brow--stack>a{justify-self:start}
.wy-det__blabel{margin-bottom:10px;font-family:var(--wy-font-mono);font-size:var(--wy-text-label);letter-spacing:.08em;text-transform:uppercase;color:var(--wyInk5)}
.wy-det__text{margin:0;font-size:var(--wy-text-body);line-height:1.6;color:var(--wyInk4)}
.wy-det__hint{margin:var(--wy-s3) 0 0;font-family:var(--wy-font-mono);font-size:11.5px;line-height:1.5;color:var(--wyInk5)}
/* Coaching Hn — onglets PAA / Hn concurrents + listes, et sources analysées */
.wy-coachtabs{display:flex;gap:var(--wy-s2);margin:14px 0 var(--wy-s1)}
.wy-coachtab{border-radius:var(--wy-r-pill);border:1px solid var(--wyLine2);background:transparent;font-family:var(--wy-font-ui);letter-spacing:.04em;color:var(--wyInk5);cursor:pointer}
.wy-coachtab:hover{background:var(--wyHover)}
.wy-coachtab[aria-pressed="true"]{background:var(--wyAccent);border-color:var(--wyAccent);color:var(--wyOnAccent)}
.wy-coachlist{margin:10px 0 0;padding:0;list-style:none}
.wy-coachlist li{padding:9px 2px;border-bottom:var(--wy-hairline) solid var(--wyRowline);font-size:var(--wy-text-body);line-height:1.5;color:var(--wyInk3)}
.wy-coachlist li:last-child{border-bottom:none}
.wy-det__sources{margin:0;padding-left:18px;font-size:13px;line-height:1.7}
.wy-det__srclink{color:var(--wyInk4);text-decoration:underline;text-decoration-color:var(--wyLine3);word-break:break-all}
.wy-det__srclink:hover{color:var(--wyInk2)}
.wy-det__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
/* Atelier (traces, carte, essai) : mises en page autrefois en style="…". */
.wy-det__line{display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap}
.wy-det__line+.wy-det__line{margin-top:6px}
.wy-det__line .wy-det__blabel,.wy-det__line .wy-det__hint,.wy-det__tools .wy-det__hint{margin:0}
.wy-det__inline{display:flex;align-items:center;gap:var(--wy-s2)}
.wy-det__inline+.wy-det__text{margin-top:var(--wy-s2)}
.wy-det__tools{justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:var(--wy-s2);margin-top:var(--wy-s3)}
.wy-det__push{margin-left:auto}
.wy-det__chips{display:flex;flex-wrap:wrap;gap:var(--wy-s2)}
.wy-det__chips>a.wy-count{text-decoration:none}
#atelier-sommaire{position:sticky;top:0;z-index:5;padding:14px var(--wy-s4);margin-bottom:20px}
#atelier-sommaire-liens{margin-top:var(--wy-s3)}
.wy-det__card--anchor{scroll-margin-top:110px}
.wy-det__rows--flush{padding:0}
.wy-det__rows--flush>.wy-det__row{padding:var(--wy-s2) 0}
.etage .wy-det__rows--flush{margin-top:var(--wy-s2)}
.variante .wy-det__hint{display:block}
.variante .wy-pill{margin-left:6px}
.wy-det__hint--lead{margin:0 0 var(--wy-s3)}
.wy-det__text--lead{margin-bottom:var(--wy-s3)}
.wy-det__val--left{text-align:left}
.appel-erreur{margin-top:var(--wy-s3)}
.appel-erreur .wy-det__hint{margin-top:6px}
.detail .wy-det__blabel{margin:14px 0 0}
p.inerte{margin-top:var(--wy-s3)}
.wy-essai__params{display:flex;gap:14px;flex-wrap:wrap}
.wy-essai__temp{flex:0 0 9rem}
.wy-essai__model{flex:1 1 16rem;min-width:14rem}
.wy-mark{background:var(--wyLapisBg);color:var(--wyLapis)}
.wy-det__empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:36px 20px}
.wy-det__emptytitle{margin:var(--wy-s2) 0 0;font-family:var(--wy-font-editorial);font-weight:600;font-size:var(--wy-text-field-mobile);color:var(--wyInk2)}
.wy-det__emptydesc{margin:0;max-width:360px;font-size:13px;line-height:1.5;color:var(--wyInk5)}

/* Field + inline checkbox (start / follow-up forms). */
.wy-field{margin-top:var(--wy-s4)}
.wy-field__label{display:block;margin-bottom:var(--wy-s2);font-family:var(--wy-font-mono);font-size:var(--wy-text-label);letter-spacing:.1em;text-transform:uppercase;color:var(--wyGold2)}
.wy-field__input{width:100%;padding:var(--wy-s3) 14px;border:1px solid var(--wyLine3);background:var(--wyPaper);font-size:var(--wy-text-body);color:var(--wyInk2);outline:none;font-family:inherit}
.wy-field__input::placeholder{color:var(--wyMute)}
.wy-checkhint{display:flex;align-items:center;gap:9px;margin-top:var(--wy-s3);font-size:13px;color:var(--wyInk5);cursor:pointer}
.wy-checkhint input{accent-color:var(--wyAccent)}

/* Progress bar (test window). */
.wy-prog__meta{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--wy-s2)}
.wy-prog__label{font-size:var(--wy-text-control);color:var(--wyInk5)}
.wy-prog__pct{font-family:var(--wy-font-mono);font-size:var(--wy-text-control);color:var(--wyInk3)}
.wy-prog__track{height:8px;background:var(--wyTrack);border-radius:var(--wy-r-pill);overflow:hidden}
.wy-prog__fill{height:100%;background:var(--wyAccent);border-radius:var(--wy-r-pill);transition:width .3s ease}

/* Title options (radio cards). */
.wy-topts{display:flex;flex-direction:column;gap:10px}
.wy-topt{display:flex;gap:var(--wy-s3);padding:14px 15px;border:1px solid var(--wyLine3);background:var(--wyCard);border-radius:13px;cursor:pointer}
.wy-topt:hover{border-color:var(--wyBandline)}
.wy-topt--selected{border-color:var(--wyAccent);background:var(--wyLapisBg)}
.wy-topt > input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.wy-topt:focus-within .wy-topt__radio{outline:2px solid var(--wyOlive2);outline-offset:2px}
.wy-topt__radio{position:relative;flex:none;margin-top:3px;width:16px;height:16px;border:1.5px solid var(--wyLine3);border-radius:50%}
.wy-topt--selected .wy-topt__radio{border-color:var(--wyAccent)}
.wy-topt--selected .wy-topt__radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--wyAccent)}
.wy-topt__body{min-width:0;display:flex;flex-direction:column;gap:6px}
.wy-topt__top{display:flex}
.wy-topt__tag{font-family:var(--wy-font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--wyInk5);border:1px solid var(--wyLine3);padding:3px var(--wy-s2);border-radius:var(--wy-r-pill)}
.wy-topt__tag--reco{color:var(--wyOk);border-color:var(--wyOkBd2);background:var(--wyOkTint)}
.wy-topt__text{font-size:var(--wy-text-body);font-weight:500;line-height:1.4;color:var(--wyInk2)}
.wy-topt__reason{font-size:var(--wy-text-control);line-height:1.5;color:var(--wyInk5)}

/* CTR stat blocks (replaces legacy apple-ctr). */
.wy-ctr__stats{display:flex;flex-wrap:wrap;gap:22px var(--wy-s8);margin-bottom:var(--wy-s2)}
.wy-ctr__stat{display:flex;flex-direction:column;gap:var(--wy-s1)}
.wy-ctr__label{font-family:var(--wy-font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--wyInk5)}
.wy-ctr__val{font-family:var(--wy-font-mono);font-size:20px;color:var(--wyInk2)}
.wy-ctr__val--pos{color:var(--wyOk)}
.wy-ctr__val--neg{color:var(--wyDanger)}

/* CTR chart: re-tint the legacy SVG classes with Atelier tokens (article =
   lapis jewel, site = olive) so the curve reads in both light and dark. */
.wy-view .seo-ctr-chart{margin-top:var(--wy-s4)}
.wy-view .seo-ctr-chart__grid{stroke:var(--wyLine)}
.wy-view .seo-ctr-chart__baseline{stroke:var(--wyLine3);stroke-dasharray:4 4}
.wy-view .seo-ctr-chart__line--article{stroke:var(--wyLapis)}
.wy-view .seo-ctr-chart__line--site{stroke:var(--wyOlive2)}
.wy-view .seo-ctr-chart__dot--article{fill:var(--wyLapis);stroke:var(--wyLapis)}
.wy-view .seo-ctr-chart__dot--site{fill:var(--wyOlive2);stroke:var(--wyOlive2)}
.wy-view .seo-ctr-chart__label{fill:var(--wyMute)}
.wy-view .seo-ctr-legend{margin-top:var(--wy-s3)}
.wy-view .seo-ctr-legend__item{color:var(--wyInk5);font-size:var(--wy-text-control)}
.wy-view .seo-ctr-legend__dot--article{background:var(--wyLapis)}
.wy-view .seo-ctr-legend__dot--site{background:var(--wyOlive2)}

/* ═══ VIEW: nlp ═══ */
.wy-nlp-link{color:var(--wyAccent);text-decoration:underline;text-underline-offset:2px}
.wy-nlp-tablezone{margin-top:var(--wy-s6)}
.wy-nlp-tablewrap{overflow-x:auto;margin:0 -4px;padding:0 var(--wy-s1)}
.wy-nlp-table{min-width:720px}
.wy-nlp-thead{display:grid;grid-template-columns:minmax(200px,1fr) 96px 168px 64px;padding:0 var(--wy-s4) var(--wy-s3);border-bottom:var(--wy-hairline) solid var(--wyLine)}
.wy-nlp-thead__sort{background:none;border:none;padding:0;margin:0;font-family:var(--wy-font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--wyInk5);cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.wy-nlp-thead__th,.wy-nlp-kwcell,.seo-head__th{display:grid;min-width:0}
.wy-nlp-thead__sort--center{justify-content:center}
.wy-nlp-thead__sort--active{color:var(--wyInk5)}
.wy-nlp-thead__caret{color:var(--wyAccent)}
.wy-nlp-row{display:grid;grid-template-columns:minmax(200px,1fr) 96px 168px 64px;align-items:center}
.wy-nlp-kw{min-width:0;padding-right:var(--wy-s4);font-size:var(--wy-text-body);font-weight:500;color:var(--wyInk2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none}
.wy-nlp-kw:hover{text-decoration:underline;color:var(--wyInk2)}
.wy-nlp-scorecell{display:flex;justify-content:center}
.wy-nlp-terms{text-align:center;font-family:var(--wy-font-mono);font-size:13px;color:var(--wyInk5)}
.wy-nlp-terms--muted{color:var(--wyInk5)}
.wy-nlp-date{font-family:var(--wy-font-mono);font-size:11.5px;color:var(--wyInk5)}
.wy-nlp-act{display:flex;align-items:center;justify-content:flex-end;gap:2px}
.wy-nlp-chip{display:inline-flex;align-items:center;justify-content:center;min-width:46px;padding:var(--wy-s1) var(--wy-s3);border-radius:var(--wy-r-pill);border:1px solid var(--wyLine3);background:var(--wyCard);font-family:var(--wy-font-mono);font-size:12px;line-height:1;color:var(--wyInk4)}
.wy-nlp-chip--strong{background:var(--wyOkTint);border-color:var(--wyOkBd2);color:var(--wyOk)}
.wy-nlp-chip--extracting{background:var(--wyWarnBg);border-color:var(--wyWarnBd);color:var(--wyWarn)}
.wy-nlp-chip--failed{background:var(--wyDangerBg);border-color:var(--wyDangerBd);color:var(--wyDanger)}
.wy-nlp-dots{display:inline-flex;gap:3px;align-items:center}
.wy-nlp-dots span{width:4px;height:4px;border-radius:50%;background:currentColor;animation:wy-pulse 1s ease-in-out infinite}
.wy-nlp-dots span:nth-child(2){animation-delay:var(--wy-duration-toast)}
.wy-nlp-dots span:nth-child(3){animation-delay:.36s}
.wy-nlp-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--wy-s2);padding:56px 20px}
.wy-nlp-empty__title{font-family:var(--wy-font-editorial);font-weight:600;font-size:19px;color:var(--wyInk2);margin:6px 0 0}
.wy-nlp-empty__desc{font-size:var(--wy-text-control-lg);color:var(--wyInk5);max-width:360px;line-height:1.5;margin:0}
.wy-nlp-shim{display:block;height:15px;border-radius:6px;background-color:var(--wyShimBase);background-image:linear-gradient(90deg,transparent,var(--wyShimHi) 50%,transparent);background-size:320px 100%;background-repeat:no-repeat;animation:wy-shimmer 1.25s ease-in-out infinite}
.wy-nlp-shim--kw{width:60%}
.wy-nlp-shim--chip{width:46px;height:22px;border-radius:var(--wy-r-pill)}
.wy-nlp-shim--sm{width:32px;margin:0 auto}
.wy-nlp-shim--date{width:110px}

/* ── nlp: show (extraction detail) — term chips (list declension of the
   index score-chip language: ≥90 = green/strong, else neutral). ────────── */
.wy-termlist{display:flex;flex-wrap:wrap;gap:var(--wy-s2)}
.wy-term{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:var(--wy-r-pill);border:1px solid var(--wyLine3);background:var(--wyCard);font-size:var(--wy-text-control);line-height:1.2;color:var(--wyInk3)}

/* ═══ VIEW: settings ═══ */
/* Même conteneur que .wy-view : titre et bouton thème aux mêmes x sur toutes les pages. */
.wy-set__cards{display:flex;flex-direction:column;gap:var(--wy-s6)}
.wy-set .wy-card{overflow:hidden}
.wy-set__cap{padding:var(--wy-s4) var(--wy-s6);border-bottom:var(--wy-hairline) solid var(--wyRowline);font-family:var(--wy-font-mono);font-size:var(--wy-text-label);letter-spacing:.12em;text-transform:uppercase;color:var(--wyGold2)}
.wy-set__cap--flex{display:flex;align-items:center;justify-content:space-between}
.wy-set__row{display:flex;align-items:center;justify-content:space-between;gap:var(--wy-s4);padding:var(--wy-s4) var(--wy-s6);border-bottom:var(--wy-hairline) solid var(--wyRowline)}
.wy-set__row:last-child{border-bottom:none}
.wy-set__rlabel{font-size:var(--wy-text-control-lg);color:var(--wyInk5)}
.wy-set__rval{font-size:var(--wy-text-body);color:var(--wyInk2);font-weight:500}
.wy-set__rval--mono{font-family:var(--wy-font-mono);font-size:13px;font-weight:400}
.wy-set__diamond{width:5px;height:5px;flex:none;background:var(--wyLapis);transform:rotate(45deg)}
.wy-set__plan{display:inline-flex;align-items:center;gap:6px;padding:var(--wy-s1) var(--wy-s3);border-radius:var(--wy-r-pill);background:var(--wyLapisBg);border:1px solid var(--wyLapisBd);font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);color:var(--wyLapis)}
.wy-set__credits{display:flex;align-items:center;justify-content:space-between;gap:var(--wy-s6);padding:var(--wy-s6);flex-wrap:wrap}
.wy-set__balance{display:flex;align-items:baseline;gap:10px}
.wy-set__balnum{font-family:var(--wy-font-editorial);font-weight:700;font-size:52px;line-height:.9;color:var(--wyInk2)}
.wy-set__balunit{font-size:var(--wy-text-control-lg);color:var(--wyInk5)}
.wy-set__gsc{padding:var(--wy-s6);display:flex;align-items:center;justify-content:space-between;gap:var(--wy-s6);flex-wrap:wrap}
.wy-set__copy{font-size:var(--wy-text-control-lg);color:var(--wyInk5);line-height:1.55;max-width:520px}
/* Texte à gauche, boutons sur le bord droit de la carte, comme Crédits et GSC. */
.wy-set__body{display:flex;flex-wrap:wrap;align-items:center;gap:var(--wy-s3);padding:var(--wy-s6)}
.wy-set__body > .wy-set__copy{flex:0 1 520px;margin:0 auto 0 0}
/* Une seule règle pour les boutons de carte : sur la ligne du texte, au bord droit,
   dès 640 px (le texte se resserre) ; dessous et à gauche sous 640 px. */
@media (min-width:640px){
  .wy-set__body,.wy-set__gsc,.wy-set__credits{flex-wrap:nowrap}
  :is(.wy-set__body,.wy-set__gsc,.wy-set__credits) > :is(button,a,.wy-btn){flex:none}
  .wy-set__gsc > .wy-set__copy{flex:0 1 520px;min-width:0}
}
@media (max-width:639.98px){
  .wy-set__gsc,.wy-set__credits{justify-content:flex-start}
}
.wy-set__copy .m{font-family:var(--wy-font-mono);color:var(--wyInk2)}
/* « Ensuite » de la connexion privée : étapes numérotées, une commande copiable chacune. */
.wy-set__next{padding:0 var(--wy-s6) var(--wy-s6);border-top:1px solid var(--wyRowline)}
.wy-set__nexttitle{margin:var(--wy-s4) 0 var(--wy-s3);font-family:var(--wy-font-mono);font-size:var(--wy-text-label);font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--wyGold2)}
.wy-set__steps{display:flex;flex-direction:column;gap:var(--wy-s4);margin:0;padding-left:var(--wy-s6);font-size:var(--wy-text-control-lg);color:var(--wyInk4)}
.wy-set__step::marker{font-family:var(--wy-font-mono);font-size:12px;color:var(--wyInk5)}
.wy-set__steplabel{display:block;margin-bottom:var(--wy-s2)}
.wy-cmd{display:flex;align-items:center;gap:var(--wy-s2);padding:var(--wy-s1) var(--wy-s1) var(--wy-s1) var(--wy-s3);border:1px solid var(--wyLine3);border-radius:var(--wy-r-s);background:var(--wyPaper)}
.wy-cmd__code{flex:1;min-width:0;overflow-x:auto;white-space:nowrap;font-family:var(--wy-font-mono);font-size:12px;color:var(--wyInk2);scrollbar-width:thin}
.wy-cmd > .wy-btn{flex:none}
@media (max-width:639.98px){.wy-set__next{padding:0 var(--wy-s4) var(--wy-s4)}}
.wy-set__badge{display:inline-flex;align-items:center;gap:6px;padding:var(--wy-s1) var(--wy-s3);border-radius:var(--wy-r-pill);font-family:var(--wy-font-mono);font-size:var(--wy-text-label)}
.wy-set__badge--warn{background:var(--wyWarnBg);border:1px solid var(--wyWarnBd);color:var(--wyWarn)}
.wy-set__badge--ok{background:var(--wyOkTint);border:1px solid var(--wyOkBd2);color:var(--wyOk)}
.wy-set__bdot{width:5px;height:5px;border-radius:50%;background:currentColor}
/* Dans une légende mono (« Sites »), le bouton reprend la police des boutons. */
.wy-set__empty{padding:48px 20px;text-align:center}
.wy-set__emptytitle{font-family:var(--wy-font-editorial);font-weight:700;font-size:22px;color:var(--wyInk2);margin:14px 0 6px}
.wy-set__emptydesc{font-size:13px;color:var(--wyInk5);line-height:1.55;max-width:340px;margin:0 auto}
.wy-set__siterow{display:flex;align-items:center;justify-content:space-between;gap:var(--wy-s4);padding:var(--wy-s4) var(--wy-s6);border-bottom:var(--wy-hairline) solid var(--wyRowline)}
.wy-set__siterow:last-child{border-bottom:none}
.wy-set__siteleft{display:flex;align-items:center;gap:11px;min-width:0}
.wy-set__sitedot{width:7px;height:7px;flex:none;background:var(--wyOlive);transform:rotate(45deg)}
.wy-set__sitename{font-family:var(--wy-font-mono);font-size:13px;color:var(--wyInk2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wy-set__siteright{display:flex;align-items:center;gap:var(--wy-s3);flex:none}
.wy-set__danger{border:1px solid var(--wyDangerBd);background:var(--wyDangerBg);border-radius:var(--wy-r-m);overflow:hidden}
.wy-set__dcap{padding:var(--wy-s4) var(--wy-s6);border-bottom:var(--wy-hairline) solid var(--wyDangerBd);font-family:var(--wy-font-mono);font-size:var(--wy-text-label);letter-spacing:.12em;text-transform:uppercase;color:var(--wyDanger)}
.wy-set__dbody{padding:var(--wy-s6);display:flex;align-items:center;justify-content:space-between;gap:var(--wy-s6);flex-wrap:wrap}
.wy-set__dtitle{font-size:14.5px;color:var(--wyInk2);font-weight:600;margin-bottom:var(--wy-s1)}
.wy-set__ddesc{font-size:13px;color:var(--wyInk5);line-height:1.5}
.wy-modal-overlay{position:fixed;inset:0;z-index:90;background:rgba(var(--wyShdw),.52);display:grid;place-items:center;padding:var(--wy-s6);animation:wy-rise var(--wy-duration-enter) ease}
.wy-modal{width:466px;max-width:100%;max-height:88vh;overflow:auto;background:var(--wyCard);border:1px solid var(--wyLine3);border-radius:var(--wy-r-m);box-shadow:var(--wy-shadow-dialog)}
.wy-modal__head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:var(--wy-hairline) solid var(--wyRowline)}
.wy-modal__head--danger{border-bottom-color:var(--wyDangerBd);background:var(--wyDangerBg)}
.wy-modal__title{font-family:var(--wy-font-editorial);font-weight:700;font-size:21px;color:var(--wyInk2)}
.wy-modal__title--danger{color:var(--wyDanger)}
.wy-modal__body{padding:20px 22px 22px}
.wy-modal__solde{font-family:var(--wy-font-mono);font-size:11.5px;color:var(--wyInk5);margin-bottom:var(--wy-s4)}
.wy-pack-options{border:0;padding:0;margin:0;min-width:0}
.wy-pack-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-bottom:14px}
.wy-pack{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:var(--wy-s2);min-width:0;width:100%;padding:18px 15px 14px;border:1px solid var(--wyLine3);background:var(--wyCard);border-radius:13px;cursor:pointer;font-family:inherit;text-align:left}
@media (max-width:420px){.wy-pack-grid{grid-template-columns:1fr}}
.wy-pack--sel{border-color:var(--wyLapis);background:var(--wyLapisBg)}
.wy-pack input{position:absolute;opacity:0;width:1px;height:1px}
.wy-pack:has(input:focus-visible){outline:2px solid var(--wyAccent);outline-offset:3px}
.wy-pack__left{display:flex;align-items:baseline;gap:var(--wy-s2);white-space:nowrap}
.wy-pack__count{font-family:var(--wy-font-editorial);font-weight:700;font-size:22px;color:var(--wyInk2);white-space:nowrap}
.wy-pack__unit{font-size:13px;color:var(--wyInk5);white-space:nowrap}
.wy-pack__tag{position:absolute;top:-9px;right:8px;font-family:var(--wy-font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--wyLapis);border:1px solid var(--wyLapisBd);background:var(--wyLapisBg);padding:3px 7px;border-radius:var(--wy-r-pill);white-space:nowrap}
.wy-pack__price{font-family:var(--wy-font-mono);font-size:var(--wy-text-body);color:var(--wyInk2);white-space:nowrap}
.wy-pack__articles{font-size:var(--wy-text-control);color:var(--wyInk4)}
.wy-modal__foot{text-align:center;font-family:var(--wy-font-mono);font-size:var(--wy-text-label);color:var(--wyInk5);margin-top:var(--wy-s3)}
.wy-modal__gsc{padding:28px 26px 26px;text-align:center}
.wy-modal__glyph{width:52px;height:52px;margin:0 auto var(--wy-s4);border:1px solid var(--wyLine3);border-radius:15px;display:grid;place-items:center;font-family:var(--wy-font-editorial);font-weight:700;font-size:26px;color:var(--wyInk2);background:var(--wyRail)}
.wy-modal__gtitle{font-family:var(--wy-font-editorial);font-weight:700;font-size:22px;color:var(--wyInk2);margin-bottom:var(--wy-s2)}
.wy-modal__gcopy{font-size:var(--wy-text-control-lg);color:var(--wyInk5);line-height:1.55;max-width:360px;margin:0 auto 18px}
.wy-modal__gcopy strong{color:var(--wyInk3)}
.wy-modal__perms{text-align:left;border:1px solid var(--wyLine3);border-radius:12px;padding:var(--wy-s3) 14px;margin-bottom:20px;background:var(--wyRail);display:flex;flex-direction:column;gap:9px}
.wy-modal__perm{display:flex;align-items:center;gap:9px;font-size:var(--wy-text-control);color:var(--wyInk4)}
.wy-modal__check{color:var(--wyOk)}
.wy-modal__link{margin-top:var(--wy-s3);background:none;border:none;color:var(--wyInk5);cursor:pointer;font-family:inherit}
.wy-modal__flabel{display:block;font-family:var(--wy-font-mono);font-size:var(--wy-text-label);letter-spacing:.1em;text-transform:uppercase;color:var(--wyGold2);margin-bottom:var(--wy-s2)}
.wy-modal__input{width:100%;border:1px solid var(--wyLine3);background:var(--wyPaper);padding:var(--wy-s3) 14px;font-size:var(--wy-text-body);color:var(--wyInk2);outline:none;font-family:inherit}
.wy-modal__input--danger{border-color:var(--wyDangerBd);font-family:var(--wy-font-mono);margin-bottom:20px}
.wy-modal__help{font-size:var(--wy-text-control);color:var(--wyInk5);line-height:1.5;margin:var(--wy-s3) 0 20px}
.wy-modal__help--tight{margin-top:0}
.wy-modal__inputrow{display:flex;gap:var(--wy-s2);align-items:flex-start}
.wy-modal__inputrow>.wy-modal__input{flex:1}
.wy-modal__inputrow>button{white-space:nowrap}
#settings-analyser-maillage-btn{margin-top:var(--wy-s2)}
#settings-maillage-status .wy-modal__help{margin-top:10px}
.wy-modal__scope{padding:10px;border:1px solid var(--wyLine3);border-radius:8px}
.wy-modal__ok{color:var(--wyOk);font-weight:600}
.wy-modal__body--prose p{margin:0 0 10px}
.wy-modal__body--prose p:last-of-type{margin-bottom:14px}
.wy-modal__err{font-size:var(--wy-text-control);color:var(--wyDanger);margin:10px 0 0}
.wy-modal__warn{font-size:var(--wy-text-control-lg);color:var(--wyInk4);line-height:1.6;margin-bottom:18px}
.wy-modal__warn strong{color:var(--wyInk2)}
.wy-modal__prompt{font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);color:var(--wyInk5);margin-bottom:var(--wy-s2)}
.wy-modal__prompt strong{color:var(--wyDanger);font-weight:400}
.wy-modal__actions{display:flex;gap:10px}
.wy-modal__confirm{flex:1;background:var(--wyDangerBg);border:1px solid var(--wyDanger);color:var(--wyInk5);font-weight:600;cursor:pointer;font-family:inherit}
.wy-modal__confirm--armed{background:var(--wyDanger);color:var(--wyPaper)}

/* ═══ VIEW: editor ═══ */
/* Full-screen editor: the topbar replaces the app sidebar. Scoped to the
   editor via `.wy-main--flush` (set only by EditorLive's :no_padding assign). */
.wy-root:has(.wy-main--flush) .wy-nav,
.wy-root:has(.wy-main--flush) .wy-navbtn,
.wy-root:has(.wy-main--flush) .wy-navback,
.wy-root:has(.wy-main--flush) .wy-navtheme,
.wy-root:has(.wy-main--flush) .wy-navtoggle{display:none !important}
.wy-main--flush{margin-left:0 !important;padding:0 !important}

/* ProseMirror body (id set by the TiptapEditor hook) */
#wytt-editor{min-height:440px;caret-color:var(--wyAccent)}
#wytt-editor:focus{outline:none}
/* TipTap decoration only: the NLP hint is never part of the saved document. */
#nlp-tiptap-editor #wytt-editor [data-placeholder]::before{content:attr(data-placeholder);float:left;height:0;color:var(--wyInk5);pointer-events:none}

/* Toolbar buttons (ids + `active` class preserved for LiveView + tests) */
.wy-tb-group{display:flex;background:var(--wyCard);border:1px solid var(--wyLine3);border-radius:10px;overflow:hidden}
.wy-tb-group > .wy-tb-btn{border-right:1px solid var(--wyLine4);border-radius:0}
.wy-tb-group > .wy-tb-btn:last-child{border-right:none}
.wy-tb-btn{border:none;background:transparent;color:var(--wyInk4);font-weight:600;gap:6px}
.wy-tb-btn--sq{padding:0;font-weight:400}
.wy-tb-btn--mono{font-family:var(--wy-font-ui);font-weight:400}
.wy-tb-btn--txt{min-width:36px;padding-inline:var(--wy-s2)}
.wy-tb-btn--pill{background:var(--wyCard);border:1px solid var(--wyLine3);color:var(--wyInk4);font-weight:500}
.wy-tb-btn--bold{font-weight:700}
.wy-tb-btn--italic{font-style:italic}
.wy-tb-btn--underline{text-decoration:underline}
.wy-tb-btn--strike{text-decoration:line-through}
.wy-tb-btn:hover{background:var(--wyHover)}
.wy-tb-btn--pill:hover{background:var(--wyCard);border-color:var(--wyAccent);color:var(--wyAccent)}
/* Barre du tableau : elle occupe sa propre place au-dessus du tableau, sans rien cacher ni décaler au clic.
   Au repos, cette place porte l'indice ; curseur dans le tableau, les commandes la remplacent et restent
   collées sous la barre de mise en forme (64 px, 56 px sur mobile) dans un long tableau. */
#wytt-editor .wy-table{position:relative;margin:0 0 var(--wy-s4)}
#wytt-editor :is(.wy-table__mark,.wy-table__doomed){position:absolute;z-index:1;pointer-events:none}
#wytt-editor .wy-table__mark{outline:2px solid var(--wyAccent);outline-offset:-1px}
#wytt-editor .wy-table__doomed{background:color-mix(in srgb,var(--wyDanger) 14%,transparent);outline:2px solid var(--wyDanger);outline-offset:-1px}
#wytt-editor :is(.wy-table__mark,.wy-table__doomed)[hidden]{display:none}
.wy-tablebar{display:none}
#wytt-editor .wy-tablebar{display:grid;padding-block:0 var(--wy-s2);font-family:var(--wy-font-ui)}
#wytt-editor .wy-tablebar>*{grid-area:1/1}
#wytt-editor .wy-table.is-active>.wy-tablebar{position:sticky;top:calc(var(--wy-head) + 64px);z-index:15;background:var(--wyPaper)}
#wytt-editor .wy-tablebar__hint{align-self:end;margin:0;color:var(--wyInk5);font-size:var(--wy-text-meta);line-height:1.4}
#wytt-editor .wy-tablebar__inner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--wy-s2) var(--wy-s4);justify-self:start;padding-block:var(--wy-s1)}
#wytt-editor .wy-table:not(.is-active) .wy-tablebar__inner,#wytt-editor .wy-table.is-active .wy-tablebar__hint{visibility:hidden}
.wy-tablebar__set{display:flex;align-items:center;gap:var(--wy-s2)}
.wy-tablebar__label{color:var(--wyInk5);font-family:var(--wy-font-mono);font-size:var(--wy-text-label);letter-spacing:.08em;text-transform:uppercase}
.wy-tablebar .wy-tablebar__danger{display:inline-flex;align-items:center;justify-content:center;width:var(--wy-ctl-h);color:var(--wyDanger)}
.wy-tablebar .wy-tb-btn[aria-disabled=true]{opacity:.4;cursor:not-allowed;background:transparent}
@media (hover:hover){.wy-tablebar .wy-tablebar__danger:hover{border-color:var(--wyDanger);color:var(--wyDanger)}}
@media (hover:none){.wy-tablebar .wy-tb-btn--txt:hover{background:transparent}}
/* Mobile : une seule ligne qui défile de côté, avec le même fondu que le tableau ; la place ne change pas au toucher. */
@media (max-width:639.98px){
  #wytt-editor .wy-table.is-active>.wy-tablebar{top:calc(var(--wy-head) + 56px)}
  #wytt-editor .wy-tablebar__inner{flex-wrap:nowrap;max-width:100%;overflow-x:auto;scrollbar-width:none;gap:var(--wy-s3)}
  .wy-tablebar .wy-tb-btn--txt{padding-inline:var(--wy-s2);white-space:nowrap}
  @supports (animation-timeline:scroll()){#wytt-editor .wy-tablebar__inner{animation:wy-table-fade linear both;animation-timeline:scroll(self inline);mask-image:linear-gradient(to right,transparent,#000 var(--wy-fade-start),#000 calc(100% - var(--wy-fade-end)),transparent)}}
}
/* Un seul plein lajvard par écran (Publier) : l'outil actif passe en fond doux. */
.wy-tb-btn.active,.wy-tb-btn.active:hover,.wy-tb-btn[aria-pressed="true"]{background:var(--wyAccentSoft);color:var(--wyLapis)}

/* Topbar chrome */

.wy-ed-card{background:var(--wyCard);border:1px solid var(--wyLine3)}
.wy-term-chip{display:inline-flex;align-items:center;gap:6px;padding:var(--wy-s1) 9px;border-radius:var(--wy-r-pill);font-size:11.5px;line-height:1.15;cursor:pointer}
/* États des termes (docs/nlp/semantic-score-gauges.md) : à placer = neutre chaud, couvert = vert,
   au-delà du repère = rouge des jauges. Le compteur « n/min-max » dit l'état sans la couleur. */
.wy-term-chip--todo{background:var(--wyMuteBg);color:var(--wyInk5);border:1px solid var(--wyMuteBd)}
.wy-term-chip--ok{background:var(--wyOkTint);color:var(--wyOk);border:1px solid var(--wyOkBd2)}
.wy-term-chip--over{background:var(--wyDangerBg);color:var(--wyDanger);border:1px solid var(--wyDangerBd)}
.wy-term-legend{display:flex;flex-wrap:wrap;gap:var(--wy-s3);margin-bottom:10px}
.wy-term-legend__dot{flex:none;width:8px;height:8px;border-radius:50%}
.wy-term-legend__dot--todo{background:var(--wyMute)}
.wy-term-legend__dot--ok{background:var(--wyOk)}
.wy-term-legend__dot--over{background:var(--wyDanger)}
.wy-term-chip[aria-pressed="true"]{border-color:var(--wyAccent);box-shadow:0 0 0 1.5px var(--wyAccent)}
.wy-term-chip__count{font-family:var(--wy-font-mono);font-size:10px}
/* Carte d'une liste de termes (rail droit de l'éditeur) */
.wy-termcard{border-radius:var(--wy-r-m);padding:var(--wy-s3) var(--wy-s4);margin-bottom:var(--wy-s3);box-shadow:var(--wy-shadow-rail)}
.wy-termcard__head{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.wy-termcard__title{flex:none;font-family:var(--wy-font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--wyGold2)}
.wy-termcard__bar{flex:1;height:4px;border-radius:2px;background:var(--wyTrack);overflow:hidden}
.wy-termcard__fill{height:100%;background:var(--wyOlive)}
/* Largeur fixe, calée à droite : les barres finissent toutes au même endroit, quelle que soit la longueur du compteur. */
.wy-termcard__count{flex:none;min-width:5ch;text-align:right;font-family:var(--wy-font-mono);font-size:10px;color:var(--wyInk5);font-variant-numeric:tabular-nums}
.wy-terms__head{display:flex;align-items:center;gap:9px;margin-bottom:var(--wy-s2)}
.wy-terms__rule{flex:1;height:1px;background:var(--wyLine2)}
/* Titres proposés (rail droit) */
.wy-headlines{margin-top:14px}
.wy-headlines__title{font-size:13px;font-weight:600;color:var(--wyInk)}
.wy-headlines__count{margin-left:auto;font-family:var(--wy-font-mono);font-size:var(--wy-text-label);color:var(--wyInk5)}
.wy-headlines__body{padding:2px 14px 14px}
.wy-headlines__note{margin:0 0 10px;font-size:11.5px;line-height:1.45;color:var(--wyInk5)}
.wy-ed-titlechoice{display:block;width:100%;margin-bottom:7px;padding:8px 10px;border:1px solid var(--wyLine2);border-radius:var(--wy-r-s);background:var(--wyPaper);font-size:var(--wy-text-control);line-height:1.4;text-align:left;color:var(--wyInk3);cursor:pointer}
.wy-ed-titlechoice:disabled{border-color:var(--wyAccent);background:var(--wyOkBg);color:var(--wyInk2);cursor:default}
.wy-ed-titlechoice__current{display:block;margin-bottom:2px;font-family:var(--wy-font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--wyLapis)}

/* Métadonnées accordion (native <details>) */
.wy-ed-acc{background:var(--wyCard);border:1px solid var(--wyLine3);border-radius:var(--wy-r-m);overflow:hidden;box-shadow:var(--wy-shadow-rail)}
.wy-ed-acc__summary{list-style:none;display:flex;align-items:center;gap:10px;padding:var(--wy-s3) 14px;cursor:pointer}
.wy-ed-acc__summary::-webkit-details-marker{display:none}
.wy-ed-acc__summary>:first-child{flex:1 1 auto;min-width:0}
.wy-ed-acc__summary::after{content:"";flex:none;width:7px;height:7px;margin-right:2px;border-right:1.6px solid var(--wyMute);border-bottom:1.6px solid var(--wyMute);transform:rotate(-45deg);transition:transform var(--wy-duration-fast) ease}
.wy-ed-acc[open] .wy-ed-acc__summary::after{transform:rotate(45deg)}
.wy-ed-acc__summary:hover{background:var(--wyPaper)}

/* Competitor modal : en-tête, cartouche des deux repères, liste des pages. */
.wy-ed-comp-head{display:flex;align-items:flex-start;gap:var(--wy-s4);padding:20px var(--wy-s6) 18px;border-bottom:var(--wy-hairline) solid var(--wyLine2)}
.wy-ed-comp-intro{flex:1 1 0;min-width:0}
.wy-ed-comp-title{margin:0;font-family:var(--wy-font-editorial);font-weight:700;font-size:22px;line-height:1.2;color:var(--wyInk2)}
.wy-ed-comp-lede{margin:6px 0 0;max-width:60ch;font-size:13px;line-height:1.5;color:var(--wyInk5)}
.wy-ed-comp-lede strong{font-weight:600;color:var(--wyInk4)}
.wy-ed-comp-close{flex:none;cursor:pointer}
.wy-ed-comp-scroll{flex:1 1 auto;min-height:0;overflow:auto;padding:0 var(--wy-s6) var(--wy-s6)}
.wy-ed-comp-sum{display:grid;grid-template-columns:1fr 1fr;margin:20px 0 var(--wy-s1);background:var(--wyRail);border:1px solid var(--wyLine3);border-radius:var(--wy-r-m)}
.wy-ed-comp-stat{min-width:0;padding:var(--wy-s3) var(--wy-s4)}
.wy-ed-comp-stat + .wy-ed-comp-stat{border-left:1px solid var(--wyLine3)}
.wy-ed-comp-stat__key{font-family:var(--wy-font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--wyInk5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wy-ed-comp-stat__val{display:flex;align-items:center;gap:var(--wy-s2);min-height:28px;margin:var(--wy-s2) 0 0;font-family:var(--wy-font-editorial);font-weight:700;font-size:24px;line-height:1;color:var(--wyGold2);font-variant-numeric:tabular-nums}

.wy-ed-comp-table{width:100%;border-collapse:collapse;table-layout:fixed}
.wy-ed-comp-table th{position:sticky;top:0;z-index:1;background:var(--wyPaper);font-family:var(--wy-font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--wyInk5);padding:var(--wy-s4) var(--wy-s2) var(--wy-s2);box-shadow:inset 0 -1px 0 var(--wyLine2);font-weight:400;text-align:left}
.wy-ed-comp-table th abbr{text-decoration:none;cursor:help}
.wy-ed-comp-th--pos{width:44px;text-align:center !important}
.wy-ed-comp-th--so{width:112px;text-align:right !important}
.wy-ed-comp-table td{padding:var(--wy-s3) var(--wy-s2);border-bottom:var(--wy-hairline) solid var(--wyRowline);vertical-align:middle}
.wy-ed-comp-table tbody tr:hover > td{background:var(--wyHover)}
.wy-ed-comp-pos{text-align:center;font-family:var(--wy-font-mono);font-size:12px;color:var(--wyInk5);font-variant-numeric:tabular-nums}
.wy-ed-comp-id{min-width:0}
.wy-ed-comp-site{display:block;width:100%;min-width:0;padding:0;border:0;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.wy-ed-comp-site[disabled]{cursor:default;opacity:.55}
.editor-competitor-title{display:block;font-size:var(--wy-text-control-lg);line-height:1.35;font-weight:500;color:var(--wyInk2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.editor-competitor-url{display:block;margin-top:3px;font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);line-height:1.4;color:var(--wyInk5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wy-ed-comp-site:hover:not([disabled]) .editor-competitor-title{color:var(--wyAccent);text-decoration:underline;text-underline-offset:2px}
/* Page ouverte dans l'aperçu : lapis, le langage du sélectionné dans l'app. */
.editor-competitor-row--selected > td,.wy-ed-comp-table tbody tr.editor-competitor-row--selected:hover > td{background:var(--wyLapisBg)}
.editor-competitor-row--selected .editor-competitor-title{color:var(--wyLapis)}
.editor-competitor-so{text-align:right}
.wy-ed-comp-score{display:inline-flex;align-items:center;gap:var(--wy-s2)}
.wy-ed-comp-mark{display:inline-flex;width:12px;height:12px;flex:none}
.wy-ed-comp-empty{text-align:center;font-size:13px;color:var(--wyInk5);padding:var(--wy-s6) var(--wy-s2)}
.wy-ed-comp-note{margin:var(--wy-s3) 0 0;font-size:12px;line-height:1.5;color:var(--wyInk5)}
.wy-ed-comp-preview{margin-top:20px;padding:14px var(--wy-s4);background:var(--wyRail);border:1px solid var(--wyLine3);border-radius:var(--wy-r-m)}
.wy-ed-comp-preview__head{font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);color:var(--wyInk5)}
.wy-ed-comp-preview__url{margin-top:2px;font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);color:var(--wyInk5);overflow-wrap:anywhere}
.wy-ed-comp-preview__body{margin-top:10px;font-family:var(--wy-font-editorial);font-size:var(--wy-text-body);line-height:1.6;color:var(--wyInk3);white-space:pre-wrap;max-height:280px;overflow:auto}
/* Téléphone : la modale devient une feuille quasi plein écran, la liste garde
   titre + URL lisibles et des cibles tactiles de 40 px. */
@media (max-width:560px){
  .wy-ed-modal-overlay{padding:var(--wy-s3) !important}
  .wy-ed-modal{max-height:calc(100dvh - 24px) !important;border-radius:16px !important}
  .wy-ed-comp-head{gap:var(--wy-s3);padding:var(--wy-s4) var(--wy-s4) 14px}
  .wy-ed-comp-title{font-size:20px}
  .wy-ed-comp-scroll{padding:0 var(--wy-s4) 20px}
  .wy-ed-comp-sum{margin-top:var(--wy-s4)}
  .wy-ed-comp-stat{padding:10px var(--wy-s3)}
  .wy-ed-comp-th--pos{width:28px}
  .wy-ed-comp-th--so{width:96px}
  .wy-ed-comp-table th{padding:14px var(--wy-s1) var(--wy-s2)}
  .wy-ed-comp-table td{padding:10px var(--wy-s1)}
  .wy-ed-comp-table td.wy-ed-comp-id{padding:10px var(--wy-s2)}
  .editor-competitor-title{font-size:13px;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}
}

/* ─── Roue du score sémantique (rail droit + modale concurrents) ──────── */
/* Roue pleine depuis midi ; `pathLength="100"` fait du score son propre
   dasharray. Aucune couleur de seuil : le ton dit seulement à qui est la
   roue (accent = ton article, encre = concurrent, or = meilleur concurrent). */

/* Khatam : l'étoile à huit pointes des tuiles pat-baysonqor, repère du
   meilleur concurrent mesuré. Halo couleur carte pour la détacher de la roue. */
.wy-tstar{display:block;flex:none}

/* Carte du rail droit. */
.wy-sem{border-radius:var(--wy-r-m);padding:14px var(--wy-s4) var(--wy-s4);margin:var(--wy-s6) 0 22px;box-shadow:var(--wy-shadow-rail)}
.wy-sem__title{margin:0 0 14px;font-family:var(--wy-font-mono);font-size:10px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--wyGold2)}
.wy-sem__btn{display:flex;justify-content:space-between;width:100%;margin-top:var(--wy-s4);font-weight:500}
.wy-sem__count{padding:2px var(--wy-s2);border:1px solid var(--wyLine3);border-radius:var(--wy-r-pill);font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);line-height:1.3;color:var(--wyInk5);font-variant-numeric:tabular-nums}
.wy-sem__btn:hover .wy-sem__count{border-color:currentColor;color:inherit}
.wy-sem__note{margin:14px 0 0;font-size:11.5px;line-height:1.45;color:var(--wyInk5)}
/* Bouton « Sémantique » de la barre : mini-roue (conic + masque annulaire). */

/* Selection bubble + link dialog (JS-created, mounted under .wy-root for tokens) */
/* Bulle de sélection : même famille que la barre d'outils (surface carte, liseré, outil
   actif doux), ombre douce symétrique, sceau de l'IA à droite. Clair et sombre par tokens. */
.wy-root .editor-selection-bubble{position:fixed;z-index:60;display:none;align-items:stretch;gap:0;padding:0;border:1px solid var(--wyLine3);border-radius:var(--wy-r-s);background:var(--wyCard);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:var(--wy-shadow-float);overflow:visible}
.wy-root .editor-selection-bubble.is-visible{display:flex}
.wy-root .editor-selection-bubble__btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--wy-s1);min-width:var(--wy-ctl-h);height:var(--wy-ctl-h);padding:0 var(--wy-s2);border:0;border-right:1px solid var(--wyLine4);border-radius:0;background:transparent;color:var(--wyInk4);font:600 var(--wy-text-control)/1 var(--wy-font-ui);letter-spacing:normal;cursor:pointer}
.wy-root .editor-selection-bubble__btn:first-child{border-radius:calc(var(--wy-r-s) - 1px) 0 0 calc(var(--wy-r-s) - 1px)}
.wy-root .editor-selection-bubble__btn:last-child{border-right:none;border-radius:0 calc(var(--wy-r-s) - 1px) calc(var(--wy-r-s) - 1px) 0}
/* Groupes comme la barre : titres | marques | lien | IA, séparés par un filet plus franc. */
.wy-root .editor-selection-bubble__btn:nth-child(4),.wy-root .editor-selection-bubble__btn:nth-child(7),.wy-root .editor-selection-bubble__btn:nth-child(8):not(:last-child){border-right-color:var(--wyLine3)}
.wy-root .editor-selection-bubble__btn:hover{background:var(--wyHover);color:var(--wyInk2)}
.wy-root .editor-selection-bubble__btn.is-active,.wy-root .editor-selection-bubble__btn.is-active:hover{background:var(--wyAccentSoft);color:var(--wyLapis)}
.wy-root .editor-selection-bubble__btn:focus-visible{outline:2px solid var(--wyAccent);outline-offset:-2px;border-radius:var(--wy-r-s)}
.wy-root .editor-selection-bubble__btn.is-italic{font-style:italic;font-weight:500}
.wy-root .editor-selection-bubble__btn.is-underline{text-decoration:underline;text-underline-offset:2px}
.wy-root .editor-selection-bubble__btn.is-link{color:var(--wyAccent);padding-inline:var(--wy-s3)}
/* Sous 640 px, boutons de 44 px : la bulle garde marques, lien et IA (les titres sont dans
   la barre d'outils juste au-dessus) et tient dans 344 px. */
@media (max-width:639.98px){
  .wy-root .editor-selection-bubble{overflow:hidden}
  .wy-root .editor-selection-bubble__btn[data-command=heading]{display:none}
}

.wy-root .editor-link-dialog__overlay{position:fixed;inset:0;z-index:70;background:rgba(var(--wyShdw),.5);display:none;grid-template-columns:minmax(0,1fr);place-items:center;padding:var(--wy-s4)}
.wy-root .editor-link-dialog__overlay.is-visible{display:grid}
.wy-root .editor-link-dialog{width:420px;max-width:100%;color:var(--wyInk3);background:var(--wyCard);border:1px solid var(--wyLine3);border-radius:var(--wy-r-m);box-shadow:var(--wy-shadow-dialog);overflow:hidden}
.wy-root .editor-link-dialog__header{padding:14px 18px;border-bottom:var(--wy-hairline) solid var(--wyLine2);display:flex;align-items:center;justify-content:space-between}
.wy-root .editor-link-dialog__title{font-family:var(--wy-font-editorial);font-weight:700;font-size:19px;color:var(--wyInk2);margin:0}
.wy-root .editor-link-dialog__close{border:1px solid var(--wyLine3);background:var(--wyCard);color:var(--wyInk4);cursor:pointer;display:grid;place-items:center}
.wy-root .editor-link-dialog__close:hover{border-color:var(--wyAccent);color:var(--wyAccent)}
.wy-root .editor-link-dialog__form{padding:18px;display:flex;flex-direction:column;gap:var(--wy-s3)}
.wy-root .editor-link-dialog__field{display:flex;flex-direction:column;gap:var(--wy-s1)}
.wy-root .editor-link-dialog__label{font-size:var(--wy-text-meta);color:var(--wyInk5);font-family:var(--wy-font-mono);text-transform:uppercase;letter-spacing:.06em}
.wy-root .editor-link-dialog__input,.wy-root .editor-link-dialog__select{border:1px solid var(--wyLine3);background:var(--wyCard);padding:9px 11px;font-size:13px;color:var(--wyInk3);font-family:inherit}
.wy-root .editor-link-dialog__input::placeholder{color:var(--wyInk5)}
.wy-root .editor-link-dialog__actions{display:flex;align-items:center;gap:10px;margin-top:var(--wy-s1)}
.wy-root .editor-link-dialog__btn{cursor:pointer;font-family:inherit}
.wy-root .editor-link-dialog__btn--primary{border:1px solid var(--wyAccentSolid,var(--wyAccent));background:var(--wyAccentSolid,var(--wyAccent));color:var(--wyOnAccentSolid,var(--wyOnAccent));font-weight:600}
.wy-root .editor-link-dialog__btn--primary:hover{border-color:var(--wyAccentSolidHover,var(--wyAccent2));background:var(--wyAccentSolidHover,var(--wyAccent2))}
.wy-root .editor-link-dialog__btn--ghost{border:1px solid var(--wyLine3);background:transparent;color:var(--wyInk5)}
.wy-root .editor-link-dialog__btn--danger{border:none;background:none;color:var(--wyDanger);text-decoration:underline;margin-right:auto;padding-left:0}

/* ═══ CHANTIER A — suivi de génération (gen view) ═══ */
/* Barre de progression girih : la frise pat-baysonqor se construit avec l'avancement. */
.wy-genprog{margin-bottom:20px;padding:var(--wy-s4) var(--wy-s6)}
.wy-genprog__meta{display:flex;align-items:baseline;justify-content:space-between;gap:var(--wy-s3);margin-bottom:10px}
.wy-genprog__label{font-family:var(--wy-font-mono);font-size:11.5px;color:var(--wyInk5)}
.wy-genprog__pct{font-family:var(--wy-font-mono);font-size:12px;color:var(--wyInk3)}
.wy-genprog__track{height:16px;background:var(--wyTrack);border:1px solid var(--wyLine3);border-radius:6px;overflow:hidden}
.wy-genprog__fill{height:100%;background-color:var(--wyAccentSoft);background-image:url(/images/atelier/pat-baysonqor-1f4114bdbea73bbbdffc2fd5c1eb390b.svg?vsn=d);background-size:16px 16px;background-position:left center;background-repeat:repeat-x;transition:width .4s ease}

/* Les 8 étapes (todo | current | failed | done). */
.wy-gensteps{margin-bottom:26px;padding:var(--wy-s1) 0}
.wy-genstep{display:flex;align-items:center;gap:var(--wy-s3);padding:var(--wy-s4) var(--wy-s6);border-bottom:var(--wy-hairline) solid var(--wyRowline)}
.wy-genstep:last-child{border-bottom:none}
.wy-genstep__dot{width:24px;height:24px;flex:none;display:grid;place-items:center;border-radius:50%;font-size:var(--wy-text-meta);line-height:1;background:var(--wyTrack);color:transparent}
.wy-genstep__dot--done{background:var(--wyOlive);color:var(--wyPaper)}
.wy-genstep__dot--current{background:var(--wyWarnBg);border:1px solid var(--wyWarnBd)}
.wy-genstep__dot--current::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--wyWarn);animation:wy-pulse 1.5s ease infinite}
.wy-genstep__dot--failed{background:var(--wyDanger);color:var(--wyDangerBg);font-family:var(--wy-font-mono)}
.wy-genstep__label{min-width:0;font-size:var(--wy-text-body);font-weight:500;color:var(--wyInk2)}
.wy-genstep--todo .wy-genstep__label{color:var(--wyInk5);font-weight:400}
.wy-genstep__state{margin-left:auto;flex:none;font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);color:var(--wyInk5)}
.wy-genstep--current .wy-genstep__state{color:var(--wyWarn)}
.wy-genstep--failed .wy-genstep__state{color:var(--wyDanger)}

/* Carte d'échec grenat (bordure uniforme 1px — jamais de liseré un seul bord). */
/* Bouton thème centré sur la première ligne du titre (38 px, 30 px sous 640 px). */
#gen-header > .wy-themebtn{margin-top:calc((38px - var(--wy-ctl-h)) / 2)}
@media (max-width:639.98px){#gen-header > .wy-themebtn{margin-top:calc((30px - var(--wy-ctl-h)) / 2)}}
.wy-genfail{margin-bottom:20px;padding:var(--wy-s6);background:var(--wyDangerBg);border:1px solid var(--wyDangerBd);border-radius:16px}
.wy-genfail__head{display:flex;align-items:center;gap:var(--wy-s3);margin-bottom:10px}
.wy-genfail__badge{width:24px;height:24px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--wyDanger);color:var(--wyDangerBg);font-family:var(--wy-font-mono);font-size:12px}
.wy-genfail__title{margin:0;font-family:var(--wy-font-editorial);font-weight:700;font-size:21px;color:var(--wyDanger)}
.wy-genfail__text{margin:0 0 var(--wy-s4);font-size:var(--wy-text-control-lg);line-height:1.6;color:var(--wyInk4);max-width:560px}

/* Carte « Article prêt » (transition ready pendant qu'on regarde). */
.wy-gendone{margin-bottom:20px;padding:28px var(--wy-s6);display:flex;flex-direction:column;align-items:center;text-align:center}
.wy-gendone__title{margin:var(--wy-s3) 0 6px;font-family:var(--wy-font-editorial);font-weight:700;font-size:22px;color:var(--wyInk2)}
.wy-gendone__text{margin:0 0 18px;font-size:var(--wy-text-control-lg);color:var(--wyInk5)}

/* Bloc « Déjà consultable ». */
.wy-genready__cap{margin:26px 0 var(--wy-s3);font-family:var(--wy-font-mono);font-size:var(--wy-text-label);letter-spacing:.12em;text-transform:uppercase;color:var(--wyGold2)}
.wy-genready__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--wy-s3)}
.wy-genready__card{padding:14px var(--wy-s4);background:var(--wyCard);border:1px solid var(--wyLine3);border-radius:13px}
.wy-genready__card--pending{background:transparent;border-style:dashed;border-color:var(--wyLine2)}
.wy-genready__title{font-size:var(--wy-text-control-lg);font-weight:600;color:var(--wyInk2);margin-bottom:var(--wy-s1)}
.wy-genready__card--pending .wy-genready__title{color:var(--wyInk5)}
.wy-genready__desc{font-size:var(--wy-text-control);line-height:1.45;color:var(--wyInk5)}
.wy-genready__card--pending .wy-genready__desc{color:var(--wyInk5)}
/* ═══ FIN CHANTIER A ═══ */

/* ═══ CHANTIER B — modale de lancement + onboarding ═══ */
/* Modale de lancement (réutilise wy-modal-overlay / wy-modal / wy-modal__*) */
.wy-launch__lang{display:flex;align-items:center;gap:var(--wy-s2);margin:14px 0 2px;font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);color:var(--wyInk5)}
.wy-launch__lang span{color:var(--wyGold2)}
.wy-launch__sitelabel{margin:18px 0 var(--wy-s2)}
.wy-launch__sites{display:flex;flex-direction:column;gap:var(--wy-s2)}
.wy-launch__site{display:flex;align-items:center;gap:11px;border:1px solid var(--wyLine3);background:var(--wyCard);border-radius:11px;padding:var(--wy-s3) 14px;cursor:pointer}
.wy-launch__site:has(.wy-launch__radio:checked){border-color:var(--wyAccent);background:var(--wyOverBg)}
.wy-launch__radio{accent-color:var(--wyAccent);width:16px;height:16px;margin:0;flex:none;cursor:pointer}
.wy-launch__domain{font-family:var(--wy-font-mono);font-size:13px;color:var(--wyInk3)}
.wy-launch__sitehint{font-size:12px;color:var(--wyInk5);line-height:1.5;margin-top:var(--wy-s2)}
.wy-launch__nosite{font-size:var(--wy-text-control);color:var(--wyInk5);line-height:1.5;margin:14px 0 0}
.wy-launch__cost{display:flex;align-items:center;gap:var(--wy-s3);margin:18px 0 var(--wy-s4);padding:13px 15px;background:var(--wyPaper);border:1px solid var(--wyLine3);border-radius:12px}
.wy-launch__cost-num{font-family:var(--wy-font-editorial);font-weight:700;font-size:22px;color:var(--wyInk2)}
.wy-launch__cost-copy{flex:1;font-size:var(--wy-text-control);color:var(--wyInk5);line-height:1.5}
.wy-launch__cost-copy strong{color:var(--wyInk3)}
.wy-launch__cost-ok{color:var(--wyOk)}
/* Onboarding compte neuf (tête de la liste Articles) */
.wy-onb{border:1px solid var(--wyLine3);background:var(--wyCard);border-radius:16px;padding:22px var(--wy-s6);margin-bottom:var(--wy-s6);box-shadow:0 6px 20px -12px rgba(var(--wyShdw),.14)}
.wy-onb__head{display:flex;align-items:center;gap:14px;margin-bottom:var(--wy-s4)}
.wy-onb__title{font-family:var(--wy-font-editorial);font-weight:700;font-size:22px;color:var(--wyInk2)}
.wy-onb__desc{font-size:13px;color:var(--wyInk5);line-height:1.55}
.wy-onb__steps{display:flex;flex-direction:column;gap:10px}
.wy-onb__step{display:flex;align-items:center;gap:13px;padding:14px var(--wy-s4);border:1px solid var(--wyLine3);border-radius:13px;background:var(--wyPaper)}
.wy-onb__step--done{border-color:var(--wyOkBd2);background:var(--wyOkTint)}
.wy-onb__num{flex:none;width:26px;height:26px;border-radius:50%;background:var(--wyAccent);color:var(--wyOnAccent);display:grid;place-items:center;font-family:var(--wy-font-mono);font-size:12px;font-weight:700}
.wy-onb__check{flex:none;width:26px;height:26px;border-radius:50%;border:1px solid var(--wyOkBd);color:var(--wyOk);display:grid;place-items:center;font-size:13px;font-weight:700}
.wy-onb__body{flex:1;min-width:0}
.wy-onb__label{font-size:var(--wy-text-body);font-weight:600;color:var(--wyInk2)}
.wy-onb__hint{font-size:12px;color:var(--wyInk5);line-height:1.45}
.wy-onb__cta{flex:none}
@media (max-width:560px){.wy-onb__step{flex-wrap:wrap}.wy-onb__cta{margin-left:39px}}
/* ═══ FIN CHANTIER B ═══ */

/* ═══ CHANTIER C — titres : durées + verdict ═══ */
/* Sélecteur de durée 14/21/28 j (pilules radio, surlignage lapis comme .wy-pack--sel) */
.wy-durwrap{border:none;margin:var(--wy-s4) 0 0;padding:0}
.wy-durwrap legend{padding:0}
.wy-durs{display:flex;gap:10px;margin-top:var(--wy-s2)}
.wy-dur{position:relative;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--wyLine3);background:var(--wyCard);border-radius:var(--wy-r-pill);font-family:var(--wy-font-mono);font-size:12px;color:var(--wyInk5);cursor:pointer}
.wy-dur:hover{border-color:var(--wyBandline)}
.wy-dur--selected{border-color:var(--wyLapis);background:var(--wyLapisBg);color:var(--wyLapis);font-weight:600}
.wy-dur > input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.wy-dur:focus-within{outline:2px solid var(--wyOlive2);outline-offset:2px}
/* Verdict « Titre gagnant » (run terminé) — fond succès ; sans verdict, carte neutre */
.wy-verdict--win{background:var(--wyOkTint);border-color:var(--wyOkBd2)}
.wy-verdict__gap{font-family:var(--wy-font-mono);font-size:13px;font-weight:600;color:var(--wyOk)}
.wy-verdict__title{margin:0;font-family:var(--wy-font-editorial);font-weight:700;font-size:20px;line-height:1.35;color:var(--wyInk2)}
/* Option « Nourrir le test du contenu de la page » (barre de génération) */
.wy-cmdbar__opt{display:flex;align-items:center;gap:var(--wy-s2);margin-top:10px;font-size:var(--wy-text-control);color:var(--wyInk5);cursor:pointer;user-select:none}
.wy-cmdbar__opt input{accent-color:var(--wyAccent);width:14px;height:14px;margin:0;cursor:pointer}
/* ═══ FIN CHANTIER C ═══ */

/* ═══ CHANTIER D — support live ═══ */
.wy-support-pill{position:fixed;bottom:24px;right:24px;z-index:140;display:inline-flex;align-items:center;gap:var(--wy-s2);border:1px solid var(--wyAccentSolid,var(--wyAccent));border-radius:var(--wy-r-pill);background:var(--wyAccentSolid,var(--wyAccent));color:var(--wyOnAccentSolid,var(--wyOnAccent));font-family:inherit;font-weight:600;cursor:pointer;box-shadow:0 14px 34px -14px rgba(0,0,0,.55);animation:wy-rise var(--wy-duration-toast) ease}
/* Aide, jamais l'action principale : pastille neutre (un seul plein lajvard par
   écran), ronde de 44 px, icône seule, partout (les rangées à actions à droite de
   Paramètres ou des Titres SEO n'ont plus rien sous elle). Elle s'efface pendant la
   frappe (html.wy-typing, posé par le hook de l'éditeur) et quand un tiroir ou le
   menu est ouvert ; au bureau, elle s'ancre dans le rail droit ouvert. */
.wy-support-pill,.wy-support-pill:hover{width:44px;min-height:44px;padding:0;justify-content:center;border-color:var(--wyLine3);background:var(--wyCard);color:var(--wyAccent);box-shadow:0 10px 26px -14px rgba(var(--wyShdw),.45)}
.wy-support-pill:hover{border-color:var(--wyAccent)}
.wy-support-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
html.wy-typing .wy-support-pill,
html:has(#wy-grid.wy-left-open,#wy-grid.wy-right-open,.wy-navtoggle:checked) .wy-support-pill{opacity:0;pointer-events:none}
/* Rail droit ouvert au bureau : plus de flottant (il recouvrait le bas du rail) ; le Support
   devient la dernière rangée du rail, dans le flux (#rail-support-btn). Rail fermé, autres
   pages et mobile : pastille flottante. */
.wy-rail-support{display:none}
/* Même compteur non lu que la pastille, posé dans la rangée après le libellé. */
.wy-rail-support .wy-support-unread{position:static;margin-left:var(--wy-s1)}
@media (min-width:1056px){
  html:has(#wy-grid:not(.wy-dock-right-off):not([data-right-available="false"])) .wy-support-pill{display:none}
  #wy-grid:not(.wy-dock-right-off):not([data-right-available="false"]) .wy-rail-support{display:flex;width:100%;margin-top:var(--wy-s4);color:var(--wyAccent)}
  #wy-grid:not(.wy-dock-right-off):not([data-right-available="false"]) #wy-right{padding-bottom:var(--wy-s4) !important}
}
@media (max-width:639.98px){.wy-support-pill{right:var(--wy-s4);bottom:var(--wy-s4)}}
.wy-support-panel{position:fixed;bottom:var(--wy-s6);right:var(--wy-s6);z-index:141;display:flex;flex-direction:column;width:min(416px,calc(100vw - 32px));height:min(600px,calc(100dvh - 48px));background:var(--wyCard);border:1px solid var(--wyLine3);border-radius:var(--wy-r-m);box-shadow:var(--wy-shadow-dialog);overflow:hidden;animation:wy-rise var(--wy-duration-enter) ease}
.wy-support-head{display:flex;align-items:center;gap:10px;padding:14px var(--wy-s4);border-bottom:var(--wy-hairline) solid var(--wyRowline);background:var(--wyRail)}
.wy-support-who{display:flex;flex-direction:column;gap:2px;min-width:0}
.wy-support-name{font-size:13px;font-weight:600;color:var(--wyInk3)}
.wy-support-presence{display:inline-flex;align-items:center;gap:6px;font-size:var(--wy-text-meta);color:var(--wyInk5)}
.wy-support-close{margin-left:auto}
.wy-support-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:var(--wy-s4)}
.wy-support-hello{font-size:13px;line-height:1.5;color:var(--wyInk5);background:var(--wyRail);border:1px solid var(--wyRowline);border-radius:12px 12px 12px 4px;padding:10px var(--wy-s3);align-self:flex-start;max-width:85%}
.wy-support-msg{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.wy-support-msg--admin{align-items:flex-start}
.wy-support-msg--admin .wy-support-bubble{background:var(--wyRail);color:var(--wyInk3);border:1px solid var(--wyRowline);border-radius:12px 12px 12px 4px}
.wy-support-bubble{background:var(--wyAccentSolid,var(--wyAccent));color:var(--wyOnAccentSolid,var(--wyOnAccent));font-size:13px;line-height:1.5;padding:9px var(--wy-s3);border-radius:12px 12px 4px 12px;max-width:85%;overflow-wrap:anywhere}
.wy-support-text{white-space:pre-wrap}
.wy-support-time{font-family:var(--wy-font-mono);font-size:10px;color:var(--wyInk5)}
.wy-support-status{display:flex;flex-direction:column;align-items:flex-end;padding:0 var(--wy-s4)}
.wy-support-status > p{margin:0 0 var(--wy-s2)}
.wy-support-panel:has(.phx-submit-loading) .wy-support-error{display:none}
.wy-support-error{font-size:12px;color:var(--wyDanger);text-align:right}
.wy-support-retry{margin-left:var(--wy-s2);padding:0;border:0;background:none;color:var(--wyAccent);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}
.wy-support-unread{position:absolute;top:-4px;right:-4px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--wy-r-pill);background:var(--wyAccentSolid,var(--wyAccent));color:var(--wyOnAccentSolid,var(--wyOnAccent));font-family:var(--wy-font-mono);font-size:var(--wy-text-label);font-weight:600;line-height:1}
@media (max-width:639.98px){
  .wy-support-panel{right:var(--wy-s4);bottom:var(--wy-s4);width:calc(100vw - 32px);height:min(600px,calc(100dvh - 32px))}
  .wy-support-retry{min-height:44px}
}
.wy-support-form{display:flex;align-items:flex-end;gap:var(--wy-s2);padding:var(--wy-s3);border-top:1px solid var(--wyRowline)}
.wy-support-input{flex:1;resize:none;border:1px solid var(--wyLine3);background:var(--wyPaper);color:var(--wyInk3);padding:9px 11px;font-family:inherit;font-size:13px;line-height:1.4}
/* ═══ FIN CHANTIER D ═══ */

/* ═══ Corrections audit v3 (chip crédits, pont NLP) ═══ */

/* ═══ CHANTIER PUBLIER-UI — DÉBUT ═══ */
/* Bouton Publier (top bar éditeur) */
/* Statut destination sur la carte Sites */
.wy-pub-badge{max-width:220px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.wy-pub-badge__repo{font-family:var(--wy-font-mono)}
/* Modale destination — feedback test connexion */
.wy-pub-test{margin:var(--wy-s3) 0 2px;padding:10px 13px;border-radius:10px;font-size:var(--wy-text-control);line-height:1.45}
.wy-pub-test--ok{background:var(--wyOkTint);border:1px solid var(--wyOkBd2);color:var(--wyOk)}
.wy-pub-test--err{background:var(--wyDangerBg);border:1px solid var(--wyDangerBd);color:var(--wyDanger)}
/* Modale Publier — setup */
.wy-pub-cap{font-family:var(--wy-font-mono);font-size:var(--wy-text-label);letter-spacing:.1em;text-transform:uppercase;color:var(--wyGold2);margin-bottom:var(--wy-s2)}
.wy-pub-dest{display:flex;align-items:center;gap:11px;border:1px solid var(--wyAccent);background:var(--wyLapisBg);border-radius:12px;padding:13px 15px;margin-bottom:var(--wy-s3)}
.wy-pub-dest__badge{flex:none;width:34px;height:34px;border-radius:9px;background:var(--wyCard);border:1px solid var(--wyLine3);display:grid;place-items:center;font-family:var(--wy-font-editorial);font-weight:700;color:var(--wyAccent)}
.wy-pub-dest__info{flex:1;min-width:0;display:flex;flex-direction:column}
.wy-pub-dest__domain{font-size:var(--wy-text-control-lg);font-weight:600;color:var(--wyInk2)}
.wy-pub-dest__meta{font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);color:var(--wyInk5);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wy-pub-dest__dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--wyOk)}
.wy-pub-note{border:1px solid var(--wyLine3);background:var(--wyRail);border-radius:12px;padding:11px 14px;font-size:var(--wy-text-control);color:var(--wyInk4);line-height:1.5;margin-bottom:14px}
.wy-pub-note--left{text-align:left;margin-top:14px}
.wy-pub-warn{display:flex;gap:11px;align-items:flex-start;border:1px solid var(--wyWarnBd);background:var(--wyWarnBg);border-radius:12px;padding:13px 15px;margin-bottom:var(--wy-s4);font-size:var(--wy-text-control);color:var(--wyInk4);line-height:1.5}
.wy-pub-warn--page{margin-bottom:14px}
.wy-pub-warn--editor{margin:0 0 var(--wy-s6)}
.wy-pub-warn a{color:inherit}
.wy-pub-warn__mark{flex:none;width:20px;height:20px;border-radius:50%;background:var(--wyWarn);color:var(--wyOnAccent);display:grid;place-items:center;font-weight:700;font-size:12px}
.wy-pub-guide{font-size:13px;color:var(--wyInk5);line-height:1.55;margin-bottom:var(--wy-s4)}
/* Modale Publier — états centrés (publishing / done / failed) */
.wy-pub-center{padding:30px 22px 26px;text-align:center}
.wy-pub-spin{display:inline-block;line-height:0;animation:wy-spin 4.5s linear infinite;margin-bottom:var(--wy-s4)}
.wy-pub-state-title{font-family:var(--wy-font-editorial);font-weight:700;font-size:21px;color:var(--wyInk2);margin-bottom:6px}
.wy-pub-state-msg{font-size:13px;color:var(--wyInk5);line-height:1.55;margin-bottom:18px}
.wy-pub-state-mono{font-family:var(--wy-font-mono);font-size:11.5px;color:var(--wyInk5);margin-bottom:var(--wy-s3)}
.wy-pub-state-hint{font-size:11.5px;color:var(--wyInk5);margin-top:14px}
.wy-pub-seal{width:52px;height:52px;margin:0 auto var(--wy-s4);border-radius:50%;display:grid;place-items:center;font-size:24px;font-weight:700}
.wy-pub-seal--ok{background:var(--wyOkTint);border:1px solid var(--wyOkBd2);color:var(--wyOk)}
.wy-pub-seal--fail{background:var(--wyDangerBg);border:1px solid var(--wyDangerBd);color:var(--wyDanger)}
.wy-pub-link{margin-bottom:6px}
.wy-pub-actions{display:flex;gap:10px;justify-content:center;margin-top:14px}
/* Publier un titre (détail run) */
.wy-pub-titlerow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.wy-pub-titlehint{font-size:12px;color:var(--wyInk5)}
.wy-pub-titlepick{font-family:var(--wy-font-editorial);font-size:var(--wy-text-field-mobile);font-weight:600;color:var(--wyInk2);border:1px solid var(--wyLine3);background:var(--wyPaper);border-radius:12px;padding:var(--wy-s3) 14px;margin-bottom:var(--wy-s3);line-height:1.4}
.wy-pub-mono{font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);color:var(--wyInk5)}
/* Bascule mode de publication (brouillon / en ligne) — settings + éditeur */
.wy-pub-modes{display:flex;flex-direction:column;gap:var(--wy-s2);margin-bottom:var(--wy-s1)}
.wy-pub-mode{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border:1px solid var(--wyLine3);border-radius:11px;cursor:pointer;background:var(--wyPaper)}
.wy-pub-mode--sel{border-color:var(--wyLapis);background:var(--wyLapisBg)}
.wy-pub-mode input{margin-top:3px;accent-color:var(--wyAccent)}
.wy-pub-mode__body{display:flex;flex-direction:column;gap:2px}
.wy-pub-mode__title{font-size:var(--wy-text-control-lg);font-weight:600;color:var(--wyInk2)}
.wy-pub-mode__desc{font-size:12px;color:var(--wyInk5);line-height:1.45}
.wy-pub-mode__modify{color:var(--wyAccent);text-decoration:none;font-weight:600}
.wy-pub-mode__modify:hover{text-decoration:underline}
/* ═══ CHANTIER PUBLIER-UI — FIN ═══ */

/* ═══ Redesign modales settings (2026-07-23) ═══ */
.wy-pub-modalintro{margin:2px 0 18px}
.wy-modal__flabel{margin-top:var(--wy-s4)}
.wy-pub-platforms{display:flex;gap:10px;margin-bottom:var(--wy-s1)}
.wy-pub-platform{flex:1;display:flex;align-items:center;gap:var(--wy-s2);border:1px solid var(--wyLine3);font-size:var(--wy-text-control-lg);cursor:pointer;background:var(--wyPaper)}
.wy-pub-platform--sel{border-color:var(--wyLapis);background:var(--wyLapisBg)}
/* Les noms de plateforme ne se coupent jamais au milieu d'un mot ; sur petit écran
   les trois choix s'empilent. */
.wy-pub-platform{overflow-wrap:normal;white-space:nowrap}
@media (max-width:639.98px){.wy-pub-platforms{flex-direction:column}}

/* Standalone NLP: the writing surface stays primary; acquisition details live in Sources. */
.wy-root .nlp-writing-page{--wy-gutter:var(--wy-s4);padding:0 var(--wy-gutter) var(--wy-s6);max-width:1680px;margin:auto;color:var(--wyInk)}
/* Géométrie : docs/product/editor-layout-spec.md § 8. En-tête = barre de l'éditeur. */
.wy-root .nlp-writing-header{display:flex;align-items:center;justify-content:space-between;gap:var(--wy-s3);min-height:64px;margin:0 calc(-1 * var(--wy-gutter));padding:0 var(--wy-gutter);border-bottom:var(--wy-hairline) solid var(--wyLine)}
.wy-root .nlp-writing-heading{flex:1 1 auto;display:flex;align-items:center;gap:var(--wy-s3);min-width:0}
.wy-root .nlp-writing-heading h1{min-width:0;margin:0;font-size:var(--wy-text-control-lg);font-weight:600;line-height:1.3;color:var(--wyInk);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wy-root .nlp-writing-actions{flex:none;display:flex;align-items:center;justify-content:flex-end;gap:var(--wy-s2)}
.wy-root #nlp-draft-status{max-width:200px}
.wy-root #nlp-draft-status .wy-savestate__label{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wy-root .nlp-writing-workspace{display:grid;grid-template-columns:minmax(0,calc(var(--wy-measure) + 2 * var(--wy-s8) + 2px)) minmax(340px,1fr);gap:var(--wy-s4);margin-top:var(--wy-s4);align-items:start}
.wy-root .nlp-writing-sheet{--wy-x:max(var(--wy-s8),calc((100% - var(--wy-measure)) / 2));min-width:0;background:var(--wyCard);border:1px solid var(--wyLine);border-radius:var(--wy-r-m);overflow:hidden;box-shadow:0 8px 30px -20px rgba(var(--wyShdw),.25)}
.wy-root .nlp-writing-toolbar{position:sticky;top:0;z-index:2;padding:var(--wy-s3) var(--wy-x);border-bottom:var(--wy-hairline) solid var(--wyLine);background:var(--wyCard)}
.wy-root .nlp-writing-document{min-height:calc(100vh - 265px);padding:var(--wy-s6) var(--wy-x)}
.wy-root .nlp-writing-document #wytt-editor{min-height:calc(100vh - 345px);outline:none;overflow-wrap:anywhere}
.wy-root .nlp-writing-document #wytt-editor p:only-child:empty:before{content:'Commence à rédiger ou colle ton texte…';color:var(--wyMute);pointer-events:none}
.wy-root .nlp-writing-reference{position:sticky;top:18px;min-width:0;border:1px solid var(--wyLine);border-radius:var(--wy-r-m);background:var(--wyCard);overflow:hidden}
.wy-root .nlp-reference-tabs{display:flex;gap:var(--wy-s4);padding:0 var(--wy-s4);border-bottom:var(--wy-hairline) solid var(--wyLine)}
.wy-root .nlp-reference-tabs button{flex:none;min-height:44px;padding:0;font-size:12px;color:var(--wyInk5);background:transparent;border:0;border-bottom:2px solid transparent;cursor:pointer}
.wy-root .nlp-reference-tabs button.active,.wy-root .nlp-reference-tabs button[aria-pressed="true"]{color:var(--wyAccent);border-bottom-color:var(--wyAccent);font-weight:600}
.wy-root .nlp-reference-body{padding:var(--wy-s4);max-height:calc(100vh - 240px);overflow:auto;overscroll-behavior:contain}
.wy-root .nlp-reference-body [hidden]{display:none}
.wy-root .nlp-writing-coverage{display:flex;align-items:baseline;gap:10px}
.wy-root .nlp-writing-coverage strong{font-family:var(--wy-font-editorial);font-size:var(--wy-text-page-mobile);color:var(--wyAccent)}
.wy-root .nlp-writing-coverage strong span{font-size:18px;color:var(--wyInk5)}
.wy-root .nlp-writing-coverage>span,.wy-root .nlp-reference-hint{font-size:var(--wy-text-meta);color:var(--wyInk5)}
.wy-root .nlp-reference-hint{line-height:1.5;margin:6px 0 20px}
.wy-root .nlp-term-group{margin:0 0 22px}
.wy-root .nlp-term-group h2{font-family:var(--wy-font-mono);font-size:10px;font-weight:400;letter-spacing:.09em;text-transform:uppercase;color:var(--wyGold2);margin:0 0 10px}
.wy-root .nlp-term-group .wy-termlist{gap:6px}
.wy-root .nlp-term-group .wy-term{font-size:12px;padding:5px 9px;white-space:normal;text-align:left;cursor:pointer}
.wy-root .nlp-term-count{font-family:var(--wy-font-mono);font-size:10px;margin-left:var(--wy-s1)}
.wy-root .nlp-corpus-range{display:none}
.wy-root .nlp-reference-title{font-family:var(--wy-font-editorial);font-size:20px;margin:0 0 var(--wy-s4)}
.wy-root .nlp-writing-details{font-size:var(--wy-text-meta);line-height:1.6;margin:20px 0;color:var(--wyInk5)}
.wy-root .nlp-writing-details summary{cursor:pointer}
.wy-root .nlp-writing-details .wy-det__card{padding:10px;font-size:var(--wy-text-meta);margin:10px 0;overflow-wrap:anywhere}
.wy-root .nlp-writing-state{padding:var(--wy-s6);margin-top:var(--wy-s4)}
@media(max-width:1100px){.wy-root .nlp-writing-workspace{grid-template-columns:minmax(0,1fr) 285px}}
@media(max-width:850px){.wy-root .nlp-writing-workspace{grid-template-columns:1fr}.wy-root .nlp-writing-reference{position:static}.wy-root .nlp-reference-body{max-height:480px}.wy-root .nlp-writing-document{min-height:400px}.wy-root .nlp-writing-document #wytt-editor{min-height:350px}}
/* Sous 640 px : feuille bord à bord, texte à 16 px de l'écran comme le bouton
   retour ; les actions passent sur une seconde rangée. */
@media(max-width:639.98px){.wy-root .nlp-writing-page{--wy-gutter:var(--wy-s4)}.wy-root .nlp-writing-workspace{margin-top:0}.wy-root .nlp-writing-sheet{--wy-x:var(--wy-s4);margin:0 calc(-1 * var(--wy-gutter));border-inline:0;border-top:0;border-radius:0}}
.wy-root .nlp-writing-document #wytt-editor p:only-child:has(>br:only-child):before{content:'Commence à rédiger ou colle ton texte…';color:var(--wyMute);pointer-events:none}

/* Barre frise du score sémantique (semantic_bar/1, variante A) : axe = du
   concurrent le plus faible (vide) au meilleur (pleine). Le chiffre seul porte
   le niveau (ArticleSemantic.own_level/2, competitor_level/1). */
.wy-sbar{position:relative;display:inline-flex;align-items:center;gap:var(--wy-s2);vertical-align:middle}
.wy-sbar__head{display:contents;color:var(--wyInk2)}
.wy-sbar__num{order:2;min-width:2.5ch;line-height:1;text-align:right;font-family:var(--wy-font-mono);font-size:13px;color:inherit;font-variant-numeric:tabular-nums}
.wy-sbar__track{position:relative;flex:none;width:44px;height:8px;border-radius:2px;background:var(--wyTrack);box-shadow:inset 0 0 0 1px var(--wyGold3);overflow:hidden}
.wy-sbar__fill{position:absolute;top:0;bottom:0;left:0;background:var(--wyAccent) url(/images/atelier/frise-5bcda82ca3b2511dcf3faf69f09691ad.svg?vsn=d) repeat-x;background-size:auto 100%;box-shadow:inset 0 0 0 1px var(--wyGold3);transition:width var(--wy-duration-exit) ease}
.wy-sbar--lg{display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%}
.wy-sbar--lg .wy-sbar__head{display:flex;align-items:baseline;gap:10px;margin-bottom:var(--wy-s3)}
.wy-sbar--lg .wy-sbar__num{order:0;min-width:0;text-align:left;font-family:var(--wy-font-editorial);font-weight:700;font-size:44px}
.wy-sbar--lg .wy-sbar__track{width:auto;height:18px;border-radius:3px}
.wy-sbar__ticks{position:relative;height:12px;margin-top:3px}
.wy-sbar__tick{position:absolute;top:1px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--wyGold3)}
.wy-sbar__tick--top{top:-1px;width:11px;height:11px;margin-left:-5.5px;border-radius:0;background:none}
.wy-sbar--empty .wy-sbar__head{color:var(--wyInk5)}
.wy-sbar--low .wy-sbar__head,.wy-lvl--low{color:var(--wyDanger)}
.wy-sbar--mid .wy-sbar__head,.wy-lvl--mid{color:var(--wyWarn)}
.wy-sbar--good .wy-sbar__head,.wy-lvl--good{color:var(--wyOk)}
.wy-sem__gap{font-size:var(--wy-text-control);font-weight:600}.wy-sem__gap--pending{font-weight:400;color:var(--wyInk5)}
.wy-sem__ends{display:flex;justify-content:space-between;gap:var(--wy-s2);margin-top:2px;font-family:var(--wy-font-mono);font-size:var(--wy-text-label);color:var(--wyInk5)}
.wy-ed-comp-stat__val .wy-sbar__num{font-family:var(--wy-font-editorial);font-weight:700;font-size:24px}
@media (prefers-reduced-motion:reduce){.wy-sbar__fill{transition:none}}
/* Liste mobile (QA 2026-10-08) : Article + Sémantique restent visibles et triables ;
   le statut passe sous le titre, mots et date se masquent. */
@media (max-width:639.98px){
  .wy-arttable__inner{min-width:0}
  /* Le score passe sous le titre, à droite du statut : le titre prend toute la largeur. */
  .wy-arthead,.wy-artrow{grid-template-columns:104px minmax(0,1fr) 44px;column-gap:var(--wy-s3)}
  .wy-artrow > :nth-child(1){grid-column:1 / -1;grid-row:1}
  .wy-arthead > :nth-child(4),.wy-arthead > :nth-child(5),
  .wy-artrow > :nth-child(4),.wy-artrow > :nth-child(5){display:none}
  /* La pastille de statut reste affichée : son en-tête reste lu, sans place à l'écran. */
  .wy-arthead > :nth-child(2){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .wy-artrow > :nth-child(2){grid-column:1;grid-row:2;margin-top:var(--wy-s2)}
  .wy-artrow > :nth-child(3){grid-column:2;grid-row:2;margin-top:var(--wy-s2);text-align:left}
  .wy-arthead > :nth-child(3){grid-column:2;justify-self:start}
  /* Le titre prend toute la rangée ; l'action descend à droite du score. */
  .wy-artrow > :nth-child(6){grid-column:3;grid-row:2;margin-top:var(--wy-s2)}
  /* Barre du haut de l'éditeur : « Sauvegardé » reste lu par les lecteurs d'écran,
     le point coloré suffit à l'œil ; « en cours » et « échec » restent écrits. */
  .save-status--saved{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
/* ═══ Éditeurs : normes et blocs partagés (docs/design/editor-ui-norms.md) ═══
   Échelle d'espacement --wy-s* (tokens en tête), carte de rail : 16 px de marge
   intérieure, 16 px entre cartes, rayon --wy-r-m, libellé de section :
   .wy-label, texte secondaire : .wy-muted, cible tactile 44 px sous 640 px. */
.wy-label{margin:0;font-family:var(--wy-font-mono);font-size:var(--wy-text-label);font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--wyGold2)}
.wy-muted{margin:0;font-size:var(--wy-text-control);line-height:1.5;color:var(--wyInk5)}
.wy-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wy-coach,.wy-seo,.wy-cover,.wy-railcard{padding:var(--wy-s4);border-radius:var(--wy-r-m);margin-bottom:var(--wy-s4);box-shadow:var(--wy-shadow-rail)}
/* Coaching */
.wy-coach__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--wy-s2)}
.wy-coach__count{font-size:11.5px;color:var(--wyInk5)}
.wy-coach__score{display:flex;align-items:baseline;gap:6px;margin:var(--wy-s2) 0 var(--wy-s2);color:var(--wyInk2)}
.wy-coach__num{font-family:var(--wy-font-editorial);font-weight:700;font-size:36px;line-height:1;font-variant-numeric:tabular-nums}
.wy-coach__of{font-family:var(--wy-font-editorial);font-size:15px;color:var(--wyInk5)}
.wy-coach__bar{display:block;width:auto;height:10px;margin-bottom:var(--wy-s3)}
.wy-coach__empty{margin:var(--wy-s2) 0 var(--wy-s3);font-size:var(--wy-text-control);color:var(--wyInk5)}
.wy-coach__list{margin:0;padding:0;list-style:none}
.wy-coach__item{border-top:1px solid var(--wyLine4)}
.wy-coach__row{display:flex;align-items:center;gap:var(--wy-s2);width:100%;min-height:40px;padding:var(--wy-s2) 0;border:0;background:none;font:inherit;text-align:left;color:var(--wyInk);cursor:pointer}
.wy-coach__row:focus-visible{outline:2px solid var(--wyAccent);outline-offset:2px;border-radius:6px}
.wy-coach__pip{flex:none;width:8px;height:8px;border-radius:50%;background:var(--wyMute2)}
.wy-coach__pip--ok{background:var(--wyOk)}
.wy-coach__pip--todo{background:var(--wyWarn)}
.wy-coach__label{flex:1;min-width:0;font-size:13px;font-weight:500;line-height:1.3}
.wy-coach__value{font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);color:var(--wyInk5);font-variant-numeric:tabular-nums}
.wy-coach__value--ok{color:var(--wyOk)}
.wy-coach__value--todo{color:var(--wyWarn)}
.wy-coach__minibar{display:block;width:auto;height:4px;margin:0 0 var(--wy-s2) var(--wy-s4);box-shadow:none}
/* Compteurs des détails sur le bord droit des valeurs des lignes (chevron 14 px + écart). */
.wy-coach__detail{display:flex;flex-direction:column;gap:6px;margin:0;padding:0 calc(14px + var(--wy-s2)) var(--wy-s3) var(--wy-s4);list-style:none}
.wy-coach__check{display:flex;gap:6px;align-items:flex-start;font-size:var(--wy-text-control);line-height:1.45;color:var(--wyInk4)}
.wy-coach__icon{flex:none;margin-top:2px;color:var(--wyDanger)}
.wy-coach__check--ok .wy-coach__icon{color:var(--wyOk)}
/* Terme manquant = « à placer » : neutre, comme sa pastille dans le rail. */
.wy-coach__check--todo .wy-coach__icon{color:var(--wyMute)}
.wy-chevron{flex:none;color:var(--wyMute2);transition:transform var(--wy-duration-fast) ease}
.wy-chevron--open{transform:rotate(90deg)}
/* Onglets plan / Hn suggérés */
.wy-tabs{margin-bottom:var(--wy-s4)}
.wy-tabs__list{display:flex;gap:var(--wy-s4);border-bottom:var(--wy-hairline) solid var(--wyLine2)}
.wy-tabs__tab{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0;border:0;background:none;font:inherit;font-size:var(--wy-text-control);font-weight:600;color:var(--wyInk5);cursor:pointer;box-shadow:inset 0 -2px 0 transparent}
.wy-tabs__tab[aria-pressed="true"]{color:var(--wyInk);box-shadow:inset 0 -2px 0 var(--wyAccent)}
.wy-tabs__tab:focus-visible{outline:2px solid var(--wyAccent);outline-offset:-2px;border-radius:6px}
.wy-tabs__count{padding:0 6px;border:1px solid var(--wyLine3);border-radius:var(--wy-r-pill);font-family:var(--wy-font-mono);font-size:var(--wy-text-label);font-weight:400;color:var(--wyInk5)}
.wy-tabs__panel{padding-top:var(--wy-s3)}
.wy-tabs__hint{margin-bottom:var(--wy-s3)}
.wy-tabs__sub{margin:var(--wy-s3) 0 var(--wy-s1)}
/* Lignes du plan : texte sur le bord des cartes, survol qui déborde de 8 px. */
.wy-toc-item{display:grid;grid-template-columns:auto minmax(0,1fr);align-content:center;align-items:baseline;gap:var(--wy-s2);width:calc(100% + 2 * var(--wy-s2));margin-inline:calc(-1 * var(--wy-s2));padding:6px var(--wy-s2);border:0;border-radius:8px;background:none;text-align:left;cursor:pointer}
.wy-toc-item:hover{background:var(--wyHover)}
.wy-toc-item--h3{padding-left:calc(var(--wy-s2) + var(--wy-s6))}
.wy-toc-item__tag{flex:none;width:var(--wy-s4);font-family:var(--wy-font-mono);font-size:var(--wy-text-label);text-transform:uppercase;color:var(--wyInk5)}
.wy-toc-item__text{font-size:var(--wy-text-control);line-height:1.4;color:var(--wyInk4)}
.wy-hn-list{margin:0;padding:0;list-style:none}
.wy-hn-list li{padding:7px 0;border-top:1px solid var(--wyLine4);font-size:var(--wy-text-control);line-height:1.45;color:var(--wyInk4)}
.wy-hn-list li:first-child{border-top:0}
/* Champs de formulaire des rails */
.wy-field{margin-bottom:var(--wy-s4)}
.wy-field__label{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--wy-s2);margin-bottom:6px;font-size:12px;color:var(--wyInk5)}
.wy-field__count{flex:none;font-family:var(--wy-font-mono);font-size:var(--wy-text-label);color:var(--wyInk5);font-variant-numeric:tabular-nums}
.wy-field__hint{margin:6px 0 0;font-size:11.5px;line-height:1.45;color:var(--wyInk5)}
.wy-input{display:block;width:100%;box-sizing:border-box;padding:var(--wy-s2) 10px;border:1px solid var(--wyLine2);background:var(--wyPaper);font:inherit;font-size:13px;line-height:1.45;color:var(--wyInk3)}
.wy-input:focus{outline:2px solid var(--wyAccent);outline-offset:1px;border-color:transparent}
.wy-input--area{min-height:64px;max-height:240px;resize:vertical;field-sizing:content}
.wy-input-group{display:flex;border:1px solid var(--wyLine2);background:var(--wyPaper);overflow:hidden}
.wy-input-group .wy-input{min-width:0;border:0;border-radius:0;font-family:var(--wy-font-mono);font-size:var(--wy-text-control)}
.wy-input-group__suffix{display:flex;align-items:center;padding:0 10px;border-left:1px solid var(--wyLine2);font-family:var(--wy-font-mono);font-size:var(--wy-text-control);color:var(--wyInk5)}
/* Une note posée juste avant le bouton d'enregistrement garde le même écart que les champs. */
.wy-field__hint+.wy-btn{margin-top:var(--wy-s4)}
.wy-width{display:block;height:3px;margin-top:6px;border-radius:2px;background:var(--wyTrack);overflow:hidden}
.wy-width__fill{display:block;height:100%;background:var(--wyOk)}
.wy-width__fill.wy-lvl--mid{background:var(--wyWarn)}
.wy-width__fill.wy-lvl--low{background:var(--wyDanger)}
/* Couverture */
.wy-cover .wy-label{margin-bottom:var(--wy-s3)}
.wy-cover__thumb{display:block;width:100%;padding:0;border:1px solid var(--wyLine);border-radius:12px;overflow:hidden;background:none;cursor:zoom-in}
.wy-cover__thumb:focus-visible{outline:2px solid var(--wyAccent);outline-offset:2px}
.wy-cover__ratio{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.wy-cover__ratio--wait{border-radius:12px;background:var(--wyTrack);animation:wy-pulse 1.6s ease-in-out infinite}
.wy-cover__pending{display:flex;flex-direction:column;gap:var(--wy-s2)}
.wy-cover__form{margin-top:var(--wy-s4)}
/* Les fenêtres modales passent aussi au-dessus du bouton du menu mobile (z 120). */
.wy-modal-overlay,.wy-artmodal,.seo-overlay{z-index:130}
/* Visionneuse téléportée sous <body> (portail) : hors de .wy-root, elle porte sa police et
   son modèle de boîte ; au-dessus de tout, image entière, format respecté. */
.wy-lightbox{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:var(--wy-s6);font-family:var(--wy-font-ui)}
.wy-lightbox,.wy-lightbox *{box-sizing:border-box}
.wy-lightbox__backdrop{position:absolute;inset:0;border:0;background:rgba(10,8,22,.78);cursor:zoom-out}
.wy-lightbox__figure{position:relative;display:flex;flex-direction:column;align-items:center;margin:0;max-width:min(1200px,calc(100vw - 2 * var(--wy-s6)))}
.wy-lightbox__figure img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 2 * var(--wy-s6) - 3em);border-radius:var(--wy-r-m);object-fit:contain;box-shadow:var(--wy-shadow-dialog)}
.wy-lightbox__figure figcaption{margin-top:var(--wy-s2);font-size:13px;color:#F3EEE2;text-align:center}
.wy-lightbox__close{position:absolute;top:var(--wy-s4);right:var(--wy-s4);min-width:44px;min-height:44px;padding:0 var(--wy-s4);border:1px solid rgba(243,238,226,.4);border-radius:10px;background:rgba(30,27,51,.6);font:inherit;font-size:13px;color:#F3EEE2;cursor:pointer}
@keyframes wy-pulse{50%{opacity:.55}}
@media (prefers-reduced-motion:reduce){.wy-cover__ratio--wait{animation:none}.wy-chevron{transition:none}}
/* Ligne du mot-clé au-dessus du texte */
.wy-editor-identity{display:flex;align-items:baseline;gap:var(--wy-s3);min-width:0}
/* Petits écrans : cibles tactiles 44 px, barre du haut sans débordement */
@media (max-width:639.98px){
  .wy-coach__row,.wy-tabs__tab,.wy-toc-item{min-height:44px}
  .wy-input,.wy-input-group__suffix{font-size:var(--wy-text-field-mobile)}
}
/* On narrow screens, identity and controls get their own row to keep the keyword readable. */
@media (max-width:899.98px){
  :is(#editor-page,#nlp-show-page){--wy-head:100px}
  :is(#editor-page,#nlp-show-page) #wy-topbar{flex-wrap:wrap;align-content:center;row-gap:0}
  :is(#editor-page,#nlp-show-page) #wy-topbar > div:first-child{flex:1 0 100%;height:44px;gap:var(--wy-s2)}
  :is(#editor-page,#nlp-show-page) #wy-topbar > div:last-child{flex:1 0 100%;justify-content:flex-end;height:44px}
  .wy-editor-identity{flex:1;gap:var(--wy-s2)}
  .wy-editor-identity .wy-editor-title{flex:1;max-width:none;font-size:var(--wy-text-control)}

}
/* Jamais collés : 8 px au moins entre le groupe de gauche (retour, état) et celui de droite.
   Sous 360 px la place manque : le point d'état s'efface (un échec a sa barre « Réessayer »,
   un conflit sa bannière). */
#wy-topbar{column-gap:var(--wy-s2)}
@media (max-width:359.98px){#wy-topbar .wy-savestate__dot{display:none}}
.wy-coach__text{flex:1;min-width:0}
.wy-coach__meta{flex:none;font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);color:var(--wyInk5);font-variant-numeric:tabular-nums}
.wy-coach--flat{margin:0;padding:var(--wy-s1) 0 0;box-shadow:none}
.wy-tabs__tab{white-space:nowrap}
/* Texte d'état lisible (L18) ; le point coloré porte la couleur de l'état. */
.wy-savestate{display:inline-flex;align-items:center;gap:var(--wy-s2);min-width:0;font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);font-weight:400;color:var(--wyInk5)}
.wy-savestate .save-status{font:inherit;color:inherit}
.wy-savestate__dot{width:6px;height:6px;border-radius:50%;flex:none;background:var(--wyOk)}
.wy-savestate--saving .wy-savestate__dot,.wy-savestate--dirty .wy-savestate__dot{background:var(--wyWarn)}
.wy-savestate--failed,.wy-savestate--error,.wy-savestate--conflict{color:var(--wyDanger)}
.wy-savestate--failed .wy-savestate__dot,.wy-savestate--error .wy-savestate__dot,.wy-savestate--conflict .wy-savestate__dot{background:var(--wyDanger)}
#editor-topbar-retry-save-btn{margin-left:var(--wy-s2)}
/* Sous 640 px la barre n'a pas la place : le point rouge reste, le libellé
   passe à taille nulle (toujours lu) et « Réessayer » s'étend sous la barre. */
@media (max-width:639.98px){
  .wy-root :is(.save-status--failed,.save-status--conflict){font-size:0}
  #editor-topbar-retry-save-btn{position:fixed;top:calc(var(--wy-head) + var(--wy-s2));left:var(--wy-s4);right:var(--wy-s4);z-index:45;margin:0;box-shadow:0 8px 24px -12px rgba(var(--wyShdw),.4)}
}
@media (max-width:639.98px){
  .save-status--idle,.save-status--dirty{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
.wy-field .wy-field__label{font-family:var(--wy-font-ui);font-size:12px;font-weight:500;letter-spacing:normal;text-transform:none;color:var(--wyInk5)}
/* Fermer (tiroirs seulement, affiché par les règles des rails) : × collant dans le coin haut du
   tiroir, visible pendant tout le défilement ; le voile et le bouton de la barre ferment aussi.
   La carte garde sa place (marge basse négative). */
.wy-drawer-close{display:none;position:sticky;top:var(--wy-s2);z-index:2;align-items:center;justify-content:center;width:var(--wy-ctl-h);height:var(--wy-ctl-h);margin:var(--wy-s2) var(--wy-s2) calc(-1 * (var(--wy-ctl-h) + var(--wy-s2))) auto;padding:0;border:1px solid var(--wyLine3);border-radius:var(--wy-r-s);background:var(--wyCard);color:var(--wyInk4);cursor:pointer}
@media (max-width:1179.98px){.wy-drawer-close--top{margin-top:var(--wy-s4)}}
.wy-drawer-close:hover{border-color:var(--wyAccent);color:var(--wyAccent)}
/* 2 px de marge sur la zone : jamais sous 44 px, même au demi-pixel. */
.wy-drawer-close::after{content:"";position:absolute;inset:-2px}
/* Sous 640 px la barre d'outils n'a que 4 px de marge haute : la carte du tiroir aussi. */
@media (max-width:639.98px){
  #wy-left,#wy-right{padding-top:var(--wy-s1)}
  #wy-scrim{top:var(--wy-head)}
  /* L'ombre du tiroir ne monte pas sur la barre du haut. */
  #wy-left{clip-path:inset(0 -140px 0 0)}
  #wy-right{clip-path:inset(0 0 0 -140px)}
}
/* Rail ou tiroir ouvert : son bouton le dit (aria-expanded posé par le hook). */
#wy-topbar [data-wy-dock][aria-expanded=true],#wy-topbar [data-wy-dock][aria-expanded=true]:hover{border-color:var(--wyLapisBd);background:var(--wyAccentSoft);color:var(--wyLapis)}
/* Sous 640 px, barres allégées (éditeur et détail NLP) : visuels de 36 px sans
   bordure, zone de 44 px par ::after (−5 px depuis la boîte intérieure, 4 px hors du
   filet). Un bouton de 44 px de large ou plus n'étend sa zone qu'en hauteur : 8 px
   entre visuels suffisent sans chevauchement. L'infobulle du sceau laisse sa place. */
@media (max-width:639.98px){
  :is(#wy-topbar,#nlp-show-header){--wy-ctl-h:36px}
  #wy-topbar > div:first-child{gap:var(--wy-s2)}
  #nlp-show-header .nlp-writing-actions{gap:var(--wy-s3)}
  #editor-publish-btn{padding-inline:var(--wy-s2)}
  :is(#wy-topbar,#nlp-show-header) :is(a,button):not(#editor-topbar-retry-save-btn){position:relative;flex-shrink:0}
  :is(#wy-topbar,#nlp-show-header) :is(a,button):not(#editor-topbar-retry-save-btn)::after{content:"";position:absolute;inset:-5px;z-index:auto;padding:0;border-radius:0;background:none;opacity:1;pointer-events:auto}
  :is(#wy-topbar,#nlp-show-header) :is(#editor-publish-btn,[data-wy-dock],#nlp-draft-save):not(#editor-topbar-retry-save-btn)::after{left:0;right:0}
  :is(#wy-topbar,#nlp-show-header) :is(.wy-btn:not(.wy-btn--primary),.wy-themebtn,.wy-iabtn){border-color:transparent;background:transparent}
  :is(#wy-topbar,#nlp-show-header) .wy-iabtn{width:var(--wy-ctl-h);height:var(--wy-ctl-h);min-height:0;padding:0}
  /* Coaching et Sémantique : icône puis score, liseré au repos, comme un bouton. */
  #wy-topbar .wy-btn[data-wy-dock]{gap:var(--wy-s1);min-width:44px;width:auto;height:var(--wy-ctl-h);min-height:0;padding:0 var(--wy-s2);border-color:var(--wyLine3)}
  #wy-topbar [data-wy-dock] svg{width:10px;height:10px}
  #wy-topbar .wy-btn[data-wy-dock][aria-expanded=true]{border-color:var(--wyLapisBd);background:var(--wyAccentSoft);color:var(--wyLapis)}
  #wy-topbar .wy-dockscore{display:inline;font-family:var(--wy-font-mono);font-size:var(--wy-text-control);font-weight:500;font-variant-numeric:tabular-nums}
}
.wy-dockscore{display:none}
#wy-left,#wy-right{padding-bottom:88px !important}
/* Harmonisation des anciens blocs des rails (normes 2026-10-08) */
#wy-right .wy-sem{margin:0 0 var(--wy-s4);padding:var(--wy-s4)}
.wy-collect{margin-bottom:var(--wy-s4)}
.wy-collect .wy-ed-acc__summary{min-height:44px;padding:var(--wy-s3) var(--wy-s4)}
.wy-collect__body{padding:0 var(--wy-s4) var(--wy-s4)}
.wy-coach__note{margin:0 0 var(--wy-s3);font-size:11.5px;line-height:1.45;color:var(--wyInk5)}
.editor-competitor-row--selected > td:first-child{box-shadow:none}
.editor-competitor-row--selected .editor-competitor-title{font-weight:600}

/* La pilule « Une question ? » est fixe en bas à droite : chaque page garde
   assez de vide en bas pour que son dernier contenu reste visible et cliquable
   (QA prod 2026-10-09, coaching NLP masqué à 390 et 344 px). L'éditeur
   d'article a ses propres marges dans les rails. */
.wy-main:not(.wy-main--flush)::after,.nlp-writing-page::after{content:"";display:block;height:88px}

/* Fenêtres modales : la colonne de la grille ne s'élargit jamais au-delà de
   l'écran, même avec un domaine ou une URL sans espace (QA prod 2026-10-09,
   popup sitemap à 490 px de large sur un écran de 344 px). */
.wy-modal-overlay{grid-template-columns:minmax(0,1fr);justify-items:center}
.wy-modal__body{overflow-wrap:anywhere}

#wytt-editor blockquote{border:1px solid var(--wyLine3);border-radius:var(--wy-r-s,10px);padding:var(--wy-s4,16px);margin:var(--wy-s4,16px) 0;color:var(--wyInk3)}
#wytt-editor blockquote>:last-child{margin-bottom:0}

/* Motif d'échec : info-bulle sous la pastille « Échec », après 1,5 s de survol
   (tout de suite au focus clavier). CSS pur. */
.wy-failtip{position:relative;display:inline-flex}
.wy-failtip__anchor{display:inline-flex;border-radius:var(--wy-r-pill);cursor:help;outline-offset:2px}
.wy-failtip__bubble{position:fixed;z-index:88;width:max-content;max-width:min(280px,80vw);padding:var(--wy-s2) var(--wy-s3);border:1px solid var(--wyLine3);border-radius:var(--wy-r-s);background:var(--wyCard);color:var(--wyInk);font-size:var(--wy-text-control);font-weight:400;line-height:1.45;text-align:left;white-space:normal;box-shadow:var(--wy-shadow-float);opacity:0;visibility:hidden;transform:translateY(-2px);transition:opacity var(--wy-duration-fast) var(--wy-duration-fast),transform var(--wy-duration-fast) var(--wy-duration-fast),visibility 0s .3s}
/* Position (fixe) posée par assets/js/failure_tip.js. Survol : la bulle reste ouverte
   0,3 s, le temps de passer de la pastille à la bulle ; Échap la ferme jusqu'à la sortie. */
.wy-failtip:hover .wy-failtip__bubble{opacity:1;visibility:visible;transform:none;transition:opacity var(--wy-duration-fast) 1.5s,transform var(--wy-duration-fast) 1.5s,visibility 0s 1.5s}
.wy-failtip__anchor:focus-visible+.wy-failtip__bubble{opacity:1;visibility:visible;transform:none;transition:none}
.wy-failtip.wy-failtip--dismissed .wy-failtip__bubble{opacity:0;visibility:hidden;transition:none}
@media (prefers-reduced-motion:reduce){.wy-failtip__bubble{transform:none}}

/* ─── Petits écrans (< 640 px) : cibles de 44 × 44, champs de 16 px ─────
   docs/product/mobile-standard.md, étapes 2 et 3. Un élément petit à l’œil
   (en-tête de tri, chip de terme, lien de tableau) garde sa taille et agrandit
   sa zone cliquable, sans recouvrir la zone voisine. */
.wy-term-list{display:flex;flex-wrap:wrap;gap:var(--wy-s2)}
.wy-linkbtn{margin-top:6px;padding:var(--wy-s1) 0;border:0;background:none;font:inherit;font-size:var(--wy-text-control);color:var(--wyAccent);text-decoration:underline;cursor:pointer}
@media (max-width:639.98px){.wy-linkbtn{display:inline-flex;align-items:center;min-height:44px;margin-top:0}}
.wy-essai__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(400px,100%),1fr));gap:20px;align-items:start}
.wy-essai__prompt{font-family:var(--wy-font-mono);font-size:var(--wy-text-control);line-height:1.55;resize:vertical}
@media (max-width:639.98px){
  .wy-root input:not([type=checkbox]):not([type=radio]),.wy-root textarea,.wy-root select{min-height:var(--wy-ctl-h);font-size:var(--wy-text-field-mobile)}
  .wy-navitem{min-height:44px}
  .wy-nav__signout{display:inline-flex;align-items:center;min-height:44px;margin:calc(-1 * var(--wy-s2)) 0}
  .wy-back{min-height:44px;margin-top:calc(-1 * var(--wy-s3));margin-bottom:var(--wy-s1)}
  .wy-artth,.seo-head__cell,.wy-nlp-thead__sort{min-height:44px}
  .wy-arthead,.seo-head,.wy-nlp-thead{padding-bottom:0}
  .seo-cell--keyword{overflow:visible}
  .seo-cell--keyword a{display:block;overflow:hidden;text-overflow:ellipsis;padding:13px 0;margin:-13px 0}
  .wy-nlp-kw{padding-block:var(--wy-s3);margin-block:calc(-1 * var(--wy-s3))}
  .wy-term-list{gap:var(--wy-s3)}
  .wy-term-chip{position:relative;min-height:32px}
  .wy-term-chip::after{content:"";position:absolute;inset:-7px 0}
  .wy-tb-btn,.wy-tabs__tab{min-width:44px}
  .wy-ed-acc__summary{min-height:44px}
  .wy-cmdbar__opt{min-height:44px;margin-top:var(--wy-s1)}
  .wy-credchip{position:relative;min-height:32px}
  /* -7px : le pseudo part du bord intérieur (bordure 1 px), 30 + 14 = 44 px. */
  .wy-credchip::after{content:"";position:absolute;inset:-7px 0}
}

/* ─── Aucun débordement de page (étapes 4 et 6 du standard mobile) ──────
   Un tableau large ou une barre d'outils défile dans son conteneur ; une ombre
   de bord (fond « local » qui la recouvre aux extrémités) indique qu'il reste
   du contenu de ce côté. La barre champ + bouton passe sur deux lignes. */
.wy-arttable,.seo-tablewrap,.wy-nlp-tablewrap{--wy-edge:var(--wyPaper)}
.wy-root .nlp-writing-toolbar{--wy-edge:var(--wyCard)}
/* Au-delà de 1 180 px les tableaux tiennent : pas de bande unie sur le grain. */
@media (max-width:1089.98px){.wy-arttable,.seo-tablewrap,.wy-nlp-tablewrap{background:
  linear-gradient(to right,var(--wy-edge) 30%,transparent) left center/24px 100% no-repeat local,
  linear-gradient(to left,var(--wy-edge) 30%,transparent) right center/24px 100% no-repeat local,
  radial-gradient(farthest-side at 0 50%,rgba(var(--wyShdw),.22),transparent) left center/12px 100% no-repeat scroll,
  radial-gradient(farthest-side at 100% 50%,rgba(var(--wyShdw),.22),transparent) right center/12px 100% no-repeat scroll}}
@media (max-width:639.98px){
  .wy-cmdbar__row,.wy-artbar{flex-wrap:wrap}
  .wy-cmdbar__field,.wy-artbar__input{flex:1 1 100%;min-width:0}
  .wy-cmdbar__input{min-width:0}
  /* Le champ porte la hauteur de 44 px : la saisie le remplit, filet compris. */
  .wy-root .wy-cmdbar__field > input.wy-cmdbar__input{min-height:0;height:calc(100% + 2px);margin-block:-1px}
  /* Écarts de 16 px entre libellés ; un onglet court élargit sa zone à 44 px sans bouger. */
  .wy-root .nlp-reference-tabs button{position:relative}
  .wy-root .nlp-reference-tabs button::after{content:"";position:absolute;top:0;bottom:0;left:min(0px,calc((100% - 46px) / 2));right:min(0px,calc((100% - 46px) / 2))}
  .wy-cmdbar__row > .wy-btn--primary,.wy-artbar > .wy-btn--primary{flex:1 1 100%}
  #wy-toolbar{--wy-edge:var(--wyPaper)}
  #wy-toolbar,.wy-root .nlp-writing-toolbar{scrollbar-width:none;background:
    linear-gradient(to right,var(--wy-edge) 30%,transparent) left center/24px 100% no-repeat local,
    linear-gradient(to left,var(--wy-edge) 30%,transparent) right center/24px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%,rgba(var(--wyShdw),.22),transparent) left center/12px 100% no-repeat scroll,
    radial-gradient(farthest-side at 100% 50%,rgba(var(--wyShdw),.22),transparent) right center/12px 100% no-repeat scroll,
    var(--wy-edge) !important}
  .wy-vhead__actions{flex:0 1 auto;flex-wrap:wrap;gap:var(--wy-s2);min-width:0}
}

/* ─── Espacements sur petit écran (étape 5) : gouttière de 16 px, écarts de
   l'échelle --wy-s* uniquement, dans les vues, cartes et fenêtres modales. */
@media (max-width:639.98px){
  .seo-note{margin-bottom:var(--wy-s6)}
  .wy-set__cards{gap:var(--wy-s4)}
  .wy-det__card{margin-bottom:var(--wy-s4)}
  .wy-set__cap,.wy-set__dcap,.wy-set__row,.wy-set__siterow,.wy-det__caphead,.wy-det__row,.wy-det__brow,.wy-genstep{padding-inline:var(--wy-s4)}
  .wy-set__credits,.wy-set__gsc,.wy-set__dbody,.wy-set__body,.wy-det__body,.wy-onb,.wy-genfail,.wy-gendone{padding:var(--wy-s4)}
  .wy-modal-overlay,.wy-artmodal,.seo-overlay{padding:var(--wy-s4)}
  .wy-modal__head,.wy-artmodal__head,.seo-modal__head{gap:var(--wy-s3);padding:var(--wy-s3) var(--wy-s4)}
  .wy-modal__body,.wy-artmodal__body,.seo-modal__body{padding:var(--wy-s4)}
  /* Ligne de site : nom et pastilles sur une ligne, actions sur la suivante. */
  .wy-set__siterow{flex-wrap:wrap;row-gap:var(--wy-s2)}
  .wy-set__siteleft{flex:1 1 100%;flex-wrap:wrap;row-gap:var(--wy-s2)}
  .wy-set__siteright{gap:var(--wy-s2);margin-left:auto}
}
/* Sans survol (écran tactile), les actions de ligne restent visibles. */
@media (hover:none){.wy-seorow .wy-rowact{opacity:1}}

/* ─── Réduction du mouvement (L20) : plus de pulsation, de glissade ni de
   reflet ; les indicateurs de travail restent affichés, immobiles. Le toast
   garde son délai de 2,3 s et disparaît en fondu, sans se déplacer. */
@keyframes wy-toast-fade{to{opacity:0;visibility:hidden}}
@media (prefers-reduced-motion:reduce){
  .wy-dot--pulse,.wy-nlp-dots span,.wy-genstep__dot--current::after,
  .wy-artshim,.seo-shim,.wy-nlp-shim,.wy-pub-spin,.wy-support-pill,.wy-support-panel,
  .wy-artmodal,.seo-overlay,.wy-modal-overlay{animation:none}
  .wy-toast{animation:wy-toast-fade var(--wy-duration-exit) ease 2.3s forwards}
  .wy-nav,#wy-grid,#wy-left,#wy-right,.wy-genbar__fill,.wy-genprog__fill,.wy-prog__fill,
  .wy-seorow .wy-rowact,.wy-ed-acc__summary::after{transition:none}
}

/* En-tête d'une extraction NLP sous 640 px : une seule rangée comme la barre de
   l'éditeur ; le titre se tronque, l'état se lit au point coloré (libellé gardé pour
   les lecteurs d'écran), « Réessayer » n'apparaît qu'après un échec. */
@media (max-width:639.98px){
  .wy-root .nlp-writing-actions{flex-wrap:nowrap;min-width:0}
  .wy-root .nlp-draft-status .wy-savestate__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
}

/* ═══ Pages hors application : accueil, connexion, erreurs ═══ */
.wy-land{display:flex;flex-direction:column;background-color:var(--wyPaper);background-image:var(--wyGrain);background-size:300px 300px}
.wy-land__head{border-bottom:var(--wy-hairline) solid var(--wyLine)}
.wy-land__bar,.wy-land__main,.wy-land__foot{width:100%;max-width:1120px;margin:0 auto;padding-inline:44px}
.wy-land__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--wy-s4);padding-block:var(--wy-s4)}
.wy-land__brand{display:inline-flex;align-items:center;gap:10px;min-height:44px;text-decoration:none}
.wy-land__brand:hover{text-decoration:none}
.wy-land__nav{display:flex;align-items:center;gap:var(--wy-s3)}
.wy-land__main{flex:1;padding-block:72px var(--wy-s8)}
.wy-land__hero{max-width:720px;margin:0 auto 88px;text-align:center}
.wy-land__title{margin:0 0 var(--wy-s6);font-family:var(--wy-font-editorial);font-weight:700;font-size:56px;line-height:1.05;color:var(--wyInk2)}
.wy-land__accent{display:block;color:var(--wyAccent)}
.wy-land__lead{margin:0 auto var(--wy-s6);max-width:560px;font-size:var(--wy-text-field-mobile);line-height:1.6;color:var(--wyInk4)}
.wy-land__h2{margin:0 0 var(--wy-s6);font-family:var(--wy-font-editorial);font-weight:700;font-size:var(--wy-text-page-mobile);line-height:1.15;color:var(--wyInk2);text-align:center}
.wy-land__grid{list-style:none;margin:0 0 88px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--wy-s4)}
.wy-land__step{padding:var(--wy-s6) 20px}
.wy-land__num{display:block;margin-bottom:var(--wy-s4);font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);letter-spacing:.12em;color:var(--wyGold2)}
.wy-land__stitle{margin:0 0 var(--wy-s2);font-size:var(--wy-text-field-mobile);font-weight:600;color:var(--wyInk2)}
.wy-land__sdesc{margin:0;font-size:var(--wy-text-control-lg);line-height:1.55;color:var(--wyInk5)}
.wy-land__cta{max-width:720px;margin:0 auto;padding:var(--wy-s8) var(--wy-s6);text-align:center}
.wy-land__cta .wy-land__h2{margin-bottom:var(--wy-s3)}
.wy-land__foot{padding-block:var(--wy-s6);border-top:1px solid var(--wyLine);font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);color:var(--wyInk5)}
.wy-land__foot p{margin:0;text-align:center}
@media (max-width:899.98px){.wy-land__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:639.98px){
  .wy-land__bar,.wy-land__main,.wy-land__foot{padding-inline:var(--wy-s4)}
  .wy-land__main{padding-block:var(--wy-s8)}
  .wy-land__hero,.wy-land__grid{margin-bottom:56px}
  .wy-land__title{font-size:var(--wy-text-page)}
  .wy-land__h2{font-size:24px}
  .wy-land__grid{grid-template-columns:minmax(0,1fr)}
  .wy-land__cta{padding:var(--wy-s6) var(--wy-s4)}
}

/* Connexion et pages d'erreur : une carte centrée sur le papier. */
.wy-auth{display:grid;place-items:center;padding:var(--wy-s6) var(--wy-s4);background-color:var(--wyPaper);background-image:var(--wyGrain);background-size:300px 300px}
.wy-auth__card{width:100%;max-width:440px;padding:var(--wy-s8) var(--wy-s6)}
.wy-auth__brand{display:flex;align-items:center;gap:10px;margin-bottom:var(--wy-s6)}
.wy-auth__title{margin:0 0 var(--wy-s2);font-family:var(--wy-font-editorial);font-weight:700;font-size:var(--wy-text-page-mobile);line-height:1.1;color:var(--wyInk2)}
.wy-auth__lead{margin:0 0 var(--wy-s6);font-size:var(--wy-text-body);line-height:1.55;color:var(--wyInk5)}
.wy-auth__code{margin:0 0 var(--wy-s2);font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);letter-spacing:.12em;text-transform:uppercase;color:var(--wyGold2)}
.wy-auth [hidden]{display:none !important}
.wy-auth__status{padding:var(--wy-s6) 0;text-align:center;font-size:var(--wy-text-control-lg);color:var(--wyInk5)}
.wy-auth__status p{margin:0}
@media (max-width:639.98px){.wy-auth__card{padding:var(--wy-s6) var(--wy-s4)}}

/* ═══ VIEW: administration (/admin, /admin/editor-exchanges) ═══
   Même gabarit que les Paramètres ; le tableau reprend la liste des articles. */
h2.wy-set__cap,p.wy-set__cap{margin:0;font-weight:400}
.wy-adm__form .wy-field__input{flex:1 1 200px;width:auto;min-width:0;height:var(--wy-ctl-h-lg);padding-block:0}
.wy-adm__table{width:100%;min-width:700px;border-collapse:collapse}
.wy-adm__table th{padding:var(--wy-s3) var(--wy-s4) var(--wy-s2);border-bottom:var(--wy-hairline) solid var(--wyLine);text-align:left}
.wy-adm__table td{padding:var(--wy-s3) var(--wy-s4);border-bottom:var(--wy-hairline) solid var(--wyRowline);font-size:var(--wy-text-control-lg);color:var(--wyInk3);vertical-align:middle}
.wy-adm__table tbody tr:last-child td{border-bottom:none}
.wy-adm__table th:first-child,.wy-adm__table td:first-child{padding-left:var(--wy-s6)}
.wy-set .wy-arttable{position:relative;margin:0;padding:0;--wy-edge:var(--wyCard)}
.wy-adm__table tbody tr:hover{background:var(--wyHover)}
.wy-adm__email{color:var(--wyInk2);font-weight:500}
.wy-adm__mono,.wy-adm__table td.wy-adm__mono{font-family:var(--wy-font-mono);font-size:11.5px;color:var(--wyInk5)}
.wy-adm__empty{margin:0;padding:var(--wy-s6) var(--wy-s4);text-align:center;font-size:var(--wy-text-control-lg);color:var(--wyInk5)}
.wy-adm__empty--stream{display:none}
.wy-adm__empty--stream:only-child{display:block}
/* Une ligne d'échange : 8 px entre chaque bloc, quel que soit son contenu. */
.wy-adm__msg{display:flex;flex-direction:column;gap:var(--wy-s2);padding:var(--wy-s4) var(--wy-s6);border-bottom:var(--wy-hairline) solid var(--wyRowline);line-height:1.3}
/* La pastille de statut (22 px) n'agrandit pas la rangée : écart identique sous chaque bloc. */
.wy-adm__meta{line-height:1.3}
.wy-adm__details{font-size:var(--wy-text-control)}
.wy-adm__meta .wy-pill{margin-block:-3px}
.wy-adm__msg > *,.wy-adm__details > *{margin:0}
.wy-adm__details > :not(summary){margin-top:var(--wy-s2)}

.wy-adm__msg:last-child{border-bottom:none}
.wy-adm__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--wy-s2) var(--wy-s3)}
.wy-adm__who{font-size:var(--wy-text-control-lg);font-weight:600;color:var(--wyInk2)}
.wy-adm__body{margin:var(--wy-s2) 0 var(--wy-s3);font-size:var(--wy-text-body);line-height:1.55;color:var(--wyInk3);white-space:pre-wrap}
.wy-adm__replyform{display:flex;flex-direction:column;gap:var(--wy-s2)}
.wy-adm__line{display:flex;flex-direction:column;gap:2px}
.wy-adm__line .wy-adm__body{margin:0}
.wy-adm__line--admin{padding:var(--wy-s2) var(--wy-s3);border:1px solid var(--wyLine3);border-radius:var(--wy-r-s);background:var(--wyRail)}
.wy-adm__author{margin-right:var(--wy-s2);font-weight:600;color:var(--wyInk4)}
.wy-adm__actions{display:flex;justify-content:flex-end;gap:var(--wy-s2)}
.wy-adm__summary{font-family:var(--wy-font-mono);font-size:12px;color:var(--wyInk5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* La zone cliquable déborde (padding + marge négative) sans écarter le texte : un seul
   écart de 8 px entre les blocs de la ligne, avec ou sans description. */
.wy-adm__details summary{display:inline-flex;align-items:center;padding-block:var(--wy-s2);margin-block:calc(-1 * var(--wy-s2));font-size:var(--wy-text-control);font-weight:600;color:var(--wyAccent);cursor:pointer}
@media (max-width:639.98px){.wy-adm__details > summary{padding-block:14px;margin-block:-14px}}
.wy-adm__details .wy-atelier-code{max-height:50vh}
/* Sous 640 px, le tableau garde l'email, le statut et la suppression. */
@media (max-width:639.98px){
  .wy-adm__msg{padding-inline:var(--wy-s4)}
  .wy-adm__table{min-width:0}
  .wy-adm__table th:nth-child(2),.wy-adm__table th:nth-child(4),.wy-adm__table th:nth-child(5),.wy-adm__table th:nth-child(6),
  .wy-adm__table td:nth-child(2):not([colspan]),.wy-adm__table td:nth-child(4),.wy-adm__table td:nth-child(5),.wy-adm__table td:nth-child(6){display:none}
  .wy-adm__table th,.wy-adm__table td{padding-left:var(--wy-s2);padding-right:var(--wy-s2)}
  .wy-adm__table th:first-child,.wy-adm__table td:first-child{padding-left:var(--wy-s4);word-break:break-all}
}
.wy-root .wy-exchanges__payload{max-width:100%;overflow-x:auto}

/* ─── Extracteur NLP : import d'un article du site (dépôt Git) ─────────── */
.nlp-import{margin:0 0 var(--wy-s6)}
.nlp-import__panel{margin-top:var(--wy-s3);padding:var(--wy-s4)}
.nlp-import__pick{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto;gap:var(--wy-s3);align-items:end}
.nlp-import__pick .wy-field{margin:0}
.nlp-import__preview{margin-top:var(--wy-s4);padding-top:var(--wy-s4);border-top:1px solid var(--wyLine2)}
.nlp-import__fields{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:var(--wy-s2) var(--wy-s4);margin:0 0 var(--wy-s4);font-size:13px;color:var(--wyInk3)}
.nlp-import__fields dt{color:var(--wyInk5)}
.nlp-import__fields dd{margin:0;overflow-wrap:anywhere}
@media (max-width:639.98px){
  .nlp-import__pick,.nlp-import__fields{grid-template-columns:minmax(0,1fr)}
  .nlp-import__fields dd{margin-bottom:var(--wy-s2)}
  .nlp-import .wy-btn{min-height:44px}
  .nlp-import .wy-input{font-size:var(--wy-text-field-mobile)}
}
.wy-seo__url{display:block;font-family:var(--wy-font-mono);font-size:var(--wy-text-control);color:var(--wyInk3);overflow-wrap:anywhere}

/* Support stays above the sitemap notice and uses the shared control geometry. */
.wy-support-nav{display:flex;flex-wrap:wrap;gap:var(--wy-s1);padding:var(--wy-s2);border-bottom:1px solid var(--wyRowline)}
.wy-support-nav .wy-btn{flex:1;font-size:var(--wy-text-control);white-space:normal}
.wy-support-history{padding:var(--wy-s2);display:flex;flex-direction:column;max-height:180px;overflow:auto;color:var(--wyInk4)}
.wy-support-resolved{padding:var(--wy-s2) var(--wy-s4);color:var(--wyInk4);font-size:var(--wy-text-control)}
.wy-support-day{align-self:center;width:100%;text-align:center;color:var(--wyInk5);font-size:var(--wy-text-meta);margin:var(--wy-s2) 0}
.wy-support-msg:has(.wy-support-day){margin-top:var(--wy-s2)}
.wy-support-form>div{flex:1;min-width:0}
.wy-support-input{width:100%}
.wy-support-status{color:var(--wyInk4);font-size:var(--wy-text-control)}
.wy-support-status [hidden]{display:none}
.wy-support-history .wy-btn{justify-content:flex-start;white-space:normal;text-align:left}
@media(max-width:639.98px){.wy-support-input{font-size:16px;min-height:44px}.wy-support-nav .wy-btn,.wy-support-history .wy-btn{min-height:44px}}

.wy-support-body:has(.wy-support-msg) .wy-support-hello{display:none}

#articles-credits-warning{display:block}
#articles-credits-warning .wy-artlink{display:inline}

/* Client state: native disclosure and ARIA-backed tab selection. */
.wy-coach__row{list-style:none}
.wy-coach__row::-webkit-details-marker{display:none}
details[open] > .wy-coach__row .wy-chevron{transform:rotate(90deg)}
dialog.wy-lightbox{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;background:transparent;color:var(--wyInk)}
dialog.wy-lightbox:not([open]){display:none}
dialog.wy-lightbox::backdrop{background:rgba(10,8,22,.78)}
/* Rails : ce qui n'est pas une carte (onglets Plan, en-tête et légende des termes) s'aligne sur le texte des cartes. */
.wy-rail > :not(.wy-ed-card,.wy-ed-acc,.wy-drawer-close,.wy-btn){padding-inline:calc(var(--wy-s4) + 1px)} /* + bordure des cartes */
/* Libellé de critère trop long pour la carte : version courte (« Title et méta »). Seuil mesuré : la ligne ne passe jamais sur deux rangées. */
.wy-coach{container-type:inline-size}
.wy-coach__label-short{display:none}
@container (max-width:213.98px){.wy-coach__label-long:has(+ .wy-coach__label-short){display:none}.wy-coach__label-short{display:inline}}

/* Engagement : le prix accompagne l'action, les détails restent dans la modale. */
.wy-action-cost{font-family:var(--wy-font-mono);font-size:var(--wy-text-meta);font-weight:400;white-space:nowrap}
.wy-credit-rates{padding:0 var(--wy-s6) var(--wy-s6);margin:0}
.wy-article-failure{color:var(--wyInk4);font-size:var(--wy-text-control);line-height:1.5}
.wy-article-failure p{margin:var(--wy-s1) 0}
.wy-article-failure .wy-btn{margin-top:var(--wy-s2)}
.wy-adm__section-title{font:inherit;margin:0}
.msg-resolved{font-size:var(--wy-text-control);color:var(--wyInk4)}
.wy-adm__msg>.wy-adm__reply{width:auto;justify-self:end;margin-left:auto}
.wy-set__siteright{flex-shrink:0;align-items:center}
.wy-root .nlp-writing-header{padding-inline:var(--wy-s4)}
@media(max-width:639.98px){
  .wy-credit-rates{padding:0 var(--wy-s4) var(--wy-s4)}
  .wy-artrow__title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;line-height:1.4}
  .seo-tablewrap{overflow:visible;margin:0;padding:0;background:none}
  .seo-tablewrap__inner{min-width:0}
  .seo-head{display:none}
  .seo-grid.wy-row{grid-template-columns:minmax(0,1fr) auto;gap:var(--wy-s2);padding:var(--wy-s4)}
  .seo-cell--keyword{grid-column:1/-1;padding:0;white-space:normal;overflow-wrap:anywhere}
  .seo-cell--keyword a{overflow:visible;white-space:normal}
  .seo-cell--title{grid-column:1/-1;padding:0;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .seo-cell--date{grid-column:1;font-size:var(--wy-text-meta)}
  .seo-cell--act{grid-column:2;grid-row:3/5;gap:var(--wy-s2)}
  /* Une réserve propre aux pages défilantes ; les rails de l'éditeur ont déjà 88 px. */
  .wy-main:not(.wy-main--flush)::after,.nlp-writing-page::after{height:calc(var(--wy-s8) + var(--wy-ctl-h) + var(--wy-s3) + env(safe-area-inset-bottom))}
}

/* La suppression des notes de prix conserve le rythme entre saisie et résultats. */
:is(#article-create-form,#seo-create-form,#nlp-create-form){margin-bottom:var(--wy-s6)}

/* NLP uses the editor shell; unavailable rails release their tracks independently of client toggles. */
#wy-leftcol{grid-column:1;grid-row:1}#wy-main{grid-column:2;grid-row:1}#wy-rightcol{grid-column:3;grid-row:1}
#wy-grid[data-left-available="false"]{--colL:0px}
#wy-grid[data-right-available="false"]{--colR:0px}
.wy-editor-page{min-height:100vh;display:flex;flex-direction:column;background-color:var(--wyPaper);background-image:var(--wyGrain);background-size:300px 300px}
.wy-editor-header{position:sticky;top:0;z-index:40;background:var(--wyPaper);box-shadow:var(--wy-shadow-bar)}
.wy-editor-title{margin:0;min-width:0;max-width:560px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 var(--wy-text-control-lg) var(--wy-font-ui);color:var(--wyInk)}
.wy-terms-note{font-size:var(--wy-text-meta);color:var(--wyInk5);margin:0 17px var(--wy-s4);line-height:1.5}
.nlp-corpus-range{font-size:var(--wy-text-label);color:inherit}
.nlp-state-content{width:min(900px,100%);margin:var(--wy-s6) auto;padding:0 var(--wy-s4) 96px}
.nlp-import-mobile{display:none}
#nlp-import-menu{inset:var(--wy-head) var(--wy-s4) auto auto;margin:0;padding:var(--wy-s2);max-width:calc(100vw - 32px)}
@media(max-width:1099.98px){.nlp-import-desktop{display:none}.nlp-import-mobile{display:inline-flex}}
@media(max-width:639.98px){#nlp-show-header button#nlp-draft-save{position:absolute;top:calc(var(--wy-head) + var(--wy-s2));left:var(--wy-s4);right:var(--wy-s4);z-index:2;background:var(--wyPaper);min-height:44px}#nlp-show-page:has(#nlp-draft-save) #wy-main{padding-top:60px}}

#wy-grid[data-right-available="false"].wy-right-open #wy-scrim,#wy-grid[data-left-available="false"].wy-left-open #wy-scrim{display:none}

#nlp-import-menu:not(:popover-open){display:none}
#nlp-show-terms-card .nlp-term-count{margin-left:0}
#nlp-show-terms-card .wy-term-chip{max-width:100%;flex-wrap:wrap;text-align:left}

#nlp-show-sources-card .wy-det__srclink{display:inline-flex;align-items:center;min-height:var(--wy-s6);overflow-wrap:anywhere;max-width:100%}
@media(max-width:639.98px){#nlp-show-sources-card .wy-det__srclink{display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere;max-width:100%}#nlp-show-sources-card summary{display:flex;align-items:center;min-height:44px}}
/* Les sélecteurs d’ouverture sont plus spécifiques que le reset général de mouvement réduit. */
@media(prefers-reduced-motion:reduce){#nlp-show-page #wy-left,#nlp-show-page #wy-right{transition:none!important}}

/* Public article address and per-site maillage billing. */
.wy-address{margin-top:var(--wy-s4);border-top:var(--wy-hairline) solid var(--wyLine);padding-top:var(--wy-s4)}
.wy-address__label,.wy-address__actions{display:flex;align-items:center;justify-content:space-between;gap:var(--wy-s2);flex-wrap:wrap}
.wy-address__label .wy-field__label{margin-bottom:0}
.wy-address__control{display:flex;align-items:center;min-width:0;border:1px solid var(--wyLine3);border-radius:var(--wy-r-s);background:var(--wyPaper);overflow:hidden}
.wy-address__control:focus-within{outline:2px solid var(--wyAccent);outline-offset:2px}
.wy-address__prefix{flex:0 1 auto;max-width:48%;min-width:0;padding-left:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;direction:rtl;text-align:left;font-family:var(--wy-font-mono);font-size:var(--wy-text-control);color:var(--wyInk5)}
.wy-address__slug.wy-input{flex:1 1 52%;min-width:0;width:0;border:0;border-radius:0;background:transparent;padding-inline:6px;font-family:var(--wy-font-mono)}
.wy-address__slug.wy-input:focus{outline:0;box-shadow:none}
.wy-address__slug[readonly]{color:var(--wyInk4);cursor:default}
.wy-address__warning{color:var(--wyWarn);font-size:var(--wy-text-control);line-height:1.5}
.wy-address__warning p{margin-block:var(--wy-s2)}
.wy-address__error{color:var(--wyDanger)}
.wy-set__site{border-bottom:var(--wy-hairline) solid var(--wyRowline)}
.wy-set__site:last-child{border-bottom:0}
.wy-maillage{padding:var(--wy-s3) var(--wy-s6) var(--wy-s4)}
.wy-maillage--compact{display:flex;align-items:center;gap:var(--wy-s2);flex-wrap:wrap;font-size:var(--wy-text-control);color:var(--wyInk4)}
.wy-maillage--compact .wy-maillage__gauge{flex:0 0 var(--wy-s8);width:var(--wy-s8);margin:0}
.wy-maillage__settings{display:inline-flex;align-items:center;min-height:var(--wy-ctl-h);color:var(--wyAccent);text-decoration:underline;text-underline-offset:3px}
.wy-maillage__heading,.wy-maillage__meta{display:flex;justify-content:space-between;align-items:center;gap:var(--wy-s2);flex-wrap:wrap}
.wy-maillage__heading h3{font-size:var(--wy-text-body);font-weight:600;margin:0}
.wy-maillage__meta{font-size:var(--wy-text-control);color:var(--wyInk4)}
.wy-maillage__gauge{display:block;width:100%;height:6px;margin-block:var(--wy-s3);border:0;border-radius:var(--wy-r-pill);overflow:hidden;background:var(--wyLine);color:var(--wyAccent);accent-color:var(--wyAccent)}
.wy-maillage__gauge::-webkit-progress-bar{background:var(--wyLine)}
.wy-maillage__gauge::-webkit-progress-value{background:var(--wyAccent)}
.wy-maillage__gauge::-moz-progress-bar{background:var(--wyAccent)}
.wy-maillage .wy-set__copy{margin-block:var(--wy-s3)}
@media(max-width:639px){.wy-maillage{padding-inline:var(--wy-s4)}.wy-address__slug.wy-input{font-size:16px;min-height:44px}.wy-maillage__settings{min-height:44px}.wy-maillage>.wy-btn{height:auto;min-height:44px;white-space:normal;text-align:center}.wy-set__rval{overflow-wrap:anywhere}}

/* Diagnostic article, filet complet et mots d'attaque, sans accent latéral. */
#atelier-article .wy-observe{border:1px solid var(--wyLine3)}
#atelier-article .wy-observe__lead{color:var(--wyAccent)}
#atelier-article .wy-count{white-space:normal;overflow-wrap:anywhere}
#atelier-article .wy-observe__badge{line-height:1.6}
#atelier-article .wy-observe__incident{margin-top:var(--wy-s6);padding-top:var(--wy-s4);border-top:1px solid var(--wyRowline)}
#atelier-article .wy-observe__preuve{white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--wy-font-mono);font-size:var(--wy-text-control);color:var(--wyInk3)}
#atelier-article .wy-det__row{flex-wrap:wrap}
#atelier-article .wy-det__body>p{overflow-wrap:anywhere}
#atelier-article .wy-det__tools button{min-height:44px}
#atelier-article button:focus-visible,#atelier-article a:focus-visible{outline:2px solid var(--wyAccent);outline-offset:2px}
