/* ============================================================================
   Pro Re Nata — Consultations partagées : direction artistique commune
   ----------------------------------------------------------------------------
   Refonte 2026-07. Feuille de styles de TOUTES les consultations du runner
   générique (40+ modules) et des runners hand-rolled qui reprennent le
   namespace `.cons-*` (mpoc, triage). Principes (PRODUCT.md) :
     • hiérarchie nette : étape → section → champ → résultat ;
     • couleur fonctionnelle (sévérité, sélection, sécurité) — pas décorative ;
     • scannable : l'essentiel visible, le secondaire replié (<details>) ;
     • interactif : stepper cliquable, cartes-options à état franc, motion
       discrète respectant prefers-reduced-motion.
   ============================================================================ */

/* ── En-tête d'étape : kicker + titre + phrase d'appui ─────────────────── */
.cons-page .cons-step-head { margin-bottom: 1.1rem; }
.cons-page .cons-step-kicker {
    margin: 0 0 0.2rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--prn-teal-strong);
}
.cons-page .cons-step-kicker span { color: var(--prn-muted); font-weight: 600; }
.cons-page .cons-step-title {
    font-family: var(--font-serif);
    font-size: 1.45rem;
    color: var(--prn-navy);
    margin: 0 0 0.3rem;
    line-height: 1.25;
}
.cons-page .cons-step-lead {
    font-size: 0.9rem;
    color: var(--prn-muted);
    line-height: 1.55;
    margin: 0;
    max-width: 62ch;
}

/* ── Stepper libellé (injecté dans .voyage-progress) ───────────────────── */
.cons-page .cons-progress { display: block; }
.cons-page .cons-progress .progress,
.cons-page .cons-progress .progress-label { display: none; }
.cons-page .cons-stepper {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    padding: 0;
    margin: 0;
}
.cons-page .cons-stepper-item { display: flex; align-items: center; }
.cons-page .cons-stepper-item + .cons-stepper-item::before {
    content: "";
    width: 1.1rem;
    height: 2px;
    border-radius: 2px;
    background: var(--prn-line);
    margin-right: 0.35rem;
}
.cons-page .cons-stepper-step {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    border: 1px solid var(--prn-line);
    background: var(--prn-surface);
    color: var(--prn-muted);
    font: inherit;
    font-size: 0.8rem;
    font-weight: 600;
    padding: 0.3rem 0.75rem 0.3rem 0.35rem;
    border-radius: 999px;
    cursor: default;
    transition: border-color 120ms ease-out, background-color 120ms ease-out,
                color 120ms ease-out;
}
.cons-page .cons-stepper-dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    background: var(--prn-line-soft);
    color: var(--prn-muted);
    font-size: 0.74rem;
    font-weight: 700;
    flex-shrink: 0;
}
.cons-page .cons-stepper-dot svg { width: 0.85rem; height: 0.85rem; }
.cons-page .cons-stepper-step.is-current {
    border-color: var(--prn-int-selected-border);
    background: var(--prn-int-selected-bg);
    color: var(--prn-int-text);
}
.cons-page .cons-stepper-step.is-current .cons-stepper-dot {
    background: var(--prn-int-strong);
    color: var(--prn-int-strong-on);
}
.cons-page .cons-stepper-step.is-done {
    cursor: pointer;
    color: var(--prn-ink-soft);
}
.cons-page .cons-stepper-step.is-done .cons-stepper-dot {
    background: var(--prn-success-bg);
    color: var(--prn-success);
}
.cons-page .cons-stepper-step.is-done:hover,
.cons-page .cons-stepper-step.is-done:focus-visible {
    border-color: var(--prn-int-hover-border);
    background: var(--prn-int-hover-bg);
    color: var(--prn-int-text);
}
.cons-page .cons-stepper-step:focus-visible {
    outline: 2px solid var(--prn-int-strong);
    outline-offset: 2px;
}
.cons-page .cons-stepper-step[disabled] { opacity: 0.6; }
@media (max-width: 640px) {
    .cons-page .cons-stepper-item + .cons-stepper-item::before { width: 0.5rem; }
    .cons-page .cons-stepper-step .cons-stepper-label { display: none; }
    .cons-page .cons-stepper-step.is-current .cons-stepper-label { display: inline; }
    .cons-page .cons-stepper-step { padding-right: 0.5rem; }
    .cons-page .cons-stepper-step.is-current { padding-right: 0.75rem; }
}

