@font-face {
  font-family: "Marianne";
  src: url("assets/Marianne-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Marianne";
  src: url("assets/Marianne-Bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700 850;
  font-display: swap;
}
@font-face {
  font-family: "Marianne";
  src: url("assets/Marianne-ExtraBold.woff2") format("woff2");
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}

:root {
  --blue: #000091;
  --blue-700: #00006d;
  --blue-600: #0000b8;
  --blue-100: #e8edff;
  --blue-50: #f5f5fe;
  --green: #c6d421;
  --green-700: #697400;
  --green-100: #f5f8d8;
  --red: #c1000d;
  --red-100: #ffe9e9;
  --orange: #b34000;
  --orange-100: #fff0e5;
  --success: #18753c;
  --success-100: #b8fec9;
  --info: #0063cb;
  --info-100: #e3e3fd;
  --ink: #161616;
  --text: #3a3a3a;
  --muted: #666666;
  --grey-900: #1e1e1e;
  --grey-700: #6a6a6a;
  --grey-500: #929292;
  --grey-300: #cecece;
  --grey-200: #e5e5e5;
  --grey-100: #eeeeee;
  --grey-50: #f6f6f6;
  --white: #ffffff;
  --shadow-sm: 0 1px 2px rgba(0, 0, 18, 0.08), 0 4px 12px rgba(0, 0, 18, 0.05);
  --shadow-md: 0 16px 42px rgba(0, 0, 70, 0.13);
  --shadow-lg: 0 28px 90px rgba(0, 0, 70, 0.18);
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 18px;
  --content: 1180px;
  --sidebar: 248px;
  font-family: "Marianne", "Inter", Arial, sans-serif;
  color: var(--ink);
  background: var(--grey-50);
  font-synthesis: none;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  min-width: 0;
  min-height: 100vh;
  background: var(--grey-50);
  color: var(--text);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.55;
  text-rendering: optimizeLegibility;
}

button, input, select, textarea { font: inherit; }
button, [role="button"] { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: var(--blue); text-decoration-thickness: 1px; text-underline-offset: 3px; }
img { display: block; max-width: 100%; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { color: var(--ink); line-height: 1.15; }
h1 { font-size: clamp(2rem, 4vw, 3.75rem); letter-spacing: -0.035em; }
h2 { font-size: clamp(1.55rem, 2.4vw, 2.35rem); letter-spacing: -0.025em; }
h3 { font-size: 1.15rem; }
p:last-child { margin-bottom: 0; }

:focus-visible {
  outline: 3px solid var(--green);
  outline-offset: 3px;
}

.screen { display: none; min-height: 100vh; background: var(--white); }
.screen.is-active { display: block; animation: screen-in .25s ease-out; }
@keyframes screen-in { from { opacity: .35; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.prototype-bar {
  position: sticky;
  top: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 44px;
  padding: 8px 24px;
  color: var(--white);
  background: var(--grey-900);
  box-shadow: 0 1px 0 rgba(255,255,255,.12);
}
.prototype-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(198,212,33,.16); }
.prototype-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.prototype-actions button {
  border: 1px solid rgba(255,255,255,.35);
  color: var(--white);
  background: transparent;
  padding: 4px 10px;
  border-radius: 4px;
  font-size: .78rem;
  font-weight: 700;
}
.prototype-actions button:hover { background: rgba(255,255,255,.12); }

.demo-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 8px 24px;
  text-align: center;
  font-size: .8rem;
  font-weight: 700;
  color: var(--blue);
  background: var(--green-100);
  border-bottom: 1px solid rgba(105,116,0,.25);
}
.screen-label {
  position: absolute;
  top: 12px;
  right: 16px;
  z-index: 5;
  padding: 5px 9px;
  color: var(--blue);
  background: rgba(255,255,255,.94);
  border: 1px solid var(--blue-100);
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .03em;
}

.official-lockup, .compact-lockup { display: flex; align-items: center; gap: 17px; }
.official-lockup img { object-fit: contain; }
.official-lockup img:nth-child(1) { width: 88px; max-height: 72px; }
.official-lockup img:nth-child(3) { width: 106px; max-height: 54px; }
.official-lockup img:nth-child(5) { width: 116px; max-height: 58px; }
.logo-divider { width: 1px; height: 54px; background: var(--grey-300); }
.compact-lockup img { max-height: 40px; width: auto; object-fit: contain; }
.compact-lockup .logo-divider { height: 30px; background: rgba(255,255,255,.35); }
.logo-ensv { height: 56px; width: auto; }

.cover-hero {
  position: relative;
  min-height: 650px;
  padding: 34px max(32px, calc((100vw - var(--content))/2));
  color: var(--white);
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 18%, rgba(198,212,33,.18), transparent 20%),
    linear-gradient(90deg, rgba(0,0,145,.98) 0%, rgba(0,0,109,.94) 58%, rgba(0,0,109,.76) 100%),
    url("assets/hero-formation-generee.webp") center 42% / cover no-repeat;
}
.cover-hero::after {
  content: "";
  position: absolute;
  right: -160px;
  bottom: -230px;
  width: 620px;
  height: 620px;
  border: 90px solid rgba(255,255,255,.055);
  border-radius: 50%;
}
.institutional-header { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-bottom: 76px; }
.institutional-header .official-lockup { padding: 14px 18px; background: var(--white); border-radius: 8px; }
.institutional-header .language-tag { color: var(--white); border-color: rgba(255,255,255,.4); }
.cover-copy { position: relative; z-index: 2; max-width: 840px; }
.cover-copy h1 { max-width: 800px; margin-bottom: 24px; color: var(--white); font-size: clamp(3rem, 6vw, 5.2rem); }
.cover-copy .lead { max-width: 750px; color: rgba(255,255,255,.88); font-size: 1.24rem; }
.eyebrow, .kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 18px;
  color: var(--blue);
  font-size: .78rem;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.cover-copy .eyebrow, .inverse .eyebrow { color: var(--green); }
.cover-copy .eyebrow::before, .kicker::before { content: ""; width: 28px; height: 3px; background: currentColor; }
.button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 30px; }

.primary-button, .secondary-button, .ghost-button, .danger-button, .text-button, .select-button, .icon-button, .menu-button, .back-button {
  border: 0;
  border-radius: var(--radius-sm);
  font-weight: 760;
  transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
}
.primary-button, .secondary-button, .ghost-button, .danger-button { min-height: 44px; padding: 10px 18px; }
.primary-button { color: var(--white); background: var(--blue); box-shadow: 0 2px 0 var(--blue-700); }
.primary-button:hover { background: var(--blue-600); transform: translateY(-1px); }
.primary-button.accent { color: var(--blue); background: var(--green); box-shadow: 0 2px 0 var(--green-700); }
.primary-button.accent:hover { background: #d4e02d; }
.secondary-button { color: var(--blue); background: var(--white); border: 1px solid var(--blue); }
.secondary-button:hover { background: var(--blue-50); }
.ghost-button { color: var(--text); background: var(--grey-50); border: 1px solid var(--grey-300); }
.ghost-button:hover { background: var(--grey-100); }
.danger-button { color: var(--white); background: var(--red); box-shadow: 0 2px 0 #98000a; }
.text-button { min-height: 44px; padding: 6px 2px; color: var(--blue); background: transparent; text-decoration: underline; text-underline-offset: 3px; }
.icon-button, .menu-button, .back-button { display: inline-grid; place-items: center; flex: 0 0 44px; width: 44px; min-width: 44px; height: 44px; min-height: 44px; padding: 0; color: var(--blue); background: transparent; }
.icon-button:hover, .menu-button:hover, .back-button:hover { background: var(--blue-50); }
.select-button { padding: 8px 14px; color: var(--blue); background: var(--white); border: 1px solid var(--blue); }

.cover-architecture, .cover-principles {
  max-width: var(--content);
  margin: 0 auto;
  padding: 72px 32px;
}
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 34px; }
.section-heading > div { max-width: 760px; }
.section-heading p { color: var(--muted); }
.architecture-card {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  align-items: stretch;
  gap: 12px;
  padding: 24px;
  border-radius: var(--radius-lg);
  background: var(--blue-50);
  border: 1px solid var(--blue-100);
}
.architecture-card > div:not(.architecture-arrow) { min-height: 150px; padding: 24px; background: var(--white); border-top: 5px solid var(--blue); border-radius: 6px; box-shadow: var(--shadow-sm); }
.architecture-card > div:last-child { border-top-color: var(--green-700); }
.architecture-arrow { align-self: center; color: var(--blue); text-align: center; font-size: 1.4rem; font-weight: 900; }
.cover-principles { padding-top: 16px; }
.cover-principles { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.principle-banner { padding: 24px; background: var(--white); border: 1px solid var(--grey-200); border-radius: 8px; box-shadow: var(--shadow-sm); }
.principle-icon { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: 18px; color: var(--blue); background: var(--green-100); border-radius: 50%; font-weight: 900; }

.private-app { display: grid; grid-template-columns: var(--sidebar) minmax(0,1fr); min-height: calc(100vh - 44px); background: var(--grey-50); }
.sidebar { position: sticky; top: 44px; height: calc(100vh - 44px); display: flex; flex-direction: column; padding: 24px 18px; color: var(--white); background: var(--blue); }
.sidebar-brand { padding: 4px 8px 24px; border-bottom: 1px solid rgba(255,255,255,.18); }
.sidebar-brand strong { display: block; margin-top: 12px; color: var(--white); font-size: .92rem; }
.sidebar nav { display: grid; gap: 6px; margin-top: 28px; }
.nav-item { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 9px 12px; color: rgba(255,255,255,.8); background: transparent; border: 0; border-radius: 6px; text-align: left; font-weight: 700; }
.nav-item:hover, .nav-item.is-current { color: var(--blue); background: var(--green); }
.sidebar-account { margin-top: auto; padding: 18px 10px 4px; border-top: 1px solid rgba(255,255,255,.18); }
.sidebar-account strong, .sidebar-account small { display: block; }
.sidebar-account small { color: rgba(255,255,255,.68); }
.avatar { display: grid; place-items: center; width: 38px; height: 38px; color: var(--blue); background: var(--green); border-radius: 50%; font-weight: 900; }
.compact-row { display: flex; align-items: center; gap: 11px; }

.app-content { min-width: 0; }
.app-header, .editor-topbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 74px; padding: 14px 34px; background: var(--white); border-bottom: 1px solid var(--grey-200); }
.breadcrumb { color: var(--muted); font-size: .86rem; }
.breadcrumb strong { color: var(--text); }
.header-meta, .header-buttons, .toolbar-actions, .editor-actions, .batch-actions { display: flex; align-items: center; gap: 10px; }
.narrow-content { width: min(960px, calc(100% - 48px)); margin: 0 auto; padding: 44px 0 80px; }
.app-content > .section-heading, .app-content > .metric-grid, .app-content > .dashboard-columns, .app-content > .table-wrap, .app-content > .source-batch, .app-content > .editor-tabs, .app-content > .editor-split, .app-content > .sticky-actions, .app-content > .validated-hero, .app-content > .publication-actions, .app-content > .timeline, .app-content > .state-machine, .app-content > .attention-message {
  margin-left: 34px;
  margin-right: 34px;
}
.app-content > .section-heading { padding-top: 40px; }

.metric-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.metric-card { position: relative; min-height: 130px; padding: 22px; background: var(--white); border: 1px solid var(--grey-200); border-radius: 8px; box-shadow: var(--shadow-sm); overflow: hidden; }
.metric-card::after { content: ""; position: absolute; top: 0; right: 0; width: 46px; height: 5px; background: var(--blue); }
.metric-card.green::after { background: var(--success); }
.metric-card.orange::after { background: var(--orange); }
.metric-card.grey::after { background: var(--grey-500); }
.metric-card strong { display: block; margin: 10px 0 3px; color: var(--ink); font-size: 2rem; }
.metric-card span { color: var(--muted); font-size: .82rem; font-weight: 700; }

.dashboard-columns { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(300px,.75fr); gap: 22px; margin-top: 24px; }
.content-card, .activity-card, .form-card, .practical-card, .version-card, .publication-row-card, .attention-message, .source-batch {
  background: var(--white);
  border: 1px solid var(--grey-200);
  border-radius: 8px;
  box-shadow: var(--shadow-sm);
}
.content-card, .activity-card, .form-card, .practical-card, .version-card { padding: 24px; }
.card-toolbar, .field-between, .batch-title, .batch-meta, .summary-header, .publication-title, .results-heading, .pane-heading, .preview-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.task-list, .source-list, .quality-list, .program-list, .timeline { list-style: none; padding: 0; margin-top: 18px; }
.task-list li, .source-list li, .quality-list li { display: flex; align-items: flex-start; gap: 12px; padding: 14px 0; border-top: 1px solid var(--grey-200); }
.task-list { display: grid; gap: 0; }
.task-list > button { display: grid; grid-template-columns: 38px minmax(0,1fr) auto 24px; align-items: center; gap: 12px; width: 100%; min-height: 82px; padding: 14px 10px; color: var(--ink); background: transparent; border: 0; border-top: 1px solid var(--grey-200); text-align: left; }
.task-list > button:hover { background: var(--blue-50); }
.task-list > button > div { min-width: 0; }
.task-list > button strong { display: block; color: var(--ink); line-height: 1.35; }
.task-list > button small { margin-top: 4px; line-height: 1.35; }
.task-list > button > b:last-child { color: var(--blue); font-size: 1.1rem; text-align: center; }
.task-icon, .file-type, .guidance-icon { flex: 0 0 auto; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 6px; color: var(--blue); background: var(--blue-100); font-size: .77rem; font-weight: 900; }
.task-icon.warning, .file-type.url { color: var(--orange); background: var(--orange-100); }
.task-icon.success, .file-type.xls { color: var(--success); background: var(--success-100); }
.file-type.pdf { color: var(--red); background: var(--red-100); }
.task-list small, .source-list small { display: block; color: var(--muted); }

.status, .state, .version-badge, .language-tag, .topic-tag, .inverse-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  padding: 4px 9px;
  border-radius: 999px;
  color: var(--blue);
  background: var(--blue-100);
  font-size: .74rem;
  font-weight: 820;
  white-space: nowrap;
}
.status.success, .state.ready, .state.done, .version-badge.confirmed { color: var(--success); background: var(--success-100); }
.status.warning, .state.warning { color: var(--orange); background: var(--orange-100); }
.status.grey, .state.grey { color: var(--grey-700); background: var(--grey-100); }
.status.public { color: var(--white); background: var(--success); }
.inverse-tag { color: var(--white); background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.3); }

