/* Assistant IA : disposition approuvée, horizontale sur ordinateur. */
.assistant-schema { font-family: "DM Sans", Arial, sans-serif; color: var(--color-ink); margin: clamp(3rem, 5vw, 4rem) 0 0; }
    .assistant-schema .flow { display:grid; grid-template-columns:1fr 1fr 2.1fr 1fr .7fr; gap:20px; align-items:center; }
    .assistant-schema .step { position:relative; text-align:center; font-size:clamp(12px, 1.1vw, 15px); line-height:1.4; }
    .assistant-schema .step:not(:last-child)::after { content:'→'; color:#00b0ff; position:absolute; left:calc(100% + 3px); top:50%; transform:translateY(-50%); font-size:20px; }
    .assistant-schema .node { border:1px solid var(--color-border); background:var(--color-mist); border-radius:9px; padding:14px 6px; font-weight:500; }
    .assistant-schema .sub { display:block; color:var(--color-muted); font-size:clamp(11px, 1vw, 13px); margin-top:4px; font-weight:400; }
    .assistant-schema .assistant { background:var(--color-accent); border-color:var(--color-accent); color:var(--color-bg); }
    .assistant-schema .validation { background:#303B65; border-color:transparent; color:#fff; box-shadow:none; }
    .assistant-schema .action { background:#fff; border-color:#fff; color:#1e2a50; }
    .assistant-schema .tasks { border:1px dashed #00b0ff; padding:10px; border-radius:10px; }
    .assistant-schema .tasks-title { color:var(--color-muted); margin-bottom:9px; font-size:clamp(11px, 1vw, 13px); }
    .assistant-schema .task-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
    .assistant-schema .task-grid .node { padding:10px 4px; min-height:38px; display:flex; align-items:center; justify-content:center; font-size:clamp(11px, 1vw, 13px); }
    .assistant-schema .caption { margin:24px auto 0; color:var(--color-muted); font-size:13px; line-height:1.6; text-align:center; max-width:640px; }
    @media(max-width:649px) {
      .assistant-schema .flow { grid-template-columns:1fr; gap:24px; max-width:300px; margin:auto; }
      .assistant-schema .step:not(:last-child)::after { content:'↓'; left:50%; top:100%; transform:translateX(-50%); }
      .assistant-schema .step { font-size:14px; }
      .assistant-schema .task-grid .node { font-size:clamp(12px, 1.1vw, 15px); }
    }

/* Flux animé : rythme, survol et visibilité identiques au schéma de la home. */
.assistant-schema.has-motion-decor .step::after { content: none; }
.assistant-schema.has-motion-decor .tasks { border-color: transparent; }
.assistant-schema .assistant-schema-connector { position:absolute; left:calc(100% + 3px); top:50%; width:20px; height:14px; transform:translateY(-50%); pointer-events:none; }
.assistant-schema .assistant-schema-connector svg { display:block; width:100%; height:100%; overflow:visible; }
.assistant-schema .assistant-schema-line,
.assistant-schema .assistant-schema-head,
.assistant-schema .assistant-schema-frame rect { fill:none; stroke:#00b0ff; stroke-width:1.25; }
.assistant-schema .assistant-schema-line,
.assistant-schema .assistant-schema-frame rect { stroke-dasharray:4 4; }
.assistant-schema .assistant-schema-head { stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.assistant-schema .assistant-schema-frame { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
@media (max-width:649px) {
  .assistant-schema .assistant-schema-connector { left:50%; top:calc(100% + 5px); transform:translateX(-50%) rotate(90deg); }
}
@media (prefers-reduced-motion:no-preference) {
  .assistant-schema .node { transition:transform 0.25s ease; }
  .assistant-schema.is-running .assistant-schema-line,
  .assistant-schema.is-running .assistant-schema-frame rect { animation:assistant-schema-dash 1.2s linear infinite; }
  .assistant-schema.is-running .assistant-schema-head { animation:assistant-schema-head 1.2s ease-in-out infinite; }
  .assistant-schema .step:nth-child(2) .assistant-schema-head { animation-delay:0.15s; }
  .assistant-schema .step:nth-child(3) .assistant-schema-head { animation-delay:0.3s; }
  .assistant-schema .step:nth-child(4) .assistant-schema-head { animation-delay:0.45s; }
  @keyframes assistant-schema-dash { to { stroke-dashoffset:-8; } }
  @keyframes assistant-schema-head { 0%,100% { transform:translateX(0); } 50% { transform:translateX(2px); } }
  @media (hover:hover) and (pointer:fine) { .assistant-schema .node:hover { transform:translateY(-2px); } }
  @media (hover:none), (pointer:coarse) { .assistant-schema .node:active { transform:translateY(1px); } }
}

/* Robot discret au début des légendes, même présentation sur les deux pages. */
body:is(.medicine-page, .institutes-page) .assistant-schema > figcaption.caption {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  width: 100%;
  max-width: none;
  margin-top: 48px;
  font-size: inherit;
  font-weight: 400;
  line-height: inherit;
  text-align: left;
}
body:is(.medicine-page, .institutes-page) .assistant-schema .caption-pictogram {
  display: block;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  object-fit: contain;
}
body:is(.medicine-page, .institutes-page) .assistant-schema .caption-copy {
  flex: 1;
  min-width: 0;
}
body:is(.medicine-page, .institutes-page) .assistant-schema .caption-arrow {
  display: inline-block;
  font-size: 1.25em;
  line-height: 1;
  margin: 0 0.25em;
  vertical-align: baseline;
}

/* Bandeau assistant médecine : contraste de graisse discret entre libellé et texte. */
body.medicine-page #contenu > .medicine-assistant-section :is(p, .feature-list li) {
  font-weight: 400;
}
body.medicine-page #contenu > .medicine-assistant-section strong,
body.medicine-page #contenu > .medicine-assistant-section .eyebrow {
  font-weight: 500;
}

/* Même palette sur les quatre schémas assistants et les deux flux multi-agents. */
@layer refonte {
  html[data-theme="light"] .assistant-schema .node { background: #F3F0FF !important; border-color: #CBBFF7 !important; color: #1B2A6B !important; }
  html[data-theme="light"] .assistant-schema .node .sub { color: #1B2A6B !important; }
  .assistant-schema .action, html[data-theme="light"] .assistant-schema .action { background: #1E2B70 !important; border: 1px solid #5B6CC9 !important; color: #FFFFFF !important; }
}