/* ── Cartes ─────────────────────────────────────────────────────────────── */
.cons-page .cons-card {
    border: 1px solid var(--prn-line);
    border-radius: 12px;
    padding: 1rem 1.1rem;
    margin: 0.85rem 0;
    background: var(--prn-bg-alt, var(--prn-bg));
    box-shadow: 0 1px 2px rgba(10, 22, 40, 0.04);
}
.cons-page .cons-card h3 {
    margin: 0 0 0.55rem;
    font-size: 0.98rem;
    line-height: 1.35;
}
.cons-page .cons-card p { margin: 0.3rem 0; line-height: 1.55; }
.cons-page .cons-card ul { margin: 0.3rem 0; padding-left: 1.3rem; line-height: 1.6; }
.cons-page .cons-card-hint {
    font-size: 0.84rem;
    color: var(--prn-muted);
    margin: 0 0 0.6rem;
}

.cons-page .cons-card-pref     { border-left: 4px solid var(--logo-teal); }
.cons-page .cons-card-alt      { border-left: 4px solid #6c757d; }
.cons-page .cons-card-absolute { border-left: 4px solid #b00020; background: #fff3f3; }
.cons-page .cons-card-redflag  { border-left: 4px solid #b00020; background: #fff3f3; }
.cons-page .cons-card-warning  { border-left: 4px solid #f59f00; background: #fffbeb; }
.cons-page .cons-card-caution  { border-left: 4px solid #f59f00; background: #fffbeb; }
.cons-page .cons-card-success  { border-left: 4px solid #2f9e44; background: #ebfbee; }

/* Carte repliable (échec / rappel signaux / sources — sur demande) */
.cons-page details.cons-fold > summary {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    list-style: none;
    -webkit-user-select: none;
    user-select: none;
    border-radius: 8px;
}
.cons-page details.cons-fold > summary::-webkit-details-marker { display: none; }
.cons-page details.cons-fold > summary::after {
    content: "";
    width: 0.55em;
    height: 0.55em;
    border-right: 2px solid var(--prn-muted);
    border-bottom: 2px solid var(--prn-muted);
    transform: rotate(45deg) translateY(-0.1em);
    margin-left: auto;
    flex-shrink: 0;
    transition: transform 140ms ease-out;
}
.cons-page details.cons-fold[open] > summary::after {
    transform: rotate(225deg) translateY(-0.1em);
}
.cons-page details.cons-fold > summary h3 { margin: 0; }
.cons-page details.cons-fold > summary:focus-visible {
    outline: 2px solid var(--prn-int-strong);
    outline-offset: 2px;
}
.cons-page .cons-fold-body { margin-top: 0.55rem; }
.cons-page .cons-fold--redflag { border-left: 4px solid #b00020; }

/* ── Acquittement (gate de sécurité, étape 1) ──────────────────────────── */
.cons-page .cons-ack {
    display: flex; align-items: flex-start; gap: 0.7rem;
    padding: 0.85rem 1rem;
    border: 2px solid var(--logo-teal);
    border-radius: 12px;
    margin-top: 1rem;
    cursor: pointer;
    background: var(--prn-teal-light);
    transition: box-shadow 120ms ease-out;
}
.cons-page .cons-ack:hover { box-shadow: 0 0 0 3px var(--prn-int-hover-bg); }
.cons-page .cons-ack input {
    margin-top: 0.2rem;
    width: 19px; height: 19px;
    accent-color: var(--prn-int-strong);
    flex-shrink: 0;
    cursor: pointer;
}
.cons-page .cons-ack span { font-weight: 600; line-height: 1.5; }

/* ── Cartes-options (situations, traitements) ──────────────────────────── */
.cons-page .cons-list { list-style: none; padding: 0; margin: 0.75rem 0; }
.cons-page .cons-row {
    appearance: none;
    width: 100%; text-align: left;
    border: 1.5px solid var(--prn-line);
    background: var(--prn-surface);
    color: var(--prn-ink);
    padding: 0.85rem 1rem;
    border-radius: 12px;
    font: inherit; cursor: pointer;
    margin-bottom: 0.55rem;
    transition: border-color 120ms ease-out, background-color 120ms ease-out,
                box-shadow 120ms ease-out;
}
.cons-page .cons-row:hover, .cons-page .cons-row:focus-visible {
    border-color: var(--prn-int-hover-border);
    background: var(--prn-int-hover-bg);
}
.cons-page .cons-row:focus-visible {
    outline: 2px solid var(--prn-int-strong);
    outline-offset: 1px;
}
.cons-page .cons-row.is-selected {
    background: var(--prn-int-selected-bg);
    border-color: var(--prn-int-selected-border);
    box-shadow: inset 0 0 0 1px var(--prn-int-selected-border);
}
.cons-page .cons-row strong { display: block; margin-bottom: 0.3rem; line-height: 1.4; }
.cons-page .cons-row p { margin: 0; font-size: 0.86rem; color: var(--prn-muted); line-height: 1.5; }
.cons-page .cons-row.is-selected p { color: var(--prn-ink-soft); }

/* Variante avec pastille radio (runner générique) */
.cons-page .cons-row--radio { display: flex; align-items: flex-start; gap: 0.75rem; }
.cons-page .cons-row-radio {
    width: 19px; height: 19px;
    border-radius: 50%;
    border: 2px solid var(--prn-line);
    background: var(--prn-surface);
    flex-shrink: 0;
    margin-top: 0.15rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: border-color 120ms ease-out;
}
.cons-page .cons-row:hover .cons-row-radio { border-color: var(--prn-int-hover-border); }
.cons-page .cons-row.is-selected .cons-row-radio { border-color: var(--prn-int-strong); }
.cons-page .cons-row.is-selected .cons-row-radio::after {
    content: "";
    width: 9px; height: 9px;
    border-radius: 50%;
    background: var(--prn-int-strong);
}
.cons-page .cons-row-body { flex: 1; min-width: 0; }

/* ── Précautions (étape 3) ─────────────────────────────────────────────── */
.cons-page .cons-ci {
    border: 1px solid var(--prn-line);
    border-radius: 12px;
    padding: 0.9rem 1rem;
    margin: 0.85rem 0;
    background: var(--prn-bg-alt, var(--prn-bg));
}
.cons-page .cons-ci legend { font-weight: 700; padding: 0 0.4rem; }
.cons-page .cons-ci-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
    gap: 0.5rem;
    margin-top: 0.5rem;
}
@media (max-width: 640px) {
    .cons-page .cons-ci-grid { grid-template-columns: 1fr; }
}
.cons-page .cons-ci-item { min-width: 0; }
.cons-page .cons-ci-chip {
    appearance: none;
    width: 100%;
    border: 1.5px solid var(--prn-line);
    background: var(--prn-surface);
    color: var(--prn-ink);
    padding: 0.55rem 0.75rem;
    border-radius: 10px;
    font: inherit; font-size: 0.9rem;
    cursor: pointer;
    display: flex; align-items: center; gap: 0.6rem;
    text-align: left;
    transition: border-color 120ms ease-out, background-color 120ms ease-out;
}
.cons-page .cons-ci-chip:hover {
    border-color: var(--prn-int-hover-border);
    background: var(--prn-int-hover-bg);
}
.cons-page .cons-ci-chip:focus-visible {
    outline: 2px solid var(--prn-int-strong);
    outline-offset: 1px;
}
.cons-page .cons-ci-chip.is-selected {
    background: var(--prn-int-selected-bg);
    border-color: var(--prn-int-selected-border);
    color: var(--prn-int-text);
}
.cons-page .cons-ci-check {
    width: 18px; height: 18px;
    border-radius: 5px;
    border: 2px solid var(--prn-line);
    background: var(--prn-surface);
    color: transparent;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 120ms ease-out, border-color 120ms ease-out;
}
.cons-page .cons-ci-check svg { width: 12px; height: 12px; }
.cons-page .cons-ci-chip:hover .cons-ci-check { border-color: var(--prn-int-hover-border); }
.cons-page .cons-ci-chip.is-selected .cons-ci-check {
    background: var(--prn-int-strong);
    border-color: var(--prn-int-strong);
    color: var(--prn-int-strong-on);
}
.cons-page .cons-ci-name { font-weight: 600; flex: 1; min-width: 0; }
.cons-page .cons-ci-chip .cons-sev { margin-left: auto; }

/* Sévérité (pastilles) */
.cons-page .cons-sev {
    display: inline-block;
    padding: 0.12rem 0.5rem;
    border-radius: 999px;
    font-size: 0.7rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.02em;
    flex-shrink: 0;
}
.cons-page .cons-sev-absolute { background: #fdecec; color: #b00020; }
.cons-page .cons-sev-avoid    { background: #fff8e1; color: #b15a00; }
.cons-page .cons-sev-caution  { background: #fff3cd; color: #856404; }

/* Justification clinique repliée (« Pourquoi ») + héritage inline */
.cons-page .cons-ci-why {
    display: block;
    font-size: 0.82rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--prn-ink-soft);
    margin: 0;
}
.cons-page .cons-ci-why-inline {
    font-weight: 400;
    font-size: 0.86em;
    color: inherit;
    opacity: 0.85;
}
/* (héritage runners hand-rolled : rationale rendue DANS la chip) */
.cons-page .cons-ci-chip { flex-wrap: wrap; }
.cons-page .cons-ci-chip > .cons-ci-why { flex-basis: 100%; color: var(--prn-muted); }
.cons-page .cons-ci-chip.is-selected > .cons-ci-why { color: inherit; opacity: 0.85; }

/* ── Divulgation progressive générique (.cons-more) ────────────────────── */
.cons-page .cons-more { margin: 0.3rem 0 0 0.15rem; }
.cons-page .cons-more > summary {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    cursor: pointer;
    list-style: none;
    -webkit-user-select: none;
    user-select: none;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--prn-teal-strong);
    border-radius: 6px;
    padding: 0.1rem 0.2rem 0.1rem 0;
}
.cons-page .cons-more > summary::-webkit-details-marker { display: none; }
.cons-page .cons-more > summary::before {
    content: "";
    width: 0.5em;
    height: 0.5em;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(-45deg);
    transition: transform 140ms ease-out;
    flex-shrink: 0;
}
.cons-page .cons-more[open] > summary::before { transform: rotate(45deg); }
.cons-page .cons-more > summary:hover { text-decoration: underline; }
.cons-page .cons-more > summary:focus-visible {
    outline: 2px solid var(--prn-int-strong);
    outline-offset: 2px;
}
.cons-page .cons-more-body { padding: 0.25rem 0 0.15rem; }
.cons-page .cons-more-body p {
    margin: 0.15rem 0;
    font-size: 0.85rem;
    line-height: 1.55;
    color: var(--prn-ink-soft);
}
.cons-page .cons-ci-more { margin-left: 0.6rem; }
.cons-page .cons-opt-more { margin-left: 2.6rem; }
@media (max-width: 640px) {
    .cons-page .cons-opt-more { margin-left: 0.6rem; }
}

/* ── Notes / sources / score (héritage) ────────────────────────────────── */
.cons-page .cons-note { font-size: 0.86rem; color: var(--prn-muted); font-style: italic; }
.cons-page .cons-sources { font-size: 0.85rem; color: var(--prn-muted); }
.cons-page .cons-score {
    display: inline-block;
    padding: 0.25rem 0.7rem;
    border-radius: 999px;
    background: var(--prn-teal-light);
    color: var(--prn-teal-strong);
    font-weight: 700;
    font-size: 0.9rem;
}

/* ── Profil structuré (zéro répétition) ────────────────────────────────── */
.cons-profile-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.75rem;
    margin-bottom: 0.6rem;
}
/* Profil requis pour adapter la posologie (âge/poids forcés). */
.cons-profile-req {
    margin: 0.2rem 0 0.7rem;
    font-size: 0.86rem;
    font-weight: 600;
}
.cons-req { color: #b00020; font-weight: 700; }
.cons-profile-grid label {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--prn-ink);
}
.cons-profile-grid input {
    border: 1.5px solid var(--prn-line);
    border-radius: 8px;
    padding: 0.45rem 0.6rem;
    font: inherit;
    background: var(--prn-surface);
    color: var(--prn-ink);
    min-height: 40px;
}
.cons-profile-grid input:focus-visible {
    outline: 2px solid var(--prn-int-strong);
    outline-offset: 1px;
}
.cons-preg-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin: 0.35rem 0;
}
.cons-preg-label {
    font-size: 0.85rem;
    font-weight: 600;
}
.cons-preg-chip {
    appearance: none;
    border: 1.5px solid var(--prn-line);
    background: var(--prn-surface);
    color: var(--prn-ink);
    padding: 0.3rem 0.8rem;
    border-radius: 999px;
    font: inherit;
    font-size: 0.85rem;
    cursor: pointer;
    transition: border-color 120ms ease-out, background-color 120ms ease-out;
}
.cons-preg-chip:hover {
    border-color: var(--prn-int-hover-border);
    background: var(--prn-int-hover-bg);
}
.cons-preg-chip:focus-visible {
    outline: 2px solid var(--prn-int-strong);
    outline-offset: 1px;
}
.cons-preg-chip.is-selected {
    background: var(--prn-int-selected-bg);
    border-color: var(--prn-int-selected-border);
    color: var(--prn-int-text);
    font-weight: 700;
}
.cons-preg-note {
    font-size: 0.78rem;
    color: var(--prn-muted, #777);
}
.cons-derived-note {
    margin: 0.5rem 0 0.1rem;
    font-size: 0.85rem;
}

/* ── Étape 4 : options de traitement ───────────────────────────────────── */
.cons-page .cons-active-cis {
    display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem;
    margin: 0.6rem 0;
    font-size: 0.88rem;
    font-weight: 600;
}
.cons-page .cons-active-cis .cons-sev { text-transform: none; font-size: 0.78rem; padding: 0.2rem 0.6rem; }

.cons-page .cons-opt-item { min-width: 0; }
.cons-page .cons-opt { position: relative; }
.cons-page .cons-opt strong {
    display: flex; align-items: center; flex-wrap: wrap; gap: 0.45rem;
}
.cons-page .cons-opt-poso {
    margin: 0.15rem 0 0 !important;
    font-size: 0.87rem !important;
    color: var(--prn-ink-soft) !important;
}
.cons-page .cons-opt.is-blocked {
    opacity: 0.55;
    cursor: not-allowed;
    border-style: dashed;
    background: var(--prn-surface);
    box-shadow: none;
}
.cons-page .cons-opt.is-blocked:hover { border-color: var(--prn-line); background: var(--prn-surface); outline: none; }
.cons-page .cons-opt.is-blocked .cons-row-radio { border-color: var(--prn-line); }
.cons-page .cons-opt-hits {
    margin: 0.35rem 0 0 !important;
    font-size: 0.82rem !important;
    font-weight: 600;
    color: #b15a00 !important;
}
.cons-page .cons-opt.is-blocked .cons-opt-hits { color: #b00020 !important; }

/* Option « MNP seules » — accent succès discret */
.cons-page .cons-opt--mnp { border-style: dashed; }
.cons-page .cons-opt--mnp.is-selected {
    border-style: solid;
    background: var(--prn-success-bg);
    border-color: var(--prn-success);
    box-shadow: inset 0 0 0 1px var(--prn-success);
}
.cons-page .cons-opt--mnp.is-selected .cons-row-radio { border-color: var(--prn-success); }
.cons-page .cons-opt--mnp.is-selected .cons-row-radio::after { background: var(--prn-success); }

/* ── Sélecteur MNP (mesures cochables → ordonnance) ────────────────────── */
.cons-page .cons-mnp-picker { border-left: 4px solid var(--prn-success); }
.cons-page .cons-mnp-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 0.45rem;
}
@media (max-width: 640px) {
    .cons-page .cons-mnp-grid { grid-template-columns: 1fr; }
}
.cons-page .cons-mnp-item { min-width: 0; }
.cons-page .cons-mnp-chip {
    appearance: none;
    width: 100%;
    border: 1.5px solid var(--prn-line);
    background: var(--prn-surface);
    color: var(--prn-ink);
    padding: 0.5rem 0.7rem;
    border-radius: 10px;
    font: inherit; font-size: 0.88rem;
    cursor: pointer;
    display: flex; align-items: center; gap: 0.55rem;
    text-align: left;
    transition: border-color 120ms ease-out, background-color 120ms ease-out;
}
.cons-page .cons-mnp-chip:hover {
    border-color: var(--prn-int-hover-border);
    background: var(--prn-int-hover-bg);
}
.cons-page .cons-mnp-chip:focus-visible {
    outline: 2px solid var(--prn-int-strong);
    outline-offset: 1px;
}
.cons-page .cons-mnp-chip.is-selected {
    background: var(--prn-success-bg);
    border-color: var(--prn-success);
}
.cons-page .cons-mnp-check {
    width: 17px; height: 17px;
    border-radius: 5px;
    border: 2px solid var(--prn-line);
    background: var(--prn-surface);
    color: transparent;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 120ms ease-out, border-color 120ms ease-out;
}
.cons-page .cons-mnp-check svg { width: 11px; height: 11px; }
.cons-page .cons-mnp-chip.is-selected .cons-mnp-check {
    background: var(--prn-success);
    border-color: var(--prn-success);
    color: #fff;
}
.cons-page .cons-mnp-label { font-weight: 600; line-height: 1.4; }
.cons-page .cons-mnp-more { margin-left: 0.6rem; }

/* ── Étape 5 : plan retenu + conseils scannables ───────────────────────── */
.cons-page .cons-rx-summary p strong { font-size: 1.02rem; }
.cons-page .cons-rx-summary h3 { display: flex; align-items: center; flex-wrap: wrap; gap: 0.45rem; }
.cons-page .cons-rx-summary .btn { margin-top: 0.6rem; }
.cons-page .cons-rx-mnp { margin-top: 0.55rem; }
.cons-page .cons-rx-mnp-title {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--prn-success);
    margin: 0 0 0.2rem;
}
.cons-page .cons-rx-mnp-list {
    margin: 0.15rem 0 0.2rem !important;
    padding-left: 1.25rem !important;
    font-size: 0.88rem;
}
.cons-page .cons-rx-mnp-list li { margin: 0.12rem 0; }

.cons-page .cons-advice-list {
    list-style: none;
    margin: 0.3rem 0 0 !important;
    padding: 0 !important;
}
.cons-page .cons-advice {
    padding: 0.5rem 0.2rem;
    border-bottom: 1px solid var(--prn-line-soft);
}
.cons-page .cons-advice:last-child { border-bottom: none; padding-bottom: 0.2rem; }
.cons-page .cons-advice-head {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.45rem;
}
.cons-page .cons-advice-label { font-weight: 600; line-height: 1.45; }
.cons-page .cons-advice-tag {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    background: var(--prn-success-bg);
    color: var(--prn-success);
    white-space: nowrap;
}
.cons-page .cons-advice-more { margin-left: 0; }

/* ── Animation d'entrée d'étape (discrète, désactivable) ───────────────── */
@keyframes cons-step-in {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: none; }
}
.cons-page .cons-step-enter .prn-step { animation: cons-step-in 220ms ease-out; }
@media (prefers-reduced-motion: reduce) {
    .cons-page .cons-step-enter .prn-step { animation: none; }
    .cons-page .cons-more > summary::before,
    .cons-page details.cons-fold > summary::after,
    .cons-page .cons-stepper-step,
    .cons-page .cons-row,
    .cons-page .cons-ci-chip,
    .cons-page .cons-mnp-chip,
    .cons-page .cons-preg-chip { transition: none; }
}

/* ── Impression : tout déplier, masquer l'interactif ───────────────────── */
@media print {
    .cons-page .cons-stepper-host,
    .cons-page .cons-more > summary::before,
    .cons-page details.cons-fold > summary::after { display: none; }
}

/* ── Thème sombre ──────────────────────────────────────────────────────── */
[data-theme="dark"] .cons-page .cons-card { box-shadow: none; }
[data-theme="dark"] .cons-page .cons-card-absolute { background: #2a1414; color: #ffe7e7; }
[data-theme="dark"] .cons-page .cons-card-redflag  { background: #2a1414; color: #ffe7e7; }
[data-theme="dark"] .cons-page .cons-card-warning  { background: #2a2310; color: #ffe4a8; }
[data-theme="dark"] .cons-page .cons-card-caution  { background: #2a2310; color: #ffe4a8; }
[data-theme="dark"] .cons-page .cons-card-success  { background: #14221a; color: #b8f0c8; }
[data-theme="dark"] .cons-page .cons-sev-absolute  { background: #2a1414; color: #ff8a8a; }
[data-theme="dark"] .cons-page .cons-sev-avoid     { background: #2a230f; color: #ffc774; }
[data-theme="dark"] .cons-page .cons-sev-caution   { background: #2a230f; color: #ffd470; }
[data-theme="dark"] .cons-page .cons-opt-hits { color: #ffc774 !important; }
[data-theme="dark"] .cons-page .cons-opt.is-blocked .cons-opt-hits { color: #ff8a8a !important; }
[data-theme="dark"] .cons-page .cons-fold--redflag { border-left-color: var(--prn-danger); }
[data-theme="dark"] .cons-page .cons-ack { border-color: var(--prn-int-selected-border); }

/* ============================================================================
   Refonte consultations (2026-07) — cartes de résultat & options plus soignées
   ----------------------------------------------------------------------------
   Liserés latéraux → bord complet dans la teinte sémantique. Fond des cartes
   sur --prn-surface (contraste avec la page). Titres signés Lora. Options
   sélectionnables plus tactiles. Tokens → clair/sombre auto ; les overrides
   sombres existants (bg des cartes) restent prioritaires (specificity).
   ============================================================================ */
.cons-page .cons-card {
    background: var(--prn-surface);
    border-radius: var(--radius);
    box-shadow: var(--shadow-xs);
    padding: 1.05rem 1.2rem;
}
.cons-page .cons-card h3 {
    font-family: var(--font-serif);
    font-size: 1.06rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--prn-navy);
}
.cons-page .cons-card-pref {
    border: 1px solid color-mix(in srgb, var(--logo-teal) 34%, var(--prn-line));
    background: var(--prn-teal-light);
}
.cons-page .cons-card-alt { border: 1px solid var(--prn-line); }
.cons-page .cons-card-absolute,
.cons-page .cons-card-redflag {
    border: 1px solid color-mix(in srgb, var(--prn-danger) 36%, var(--prn-line));
    background: var(--prn-danger-bg-soft);
}
.cons-page .cons-card-warning,
.cons-page .cons-card-caution {
    border: 1px solid color-mix(in srgb, var(--prn-warning) 34%, var(--prn-line));
    background: var(--prn-warning-bg);
}
.cons-page .cons-card-success {
    border: 1px solid color-mix(in srgb, var(--prn-success) 32%, var(--prn-line));
    background: var(--prn-success-bg);
}

/* Options (situation clinique, choix de traitement) : cartes tactiles */
.cons-page .cons-row {
    background: var(--prn-surface);
    border-width: 1.5px;
    border-radius: var(--radius);
    padding: 0.95rem 1.1rem;
    transition: border-color var(--t-fast) var(--ease-out),
                background-color var(--t-fast) var(--ease-out),
                box-shadow var(--t-fast) var(--ease-out);
}
.cons-page .cons-row:hover { box-shadow: var(--shadow-xs); }
.cons-page .cons-row.is-selected {
    box-shadow: inset 0 0 0 1px var(--logo-teal), var(--shadow-xs);
}
.cons-page .cons-row strong { color: var(--prn-navy); font-size: 1.02rem; }

/* Chips précautions : cible plus généreuse, coins doux */
.cons-page .cons-ci-chip {
    border-width: 1.5px;
    border-radius: var(--radius);
    padding: 0.7rem 0.95rem;
}
.cons-page .cons-ack {
    border-radius: var(--radius);
    box-shadow: var(--shadow-xs);
}

/* Overrides sombres des composants MNP / divulgation progressive (PR #250). */
[data-theme="dark"] .cons-page .cons-opt--mnp.is-selected { background: rgba(108, 200, 173, 0.12); }
[data-theme="dark"] .cons-page .cons-mnp-chip.is-selected { background: rgba(108, 200, 173, 0.12); }
[data-theme="dark"] .cons-page .cons-mnp-chip.is-selected .cons-mnp-check { color: #0d1219; }
[data-theme="dark"] .cons-page .cons-advice-tag { background: rgba(108, 200, 173, 0.16); }
[data-theme="dark"] .cons-page .cons-more > summary { color: var(--prn-teal); }

/* ══ Standardisation ordonnance 2026-07 — couverture RAMQ (sélection) ══ */

/* Badge de couverture sur les cartes d'option (jamais sur l'imprimé). */
.cons-ramq-badge {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    margin-left: 0.35rem;
    vertical-align: middle;
    white-space: nowrap;
    border: 1px solid transparent;
}
.cons-ramq-badge[data-ramq="covered"] { background: #e7f4ef; color: #10634f; border-color: #bfe3d5; }
.cons-ramq-badge[data-ramq="not_covered"] { background: #fdf0ef; color: #a12a1e; border-color: #f0d3cf; }
.cons-ramq-badge[data-ramq="exception"] { background: #fdf6ec; color: #8a5a12; border-color: #f0e2c6; }

/* Sélecteur de code d'exception (option sélectionnée seulement). */
.cons-exc-picker {
    margin: 0.5rem 0 0.25rem;
    padding: 0.6rem 0.75rem;
    background: #fdf6ec;
    border: 1px solid #f0e2c6;
    border-radius: 10px;
}
.cons-exc-title {
    margin: 0 0 0.5rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #6b4e17;
}
.cons-exc-chip {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    width: 100%;
    text-align: left;
    background: #fff;
    border: 1.5px solid #e4d5b4;
    border-radius: 8px;
    padding: 0.45rem 0.6rem;
    margin-bottom: 0.4rem;
    cursor: pointer;
    font: inherit;
}
.cons-exc-chip:last-child { margin-bottom: 0; }
.cons-exc-chip.is-selected {
    border-color: #b8860b;
    background: #fffaf0;
    box-shadow: inset 0 0 0 1px #b8860b;
}
.cons-exc-code {
    font-weight: 700;
    font-size: 0.85rem;
    color: #6b4e17;
    flex-shrink: 0;
}
.cons-exc-when {
    font-size: 0.8rem;
    color: #55606a;
    line-height: 1.35;
}

/* Note RAMQ (critère d'exception / conditions de couverture) sous le badge en sélection. */
.cons-ramq-note {
    margin: 4px 0 0; font-size: 12px; line-height: 1.4; color: #55606a;
}
/* Overrides thème sombre des composants RAMQ (parité avec .cons-mnp-chip). */
[data-theme="dark"] .cons-ramq-badge[data-ramq="covered"] { background: #14281e; color: #d1f3df; border-color: #2f5d46; }
[data-theme="dark"] .cons-ramq-badge[data-ramq="not_covered"] { background: #2a1414; color: #ffb3ab; border-color: #5d2f2f; }
[data-theme="dark"] .cons-ramq-badge[data-ramq="exception"] { background: #2a230f; color: #ffe6c4; border-color: #5d4a2f; }
[data-theme="dark"] .cons-exc-picker { background: #16212a; border-color: #2a3a44; }
[data-theme="dark"] .cons-exc-title { color: #d9c48a; }
[data-theme="dark"] .cons-exc-chip { background: #1b2831; border-color: #2f4653; }
[data-theme="dark"] .cons-exc-chip.is-selected { border-color: #d9a520; background: #22303a; box-shadow: inset 0 0 0 1px #d9a520; }
[data-theme="dark"] .cons-exc-code { color: #e7d39a; }
[data-theme="dark"] .cons-exc-when { color: #9fb2c0; }
[data-theme="dark"] .cons-ramq-note { color: #9fb2c0; }