.split-login { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(420px,.75fr); min-height: calc(100vh - 44px); }
.login-brand-panel { position: relative; padding: 52px max(44px, 7vw); color: var(--white); background: var(--blue); overflow: hidden; }
.login-brand-panel::after { content: ""; position: absolute; right: -120px; bottom: -120px; width: 400px; height: 400px; border: 65px solid rgba(198,212,33,.14); border-radius: 50%; }
.login-brand-panel h1 { max-width: 650px; margin-top: 110px; color: var(--white); }
.login-brand-panel p { max-width: 620px; color: rgba(255,255,255,.82); font-size: 1.08rem; }
.security-note { position: absolute; left: max(44px,7vw); bottom: 54px; max-width: 560px; padding: 16px 18px; color: var(--blue); background: var(--green); border-radius: 8px; font-weight: 750; }
.login-form-panel { display: grid; place-items: center; padding: 44px; background: var(--grey-50); }
.login-card { width: min(440px,100%); padding: 36px; background: var(--white); border-radius: 10px; box-shadow: var(--shadow-md); }
.login-card h2 { margin-top: 18px; }

label { display: block; margin-bottom: 6px; color: var(--ink); font-size: .88rem; font-weight: 780; }
input, select, textarea {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--grey-500);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 -2px 0 var(--blue);
}
textarea { min-height: 112px; resize: vertical; }
input::placeholder, textarea::placeholder { color: var(--grey-700); }
.password-field { position: relative; }
.password-field .icon-button { position: absolute; right: 4px; bottom: 4px; }
.inline-field, .form-section { margin-top: 20px; }
.form-grid, .two-column-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.span-2 { grid-column: 1 / -1; }
.form-help { color: var(--muted); font-size: .8rem; }
.legal-check, .check-row, .source-check { display: flex; align-items: flex-start; gap: 10px; }
.legal-check input, .check-row input, .source-check input { flex: 0 0 auto; width: 18px; min-height: 18px; margin-top: 3px; box-shadow: none; }

.dropzone, .mini-dropzone {
  display: grid;
  place-items: center;
  min-height: 190px;
  padding: 32px;
  text-align: center;
  color: var(--blue);
  background: var(--blue-50);
  border: 2px dashed var(--blue);
  border-radius: 8px;
}
.dropzone:hover, .mini-dropzone:hover { background: var(--blue-100); }
.upload-icon { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 12px; color: var(--blue); background: var(--white); border-radius: 50%; font-size: 1.5rem; box-shadow: var(--shadow-sm); }
.file-row { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--grey-200); }
.file-check { display: grid; place-items: center; width: 28px; height: 28px; color: var(--success); background: var(--success-100); border-radius: 50%; font-weight: 900; }

.stepper { display: grid; grid-template-columns: repeat(3,1fr); margin-bottom: 34px; }
.sticky-actions { position: sticky; bottom: 0; z-index: 30; display: flex; justify-content: flex-end; gap: 10px; padding: 16px 0; background: linear-gradient(to top,var(--white) 70%,rgba(255,255,255,.72)); border-top: 1px solid var(--grey-200); }

.review-layout { display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: 24px; }
.review-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; }
.review-grid > div { padding: 16px; background: var(--grey-50); border-radius: 6px; }
.review-grid strong { display: block; color: var(--ink); }
.review-summary { height: fit-content; padding: 22px; background: var(--blue-50); border-left: 5px solid var(--blue); border-radius: 4px; }
.source-recap { display: grid; gap: 10px; margin-top: 18px; }
.source-recap > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px; background: var(--white); border: 1px solid var(--blue-100); }

.centered-state { display: grid; place-items: center; min-height: calc(100vh - 118px); padding: 48px 24px; background: var(--blue-50); }
.centered-state > div { max-width: 650px; padding: 48px; text-align: center; background: var(--white); border-radius: 12px; box-shadow: var(--shadow-md); }
.success-mark { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto 22px; color: var(--white); background: var(--success); border-radius: 50%; font-size: 2.1rem; }
.large-success { color: var(--white); }
.next-steps { display: grid; gap: 10px; margin: 28px 0; text-align: left; }
.next-steps > div { display: flex; gap: 12px; align-items: flex-start; }
.step-number { display: grid; place-items: center; flex: 0 0 30px; width: 30px; height: 30px; color: var(--blue); background: var(--green); border-radius: 50%; font-weight: 900; }

.attention-message, .warning-panel, .guidance-panel, .rights-callout, .field-alert { padding: 18px 20px; border-radius: 6px; }
.attention-message, .warning-panel, .field-alert { color: #5a2500; background: var(--orange-100); border-left: 5px solid var(--orange); }
.guidance-panel, .rights-callout { color: var(--blue); background: var(--blue-50); border-left: 5px solid var(--blue); }
.attention-message { display: flex; gap: 14px; align-items: flex-start; }
tr.attention-row { display: table-row; }
tr.attention-row[hidden] { display: none !important; }
.metric-card > span:first-child { display: block; margin: 10px 0 3px; color: var(--ink); font-size: 2rem; font-weight: 900; line-height: 1; }
.metric-card > p { margin: .35rem 0 0; }
.warning-text { display: flex; align-items: flex-start; gap: 7px; margin-top: 6px; color: var(--orange); font-weight: 700; line-height: 1.4; }
.warning-text > span:first-child { flex: 0 0 auto; font-weight: 900; }
.input-with-warning { position: relative; }
.input-with-warning > span { position: absolute; top: calc(100% + 6px); left: 0; font-weight: 900; line-height: 1.4; }
.input-with-warning + .warning-text { padding-left: 14px; }

.table-wrap { overflow-x: auto; margin-top: 22px; background: var(--white); border: 1px solid var(--grey-200); border-radius: 8px; box-shadow: var(--shadow-sm); }
table { width: 100%; border-collapse: collapse; min-width: 780px; }
th, td { padding: 14px 16px; text-align: left; border-bottom: 1px solid var(--grey-200); }
th { color: var(--muted); background: var(--grey-50); font-size: .77rem; letter-spacing: .04em; text-transform: uppercase; }
tbody tr:hover { background: var(--blue-50); }
.row-action { min-height: 44px; color: var(--blue); background: transparent; border: 0; font-weight: 800; }

.source-batch { margin-top: 18px; padding: 24px; }
.source-check-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; margin-top: 18px; }
.source-check { padding: 14px; background: var(--grey-50); border: 1px solid var(--grey-200); border-radius: 6px; }
.audit-summary { margin-top: 20px; padding: 16px; color: var(--blue); background: var(--blue-50); border-radius: 6px; }

.editor-workspace { background: #ededf4; }
.editor-topbar { position: sticky; top: 44px; z-index: 40; }
.editor-topbar .back-link { color: var(--blue); background: transparent; border: 0; font-weight: 800; }
.editor-tabs { display: flex; gap: 22px; padding-top: 18px; background: transparent; border-bottom: 1px solid var(--grey-300); }
.editor-tabs button { min-height: 44px; padding: 9px 2px 12px; color: var(--muted); background: transparent; border: 0; border-bottom: 3px solid transparent; font-weight: 750; }
.editor-tabs button.is-current { color: var(--blue); border-bottom-color: var(--blue); }
.draft-banner { display: flex; align-items: flex-start; justify-content: flex-start; gap: 12px; margin: 18px 34px 0; padding: 14px 18px; color: var(--blue); background: var(--green-100); border: 1px solid rgba(105,116,0,.25); border-radius: 6px; }
.draft-banner > span { flex: 0 0 auto; margin-top: 2px; font-weight: 900; }
.editor-split { display: grid; grid-template-columns: minmax(260px,.72fr) minmax(480px,1.3fr) minmax(260px,.72fr); gap: 14px; margin-top: 16px; padding-bottom: 24px; }
.source-pane, .form-pane, .quality-pane { min-width: 0; min-height: 710px; background: var(--white); border: 1px solid var(--grey-200); border-radius: 8px; box-shadow: var(--shadow-sm); }
.pane-heading { padding: 18px; border-bottom: 1px solid var(--grey-200); }
.source-pane .source-list, .quality-pane .quality-list { padding: 0 18px; }
.source-preview { margin: 12px 18px 18px; padding: 18px; background: var(--grey-50); border: 1px solid var(--grey-200); border-radius: 5px; }
.fake-document { padding: 18px; background: var(--white); box-shadow: 0 2px 12px rgba(0,0,0,.08); }
.doc-lines { display: grid; gap: 7px; }
.doc-lines span { display: block; height: 7px; background: var(--grey-200); border-radius: 4px; }
.doc-lines span:nth-child(3n+2) { width: 76%; }
.form-pane { padding: 24px; }
.form-pane .form-section:first-child { margin-top: 0; }
.mini-dropzone { min-height: 100px; padding: 18px; }
.quality-pane { padding-bottom: 18px; }
.quality-list strong { color: var(--ink); }
.quality-pane .version-card { display: grid; gap: 7px; margin: 24px 18px 0; padding: 18px; }
.quality-pane .version-card > span { display: block; color: var(--muted); font-size: .75rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.quality-pane .version-card > strong { display: block; color: var(--ink); font-size: 1.05rem; line-height: 1.3; }
.quality-pane .version-card > small { display: block; color: var(--muted); line-height: 1.4; }
.quality-pane .version-card > .text-button { justify-self: start; margin-top: 4px; }
.score-ring { position: relative; display: grid; grid-template-rows: auto auto; place-content: center; place-items: center; width: 112px; height: 112px; margin: 26px auto; border-radius: 50%; background: conic-gradient(var(--success) 0 78%, var(--grey-200) 78%); }
.score-ring::before { content: ""; position: absolute; width: 82px; height: 82px; border-radius: 50%; background: var(--white); }
.score-ring strong, .score-ring span { position: relative; z-index: 1; }
.score-ring strong { color: var(--success); font-size: 1.35rem; font-weight: 900; line-height: 1; }
.score-ring span { margin-top: 3px; color: var(--muted); font-size: .68rem; font-weight: 750; }

.validated-hero { margin-top: 32px; padding: 34px; color: var(--white); background: var(--blue); border-radius: 10px; box-shadow: var(--shadow-md); }
.validated-hero h1, .validated-hero h2, .validated-hero p { color: var(--white); }
.validated-hero .version-badge { color: var(--blue); background: var(--green); }
.publication-actions { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; margin-top: 22px; }
.publication-row-card { padding: 24px; border-top: 5px solid var(--blue); }
.publication-row-card.warning { border-top-color: var(--orange); }
.publication-row-card .button-row { margin-top: 20px; }

.public-site { min-height: calc(100vh - 44px); background: var(--white); }
.public-header { position: relative; z-index: 10; background: var(--white); border-bottom: 1px solid var(--grey-200); box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.public-header > div { max-width: var(--content); margin: auto; }
.public-header .official-lockup { padding: 20px 0; }
.public-header nav { display: flex; gap: 26px; padding: 13px 0; border-top: 1px solid var(--grey-200); }
.public-header nav a { color: var(--text); text-decoration: none; font-weight: 750; }
.public-header nav a.active { color: var(--blue); text-decoration: underline 3px var(--green); text-underline-offset: 9px; }
.catalogue-hero { padding: 62px max(32px,calc((100vw - var(--content))/2)); color: var(--white); background: var(--blue); }
.catalogue-hero h1, .catalogue-hero p { color: var(--white); }
.catalogue-hero p { max-width: 720px; color: rgba(255,255,255,.82); }
.catalogue-search { display: flex; max-width: 760px; margin-top: 28px; }
.catalogue-search input { min-height: 52px; border: 0; border-radius: 5px 0 0 5px; box-shadow: none; }
.catalogue-search button { min-width: 130px; color: var(--blue); background: var(--green); border: 0; border-radius: 0 5px 5px 0; font-weight: 850; }
.catalogue-shell { display: grid; grid-template-columns: 250px minmax(0,1fr); gap: 32px; max-width: var(--content); margin: 0 auto; padding: 48px 0 80px; }
.filters { height: fit-content; padding: 22px; background: var(--grey-50); border: 1px solid var(--grey-200); border-radius: 6px; }
.filter-title { color: var(--ink); font-weight: 850; }
.filters label { display: flex; align-items: flex-start; gap: 9px; margin: 12px 0; font-weight: 700; }
.filters input { width: 17px; min-height: 17px; box-shadow: none; }
.training-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.training-card { position: relative; display: flex; flex-direction: column; min-height: 330px; padding: 24px; cursor: pointer; background: var(--white); border: 1px solid var(--grey-200); border-top: 6px solid var(--blue); border-radius: 8px; box-shadow: var(--shadow-sm); }
.training-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.training-card .card-topline { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.training-card h3 { margin-top: 22px; font-size: 1.35rem; }
.training-card .card-provider { margin-top: auto; padding-top: 20px; color: var(--muted); border-top: 1px solid var(--grey-200); }
.card-link { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; min-height: 44px; margin-top: 18px; padding: 8px 2px; color: var(--blue); background: transparent; border: 0; font-weight: 850; }
.card-link::after { content: ""; position: absolute; z-index: 3; inset: 0; }
.training-card:has(.card-link:focus-visible) { outline: 3px solid var(--green); outline-offset: 3px; box-shadow: 0 0 0 6px var(--blue); }
.no-results { display: none; padding: 36px; text-align: center; background: var(--blue-50); border-radius: 8px; }
.no-results.is-active { display: block; }

.detail-hero { padding: 62px max(32px,calc((100vw - var(--content))/2)); color: var(--white); background: var(--blue); }
.detail-hero h1 { max-width: 900px; color: var(--white); }
.detail-hero .back-link { display: inline-block; margin-bottom: 28px; color: var(--white); }
.detail-hero .topic-tag { color: var(--blue); background: var(--green); }
.detail-body { display: grid; grid-template-columns: minmax(0,1.5fr) 360px; gap: 44px; max-width: var(--content); margin: 0 auto; padding: 52px 0 80px; }
.detail-body h2 { margin-top: 38px; }
.detail-body h2:first-child { margin-top: 0; }
.program-list li { margin: 10px 0; padding-left: 24px; position: relative; }
.program-list li::before { content: "✓"; position: absolute; left: 0; color: var(--success); font-weight: 900; }
.practical-card { position: sticky; top: 70px; height: fit-content; border-top: 6px solid var(--green); }
.practical-card dl { margin: 0; }
.practical-card dt { margin-top: 18px; color: var(--muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.practical-card dd { margin: 3px 0 0; color: var(--ink); font-weight: 700; }
.public-footer { padding: 42px max(32px,calc((100vw - var(--content))/2)); color: var(--white); background: var(--blue-700); }

.timeline { position: relative; margin-top: 28px; }
.timeline::before { content: ""; position: absolute; top: 4px; bottom: 4px; left: 18px; width: 2px; background: var(--blue-100); }
.timeline li { position: relative; display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 18px; padding-bottom: 24px; }
.timeline li::before { content: ""; z-index: 1; width: 16px; height: 16px; margin: 3px 0 0 10px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 7px var(--blue-100); }
.timeline li.current::before { background: var(--green-700); box-shadow: 0 0 0 7px var(--green-100); }
.timeline li > span { display: none; }
.timeline li > div { min-width: 0; }
.timeline li strong, .timeline li small { display: block; overflow-wrap: normal; word-break: normal; }
.timeline li strong { color: var(--ink); line-height: 1.35; }
.timeline li small { margin-top: 5px; color: var(--muted); line-height: 1.4; }
.sync-state { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 22px; }
.sync-state > div { padding: 20px; background: var(--white); border: 1px solid var(--grey-200); border-radius: 8px; }

.decision-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 32px; }
.decision { padding: 20px; background: var(--white); border: 1px solid var(--grey-200); border-radius: 8px; }
.decision-number { display: grid; place-items: center; width: 32px; height: 32px; margin-bottom: 14px; color: var(--blue); background: var(--green); border-radius: 50%; font-weight: 900; }
.decision-note { margin-top: 34px; padding: 22px; color: var(--blue); background: var(--green-100); border-left: 6px solid var(--green-700); }
.state-machine { margin-top: 24px; padding: 24px; background: var(--white); border: 1px solid var(--grey-200); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.state-flow { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--grey-500); font-weight: 900; }
.state-flow > b { color: var(--grey-700); }
.state { padding: 8px 10px; color: var(--ink); background: var(--grey-100); border-radius: var(--radius-sm); font-size: .8rem; }
.state.blue { color: var(--blue); background: var(--blue-100); }
.state.orange { color: var(--orange); background: var(--orange-100); }
.state.green { color: var(--success); background: var(--success-100); }
.state-flow.end { color: var(--success); }

.modal-backdrop { position: fixed; inset: 0; z-index: 200; display: none; place-items: center; padding: 24px; background: rgba(0,0,18,.68); }
.modal-backdrop.is-active { display: grid; }
.modal { position: relative; width: min(600px,100%); max-height: 90vh; overflow-y: auto; padding: 30px; background: var(--white); border-radius: 10px; box-shadow: var(--shadow-lg); }
.modal-close { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 44px; height: 44px; color: var(--blue); background: var(--grey-50); border: 0; border-radius: 50%; font-size: 1.25rem; }
.modal .warning-panel { margin: 18px 0; }
.toast { position: fixed; right: 24px; bottom: 24px; z-index: 250; display: flex; align-items: center; gap: 12px; max-width: 420px; padding: 15px 18px; color: var(--white); background: var(--success); border-radius: 6px; box-shadow: var(--shadow-lg); opacity: 0; transform: translateY(20px); pointer-events: none; transition: .25s ease; }
.toast.is-active { opacity: 1; transform: none; }
.toast.is-success { background: var(--success); }
.toast.is-error { background: var(--red); }

.capture-mode { background: #dfe1e7; }
.capture-mode .prototype-bar { display: none; }
.capture-mode #prototype { display: grid; grid-template-columns: 1440px; gap: 72px; width: 1536px; padding: 48px; }
.capture-mode .screen { position: relative; display: block !important; width: 1440px; min-height: 1024px; max-height: none; overflow: hidden; background: var(--white); box-shadow: 0 8px 30px rgba(0,0,0,.16); animation: none; }
.capture-mode .screen-cover { min-height: 1320px; }
.capture-mode .sidebar, .capture-mode .editor-topbar { top: 0; }
.capture-mode .public-header > div { padding-left: 32px; padding-right: 32px; }
.capture-mode .catalogue-shell, .capture-mode .detail-body { padding-left: 32px; padding-right: 32px; }

@media (max-width: 1020px) {
  .architecture-card { grid-template-columns: repeat(2,1fr); }
  .architecture-arrow { display: none; }
  .metric-grid { grid-template-columns: repeat(2,1fr); }
  .editor-split { grid-template-columns: 1fr; }
  .source-pane, .form-pane, .quality-pane { min-height: auto; }
  .catalogue-shell { grid-template-columns: 1fr; padding-left: 24px; padding-right: 24px; }
  .filters { display: none; }
  .detail-body { grid-template-columns: 1fr; padding-left: 32px; padding-right: 32px; }
  .practical-card { position: static; }
}

@media (max-width: 820px) {
  .prototype-bar { padding: 8px 12px; font-size: .73rem; }
  .prototype-actions { display: flex; }
  .prototype-actions > button:not(#accessibility-launcher) { display: none; }
  .screen-label { display: none; }
  .cover-hero { min-height: 650px; padding: 24px 20px 48px; }
  .institutional-header { align-items: flex-start; margin-bottom: 58px; }
  .institutional-header .official-lockup { gap: 10px; width: 100%; overflow: hidden; padding: 10px; }
  .institutional-header .official-lockup img:nth-child(1) { width: 70px; }
  .institutional-header .official-lockup img:nth-child(3) { width: 82px; }
  .institutional-header .official-lockup img:nth-child(5) { width: 92px; }
  .institutional-header .language-tag { display: none; }
  .cover-copy h1 { font-size: 2.8rem; }
  .cover-architecture, .cover-principles { padding: 44px 20px; }
  .architecture-card, .cover-principles { grid-template-columns: 1fr; }
  .section-heading { align-items: flex-start; flex-direction: column; }
  .private-app { grid-template-columns: 1fr; }
  .sidebar { position: static; height: auto; flex-direction: row; align-items: center; padding: 12px 16px; }
  .sidebar-brand { padding: 0; border: 0; }
  .sidebar-brand strong, .sidebar nav, .sidebar-account { display: none; }
  .app-header, .editor-topbar { min-height: 62px; padding: 10px 18px; }
  .header-meta, .header-buttons .ghost-button { display: none; }
  .app-content > .section-heading, .app-content > .metric-grid, .app-content > .dashboard-columns, .app-content > .table-wrap, .app-content > .source-batch, .app-content > .editor-tabs, .app-content > .editor-split, .app-content > .sticky-actions, .app-content > .validated-hero, .app-content > .publication-actions, .app-content > .timeline, .app-content > .state-machine, .app-content > .attention-message { margin-left: 18px; margin-right: 18px; }
  .metric-grid, .dashboard-columns, .publication-actions, .sync-state, .training-grid, .decision-grid, .form-grid, .two-column-form, .review-layout, .review-grid, .source-check-grid { grid-template-columns: 1fr; }
  .split-login { grid-template-columns: 1fr; }
  .login-brand-panel { min-height: 430px; padding: 30px 24px; }
  .login-brand-panel h1 { margin-top: 60px; }
  .security-note { position: static; margin-top: 46px; }
  .login-form-panel { padding: 24px 18px 50px; }
  .login-card { padding: 26px 22px; }
  .narrow-content { width: min(100% - 36px,960px); padding-top: 28px; }
  .span-2 { grid-column: auto; }
  .sticky-actions { flex-wrap: wrap; }
  .sticky-actions button { flex: 1 1 46%; }
  .editor-topbar { align-items: flex-start; flex-direction: column; }
  .editor-actions { width: 100%; overflow-x: auto; padding-bottom: 4px; }
  .editor-actions button { white-space: nowrap; }
  .draft-banner { margin-left: 18px; margin-right: 18px; }
  .public-header > div { padding: 0 18px; }
  .public-header .official-lockup img:nth-child(1) { width: 64px; }
  .public-header .official-lockup img:nth-child(3) { width: 74px; }
  .public-header .official-lockup img:nth-child(5) { width: 88px; }
  .public-header nav { overflow-x: auto; gap: 18px; white-space: nowrap; }
  .catalogue-hero, .detail-hero { padding: 42px 20px; }
  .catalogue-search { flex-direction: column; gap: 8px; }
  .catalogue-search input, .catalogue-search button { width: 100%; border-radius: 5px; min-height: 48px; }
  .catalogue-shell { padding: 30px 18px 60px; }
  .detail-body { padding: 34px 20px 60px; }
  .public-footer { padding: 34px 20px; }
  .modal { padding: 28px 20px 22px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Refonte UX 2026-08-27 — parcours partenaire, catalogue et fiche unifiés */
[hidden] { display: none !important; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }

:focus-visible { outline-color: var(--blue); outline-offset: 3px; }
.prototype-bar :focus-visible, .sidebar :focus-visible, .catalogue-hero :focus-visible, .detail-hero :focus-visible, .public-footer :focus-visible, .cover-hero :focus-visible { outline-color: var(--green); }

.official-lockup { min-height: 72px; padding: 12px 16px; background: var(--white); border: 1px solid rgba(0,0,145,.12); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.official-lockup > img:first-of-type { width: 112px; max-height: 52px; }
.official-lockup > img.logo-ensv { width: 168px; height: auto; max-height: 58px; }
.compact-lockup { min-height: 62px; padding: 8px 12px; border: 0; box-shadow: none; }
.compact-lockup > img:first-of-type { width: 96px; max-height: 44px; }
.compact-lockup > img.logo-ensv { width: 150px; max-height: 48px; }
.compact-lockup .logo-divider { height: 38px; background: var(--grey-300); }

.cover-architecture { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: stretch; gap: 14px; }
.cover-copy .kicker { color: var(--green); }
.architecture-card { display: grid; grid-template-columns: 46px minmax(0,1fr); align-items: start; gap: 16px; padding: 26px; color: var(--ink); background: var(--white); border: 1px solid var(--blue-100); border-top: 5px solid var(--blue); box-shadow: var(--shadow-sm); }
.architecture-card > div:not(.architecture-arrow) { min-height: 0; padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.architecture-card:last-of-type { border-top-color: var(--green-700); }
.cover-architecture .architecture-card strong { display: block; color: var(--blue); font-size: 1rem; line-height: 1.3; }
.cover-architecture .architecture-card p { margin: 7px 0 0; color: var(--muted); line-height: 1.5; }

.logo-surface { display: inline-flex; width: fit-content; padding: 15px 20px; background: var(--white); border-radius: var(--radius-md); box-shadow: var(--shadow-md); }
.logo-surface img { width: min(330px, 58vw); height: auto; }
.login-brand-panel { background: linear-gradient(145deg, #000091 0%, #00006d 68%, #17174a 100%); }
.login-card { border-top: 6px solid var(--green); }
.password-field input { padding-right: 96px; }
.password-toggle { position: absolute; right: 2px; bottom: 0; min-width: 84px; min-height: 44px; padding: 6px 10px; color: var(--blue); background: var(--blue-50); border: 0; border-radius: var(--radius-sm); font-weight: 800; }

.help-button { display: inline-grid; place-items: center; width: 44px; min-width: 44px; height: 44px; margin: -10px 0; padding: 0; vertical-align: middle; color: transparent; background: transparent; border: 0; border-radius: var(--radius-sm); font-size: 0; line-height: 1; }
.help-button::after { content: "?"; display: grid; place-items: center; width: 24px; height: 24px; color: var(--blue); background: var(--white); border: 1px solid var(--blue); border-radius: 50%; font-size: .78rem; font-weight: 900; }
.help-button:hover::after { color: var(--white); background: var(--blue); }
.inverse-help::after { color: var(--blue); background: var(--green); border-color: var(--green); }

.sidebar-account { display: grid; grid-template-columns: 40px minmax(0,1fr) auto; align-items: center; gap: 10px; }
.sidebar-account button { width: 44px; height: 44px; color: var(--white); background: transparent; border: 0; }
.sidebar-account strong { color: var(--white); font-size: .82rem; line-height: 1.25; }

.app-content > .stepper,
.app-content > .two-column-form,
.app-content > .writing-shell,
.app-content > .review-layout { margin-left: 34px; margin-right: 34px; }
.stepper { list-style: none; margin-top: 32px; padding: 0; }
.stepper > li { position: relative; padding: 40px 10px 0; color: var(--muted); font-size: .84rem; font-weight: 750; text-align: center; }
.stepper > li::before { content: ""; position: absolute; top: 15px; left: 0; right: 0; height: 2px; background: var(--grey-300); }
.stepper > li::after { content: ""; position: absolute; top: 8px; left: 50%; width: 16px; height: 16px; transform: translateX(-50%); border: 3px solid var(--white); border-radius: 50%; background: var(--grey-500); box-shadow: 0 0 0 1px var(--grey-500); }
.stepper > li.active, .stepper > li.done { color: var(--blue); }
.stepper > li.active::after, .stepper > li.done::after { background: var(--blue); box-shadow: 0 0 0 1px var(--blue); }
.stepper > li.done::before { background: var(--blue); }
.stepper > li > span { display: none; }

.two-column-form { grid-template-columns: minmax(0,1fr) 310px; gap: 24px; align-items: start; }
.form-section { padding: 30px; }
.guidance-panel { height: fit-content; padding: 24px; }
.url-source-card { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(230px,.8fr); gap: 14px; margin-top: 20px; padding: 20px; background: var(--blue-50); border: 1px solid var(--blue-100); border-radius: var(--radius-md); }
.url-source-card > button, .url-source-card > small { align-self: end; }
.url-source-card > small { color: var(--muted); }
.field-error { grid-column: 1 / -1; margin: 0; color: var(--red); font-size: .9rem; font-weight: 750; }
.form-error-summary { margin: 12px 0 18px; padding: 12px 14px; background: #fff4f4; border: 1px solid var(--red); border-radius: var(--radius-sm); }
.url-source-list { margin-top: 12px; padding: 0 16px; background: var(--white); border: 1px solid var(--blue-100); border-radius: var(--radius-md); }
.source-list .file-row { grid-template-columns: 42px minmax(0,1fr) 30px 44px; }
.file-row > button { display: grid; place-items: center; width: 44px; height: 44px; color: var(--red); background: var(--red-100); border: 0; border-radius: 50%; font-size: 1.2rem; }

.writing-shell { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 24px; align-items: start; }
.writing-card { margin-top: 0; }
.writing-aside { display: grid; gap: 18px; }
.visual-card { overflow: hidden; background: var(--white); border: 1px solid var(--grey-200); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.visual-card img { width: 100%; height: 205px; object-fit: cover; }
.visual-card > div { padding: 20px; }
.visual-card strong { display: block; margin: 8px 0; color: var(--ink); font-size: 1.02rem; line-height: 1.3; }
.visual-card small { display: block; color: var(--muted); font-weight: 700; }
.language-tabs, .language-switch { display: inline-flex; align-items: center; gap: 4px; padding: 4px; background: var(--blue-50); border: 1px solid var(--blue-100); border-radius: 999px; }
.language-tabs > button:not(.help-button), .language-switch > button:not(.help-button) { min-width: 44px; min-height: 44px; color: var(--blue); background: transparent; border: 0; border-radius: 999px; font-weight: 850; }
.language-tabs > button.is-active, .language-switch > button.is-active { color: var(--white); background: var(--blue); }
.completion-line { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 20px; padding: 12px 16px; color: var(--blue); background: var(--green-100); border-left: 4px solid var(--green-700); }
.form-accordion { margin-top: 18px; background: var(--grey-50); border: 1px solid var(--grey-200); border-radius: var(--radius-md); }
.form-accordion summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 52px; padding: 12px 16px; color: var(--blue); cursor: pointer; font-weight: 850; }
.form-accordion summary span { color: var(--muted); font-size: .78rem; }
.form-accordion[open] .form-grid { padding: 4px 16px 18px; }

.review-layout { align-items: start; }
.review-summary { background: var(--white); border-left-color: var(--green-700); box-shadow: var(--shadow-sm); }
.program-editor { display: block; margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--grey-200); }
.ownership-card { margin-bottom: 16px; padding: 20px; color: var(--blue); background: var(--green-100); border: 1px solid rgba(105,116,0,.35); border-radius: var(--radius-md); }
.ownership-card ol { padding-left: 22px; }
.submit-panel { position: sticky; top: 112px; }
.legal-check { margin: 18px 0; }
.centered-state .center-card { width: min(760px,100%); padding: 50px; text-align: center; background: var(--white); border-radius: var(--radius-xl); box-shadow: var(--shadow-md); }
.next-steps > div { padding: 14px; background: var(--grey-50); border-radius: var(--radius-md); }

.dashboard-tools { align-items: end; }
.dashboard-field { margin: 0; }
.metric-grid.three { grid-template-columns: repeat(3,1fr); }
tr.attention-row[hidden] { display: none !important; }
.search-field { position: relative; display: block; min-width: min(340px,42vw); margin: 0; }
.search-field > span { position: absolute; z-index: 1; top: 50%; left: 14px; color: var(--muted); font-size: 1.05rem; transform: translateY(-50%); pointer-events: none; }
.search-field input { padding-left: 40px; }
.compact-select { min-width: 210px; margin: 0; }
.dashboard-tools input, .dashboard-tools select { height: 46px; }

.public-header-main { display: flex; align-items: center; justify-content: space-between; gap: 20px; max-width: var(--content); margin: auto; }
.public-header nav { max-width: var(--content); margin: auto; }
.public-header nav button { min-height: 44px; padding: 10px 0; color: var(--text); background: transparent; border: 0; border-bottom: 3px solid transparent; font-weight: 760; }
.public-header nav button:hover, .public-header nav button.active { color: var(--blue); border-bottom-color: var(--green-700); }
.public-header .menu-button { display: none; }

.catalogue-hero { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(300px,.7fr); align-items: center; gap: 54px; min-height: 330px; padding-top: 42px; padding-bottom: 42px; background: linear-gradient(115deg,#000091 0%,#00006d 72%,#17174a 100%); }
.catalogue-hero .kicker { color: var(--green); }
.catalogue-hero h1 { max-width: 760px; font-size: clamp(2.4rem,4.6vw,4.4rem); }
.catalogue-search { max-width: 820px; }
.catalogue-search-label { display: block; margin-top: 24px; margin-bottom: 8px; color: var(--white); font-weight: 800; }
.catalogue-search-field { position: relative; flex: 1 1 auto; min-width: 0; margin: 0; }
.catalogue-search-field > span { position: absolute; left: 16px; top: 13px; color: var(--blue); }
.catalogue-search input { padding-left: 42px; }
.catalogue-search .help-button { flex: 0 0 44px; width: 44px; min-width: 44px; height: 52px; padding: 0; border-radius: var(--radius-sm); }
.catalogue-visual { position: relative; overflow: hidden; min-height: 230px; border: 1px solid rgba(255,255,255,.3); border-radius: var(--radius-xl); box-shadow: var(--shadow-lg); }
.catalogue-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top,rgba(0,0,109,.82),transparent 62%); }
.catalogue-visual img { position: absolute; width: 100%; height: 100%; object-fit: cover; }
.catalogue-visual span { position: absolute; left: 22px; right: 22px; bottom: 18px; z-index: 1; color: var(--white); font-weight: 850; }

.filters { padding: 24px; background: var(--white); border-top: 6px solid var(--green-700); box-shadow: var(--shadow-sm); }
.filter-title { display: block; margin-bottom: 20px; }
.filter-title h2 { margin-bottom: 3px; font-size: 1.35rem; }
.filter-title p { color: var(--muted); font-size: .8rem; }
.filter-title .text-button { margin-top: 7px; }
.filters label { display: block; margin: 16px 0; color: var(--ink); font-weight: 780; }
.filters select { margin-top: 6px; border-color: var(--grey-700); }
.sort-control { min-width: 230px; margin: 0; }
.sort-control select { margin-top: 5px; }
.results-heading h2 { margin-bottom: 4px; }
.results-heading h2 strong { color: var(--ink); font-size: 1.65rem; }
.training-card { overflow: hidden; min-height: 430px; padding: 0 24px 24px; transition: transform .18s ease,box-shadow .18s ease; }
.card-visual { position: relative; height: 112px; margin: 0 -24px 20px; overflow: hidden; background: linear-gradient(135deg,var(--blue),var(--blue-700)); }
.card-visual::before, .card-visual::after { content: ""; position: absolute; border-radius: 50%; background: rgba(198,212,33,.22); }
.card-visual::before { width: 150px; height: 150px; right: -30px; top: -70px; }
.card-visual::after { width: 80px; height: 80px; right: 70px; bottom: -48px; }
.card-visual span { position: absolute; left: 20px; bottom: 17px; z-index: 1; color: var(--white); font-size: .83rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.visual-crisis { background: linear-gradient(135deg,#5b2182,#000091); }
.visual-lab { background: linear-gradient(135deg,#006a6f,#000091); }
.visual-health { background: linear-gradient(135deg,#18753c,#000091); }
.training-card dl { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; }
.training-card dl > div { padding: 10px; background: var(--grey-50); border-radius: var(--radius-sm); }
.training-card dt { color: var(--muted); font-size: .73rem; text-transform: uppercase; }
.training-card dd { margin: 2px 0 0; color: var(--ink); font-weight: 760; }
.no-results[hidden] { display: none !important; }

.detail-tools { display: flex; align-items: center; gap: 8px; max-width: var(--content); margin: 0 auto; padding: 22px 0 0; }
.back-link { min-height: 44px; padding: 8px 0; color: var(--blue); background: transparent; border: 0; font-weight: 850; }
.detail-hero { display: grid; grid-template-columns: minmax(0,1fr) 310px; align-items: end; gap: 44px; padding-top: 48px; padding-bottom: 48px; background: linear-gradient(120deg,#000091,#00006d); }
.detail-hero > aside { padding: 22px; color: var(--blue); background: var(--white); border-top: 5px solid var(--green); border-radius: var(--radius-md); box-shadow: var(--shadow-md); }
.detail-hero > aside span, .detail-hero > aside strong, .detail-hero > aside small { display: block; }
.detail-hero > aside span, .detail-hero > aside small { color: var(--muted); }
.detail-main > section { margin-bottom: 42px; }
.program-list { display: grid; gap: 12px; }
.program-list > div { display: grid; grid-template-columns: 44px minmax(0,1fr); gap: 16px; padding: 18px; background: var(--blue-50); border-left: 4px solid var(--blue); border-radius: var(--radius-sm); }
.program-list > div > span { display: grid; place-items: center; width: 40px; height: 40px; color: var(--blue); background: var(--green); border-radius: 50%; font-weight: 900; }
.practical-card { top: 92px; }
.public-footer { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; }
.public-footer > div { display: flex; gap: 18px; margin-left: auto; }
.public-footer button { min-height: 44px; padding: 9px 2px; color: var(--white); background: transparent; border: 0; text-decoration: underline; text-underline-offset: 4px; }

.modal-note { margin: 20px 0; padding: 16px 18px; color: var(--blue); background: var(--blue-50); border-left: 5px solid var(--blue); }
.modal-note p { margin: 4px 0 0; }
.toast { background: #18753c; }

.capture-mode .screen { overflow: visible; }

@media (max-width: 1020px) {
  .cover-architecture { grid-template-columns: 1fr; }
  .cover-architecture .architecture-arrow { transform: rotate(0deg); }
  .two-column-form, .writing-shell { grid-template-columns: 1fr; }
  .submit-panel { position: static; }
  .catalogue-hero { grid-template-columns: 1fr; }
  .catalogue-visual { display: none; }
  .filters { display: block; }
  .detail-tools { padding-left: 24px; padding-right: 24px; }
  .detail-hero { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
  .app-content > .stepper, .app-content > .two-column-form, .app-content > .writing-shell, .app-content > .review-layout { margin-left: 18px; margin-right: 18px; }
  .stepper > li { padding-left: 3px; padding-right: 3px; font-size: .72rem; }
  .stepper > li strong { display: block; line-height: 1.25; }
  .form-section, .centered-state .center-card { padding: 24px 18px; }
  .url-source-card { grid-template-columns: 1fr; }
  .dashboard-tools { width: 100%; align-items: stretch; flex-direction: column; }
  .search-field, .compact-select { width: 100%; min-width: 0; }
  .public-header-main { flex-wrap: wrap; padding: 8px 16px; }
  .public-header .compact-lockup { flex: 0 0 auto; gap: 8px; padding: 4px 0; }
  .compact-lockup > img:first-of-type { width: 72px; }
  .compact-lockup > img.logo-ensv { width: 112px; }
  .compact-lockup .logo-divider { height: 30px; }
  .public-header .menu-button { display: inline-grid; }
  .public-header nav { display: none; padding: 8px 18px 16px; flex-direction: column; align-items: stretch; gap: 0; }
  .public-header.menu-open nav { display: flex; }
  .public-header nav button { text-align: left; }
  .language-switch { margin-left: auto; }
  .catalogue-hero { min-height: 0; }
  .catalogue-search { flex-direction: column; }
  .catalogue-search .help-button { align-self: flex-start; }
  .results-heading { align-items: stretch; flex-direction: column; }
  .sort-control { min-width: 0; }
  .detail-tools { padding-left: 18px; padding-right: 18px; }
  .detail-hero { padding-top: 38px; padding-bottom: 38px; }
  .public-footer { align-items: flex-start; flex-direction: column; }
  .public-footer > div { margin-left: 0; flex-direction: column; }
}

/* Stabilisation accessibilité, états WordPress et responsive — 2026-08-27 */
.skip-link { position: fixed; top: 8px; left: 12px; z-index: 500; padding: 12px 16px; color: var(--white); background: var(--blue); border: 2px solid var(--green); border-radius: var(--radius-sm); font-weight: 850; transform: translateY(-160%); transition: transform .15s ease; }
.skip-link:focus { transform: translateY(0); }
.security-note p, .security-note strong { color: var(--blue); }
.screen, .app-content, .content-card { min-width: 0; }
.screen { overflow-x: clip; }
.content-card, .source-check, td, .tab-summary-list li { overflow-wrap: anywhere; }
.app-content > .content-card, .app-content > .demo-banner, .app-content > .editor-tab-panel, .app-content > .decision-grid, .app-content > .decision-note { margin-left: 34px; margin-right: 34px; }
.editor-workspace > .editor-split, .editor-workspace > .editor-tab-panel { margin-left: 34px; margin-right: 34px; }

input[type="checkbox"] { appearance: none; width: 44px; min-width: 44px; height: 44px; min-height: 44px; margin: 0; padding: 0; background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Crect x='1' y='1' width='22' height='22' rx='3' fill='white' stroke='%23000091' stroke-width='2'/%3E%3C/svg%3E") center / 24px 24px no-repeat; border: 0; box-shadow: none; cursor: pointer; }
input[type="checkbox"]:checked { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Crect x='1' y='1' width='22' height='22' rx='3' fill='%23000091' stroke='%23000091' stroke-width='2'/%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.legal-check, .check-row, .source-check, .modal-check { min-height: 44px; align-items: center; cursor: pointer; }
.legal-check input, .check-row input, .source-check input, .modal-check input { width: 44px; min-width: 44px; height: 44px; min-height: 44px; margin-top: 0; }

.field-with-help { display: grid; grid-template-columns: minmax(0,1fr) 44px; align-items: start; gap: 4px; min-width: 0; }
.field-with-help > label { min-width: 0; margin-bottom: 6px; }
.field-with-help > .help-button { align-self: start; margin: -10px 0 0; }
.filters .field-with-help { margin: 16px 0; }
.filters .field-with-help > label { margin: 0; }

.stepper > li { display: grid; justify-items: center; gap: 3px; padding: 0 10px 14px; }
.stepper > li::before { top: 21px; }
.stepper > li:first-child::before { left: 50%; }
.stepper > li:last-child::before { right: 50%; }
.stepper > li::after { display: none; }
.stepper > li > span { position: relative; z-index: 1; display: grid; place-items: center; width: 44px; height: 44px; color: var(--white); background: var(--grey-700); border: 4px solid var(--white); border-radius: 50%; box-shadow: 0 0 0 1px var(--grey-700); font-size: .88rem; font-weight: 900; }
.stepper > li.active > span, .stepper > li.done > span { background: var(--blue); box-shadow: 0 0 0 1px var(--blue); }
.stepper > li > strong { display: block; line-height: 1.25; }
.stepper > li > small { color: inherit; font-size: .72rem; font-weight: 700; }

.score-ring { grid-template-rows: 1fr; margin-bottom: 8px; }
.score-ring strong { font-size: 1.45rem; }
.score-label { display: block; margin: 0 auto 22px; color: var(--muted); font-size: .78rem; font-weight: 750; text-align: center; }
.editor-tab-panel { margin-top: 16px; padding: 28px; }
.editor-tab-panel > div:first-child { max-width: 760px; }
.tab-summary-list { display: grid; gap: 10px; margin: 24px 0 0; padding: 0; list-style: none; }
.tab-summary-list li { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 58px; padding: 12px 16px; background: var(--grey-50); border: 1px solid var(--grey-200); border-radius: var(--radius-sm); }
.tab-summary-list span { color: var(--muted); text-align: right; }
.tab-state { display: grid; gap: 5px; margin-top: 22px; padding: 18px; border-radius: var(--radius-sm); }
.tab-state.warning { color: var(--orange); background: var(--orange-100); border-left: 5px solid var(--orange); }
.compact-timeline { display: grid; gap: 16px; margin: 24px 0 0; padding-left: 24px; }
.compact-timeline li { padding-left: 8px; }
.compact-timeline span { display: block; margin-top: 4px; color: var(--muted); }

.status.danger { color: var(--red); background: var(--red-100); }
.decision-number.warning { color: var(--white); background: var(--orange); }
.publication-preview { margin: 20px 0; padding: 18px; text-align: left; background: var(--blue-50); border: 1px solid var(--blue-100); border-radius: var(--radius-md); }
.publication-preview h3 { margin: 12px 0 6px; font-size: 1.1rem; }
.publication-preview p { margin: 0; color: var(--muted); }
.modal-check { display: flex; gap: 12px; margin: 18px 0; padding: 10px 12px; color: var(--ink); background: var(--grey-50); border-radius: var(--radius-sm); }
.modal-check span { line-height: 1.45; }
.modal-reason { display: block; margin: 18px 0; }
.modal-reason > span { display: block; margin-bottom: 6px; }
.modal-validation { margin: 12px 0; padding: 10px 12px; color: var(--red); background: var(--red-100); border-left: 4px solid var(--red); font-weight: 750; }
.wordpress-state { min-height: calc(100vh - 54px); }
.state-icon { display: grid; place-items: center; width: 74px; height: 74px; margin: 0 auto 20px; color: var(--blue); background: var(--green-100); border-radius: 50%; font-size: 2rem; font-weight: 900; }
.state-icon.error { color: var(--red); background: var(--red-100); }
.pending-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin: 28px 0 12px; }

@media (max-width: 1020px) {
  .review-layout { grid-template-columns: 1fr; }
  .submit-panel { position: static; }
}

@media (max-width: 820px) {
  .app-content > .content-card, .app-content > .demo-banner, .app-content > .editor-tab-panel, .app-content > .decision-grid, .app-content > .decision-note { margin-left: 18px; margin-right: 18px; }
  .editor-workspace > .editor-split, .editor-workspace > .editor-tab-panel { margin-left: 18px; margin-right: 18px; }
  .editor-tabs { display: grid; grid-template-columns: repeat(auto-fit,minmax(104px,1fr)); gap: 4px; }
  .editor-tabs button { padding-left: 8px; padding-right: 8px; }
  .editor-actions { flex-wrap: wrap; overflow: visible; }
  .editor-actions button { flex: 1 1 220px; white-space: normal; }
  .card-toolbar, .batch-title, .batch-actions, .batch-actions > div, .publication-title, .summary-header { align-items: stretch; flex-direction: column; }
  .batch-meta, .toolbar-actions { flex-wrap: wrap; }
  .source-check-grid { grid-template-columns: 1fr; }
  .table-wrap { overflow: visible; background: transparent; border: 0; box-shadow: none; }
  table, thead, tbody, tr, td { display: block; width: 100%; min-width: 0; }
  thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
  tbody { display: grid; gap: 14px; }
  tbody tr { padding: 10px 14px; background: var(--white); border: 1px solid var(--grey-200); border-left: 5px solid var(--blue); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
  tbody td { display: grid; grid-template-columns: minmax(112px,.42fr) minmax(0,1fr); gap: 12px; align-items: center; min-height: 44px; padding: 8px 0; border-bottom: 1px solid var(--grey-200); }
  tbody td:last-child { display: block; border-bottom: 0; }
  tbody td::before { color: var(--muted); font-size: .72rem; font-weight: 850; letter-spacing: .03em; text-transform: uppercase; }
  tbody td:nth-child(1)::before { content: "Référence"; }
  tbody td:nth-child(2)::before { content: "Dépôt"; }
  tbody td:nth-child(3)::before { content: "Sources"; }
  tbody td:nth-child(4)::before { content: "Statut"; }
  tbody td:nth-child(5)::before { content: "Dernière activité"; }
  tbody td:last-child::before { display: none; }
  tbody .row-action { width: 100%; min-height: 44px; margin-top: 4px; }
  .source-check { display: grid; grid-template-columns: 44px 44px minmax(0,1fr); }
  .source-check .quality { grid-column: 2 / -1; justify-self: start; }
  .tab-summary-list li { align-items: flex-start; flex-direction: column; gap: 4px; }
  .tab-summary-list span { text-align: left; }
  .decision-grid { grid-template-columns: 1fr; }
  .pending-actions { flex-direction: column; }
  .pending-actions button { width: 100%; }
}

@media (max-width: 640px) {
  .metric-grid.three { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .stepper { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .stepper > li {
    grid-template-columns: 44px minmax(0,1fr);
    grid-template-rows: auto auto;
    justify-items: start;
    column-gap: 12px;
    padding: 8px 0;
    text-align: left;
  }
  .stepper > li::before { display: none; }
  .stepper > li > span { grid-column: 1; grid-row: 1 / 3; width: 44px; height: 44px; }
  .stepper > li > strong,
  .stepper > li > small { grid-column: 2; min-width: 0; font-size: .875rem; overflow-wrap: anywhere; }
  .training-card dl { grid-template-columns: minmax(0,1fr); }
  [data-screen="editor-detail"] .editor-tabs { grid-template-columns: minmax(0,1fr); }
  tbody td { grid-template-columns: 100px minmax(0,1fr); }
  html[data-text-scale="200"] tbody td {
    grid-template-columns: minmax(0,1fr);
    align-items: start;
    gap: 4px;
  }
  html[data-text-scale="200"] tbody td::before {
    max-width: 100%;
    overflow-wrap: normal;
    word-break: normal;
  }
  .modal-backdrop { padding: 10px; }
  .modal { padding: 26px 16px 18px; }
  .button-row.end { flex-direction: column-reverse; }
  .button-row.end button { width: 100%; }
  html[data-text-scale="200"] .completion-line,
  html[data-text-scale="200"] .form-accordion summary { align-items: flex-start; flex-direction: column; }
  html[data-text-scale="200"] .form-accordion summary { gap: 4px; }
  html[data-text-scale="200"] .program-list > div { grid-template-columns: 1fr; }
}

/* Passe accessibilité et visuels — 2026-08-27 */
html[data-text-scale="90"] { font-size: 90%; }
html[data-text-scale="100"] { font-size: 100%; }
html[data-text-scale="125"] { font-size: 125%; }
html[data-text-scale="150"] { font-size: 150%; }
html[data-text-scale="200"] { font-size: 200%; }
body { font-size: 1rem; }

.accessibility-launcher {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 190;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 48px;
  padding: 8px 14px 8px 8px;
  color: var(--white);
  background: var(--blue);
  border: 2px solid var(--green);
  border-radius: 999px;
  box-shadow: var(--shadow-lg);
}
.accessibility-launcher > span { display: grid; place-items: center; width: 32px; height: 32px; color: var(--blue); background: var(--green); border-radius: 50%; font-weight: 900; }
.accessibility-launcher > strong { color: inherit; font-size: .86rem; }
.prototype-actions .accessibility-launcher { position: static; inset: auto; min-height: 40px; padding: 4px 10px 4px 4px; box-shadow: none; }
.accessibility-panel {
  position: fixed;
  right: 18px;
  bottom: 78px;
  z-index: 195;
  width: min(430px, calc(100vw - 24px));
  max-height: min(720px, calc(100vh - 100px));
  overflow: auto;
  padding: 24px;
  color: var(--text);
  background: var(--white);
  border: 2px solid var(--blue);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
}
.accessibility-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.accessibility-panel h2 { margin-bottom: 4px; font-size: 1.55rem; }
.accessibility-panel fieldset { margin: 22px 0; padding: 0; border: 0; }
.accessibility-panel legend { margin-bottom: 9px; color: var(--ink); font-weight: 850; }
.accessibility-options { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 6px; }
.accessibility-options button { min-height: 44px; padding: 7px 5px; color: var(--blue); background: var(--blue-50); border: 1px solid var(--blue); border-radius: var(--radius-sm); font-weight: 800; }
.accessibility-options button[aria-pressed="true"] { color: var(--white); background: var(--blue); box-shadow: 0 0 0 2px var(--green); }
.accessibility-toggles { display: grid; gap: 8px; margin-bottom: 20px; }
.accessibility-toggles > button { display: grid; gap: 2px; min-height: 58px; padding: 10px 14px; color: var(--ink); text-align: left; background: var(--grey-50); border: 1px solid var(--grey-700); border-radius: var(--radius-sm); }
.accessibility-toggles > button::before { content: "○"; grid-row: 1 / span 2; align-self: center; margin-right: 10px; color: var(--blue); font-size: 1.3rem; }
.accessibility-toggles > button { grid-template-columns: auto minmax(0,1fr); }
.accessibility-toggles > button[aria-pressed="true"] { color: var(--blue); background: var(--green-100); border-color: var(--blue); }
.accessibility-toggles > button[aria-pressed="true"]::before { content: "●"; }
.accessibility-toggles span, .accessibility-toggles small { grid-column: 2; }
.accessibility-toggles span { font-weight: 850; }
.accessibility-toggles small { color: var(--muted); }

html[data-reading-spacing="comfortable"] body { line-height: 1.85; letter-spacing: .025em; word-spacing: .08em; }
html[data-reading-spacing="comfortable"] p,
html[data-reading-spacing="comfortable"] li { max-width: 78ch; }
html[data-reduce-motion="true"] *,
html[data-reduce-motion="true"] *::before,
html[data-reduce-motion="true"] *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
html[data-contrast="high"] {
  --text: #161616;
  --muted: #2a2a2a;
  --grey-700: #3a3a3a;
  --grey-500: #5a5a5a;
  --grey-300: #8b8b8b;
  --blue-50: #ffffff;
  --green-100: #f7f9c9;
}
html[data-contrast="high"] .catalogue-hero,
html[data-contrast="high"] .detail-hero,
html[data-contrast="high"] .login-brand-panel,
html[data-contrast="high"] .validated-hero { background-color: #00006d; }
html[data-contrast="high"] .catalogue-hero p,
html[data-contrast="high"] .cover-copy p,
html[data-contrast="high"] .detail-hero p,
html[data-contrast="high"] .login-brand-panel p { color: var(--white); }
html[data-contrast="high"] :focus-visible {
  outline: 3px solid #fff;
  outline-offset: 2px;
  box-shadow: 0 0 0 6px #000091 !important;
}

.catalogue-hero {
  position: relative;
  display: block;
  min-height: 540px;
  padding-top: 64px;
  padding-bottom: 64px;
  background:
    linear-gradient(90deg, rgba(0,0,52,.72) 0%, rgba(0,0,82,.34) 58%, rgba(0,0,52,.12) 100%),
    url("assets/generated/hero-catalogue-ensv.webp") center / cover no-repeat;
}
.catalogue-hero-copy {
  position: relative;
  z-index: 1;
  width: min(790px,100%);
  padding: 36px;
  color: var(--white);
  background: rgba(0,0,145,.92);
  border: 1px solid rgba(255,255,255,.34);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
}
.catalogue-hero h1 { max-width: 720px; font-size: clamp(2.5rem,5vw,4.6rem); }
.catalogue-hero p { max-width: 700px; color: var(--white); }
.catalogue-hero-caption { display: block; margin-top: 18px; color: var(--white); font-weight: 750; }
.catalogue-search { display: grid; grid-template-columns: minmax(0,1fr) auto 52px; align-items: stretch; gap: 0; max-width: 100%; }
.catalogue-search-field { min-width: 0; }
.catalogue-search input { width: 100%; height: 52px; min-height: 52px; border-radius: var(--radius-sm) 0 0 var(--radius-sm); }
.catalogue-search > .primary-button { display: inline-flex; align-items: center; justify-content: center; height: 52px; min-height: 52px; padding-block: 0; border-radius: 0; line-height: 1; }
.catalogue-search > .help-button { align-self: stretch; width: 52px; min-width: 52px; height: 52px; margin: 0; padding: 0; background: var(--green); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; }
.catalogue-search > .help-button::after { width: 28px; height: 28px; }

.card-visual { height: 180px; background: var(--blue-700); }
.card-visual::before { z-index: 1; inset: 0; width: auto; height: auto; border-radius: 0; background: linear-gradient(to top,rgba(0,0,52,.9),rgba(0,0,52,.08) 68%); }
.card-visual::after { display: none; }
.card-visual img { width: 100%; height: 100%; object-fit: cover; }
.card-visual span { z-index: 2; color: var(--white); text-shadow: 0 1px 3px rgba(0,0,0,.8); }
.training-card { min-height: 500px; }

.eyebrow,
.screen-label,
.breadcrumb,
.training-card dt,
.practical-card dt,
.stepper > li > strong,
.stepper > li > small,
.form-accordion summary span,
th,
tbody td::before,
.score-label,
.quality-pane .version-card > span { font-size: .875rem; }
small,
.kicker,
.status,
.state,
.version-badge,
.topic-tag,
.language-tag,
.prototype-bar,
.prototype-actions,
.header-meta,
.task-meta,
.metric-card > span,
.card-provider,
.catalogue-hero-caption,
.accessibility-launcher > strong,
.sidebar-account strong,
.help-button::after { font-size: .875rem; }

.detail-hero { align-items: stretch; grid-template-columns: minmax(0,1.2fr) minmax(300px,.8fr); }
.detail-hero-copy { align-self: center; }
.detail-hero-aside { overflow: hidden; padding: 0; color: var(--ink); background: var(--white); border-top: 5px solid var(--green); border-radius: var(--radius-md); box-shadow: var(--shadow-md); }
.detail-hero-aside img { width: 100%; height: 220px; object-fit: cover; }
.detail-hero-aside > div { padding: 20px 22px; }
.detail-hero-aside span, .detail-hero-aside strong, .detail-hero-aside small { display: block; }
.detail-hero-aside span, .detail-hero-aside small { color: var(--muted); }

html[data-text-scale="150"] .private-app,
html[data-text-scale="200"] .private-app { grid-template-columns: 1fr; }
html[data-text-scale="150"] .sidebar,
html[data-text-scale="200"] .sidebar { position: static; width: 100%; height: auto; }
html[data-text-scale="150"] .catalogue-shell,
html[data-text-scale="200"] .catalogue-shell,
html[data-text-scale="150"] .detail-body,
html[data-text-scale="200"] .detail-body,
html[data-text-scale="150"] .two-column-form,
html[data-text-scale="200"] .two-column-form,
html[data-text-scale="150"] .writing-shell,
html[data-text-scale="200"] .writing-shell,
html[data-text-scale="150"] .review-layout,
html[data-text-scale="200"] .review-layout,
html[data-text-scale="150"] .editor-split,
html[data-text-scale="200"] .editor-split { grid-template-columns: 1fr; }
html[data-text-scale="150"] .training-grid,
html[data-text-scale="200"] .training-grid,
html[data-text-scale="150"] .decision-grid,
html[data-text-scale="200"] .decision-grid { grid-template-columns: 1fr; }
html[data-text-scale="150"] .table-wrap,
html[data-text-scale="200"] .table-wrap { overflow-x: auto; }
html[data-text-scale="150"] .training-card .card-topline,
html[data-text-scale="200"] .training-card .card-topline { align-items: flex-start; flex-wrap: wrap; }
html[data-text-scale="150"] .training-card dl,
html[data-text-scale="200"] .training-card dl { grid-template-columns: 1fr; }
html[data-text-scale="200"] .topic-tag,
html[data-text-scale="200"] .language-tag,
html[data-text-scale="200"] .catalogue-hero .kicker { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
html[data-text-scale="200"] .catalogue-hero .kicker { display: flex; flex-wrap: wrap; }
html[data-text-scale="200"] .catalogue-hero h1,
html[data-text-scale="200"] .training-card h3,
html[data-text-scale="200"] .training-card > p,
html[data-text-scale="200"] .detail-hero h1,
html[data-text-scale="200"] .detail-hero p,
html[data-text-scale="200"] .program-list p {
  max-width: 100%;
  overflow-wrap: anywhere;
}
html[data-text-scale="200"] .detail-hero-copy,
html[data-text-scale="200"] .detail-hero-aside { min-width: 0; }

/* À 200 %, une barre d'actions haute ne doit jamais recouvrir le formulaire. */
html[data-text-scale="200"] .sticky-actions { position: static; }

/* Les grilles publiques doivent céder sous leur contenu min-content à 320 px. */
.cover-principles > article,
.two-column-form > *,
.writing-shell > *,
.detail-body,
.detail-main,
.detail-main > section,
.program-list,
.program-list > div,
.program-list > div > p,
.practical-card { min-width: 0; }
html[data-text-scale="200"] .cover-principles h2,
html[data-text-scale="200"] .cover-principles p,
html[data-text-scale="200"] .detail-main h2,
html[data-text-scale="200"] .detail-main p,
html[data-text-scale="200"] .detail-main li,
html[data-text-scale="200"] .practical-card,
html[data-text-scale="200"] .practical-card button { overflow-wrap: anywhere; }

/* Reflow renforcé : les composants composés peuvent réellement rétrécir. */
.stepper,
.stepper > li,
.stepper > li > strong,
.stepper > li > small,
.state,
.language-tag,
.detail-hero,
.detail-hero-copy,
.detail-hero-copy > *,
.next-steps,
.next-steps > div,
.next-steps > div > div,
.login-card,
.login-card .field-between,
[data-screen="editor-detail"] .editor-topbar,
[data-screen="editor-detail"] .editor-topbar > *,
[data-screen="editor-detail"] .editor-actions { min-width: 0; }

.stepper > li > strong,
.stepper > li > small,
.state-flow .state,
.training-card .topic-tag,
.training-card .language-tag,
.detail-hero-copy > *,
.next-steps > div > div,
.login-card .field-between > * { max-width: 100%; overflow-wrap: anywhere; }

.state-flow .state,
.training-card .topic-tag,
.training-card .language-tag { white-space: normal; }
.catalogue-hero .kicker { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }

.training-card .card-topline,
.login-card .field-between,
[data-screen="editor-detail"] .editor-topbar,
[data-screen="editor-detail"] .editor-actions { flex-wrap: wrap; }

.login-card .field-between .text-button { white-space: normal; }
[data-screen="editor-detail"] .editor-topbar > div:not(.editor-actions) { flex: 1 1 360px; max-width: 100%; }
[data-screen="editor-detail"] .editor-topbar h1 { max-width: 100%; overflow-wrap: anywhere; }
[data-screen="editor-detail"] .editor-actions { flex: 1 1 100%; width: auto; max-width: 100%; }
[data-screen="editor-detail"] .editor-actions > button { flex: 1 1 190px; max-width: 100%; white-space: normal; }

.review-layout,
.review-layout > *,
.submit-panel,
.submit-panel .warning-panel,
.detail-main,
.detail-main > section,
.detail-main ul,
.training-card,
.training-card dl,
.training-card dl > div,
.catalogue-hero-copy,
.centered-state,
.centered-state .center-card { min-width: 0; max-width: 100%; }

.review-layout h1,
.review-layout h2,
.review-layout h3,
.review-layout p,
.review-layout li,
.detail-main h2,
.detail-main p,
.detail-main li,
.training-card h3,
.training-card p,
.training-card dt,
.training-card dd,
.catalogue-hero-copy h1,
.catalogue-hero-copy p,
.centered-state h1,
.centered-state h2,
.centered-state p,
.centered-state strong,
.centered-state small { max-width: 100%; overflow-wrap: anywhere; }

[data-screen="partner-complement"] .attention-message,
[data-screen="partner-complement"] .attention-message > div,
[data-screen="editor-detail"] .editor-workspace,
[data-screen="editor-detail"] .editor-tabs,
[data-screen="editor-detail"] .editor-tabs > button,
[data-screen="editor-detail"] .preview-toolbar,
[data-screen="editor-detail"] .preview-toolbar > *,
[data-screen="editor-detail"] .fake-document,
[data-screen="editor-detail"] .source-preview { min-width: 0; max-width: 100%; }

[data-screen="partner-complement"] .attention-message p,
[data-screen="partner-complement"] .attention-message strong,
[data-screen="partner-complement"] .attention-message small,
[data-screen="editor-detail"] .editor-tabs > button,
[data-screen="editor-detail"] .preview-toolbar > *,
[data-screen="editor-detail"] .fake-document p,
[data-screen="editor-detail"] .source-preview span { overflow-wrap: anywhere; white-space: normal; }

[data-screen="editor-detail"] .editor-tabs,
[data-screen="editor-detail"] .preview-toolbar { flex-wrap: wrap; }

.cover-copy,
.cover-architecture,
.architecture-card,
.architecture-card > div,
.split-login > *,
.login-brand-panel > *,
.sidebar-account > div,
.app-header > *,
.editor-topbar > *,
.header-buttons,
.editor-actions,
.batch-title > *,
.publication-title > *,
.editor-workspace,
.editor-tabs,
.editor-split,
.source-pane,
.form-pane,
.quality-pane,
.state-machine,
.state-flow { min-width: 0; }

.sidebar-account strong,
.sidebar-account small { max-width: 100%; overflow-wrap: anywhere; }

.centered-state { grid-template-columns: minmax(0,1fr); }
.centered-state .center-card { min-width: 0; max-width: 100%; }
.review-layout > * { min-width: 0; max-width: 100%; }
.editor-topbar > .status { flex-shrink: 0; }

/* Le libellé de connexion est un état d'en-tête, pas la grille homonyme. */
.app-header > .sync-state {
  display: inline-flex;
  grid-template-columns: none;
  align-items: center;
  max-width: 100%;
}

@media (max-width: 1100px) {
  .editor-split { grid-template-columns: 1fr; }
  .source-pane, .form-pane, .quality-pane { min-height: 0; }
}

@media (max-width: 820px) {
  .sidebar-account { display: none; }
  .app-header, .editor-topbar { align-items: flex-start; flex-wrap: wrap; }
  .app-header h1, .editor-topbar h1,
  .status, .draft-state, .app-header > .sync-state {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .header-buttons, .editor-actions { width: 100%; flex-wrap: wrap; }
  .header-buttons > button, .editor-actions > button { flex: 1 1 180px; max-width: 100%; }
  .editor-topbar > .status { flex-shrink: 1; }
  .login-card { min-width: 0; width: 100%; }
  .login-brand-panel h1, .login-brand-panel p, .security-note { overflow-wrap: anywhere; }
  .centered-state { padding-left: 12px; padding-right: 12px; }
  .centered-state .center-card { width: 100%; }
  .preview-toolbar { flex-wrap: wrap; }
  .preview-toolbar > * { min-width: 0; max-width: 100%; }
}

html[data-text-scale="200"] .cover-copy h1,
html[data-text-scale="200"] .cover-copy .lead,
html[data-text-scale="200"] .cover-architecture strong,
html[data-text-scale="200"] .cover-architecture p,
html[data-text-scale="200"] .app-header h1,
html[data-text-scale="200"] .editor-topbar h1,
html[data-text-scale="200"] .editor-tabs button,
html[data-text-scale="200"] .fake-document p,
html[data-text-scale="200"] .centered-state h1,
html[data-text-scale="200"] .centered-state p,
html[data-text-scale="200"] .task-list strong {
  max-width: 100%;
  overflow-wrap: anywhere;
}

html[data-text-scale="200"] .app-header,
html[data-text-scale="200"] .editor-topbar { align-items: flex-start; flex-wrap: wrap; }
html[data-text-scale="200"] .header-buttons,
html[data-text-scale="200"] .editor-actions { width: 100%; flex-wrap: wrap; }
html[data-text-scale="200"] .header-buttons > button,
html[data-text-scale="200"] .editor-actions > button { flex: 1 1 220px; max-width: 100%; }
html[data-text-scale="200"] .status,
html[data-text-scale="200"] .state,
html[data-text-scale="200"] .draft-state,
html[data-text-scale="200"] .app-header > .sync-state {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}
html[data-text-scale="200"] .editor-topbar > .status { flex-shrink: 1; }

html[data-text-scale="200"] .stepper { grid-template-columns: 1fr; gap: 12px; }
html[data-text-scale="200"] .stepper > li {
  grid-template-columns: 44px minmax(0,1fr);
  grid-template-rows: auto auto;
  justify-items: start;
  column-gap: 12px;
  padding: 8px 0;
  text-align: left;
}
html[data-text-scale="200"] .stepper > li::before { display: none; }
html[data-text-scale="200"] .stepper > li > span { grid-row: 1 / 3; }
html[data-text-scale="200"] .stepper > li > strong,
html[data-text-scale="200"] .stepper > li > small { grid-column: 2; min-width: 0; overflow-wrap: anywhere; }

html[data-text-scale="200"] .editor-tabs {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(180px,1fr));
  gap: 4px;
}
html[data-text-scale="200"] .state-machine,
html[data-text-scale="200"] .state-flow,
html[data-text-scale="200"] .warning-panel,
html[data-text-scale="200"] .warning-panel p,
html[data-text-scale="200"] .preview-toolbar > span,
html[data-text-scale="200"] .fake-document h3,
html[data-text-scale="200"] .draft-banner > div,
html[data-text-scale="200"] .draft-banner strong,
html[data-text-scale="200"] .draft-banner p { min-width: 0; overflow-wrap: anywhere; }

html[data-text-scale="200"] .task-list > button {
  grid-template-columns: 38px minmax(0,1fr) 24px;
  align-items: start;
}
html[data-text-scale="200"] .task-list > button > .task-icon { grid-column: 1; grid-row: 1 / 3; }
html[data-text-scale="200"] .task-list > button > div { grid-column: 2; grid-row: 1; }
html[data-text-scale="200"] .task-list > button > .status { grid-column: 2; grid-row: 2; justify-self: start; }
html[data-text-scale="200"] .task-list > button > b:last-child { grid-column: 3; grid-row: 1 / 3; align-self: center; }
html[data-text-scale="150"] .prototype-actions > button:not(#accessibility-launcher),
html[data-text-scale="200"] .prototype-actions > button:not(#accessibility-launcher) { display: none; }

@media (max-width: 1020px) {
  .catalogue-hero { min-height: 500px; }
  .detail-hero { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
  .catalogue-hero { min-height: 0; padding: 28px 18px; background-position: 62% center; }
  .catalogue-hero-copy { padding: 26px 20px; }
  .catalogue-hero h1 { font-size: clamp(2.15rem,12vw,3.2rem); }
  .catalogue-search { grid-template-columns: minmax(0,1fr) 52px; gap: 8px 0; }
  .catalogue-search-field { grid-column: 1 / -1; }
  .catalogue-search input { border-radius: var(--radius-sm); }
  .catalogue-search > .primary-button { width: 100%; border-radius: var(--radius-sm) 0 0 var(--radius-sm); }
  .catalogue-search > .help-button { align-self: stretch; border-radius: 0 var(--radius-sm) var(--radius-sm) 0; }
  .catalogue-search > .help-button::after { margin: auto; }
  .card-visual { height: 200px; }
  .detail-hero-aside img { height: 200px; }
  .accessibility-launcher { right: 12px; bottom: 12px; }
  .accessibility-launcher > strong { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .accessibility-launcher { width: 52px; padding: 8px; }
  .prototype-actions .accessibility-launcher { width: 52px; min-width: 52px; padding: 4px; }
  .accessibility-panel { right: 12px; bottom: 74px; padding: 20px 16px; }
  .accessibility-options { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 390px) {
  .catalogue-hero-copy { padding: 22px 16px; }
  .training-card { min-height: 0; }
}

@media (prefers-contrast: more) {
  :root {
    --text: #161616;
    --muted: #2a2a2a;
    --grey-700: #3a3a3a;
    --grey-500: #595959;
  }
  :focus-visible {
    outline: 3px solid #fff;
    outline-offset: 2px;
    box-shadow: 0 0 0 6px #000091 !important;
  }
  .content-card, .training-card, input, select, textarea, button { border-color: currentColor; }
}

@media (forced-colors: active) {
  * { box-shadow: none !important; text-shadow: none !important; }
  button, a, input, select, textarea { forced-color-adjust: auto; }
  .catalogue-hero-copy, .detail-hero, .login-brand-panel, .validated-hero { border: 2px solid CanvasText; }
  .card-visual img, .detail-hero-aside img { forced-color-adjust: none; }
  .status, .topic-tag, .language-tag { border: 1px solid currentColor; }
  :focus-visible { outline: 3px solid Highlight; outline-offset: 2px; box-shadow: none !important; }
}


/* ============================================================================
   Évolutions du 9 septembre 2026 — arbitrages ENSV-FVI (IA facultative, fiche
   navette, filtres et fiche enrichis, catalogue bilingue, création directe,
   duplication / archivage, marque Partenariat FVI)
   ========================================================================== */

/* Barre de maquette : le libellé plus long doit pouvoir se replier (320 px, zoom 200 %) */
.prototype-bar > div:first-child { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.prototype-bar > div:first-child > strong { margin-right: 6px; }
.prototype-actions { flex: 0 0 auto; }

/* Couverture : quatre principes, bouton catalogue */
.cover-principles { grid-template-columns: repeat(4, minmax(0,1fr)); }
.cover-principles > article { min-width: 0; }
.cover-principles h2, .cover-principles p, .cover-copy p, .cover-copy .button-row > button { overflow-wrap: anywhere; max-width: 100%; }
@media (max-width: 1180px) { .cover-principles { grid-template-columns: repeat(2, minmax(0,1fr)); } }
.secondary-button.inverse { color: var(--blue); background: var(--white); border-color: var(--white); }
.secondary-button.inverse:hover { background: var(--green-100); }

/* Bandeau de principe dans les applications */
.app-content > .principle-banner { display: flex; align-items: flex-start; gap: 14px; margin: 18px 34px 0; }
.app-content > .principle-banner > span:first-child { flex: 0 0 auto; display: grid; place-items: center; width: 36px; height: 36px; color: var(--blue); background: var(--green-100); border-radius: 50%; font-weight: 900; }
.app-content > .principle-banner > div { flex: 1 1 auto; min-width: 0; }
.app-content > .principle-banner p { margin: 4px 0 0; color: var(--muted); }
.app-content > .principle-banner > .text-button { flex: 0 1 auto; min-width: 0; max-width: 100%; align-self: center; white-space: normal; text-align: left; }
.app-header { flex-wrap: wrap; }
.app-header > .header-buttons { flex-wrap: wrap; justify-content: flex-end; min-width: 0; }
.app-header > .header-buttons > button:not(.icon-button) { max-width: 100%; white-space: normal; }

/* Sources : badges, fichiers signalés, fiche navette, pages max */
.inline-badge { display: inline-block; padding: 1px 6px; margin-right: 2px; color: var(--blue); background: var(--blue-100); border-radius: 999px; font-size: .78rem; font-weight: 850; letter-spacing: .04em; vertical-align: middle; }
.file-check.warning { color: var(--orange); background: var(--orange-100); }
.file-row.is-warning small { color: var(--orange); font-weight: 700; }
.navette-card { display: grid; gap: 16px; margin-top: 20px; padding: 20px; background: var(--green-100); border: 1px solid rgba(105,116,0,.35); border-radius: var(--radius-md); }
.navette-copy { display: flex; align-items: flex-start; gap: 14px; min-width: 0; }
.navette-copy > div { min-width: 0; }
.navette-copy h3 { margin: 0 0 6px; color: var(--blue); font-size: 1.05rem; }
.navette-copy p { margin: 0; color: var(--text); }
.navette-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.navette-actions button { flex: 1 1 240px; }
.url-source-card { grid-template-columns: repeat(2, minmax(0,1fr)); }
.url-source-card > .field-with-help:first-child { grid-column: 1 / -1; }
.url-source-card > .field-with-help { min-width: 0; }

/* Bandeau d'état de l'assistance IA (sources) */
.ai-strip { display: grid; grid-template-columns: 36px minmax(0,1fr); gap: 12px; align-items: start; margin: 18px 0; padding: 14px 16px; color: var(--blue); background: var(--white); border: 1px solid var(--blue-100); border-radius: var(--radius-md); }
.ai-strip > span { display: grid; place-items: center; width: 36px; height: 36px; color: var(--blue); background: var(--green); border-radius: 50%; font-weight: 900; }
.ai-strip strong { display: block; color: var(--ink); }
.ai-strip p { margin: 4px 0 0; color: var(--text); font-size: .9rem; }
.ai-strip.is-off > span { color: var(--grey-700); background: var(--grey-200); }
.ai-strip.is-exhausted { border-color: var(--orange); background: var(--orange-100); }
.ai-strip.is-exhausted > span { color: var(--white); background: var(--orange); }

/* Panneau de préparation de la fiche (étape Informations) */
.app-content > .preparation-panel { margin: 0 34px 24px; }
.preparation-panel { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 16px; align-items: start; padding: 22px 24px; background: var(--white); border: 1px solid var(--blue-100); border-left: 6px solid var(--green-700); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.preparation-panel > span:first-child { display: grid; place-items: center; width: 48px; height: 48px; color: var(--blue); background: var(--green); border-radius: 50%; font-size: 1.3rem; font-weight: 900; }
.preparation-panel .eyebrow { margin-bottom: 6px; }
.preparation-panel h2 { margin-bottom: 8px; font-size: 1.3rem; }
.preparation-panel p { color: var(--text); }
.preparation-facts { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.preparation-facts li { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; color: var(--blue); background: var(--blue-50); border: 1px solid var(--blue-100); border-radius: 999px; font-size: .85rem; font-weight: 750; }
.preparation-facts li.warn { color: var(--orange); background: var(--orange-100); border-color: rgba(179,64,0,.3); }
.preparation-facts li.ok { color: var(--success); background: var(--success-100); border-color: rgba(24,117,60,.3); }
.preparation-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 16px; }
.preparation-actions .ghost-button, .preparation-actions .secondary-button { min-height: 40px; padding: 6px 14px; }
.preparation-panel.is-off { border-left-color: var(--grey-500); }
.preparation-panel.is-off > span:first-child { color: var(--grey-700); background: var(--grey-200); }
.preparation-panel.is-exhausted { border-left-color: var(--orange); background: var(--orange-100); border-color: rgba(179,64,0,.3); }
.preparation-panel.is-exhausted > span:first-child { color: var(--white); background: var(--orange); }
.credit-meter { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; flex: 1 1 240px; min-width: 0; font-size: .85rem; font-weight: 750; color: var(--blue); }
.credit-meter .meter { flex: 1 1 100%; }
.completion-line strong { flex: 0 0 auto; white-space: nowrap; }

/* Sources IA sous les champs */
.field-source { display: flex; align-items: flex-start; gap: 6px; margin-top: 6px; color: var(--muted); font-size: .8rem; font-weight: 600; line-height: 1.4; }
.field-source::before { content: "✦"; flex: 0 0 auto; color: var(--green-700); font-weight: 900; }
.field-source.is-empty { color: var(--orange); }
.field-source.is-empty::before { content: "○"; color: var(--orange); }
.field-source.is-conflict { color: var(--orange); font-weight: 750; }
.field-source.is-conflict::before { content: "!"; color: var(--orange); }
.translation-note { margin: -8px 0 16px; padding: 10px 14px; color: var(--blue); background: var(--blue-50); border-left: 4px solid var(--blue); font-size: .9rem; }
.ai-review-note { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 16px; padding: 12px 14px; color: var(--blue); background: var(--green-100); border: 1px solid rgba(105,116,0,.3); border-radius: var(--radius-sm); font-size: .9rem; }
.ai-review-note > span { flex: 0 0 auto; font-weight: 900; }
.review-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.review-grid dd { margin: 0; overflow-wrap: anywhere; }

/* Relecture éditoriale */
.field-alert.ai { color: var(--blue); background: var(--green-100); border-left-color: var(--green-700); }
.ai-status-button { text-align: left; }

/* Tableaux des contenus et journaux */
.contents-table table { min-width: 900px; }
.contents-table td:nth-child(5) { overflow-wrap: normal; white-space: nowrap; }
.settings-grid > .content-card.span-2 { grid-column: 1 / -1; }
.row-actions { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.row-action.danger { color: var(--red); }
.contents-table .status { white-space: normal; }

/* Création directe : méthodes */
.method-card { margin-top: 18px; }
.method-options { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; }
.method-option { display: grid; gap: 6px; min-height: 96px; padding: 16px 18px 16px 44px; position: relative; color: var(--ink); text-align: left; background: var(--grey-50); border: 1px solid var(--grey-300); border-radius: var(--radius-md); }
.method-option::before { content: ""; position: absolute; top: 18px; left: 16px; width: 18px; height: 18px; border: 2px solid var(--blue); border-radius: 50%; background: var(--white); }
.method-option.is-selected { color: var(--blue); background: var(--blue-50); border-color: var(--blue); box-shadow: 0 0 0 2px var(--green); }
.method-option.is-selected::before { background: radial-gradient(circle, var(--blue) 45%, var(--white) 50%); }
.method-option strong { color: inherit; }
.method-option span { color: var(--muted); font-size: .88rem; }
.method-option[aria-disabled="true"] { opacity: .6; cursor: not-allowed; }
.method-note { margin: 14px 0 0; padding: 10px 14px; color: var(--blue); background: var(--green-100); border-left: 4px solid var(--green-700); font-size: .9rem; }
.create-form { margin-top: 18px; }

/* Réglages de l'assistance IA */
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; margin: 22px 34px 40px; }
.settings-grid > .content-card { margin: 0; }
.settings-grid h2 { margin-bottom: 14px; font-size: 1.3rem; }
.settings-copy { color: var(--text); }
.settings-list { margin-top: 16px; padding: 14px 16px; background: var(--blue-50); border-radius: var(--radius-sm); }
.settings-list strong { color: var(--blue); }
.settings-list ul { margin: 8px 0 0; padding-left: 20px; }
.settings-dl { display: grid; gap: 10px; margin: 0 0 18px; }
.settings-dl > div { display: grid; grid-template-columns: minmax(120px,.45fr) minmax(0,1fr); gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--grey-200); }
.settings-dl dt { color: var(--muted); font-size: .85rem; font-weight: 800; }
.settings-dl dd { margin: 0; color: var(--ink); font-weight: 700; overflow-wrap: anywhere; }
.switch { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; padding: 4px 8px 4px 4px; color: var(--ink); background: transparent; border: 0; border-radius: 999px; font-weight: 850; }
.switch-track { position: relative; display: inline-block; width: 56px; height: 32px; background: var(--grey-500); border-radius: 999px; transition: background .15s ease; }
.switch-thumb { position: absolute; top: 4px; left: 4px; width: 24px; height: 24px; background: var(--white); border-radius: 50%; box-shadow: var(--shadow-sm); transition: transform .15s ease; }
.switch[aria-checked="true"] .switch-track { background: var(--success); }
.switch[aria-checked="true"] .switch-thumb { transform: translateX(24px); }
.switch[aria-checked="false"] .switch-label { color: var(--grey-700); }
.meter-block { margin: 6px 0 18px; }
.meter-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 6px; color: var(--ink); font-weight: 750; }
.meter { position: relative; height: 12px; overflow: hidden; background: var(--grey-200); border-radius: 999px; }
.meter > span { display: block; height: 100%; background: linear-gradient(90deg, var(--success), var(--green-700)); border-radius: 999px; transition: width .3s ease; }
.meter.is-exhausted > span { background: var(--orange); }
.meter-block small { display: block; margin-top: 8px; color: var(--muted); }
.checklist { margin: 0 0 14px; padding: 0; list-style: none; }
.checklist li { position: relative; padding: 8px 0 8px 30px; border-bottom: 1px solid var(--grey-200); }
.checklist li::before { content: "✓"; position: absolute; left: 4px; top: 8px; color: var(--success); font-weight: 900; }
.settings-grid .table-wrap { margin-top: 12px; }
.settings-grid .contents-table table { min-width: 620px; }

/* Cycle de vie : duplication, archivage */
.publication-actions.four { grid-template-columns: repeat(4, minmax(0,1fr)); }
.danger-button.outline { color: var(--red); background: var(--white); border: 1px solid var(--red); box-shadow: none; }
.danger-button.outline:hover { background: var(--red-100); }
.linked-list { margin-top: 22px; padding: 16px 18px; background: var(--blue-50); border-radius: var(--radius-sm); }
.linked-list .eyebrow { margin-bottom: 8px; }
.linked-list ul { margin: 0; padding-left: 20px; }
.linked-list li { margin: 4px 0; color: var(--text); }

/* Catalogue public : bascule des filtres, cartes enrichies */
.filters-toggle { display: none; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 44px; margin: 0 0 6px; padding: 8px 12px; color: var(--blue); background: var(--white); border: 1px solid var(--blue); border-radius: var(--radius-sm); font-weight: 850; }
.filters-toggle::after { content: "▾"; font-size: 1rem; }
.filters.is-open .filters-toggle::after { content: "▴"; }
.filters-toggle b { display: inline-grid; place-items: center; min-width: 24px; height: 24px; padding: 0 6px; color: var(--blue); background: var(--green); border-radius: 999px; font-size: .78rem; }
.filter-fields { min-width: 0; }
.filter-fields > label, .filter-fields > .field-with-help { margin: 14px 0; }
.card-certification { display: flex; align-items: flex-start; gap: 6px; margin: 12px 0 0; color: var(--success); font-size: .88rem; font-weight: 800; }
.training-card dl { grid-template-columns: repeat(2, minmax(0,1fr)); }
.training-card dd { overflow-wrap: anywhere; }
.public-header .language-switch + .menu-button { margin-left: 0; }

/* Fiche publique : rubriques et cartes pratiques */
.detail-aside { display: grid; gap: 22px; align-content: start; min-width: 0; }
.detail-aside .practical-card { position: static; top: auto; }
.access-card { border-top-color: var(--blue); }
.practical-card .primary-button.full, .practical-card .secondary-button.full { display: inline-flex; align-items: center; justify-content: center; width: 100%; }
.practical-card .secondary-button.full { margin-top: 10px; }
.practical-card > p { margin-top: 14px; color: var(--muted); font-size: .9rem; }
.partners-list { display: grid; gap: 12px; margin: 0; }
.partners-list > div { padding: 14px 16px; background: var(--grey-50); border-left: 4px solid var(--green-700); border-radius: var(--radius-sm); }
.partners-list dt { color: var(--muted); font-size: .8rem; font-weight: 800; text-transform: uppercase; }
.partners-list dd { margin: 4px 0 0; color: var(--ink); font-weight: 700; overflow-wrap: anywhere; }

@media (max-width: 1020px) {
  .cover-principles { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .settings-grid { grid-template-columns: 1fr; }
  .publication-actions.four { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .method-options { grid-template-columns: 1fr; }
  .review-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .filters-toggle { display: flex; }
  .filters .filter-fields { display: none; }
  .filters.is-open .filter-fields { display: block; }
  .filters .filter-title { margin-bottom: 12px; }
}

@media (max-width: 820px) {
  .cover-principles { grid-template-columns: 1fr; }
  .app-content > .principle-banner { flex-wrap: wrap; margin: 14px 18px 0; }
  .app-content > .preparation-panel { margin: 0 18px 20px; grid-template-columns: 1fr; }
  .preparation-panel > span:first-child { width: 40px; height: 40px; }
  .settings-grid { margin: 16px 18px 32px; }
  .settings-dl > div { grid-template-columns: 1fr; gap: 2px; }
  .publication-actions.four { grid-template-columns: 1fr; }
  .review-grid { grid-template-columns: 1fr; }
  .url-source-card { grid-template-columns: 1fr; }
  .url-source-card > .field-with-help:first-child { grid-column: auto; }
  .navette-copy { flex-direction: column; }
  .navette-actions button { flex: 1 1 100%; }
  .ai-status-button { white-space: normal; }
  .row-actions { flex-direction: column; align-items: stretch; }
  .row-actions .row-action { width: 100%; text-align: left; margin: 0; }
  .contents-table table { min-width: 0; }
  .contents-table td:nth-child(5) { white-space: normal; overflow-wrap: anywhere; }
  .app-content > .principle-banner > .text-button { flex: 1 1 100%; }
  .public-header-main { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 4px 12px; }
  .public-header-main .compact-lockup { grid-column: 1; grid-row: 1; }
  .public-header-main .menu-button { grid-column: 2; grid-row: 1; }
  .public-header-main .language-switch { grid-column: 1 / -1; grid-row: 2; justify-self: start; margin: 0 0 8px; }
  .contents-table tbody td::before { content: attr(data-label); }
  .contents-table tbody td:nth-child(1)::before, .contents-table tbody td:nth-child(2)::before, .contents-table tbody td:nth-child(3)::before, .contents-table tbody td:nth-child(4)::before, .contents-table tbody td:nth-child(5)::before { content: attr(data-label); }
  .contents-table tbody td:last-child { display: grid; }
  .contents-table tbody td:last-child::before { display: block; }
  .settings-grid .contents-table table { min-width: 0; }
}

html[data-text-scale="150"] .settings-grid,
html[data-text-scale="200"] .settings-grid,
html[data-text-scale="150"] .method-options,
html[data-text-scale="200"] .method-options,
html[data-text-scale="150"] .review-grid,
html[data-text-scale="200"] .review-grid,
html[data-text-scale="150"] .publication-actions.four,
html[data-text-scale="200"] .publication-actions.four,
html[data-text-scale="150"] .cover-principles,
html[data-text-scale="200"] .cover-principles { grid-template-columns: 1fr; }
html[data-text-scale="200"] .preparation-panel { grid-template-columns: 1fr; }
html[data-text-scale="200"] .url-source-card { grid-template-columns: 1fr; }
html[data-text-scale="200"] .url-source-card > small { grid-column: auto; }
html[data-text-scale="200"] .filters-toggle,
html[data-text-scale="200"] .preparation-facts li,
html[data-text-scale="200"] .method-option,
html[data-text-scale="200"] .switch,
html[data-text-scale="200"] .ai-status-button,
html[data-text-scale="200"] .card-certification { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
html[data-text-scale="200"] .switch { flex-wrap: wrap; }
.preparation-panel, .preparation-panel > div, .preparation-facts, .method-option, .settings-grid > .content-card, .settings-dl, .ai-strip, .ai-strip > div, .navette-card, .navette-copy, .linked-list, .field-source, .detail-aside, .practical-card dl, .partners-list, .partners-list > div { min-width: 0; max-width: 100%; }
.preparation-panel h2, .preparation-panel p, .method-option strong, .method-option span, .settings-grid h2, .settings-grid p, .settings-grid li, .ai-strip strong, .ai-strip p, .navette-copy h3, .navette-copy p, .field-source, .practical-card dd, .practical-card dt { overflow-wrap: anywhere; }
