/* ============================================================================
   Pro Re Nata — Peau de la consultation Insuffisance cardiaque (ic.html)
   ----------------------------------------------------------------------------
   Alignement franc sur l'étalon HTA (css/hta.css) : même palette
   cardio-vasculaire rouge sang, mêmes patrons — en-têtes de section rouges
   (.hta-block h3), sélections accentuées (.hta-agent / .hta-curmed-row
   .is-selected), cartes de classe colorées (.hta-class-card), carte de
   recommandation (.hta-rec-card), timeline (.hta-timeline-list), cartes de
   motif riches (étape 1 HTA / diabète).
   Appliqué en PUR CSS aux classes génériques cons-* / suivi-* : aucun runner
   modifié, aucun autre module touché — tout est scopé .ic-page.
   Chargée APRÈS consultations.css et suivi.css (l'ordre fait l'override).
   ========================================================================== */
/* G-5 (section B 2026-10-13, D802) : le rappel du patient (brique
   js/suivi-rappel.js) prend l'accent cardio de la page. */
.ic-page { --rappel-accent: var(--ic-accent); --rappel-accent-strong: var(--ic-accent-strong); }
.ic-page {
    --ic-accent: #dc2626;
    --ic-accent-strong: #b91c1c;
    --ic-accent-soft: #fef2f2;
    --ic-accent-line: #fecaca;
    /* Couleur des en-têtes de section : accent FONCÉ en clair, éclaircie en
       sombre (même mécanique que --hta-accent-strong — WCAG AA). R-16 (ronde
       2026-09-23) : #dc2626 rendait 4,41:1 sur le fond rosé de la fiche et de
       « Section suivante » ; #b91c1c = 5,9:1. */
    --ic-h3: var(--ic-accent-strong);
}

/* ── Identité de page (patron .hta-page) ─────────────────────────────────── */
/* R-6 (ronde 2026-10-13) : le titre en barre (21,6 px, étapes 2-3) mesurait
   4,49:1 sur #f5f7f9 — l'accent fort (5,9:1) tient l'AA à toute taille. */
.ic-page .page-header h1 { color: var(--ic-accent-strong); }

/* Hint d'action : recette AU SOCLE (css/suivi.css, promotion Q7). Le module
   ne garde que sa marge, plus bas dans ce fichier. */

/* Fondu d'entrée du volet suivi (cf. htaFadeIn — le volet consultation a
   déjà cons-step-enter). */
.ic-page #icSuiviStepWrap > .prn-step { animation: icFadeIn 0.25s ease; }

@keyframes icFadeIn {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .ic-page #icSuiviStepWrap > .prn-step { animation: none; }
}

.ic-page .cons-card h3 {
    font-family: var(--font-sans);
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--ic-h3);
    letter-spacing: 0;
}

.ic-page .cons-more > summary { color: var(--ic-h3); }

/* ── Teintes de classe partagées par les DEUX parcours ────────────────────
   Chaque pilier reprend la couleur de sa classe dans hta-data (SRAA vert,
   β-bloquant violet, spironolactone rose, iSGLT2 cyan, diurétique bleu) —
   sur les cartes de situation (optimisation : data-key arni_ieca…) ET sur
   les chips + rangées de médicament de la titration (data-key raas…).
   Pas d'emoji (owner 2026-08-21) : la teinte porte l'identité de classe. */
/* R-16 (ronde 2026-09-23) : le vert #16a34a (3,30:1 sous le blanc de la chip
   sélectionnée, 3,15:1 en libellé) et le cyan #0891b2 (3,68 / 3,52:1)
   passaient sous AA — vert 700 et bleu 700 (« diurétique bleu », comme la
   classe HTA) tiennent l'identité et l'AA (5,0 et 6,7:1). */
.ic-page #icSuiviPillars .suivi-chip[data-key="raas"],
.ic-page .diab-med-row[data-med-row="raas"] { --cls-color: #15803d; }

.ic-page #icSuiviPillars .suivi-chip[data-key="bb"],
.ic-page .diab-med-row[data-med-row="bb"] { --cls-color: #7c3aed; }

.ic-page #icSuiviPillars .suivi-chip[data-key="arm"],
.ic-page .diab-med-row[data-med-row="arm"] { --cls-color: #be185d; }

.ic-page #icSuiviPillars .suivi-chip[data-key="isglt2"],
.ic-page .diab-med-row[data-med-row="isglt2"] { --cls-color: #0e7490; }

.ic-page #icSuiviPillars .suivi-chip[data-key="diuretic"],
.ic-page .diab-med-row[data-med-row="diuretic"] { --cls-color: #1d4ed8; }

/* ── Volet suivi (titration) — accent rouge ──────────────────────────────── */
/* Anneau de « Portée et sources » (recette `.prn-portee`, D261). */
.ic-page .page-header { --portee-accent: var(--ic-accent); }
.ic-page [id$="SuiviStepWrap"] {
    --suivi-accent: var(--ic-accent);
    --suivi-accent-soft: var(--ic-accent-soft);
}

.ic-page [id$="SuiviStepWrap"] fieldset select:focus,
.ic-page [id$="SuiviStepWrap"] fieldset input:focus {
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15);
}

.ic-page .suivi-card > h3 { color: var(--ic-h3); }

/* Pastille « Étape X / 3 — … » : redondante avec le stepper libellé qui la
   surplombe (mêmes numéros, mêmes libellés) — retirée (doublon, owner
   2026-08-21). L'annonce d'étape aux lecteurs d'écran passe par
   announceStepChange (wizard-base), pas par cette pastille. */
/* NON promu au socle (Q7, 2026-09-02) — cf. hta.css : le sélecteur du socle
   atteindrait les 8 autres volets suivi, où la pastille est visible. */
.ic-page #icSuiviStepWrap .step-label { display: none; }

/* Chips de pilier (étape 1 titration) — chaque classe dans SA teinte :
   liseré et sélection pleine teinte (même identité que les cartes de
   situation du parcours optimisation). */
.ic-page #icSuiviPillars .suivi-chip {
    border-color: color-mix(in srgb, var(--cls-color, var(--prn-line)) 45%, var(--prn-line));
    font-weight: 600;
}

.ic-page #icSuiviPillars .suivi-chip:hover {
    border-color: var(--cls-color, var(--suivi-accent));
    background: color-mix(in srgb, var(--cls-color, var(--suivi-accent)) 6%, var(--prn-surface));
    color: inherit;
}

.ic-page #icSuiviPillars .suivi-chip.is-selected {
    background: var(--cls-color, var(--suivi-accent));
    border-color: var(--cls-color, var(--suivi-accent));
    color: #fff;
}

/* Rangées « molécule + dose » de la titration — la grille .diab-med-row
   n'était stylée que sous .diabete-page (comme les cartes de motif) :
   portage du patron diabète, avec liseré et libellé de classe dans la
   teinte du pilier. *//* minmax(0,1fr) : la colonne implicite ne s'étire pas au contenu — sans
   quoi la rangée la plus large (options de dose longues) impose sa largeur
   à toutes et fait défiler la page sur mobile. */
.ic-page .diab-meds { margin-top: 0.7rem; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.7rem; }

.ic-page .diab-med-row {
    display: grid;
    /* minmax(0, …fr) : les pistes ne s'étirent plus au contenu — les
       colonnes Molécule/Dose s'alignent d'une rangée à l'autre, même quand
       une option de dose est longue (ARM « 25 (12,5 au départ…) »). */
    grid-template-columns: minmax(110px, 0.8fr) minmax(0, 2fr) minmax(0, 1.4fr);
    gap: 0.6rem;
    align-items: end;
    padding: 0.65rem 0.8rem;
    /* R-5 (ronde 2026-10-13) : bord COMPLET teinté, jamais de liseré latéral
       (préférences owner) — la teinte de classe reste lisible par le bord. */
    border: 1px solid color-mix(in srgb, var(--cls-color, var(--prn-line)) 45%, var(--prn-line));
    border-radius: 10px;
    background: color-mix(in srgb, var(--cls-color, var(--prn-surface)) 4%, var(--prn-surface));
}

.ic-page .diab-med-class {
    font-weight: 700;
    font-size: 0.88rem;
    color: var(--cls-color, var(--prn-navy));
    padding-bottom: 0.55rem;
}

.ic-page .diab-med-field {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--prn-muted);
}

.ic-page .diab-med-dose {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

/* La dose remplit sa colonne (largeur identique à chaque rangée) — les
   unités « mg DIE / mg BID » forment une vraie colonne à droite. */
.ic-page .diab-med-dose > select,
.ic-page .diab-med-dose > input { flex: 1 1 5.5rem; width: auto; min-width: 5.5rem; }

.ic-page .diab-med-unit {
    font-size: 0.78rem;
    color: var(--prn-muted);
    white-space: nowrap;
}

.ic-page .diab-med-since {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
    color: var(--prn-muted);
    cursor: pointer;
}

.ic-page .diab-med-note {
    grid-column: 1 / -1;
    margin: 0;
    font-size: 0.8rem;
    color: var(--prn-muted);
    font-style: italic;
}

/* Fraction de comprimé retenue : la mise en garde de sécabilité n'est pas
   une note de service — elle porte une vérification à faire avant de
   remettre l'ordonnance, donc elle sort du gris italique. */
.ic-page .diab-med-note.ic-frac-note {
    color: var(--prn-navy, #0f2d4e);
    font-style: normal;
    border-left: 3px solid var(--prn-accent, #0f766e);
    padding-left: 0.55rem;
}

@media (max-width: 640px) {
    /* minmax(0,1fr) — pas 1fr : le plancher min-content d'un select à
           options longues (« 50 (2 co de 25 mg…) ») déborderait du viewport. */
    .ic-page .diab-med-row { grid-template-columns: minmax(0, 1fr); align-items: stretch; }

    .ic-page .diab-med-class { padding-bottom: 0; }

    .ic-page .diab-med-field { min-width: 0; }

    /* width:0 + min-width:100 % : le select ne contribue plus à la largeur
           min-content de sa colonne mais s'affiche pleine largeur. */
    .ic-page .diab-med-field > select { width: 0; min-width: 100%; }

    .ic-page .diab-med-dose > select { width: 0; }
}

/* Type d'IC dérivé (arc 4 de la ronde du 2026-09-23) : une pilule EN MOTS
   (« ICFEr — FEVG 30 % »), bord et fond teintés de l'accent via les jetons —
   elle se décline seule en sombre (--ic-h3 éclairci). Section 1 et tête de
   l'étape 2 : la même phrase. */
.ic-page .ic-hf-kind {
    display: inline-block;
    margin: 0.75rem 0 0;
    padding: 0.3rem 0.75rem;
    border: 1px solid var(--ic-accent-line);
    border-radius: 999px;
    background: var(--ic-accent-soft);
    color: var(--ic-h3);
    font-weight: 600;
}
.ic-page .ic-hf-kind[hidden] { display: none; }

/* ── Thème sombre (patron hta.css — accents éclaircis, fonds mi-tons) ────── */
[data-theme="dark"] .ic-page {
    --ic-accent-strong: #fca5a5;
    --ic-accent-soft: rgba(220, 38, 38, 0.08);
    --ic-accent-line: rgba(220, 38, 38, 0.28);
    --ic-h3: var(--ic-accent-strong);
}

[data-theme="dark"] .ic-page [id$="SuiviStepWrap"] {
    --suivi-accent: var(--ic-accent);
    --suivi-accent-soft: var(--ic-accent-soft);
}
/* Numéro de section en sombre (D6-IC, passe esthétique HTA 2026-09-02,
   parité hta.css lot 1) : rouge brut #dc2626 = 3,26:1 ouvert et 2,29:1
   replié (opacité .75) → accent éclairci (8,3:1 ouvert, ≈ 5:1 replié). */
[data-theme="dark"] .ic-page .ic-sec-num { border-color: var(--ic-accent-strong); color: var(--ic-accent-strong); }

/* R-16 : le titre de page (en barre aux étapes 2-3) restait au rouge brut en
   sombre — 3,68:1 ; accent éclairci comme les titres de section. */
[data-theme="dark"] .ic-page .page-header h1 { color: var(--ic-accent-strong); }

/* Kickers de champ (C8) en sombre : le remap --suivi-accent → --ic-accent
   sert les fonds/bordures (chips sélectionnées) mais laisse le TEXTE au
   rouge brut (#dc2626 = 3,26:1 sur la carte sombre — sous AA). Le texte
   seul passe à l'accent éclairci, comme les titres (passe esthétique
   2026-08-28, constat E4). */
[data-theme="dark"] .ic-page [id$="SuiviStepWrap"] .suivi-field-lead {
    color: var(--ic-accent-strong);
}

/* Chips pleines : le rouge #dc2626 porte toujours du blanc lisible. */
[data-theme="dark"] .ic-page [id$="SuiviStepWrap"] .suivi-chip.is-selected { color: #fff; }

[data-theme="dark"] .ic-page .diab-med-row {
    border-left-color: color-mix(in srgb, var(--cls-color, var(--ic-accent)) 80%, #fff);
}

[data-theme="dark"] .ic-page .diab-med-class {
    color: color-mix(in srgb, var(--cls-color, var(--prn-ink)) 55%, #fff);
}

/* ── Mémoire de visite — carte « Reprendre la dernière visite » ──────────── */
/* R-20 (ronde 2026-09-23) : le liseré latéral de 4 px contredisait la règle
   « fond teinté + bord complet teinté, jamais de liseré latéral » — la carte
   garde son fond et son bord complet. */
.ic-page .ic-memo {
    margin: 0 0 1rem;
    padding: 0.9rem 1.1rem;
    border: 1px solid var(--ic-accent-line);
    border-radius: 10px;
    background: var(--ic-accent-soft);
}

.ic-page .ic-memo h3 { margin: 0 0 0.35rem; color: var(--ic-h3); font-size: 1rem; }

.ic-page .ic-memo-sub { margin: 0 0 0.35rem; font-size: 0.9rem; }
/* « Bilan élargi (annuel / si disponible) » — le QUATRIÈME <summary> de la
   famille sous 44 px, trouvé par le balayage des replis d'IC (2026-09-02) :
   24,8 px en bureau. Même geste que ses aînés (C-3b, C-4, risque) ; son
   état ouvert reste dérivé des DONNÉES (un champ du bilan élargi rempli →
   ouvert), pas de `_foldOpen`. */
.ic-page #icSuiviLabsExt > summary {
    cursor: pointer;
    min-height: 44px;
    padding-block: 0.55rem;
    box-sizing: border-box;
}

.ic-page .ic-memo-list { margin: 0 0 0.5rem; padding-left: 1.2rem; font-size: 0.9rem; }

.ic-page .ic-memo-list li { margin: 0.15rem 0; }

.ic-page .ic-memo-warn {
    margin: 0 0 0.6rem;
    padding: 0.45rem 0.6rem;
    font-size: 0.82rem;
    color: #92400e;
    background: rgba(245, 158, 11, 0.14);
    border-radius: 8px;
}

.ic-page .ic-memo-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }

.ic-page .ic-memo-done { font-size: 0.9rem; font-weight: 600; color: var(--ic-h3); }

[data-theme="dark"] .ic-page .ic-memo-warn { color: #fcd34d; }

/* Reprise en UNE carte (owner 2026-08-26) : fiche chiffrée active → la
   mémoire mono-poste (même patient seulement) se replie en une ligne sous la
   carte fiche ; dépliée d'un clic, jamais supprimée. */
.ic-page .ic-memo-fold { margin: 0 0 1rem; }
.ic-page .ic-memo-fold > summary {
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--ic-h3);
}
.ic-page .ic-memo-fold[open] > summary { margin-bottom: 0.45rem; }
.ic-page .ic-memo-fold > .ic-memo { margin-top: 0.45rem; }

/* Décision nuancée (go Q) : gestes proposés — Retenir / Reporter / Refus.
   Clôture d'arc 2026-08-28 : la mise en boîte du bloc d'étape 3 (bordure,
   liseré, padding) et .ic-dec-label sont morts avec le lot N — seule la
   variante en carte .ic-dec-inline est encore émise. */
.ic-page .ic-decisions .ic-dec-sub { margin: 0 0 0.6rem; font-size: 0.85rem; color: var(--prn-muted); }

.ic-page .ic-dec-opts { display: flex; gap: 0.9rem; flex-wrap: wrap; }

.ic-page .ic-dec-opt { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.88rem; cursor: pointer; }

.ic-page .ic-dec-reason { display: block; margin-top: 0.45rem; font-size: 0.85rem; }
/* Geste LIÉ (D11, brique partagée) : parité de recette avec HTA — IC n'émet
   pas de carte liée aujourd'hui, la rangée reste donc inchangée. */
.ic-page .ic-dec-linked { display: block; margin-top: 0.4rem; font-size: 0.85rem; font-weight: 600; color: var(--prn-muted); }
.ic-page .ic-dec-linked[hidden] { display: none; }
.ic-page .ic-dec-row[data-dec-linked-on] .ic-dec-opt { opacity: 0.55; cursor: not-allowed; }

/* Champ raison au patron du site (clôture d'arc 2026-08-28 : « aucun
   contrôle natif nu ») — bordure, rayon, padding et 16 px comme les
   champs de l'étape 1 ; anti-zoom iOS. */
.ic-page .ic-dec-reason input {
    width: 100%;
    margin-top: 0.2rem;
    padding: 0.5rem 0.7rem;
    font-size: 1rem;
    border: 1px solid var(--prn-line-strong);
    border-radius: 8px;
    background: var(--prn-surface, #fff);
    color: inherit;
}
.ic-page .ic-dec-reason input:focus-visible {
    outline: 2px solid var(--ic-accent);
    outline-offset: 1px;
}

/* Lot N (owner 2026-08-27) : la décision vit SUR la carte du geste à
   l'étape 2 — rangée compacte séparée par un filet pointillé, sans le
   cadre latéral du bloc historique de l'étape 3. */
.ic-page .suivi-rec .ic-dec-inline {
    margin-top: 0.6rem;
    padding: 0.55rem 0 0;
    border: none;
    border-top: 1px dashed var(--prn-line);
    border-radius: 0;
}

/* L'amorce de l'arbitrage au ton du kicker de carte (clôture d'arc
   2026-08-28) — plus discrète que la source bibliographique, elle
   n'annonçait pas le contrôle clinique du lot. */
.ic-page .ic-dec-lead {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--ic-h3);
    align-self: center;
}

/* Le geste écarté s'estompe, la rangée de décision reste pleinement
   lisible (leçon des cartes voyage : le choisi se voit au premier coup
   d'œil, le non-retenu s'efface — le mot RESTE, jamais la couleur seule).
   Clôture d'arc 2026-08-28 (constat HAUTE, WCAG) : l'opacité 0,55
   faisait tomber la justification à 2,3:1 et les rangées à 4,0:1 — sous
   AA, y compris sur la consigne de sécurité d'un geste refusé.
   L'estompage passe par l'APLATISSEMENT (ton secondaire + désaturation),
   jamais sous 4,5:1 — l'état reste dit en mots par la radio cochée. */
.ic-page .suivi-rec[data-dec-status] > .suivi-rec-rationale,
.ic-page .suivi-rec[data-dec-status] > .suivi-rec-rows,
.ic-page .suivi-rec[data-dec-status] > .suivi-rec-risk,
.ic-page .suivi-rec[data-dec-status] > .suivi-rec-src {
    color: var(--prn-muted);
    filter: grayscale(1);
}

/* Récapitulatif lecture seule de l'étape 3 (les radios vivent à l'étape 2). */
.ic-page .ic-dec-recap { margin: 0.2rem 0 0; padding-left: 1.15rem; }

.ic-page .ic-dec-recap li { margin-bottom: 0.3rem; }

.ic-page .ic-dec-recap-reason { color: var(--prn-muted); }

/* Accordéon guidé de l'étape 1 titration (owner 2026-08-22). */
.ic-page .ic-sec-bar { display: flex; justify-content: flex-end; margin: 0 0 0.4rem; }

.ic-page .ic-sec-toggle {
    background: none; border: none; cursor: pointer;
    font-size: 0.82rem; color: var(--ic-h3);
    text-decoration: underline; text-underline-offset: 3px; padding: 0.2rem 0;
}

.ic-page .ic-sec { margin-top: 0.85rem; }

/* Section repliée : l'en-tête est tout le contenu — padding symétrique
   (sinon le padding-bas + la marge du legend lestent la carte vers le bas). */
.ic-page .ic-sec:not(.is-open) { padding-bottom: 0.85rem; }

.ic-page .ic-sec:not(.is-open) > legend { margin-bottom: 0; }

.ic-page .ic-sec-head {
    display: flex; align-items: center; gap: 0.5rem;
    width: 100%; background: none; border: none; cursor: pointer;
    padding: 0.15rem 0; text-align: left;
}

.ic-page .ic-sec-num {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1.35rem; height: 1.35rem; border-radius: 50%;
    border: 2px solid var(--ic-accent); color: var(--ic-accent);
    font-size: 0.78rem; font-weight: 700; flex: none;
}

.ic-page .ic-sec-title { font-weight: 700; font-size: 0.95rem; }

.ic-page .ic-sec-state { font-size: 0.8rem; color: var(--prn-muted); }

/* ✓ d'état : #16a34a = 3,3:1 sur blanc à 12,8 px / 700 → #15803d = 5,0:1
   (C10, passe esthétique HTA 2026-09-02, parité hta.css) ; en sombre le vert
   éclairci du patron HTA (#4ade80, 9:1) — IC n'avait aucune déclinaison. */
.ic-page .ic-sec-state.is-done { color: #15803d; font-weight: 700; }
[data-theme="dark"] .ic-page .ic-sec-state.is-done { color: #4ade80; }

/* En-tête REPLIÉ : l'estompage se fait par la COULEUR, jamais par
   `opacity` (parité hta.css:1171 — la doctrine est explicite : un
   estompage n'emmène jamais un texte sous 4,5:1). `opacity: .75` sur
   l'en-tête entier mesurait 2,29:1 sur le numéro et faisait tomber le
   récapitulatif d'en-tête à 3,32:1 dès sa généralisation à IC : un
   défaut latent que le nouveau texte a rendu bloquant. */
.ic-page .ic-sec:not(.is-open) .ic-sec-title { color: var(--prn-muted); }
.ic-page .ic-sec:not(.is-open) .ic-sec-num {
    border-color: var(--prn-muted);
    color: var(--prn-muted);
}
.ic-page .ic-sec:not(.is-open) .ic-sec-head:hover .ic-sec-title,
.ic-page .ic-sec:not(.is-open) .ic-sec-head:focus-visible .ic-sec-title { color: inherit; }
.ic-page .ic-sec:not(.is-open) .ic-sec-head:hover .ic-sec-num,
.ic-page .ic-sec:not(.is-open) .ic-sec-head:focus-visible .ic-sec-num {
    border-color: var(--ic-accent);
    color: var(--ic-accent);
}

/* En-tête et bascule : police et encre du site — un <button> n'hérite ni
   l'une ni l'autre (Arial, noir et blanc purs sinon ; style.css:163 « jamais
   blanc pur ») — D11, passe esthétique HTA 2026-09-02, parité des deux
   répliques (hta.css l'avait au lot 1). `font: inherit` sur l'en-tête (le
   titre garde sa taille), `font-family` seule sur la bascule (sa taille
   .82rem est déclarée plus haut). Cibles tactiles (décision owner
   2026-09-02, Q6 : « ≥ 44 px sur HTA et IC ») : 44 px sur l'en-tête et la
   bascule, numéro et ✓ centrés par le flex. */
.ic-page .ic-sec-head { font: inherit; color: var(--prn-ink); min-height: 44px; }

.ic-page .ic-sec-toggle { font-family: inherit; min-height: 44px; padding: 0.2rem 0.25rem; }

/* « Section suivante → » : une COMMANDE, pas une chip — teinte d'accent,
   coins francs, alignée à droite, détachée des chips de saisie. */
.ic-page .ic-sec-nextp { margin: 1rem 0 0.1rem; display: flex; justify-content: flex-end; }

.ic-page .ic-sec-next {
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 8px;
    color: var(--ic-h3);
    border-color: var(--ic-accent-line);
    background: var(--ic-accent-soft);
}

.ic-page .ic-sec-next:hover { border-color: var(--ic-accent); background: var(--ic-accent-soft); }

/* Gardes TOUJOURS dans le champ visuel à l'étape 1 (guidage 2026-08-26 —
   choix documenté : pur CSS position:sticky plutôt qu'un déplacement DOM,
   pour que l'hôte aria-live ne bouge jamais dans l'arbre — aucun
   ré-annoncement au lecteur d'écran, aucun runner touché). Une garde
   déclenchée par la saisie (TAS 82 en section 2, K⁺ 5,9 en section 3) se
   peint épinglée au bas de la fenêtre au lieu d'apparaître sous le pli,
   sous quatre en-têtes repliés. Fond opaque (le contenu défile dessous),
   borne de hauteur (une pile de gardes ne recouvre jamais la saisie). */
.ic-page #icSuiviFlags:not(:empty) {
    position: sticky;
    /* Au-dessus de la barre d'actions, PAS derrière : .voyage-actions est
       elle-même sticky bottom:0 (wizard.css, z-index 10) — à bottom:0 les
       gardes glissaient sous elle. À l'étape 1 la barre n'a qu'un bouton
       (jamais de « Précédent ») : ~71-72 px mesurés desktop ET mobile —
       4.5rem les épingle juste au-dessus, sans mordre le Continuer. */
    /* 5rem, pas 4.5 : la barre d'actions mesure 72,2 px et 4,5rem en vaut
       72 — la garde MORDAIT la barre de 0,2 px (mesuré le 2026-09-02 sur
       les trois volets, exposé par la généralisation du récapitulatif).
       80 px laissent 8 px d'air, et la marge ne dépend plus du pixel. */
    bottom: 5rem;
    z-index: 5;
    max-height: 40vh;
    overflow-y: auto;
    background: var(--prn-bg);
    border-top: 1px solid var(--prn-line);
    padding: 0.5rem 0 0.65rem;
    box-shadow: 0 -8px 14px -10px rgba(10, 22, 40, 0.35);
}

/* ══════════════════════════════════════════════════════════════════════════
   Aération + cohérence (owner 2026-08-22 : « plus aéré, visuellement
   cohérent — les cases sur la même ligne »). Rythme vertical unique :
   ~1.35rem entre cartes de section, gouttières de grille ≥ 1rem, éléments
   rattachés à leur carte par la proximité.
   ══════════════════════════════════════════════════════════════════════════ *//* — Optimisation : cartes de section espacées d'un même pas — */
.ic-page .cons-card { margin: 1.35rem 0; }

/* Éditeur d'ordonnance : la rangée partage une ligne médiane (nom centré
   sur les champs) ; la posologie — le contenu le plus long — a sa propre
   ligne pleine largeur, Quantité et Renouvellements se partagent l'autre. */
.ic-page .prn-rx-editor .prn-rx-row { align-items: center; }

.ic-page .prn-rx-field--wide { flex: 1 1 100%; }

/* Badge de statut d'une rangée (fusion aperçu → éditeur, owner 2026-08-26 :
   « une seule vue du régime ») : CESSER / repris / nouvel agent / à
   confirmer se lisent au premier coup d'œil — le MOT est le badge, jamais
   la couleur seule. */
.ic-page .prn-rx-editor .prn-rx-sub { font-weight: 700; color: var(--ic-h3); }

/* — Titration : personnalisation du régime (owner 2026-08-22) — dose
   « Autre… », moment de prise, prises AM/PM distinctes (Entresto). */
.ic-page .diab-med-dose { flex-wrap: wrap; }

.ic-page .diab-med-pm {
    display: inline-flex; align-items: center; gap: 0.35rem;
    font-size: 0.82rem; font-weight: 600; color: var(--prn-muted);
    white-space: nowrap;
}

.ic-page .diab-med-pm select { width: auto; min-width: 5.5rem; }

.ic-page .diab-med-perso {
    grid-column: 1 / -1;
    display: flex; align-items: center; gap: 0.4rem 1.2rem; flex-wrap: wrap;
}

/* Fréquence de prise (lot H, owner 2026-08-27) : le select DIE/BID/TID/HS…
   vit DANS la cellule de dose — la rangée se lit comme la posologie
   complète « [dose] mg [BID] ». Désactivé (prises AM/PM distinctes), il
   s'estompe sans disparaître : la fréquence reste dite. */
.ic-page .diab-med-dose select[data-med-freq] { width: auto; min-width: 4.5rem; }

.ic-page .diab-med-dose select[data-med-freq]:disabled { opacity: 0.6; }

/* Arc 5 (D481 « Deux menus de la brique ») : la PRISE a sa ligne — «
   [BID] [AM et PM] [avec les repas] » sous les colonnes Molécule et Dose,
   alignée d'une rangée à l'autre. Mesuré par captures : dans la cellule de
   dose, le moment se tronquait (« AM et ») puis la cellule montait sur trois
   lignes au carvédilol. Chaque menu garde la largeur de son libellé. */
.ic-page .ic-poso-field { grid-column: 2 / -1; }
.ic-page .ic-poso-ctls { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; }
.ic-page .ic-poso-ctls > select { flex: 0 0 auto; width: auto; min-width: 5rem; }
.ic-page .ic-poso-ctls > select[data-med-moment] { min-width: 8rem; }
.ic-page .ic-poso-ctls > select[data-med-meal] { min-width: 10rem; }
.ic-page .diab-med-pm input { width: 5.5rem; }
@media (max-width: 820px) {
    .ic-page .ic-poso-field { grid-column: 1 / -1; }
}

.ic-page .diab-med-asym { margin: 0; }

/* Motif de suspension (lot J, owner 2026-08-27) : select + précision libre
   dans la rangée suspendue — dimensionnés à leur contenu, jamais pleine
   largeur (champs dimensionnés à leur contenu, §aération). */
.ic-page .diab-med-heldreason select { width: auto; min-width: 11rem; }

.ic-page .diab-med-heldnote input[type="text"] { width: 14rem; max-width: 100%; }

/* — Titration : étape 1 — */

.ic-page #icSuiviHrNote { margin: 0.45rem 0 0.2rem; font-size: 0.8rem; }

/* Statut clinique : les champs n'ont pas besoin de toute la largeur de
   carte — mais depuis le lot M la grille porte TROIS champs (FEVG + écho
   datée + qualité) : le cap 18rem d'origine (posé quand elle n'avait que
   la FEVG) les empilait en une colonne de 288 px avec 700 px de vide.
   48rem = une seule rangée de trois colonnes dimensionnées au contenu
   (passe esthétique 2026-08-28, constat E1). */
.ic-page .ic-sec[data-sec="status"] .suivi-grid { max-width: 48rem; }

/* Champs SOLITAIRES dans leur grille (TAS debout, autopesée) : auto-fit +
   1fr étirait l'unique champ à la pleine largeur de carte (972 px pour un
   nombre à 3 chiffres). Même intention que .ic-severity : dimensionné à
   son contenu (E3). */
.ic-page #icSuiviStandingWrap,
.ic-page #icSuiviSelfWeighWrap { max-width: 18rem; }

/* Selects Oui/Non conditionnels du statut (anticoagulation, prévention
   secondaire) : 972 px pour « Oui » — même patron que le motif de
   suspension (width auto + min raisonnable), le libellé garde sa ligne
   pleine (E3). */
.ic-page #icSuiviAnticoagWrap select,
.ic-page #icSuiviSecPrevWrap select {
    width: auto;
    min-width: 12rem;
    max-width: 18rem;
    align-self: flex-start; /* le label-colonne du socle étire ses enfants */
}

/* Sous-champs de la rangée SUSPENDUE (depuis le / motif / précision) : le
   patron champ du socle (colonne) croisé avec l'align-items:center de
   .diab-med-since les CENTRAIT dans la carte — seuls éléments centrés
   d'une étape entièrement alignée à gauche (E2). */
.ic-page .diab-med-heldsince,
.ic-page .diab-med-heldreason,
.ic-page .diab-med-heldnote { align-items: flex-start; }

/* Chips : texte calé à gauche quand le libellé passe sur deux lignes. */
.ic-page .suivi-chip { text-align: left; }

/* Fin de formulaire : l'astuce se détache du dernier bloc. */
.ic-page .diab-action-hint { margin-top: 1.6rem; }

/* — Titration : étapes 2-3 — */
.ic-page .suivi-rec { margin: 0 0 1.1rem; padding: 1rem 1.15rem; }

.ic-page .suivi-card { margin: 0 0 1.15rem; padding: 1rem 1.15rem; }

.ic-page .suivi-card > :last-child { margin-bottom: 0; }

.ic-page .ic-dec-row { margin-bottom: 0.6rem; }

/* E-1 (owner, QCM 2026-10-23 : « Pas de badge si sécurité (Recommandé) ») :
   le vert de tête signale un geste d'OPTIMISATION ; une conduite de sécurité
   en tête reprend la carte neutre — et le vert tient dans les deux thèmes. */
.ic-page .suivi-rec-top.ic-rec-safety:not(.suivi-rec-refer) {
    border-color: rgb(134, 164, 229);
    background: rgb(246, 249, 254);
}
[data-theme="dark"] .ic-page .suivi-rec-top:not(.ic-rec-safety):not(.suivi-rec-refer) { border-color: rgba(74, 222, 128, 0.55); }

/* Badge « Meilleure option » sur la carte de rec : l'étoile suffit — le
   point de risque ferait un double glyphe (● ☆) dans la rangée de badges. */
.ic-page .suivi-rec-meta .prn-risk-dot { display: none; }

/* — Thème sombre : rendre aux cartes leur structure (bordures lisibles) — */
[data-theme="dark"] .ic-page .cons-card,
[data-theme="dark"] .ic-page .suivi-card,
[data-theme="dark"] .ic-page .suivi-rec,
[data-theme="dark"] .ic-page [id$="SuiviStepWrap"] fieldset,
[data-theme="dark"] .ic-page .diab-med-row { border-color: rgba(148, 163, 184, 0.24); }

/* La carte référence garde sa teinte en sombre (accent éclairci WCAG —
   clôture d'arc 2026-08-28) : la règle bordure générique ci-dessus ne
   doit pas la fondre dans le lot. */
[data-theme="dark"] .ic-page .suivi-card.suivi-refer-card {
    border-color: color-mix(in srgb, var(--prn-teal-strong, #086c6b) 55%, #fff);
}

[data-theme="dark"] .ic-page .diab-med-row {
    border-left-color: color-mix(in srgb, var(--cls-color, var(--ic-accent)) 80%, #fff);
}

/* ── Fiche de suivi chiffrée (2026-08-24) — partagée entre les deux volets. *//* Mesures non pharmacologiques + plan patient (rapatriés du volet
   Optimisation à la fusion 2026-08-25). */
.ic-page .ic-mnp-opt {
    display: inline-flex;
    align-items: baseline;
    gap: 0.45rem;
    cursor: pointer;
}

.ic-page .ic-mnp .cons-advice { padding: 0.45rem 0.2rem; }

/* R-17 (ronde IC 2026-09-23) — cibles ≥ 44 px au pouce, recette déjà posée
   au diabète (.diab-med-since, ≤ 820 px). Mesuré à 393 px : case « Actuellement
   suspendu » 24 px, mesures non pharmacologiques 27 px, leur « Détail »
   21-23 px, « Fiche du pilier » 43 px. Les 44 px viennent de la hauteur
   minimale et du centrage — le triangle du résumé reste. Les sous-champs de
   la rangée suspendue portent aussi .diab-med-since : ils gardent leur
   alignement à gauche (E2), le centrage ne vise que les cases. */
@media (max-width: 820px) {
    .ic-page .diab-med-since,
    .ic-page .ic-mnp-opt { min-height: 44px; }
    .ic-page .diab-med-since:not(.diab-med-heldsince, .diab-med-heldreason, .diab-med-heldnote),
    .ic-page .ic-mnp-opt { align-items: center; }
    .ic-page .ic-mnp .cons-advice-more > summary,
    .ic-page .ic-fiche-pilier > summary {
        min-height: 44px;
        box-sizing: border-box;
    }
}

.ic-page .ic-plan-cta { margin: 1rem 0 0; }

.ic-page .ic-fiche h3 { margin: 0 0 0.35rem; font-size: 0.98rem; }

.ic-page .ic-fiche-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0.5rem 0 0.2rem;
}

.ic-page .ic-fiche-row input {
    flex: 0 1 14rem;
    min-width: 9rem;
}

.ic-page .ic-fiche-status {
    margin: 0.45rem 0 0;
    font-size: 0.88rem;
    font-weight: 600;
}

.ic-page .ic-fiche-rem { margin-top: 0.5rem; }

.ic-page .ic-fiche-rem-title {
    margin: 0 0 0.2rem;
    font-size: 0.85rem;
    font-weight: 700;
}

.ic-page .ic-fiche-rem ul {
    margin: 0;
    padding-left: 1.2rem;
    font-size: 0.88rem;
    line-height: 1.55;
}

/* ── Fiche du pilier ouverte SUR PLACE (fusion 2026-08-25) : le catalogue
   d'options du pilier — préférée, alternatives, RAMQ — sous la carte du
   geste, au lieu d'un renvoi vers l'autre volet. */
.ic-page .ic-fiche-pilier { margin-top: 0.7rem; }

.ic-page .ic-fiche-opts {
    list-style: none;
    margin: 0.4rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.5rem;
}

/* R-16 (clôture 2026-09-26) : la « meilleure option » portait un liseré
   latéral de 3 px — contraire à la règle « fond teinté + bord complet teinté,
   jamais de liseré latéral ». Elle se distingue par un bord COMPLET teinté à
   l'accent et un fond légèrement teinté (tokens, clair/sombre). */
.ic-page .ic-fiche-opt {
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--prn-line);
    border-radius: 8px;
    background: var(--prn-surface);
}

.ic-page .ic-fiche-opt.is-best {
    border-color: color-mix(in srgb, var(--ic-accent) 55%, var(--prn-line));
    background: color-mix(in srgb, var(--ic-accent) 5%, var(--prn-surface));
}

.ic-page .ic-fiche-drug {
    margin: 0;
    font-weight: 600;
    font-size: 0.9rem;
    line-height: 1.4;
}

.ic-page .ic-fiche-poso {
    margin: 0.25rem 0 0;
    font-size: 0.84rem;
    line-height: 1.5;
    color: var(--prn-muted);
}

.ic-page .ic-fiche-ramq {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    vertical-align: 1px;
    background: var(--prn-teal-light, #e6f4f1);
    color: var(--prn-teal-strong);
}

/* G-18 (ronde 2026-09-23) : pastel codé en dur (#fef3c7 / #92400e, sombre
   rustiné à part) → tokens de sévérité, qui se déclinent seuls en clair et
   en sombre. */
.ic-page .ic-fiche-ramq.is-exception {
    background: var(--prn-warning-bg, #fef3c7);
    color: color-mix(in srgb, var(--prn-warning, #b45309) 80%, #000);
}

[data-theme="dark"] .ic-page .ic-fiche-ramq.is-exception { color: var(--prn-warning, #fcd34d); }

/* ── Pilier SUSPENDU (owner 2026-08-25) : au dossier mais pas pris en ce
   moment. La ligne reste lisible — on ne cache pas un traitement suspendu,
   on le signale — mais elle se distingue du régime actif. */
.ic-page .diab-med-row.is-held {
    border-left-style: dashed;
    background: var(--prn-bg-soft, transparent);
}

.ic-page .diab-med-held { font-weight: 600; }

.ic-page .diab-med-row.is-held .diab-med-class::after {
    content: " — suspendu";
    font-weight: 600;
    color: var(--prn-muted);
}

[lang="en"] .ic-page .diab-med-row.is-held .diab-med-class::after { content: " — held"; }

.ic-page .diab-med-heldsince input { max-width: 11rem; }

/* Questions de sévérité : rattachées visuellement au signe qui les ouvre. */
.ic-page .ic-severity { max-width: 26rem; }

/* Miroir des gardes de sécurité aux étapes 2 et 3 (reliquat H8) : le bandeau
   suivait le pharmacien jusqu'au portrait puis s'effaçait — exactement là où
   il décide et où il signe. Même apparence qu'à l'étape 1 (les cartes portent
   déjà leurs classes de ton) ; seul l'espacement du conteneur est à poser. */
.ic-page .ic-guards-mirror {
    display: grid;
    gap: .5rem;
    margin-bottom: 1rem;
}

/* Fiche du pilier — notes cliniques et RAMQ enfin rendues (M17), molécule en
   cours surlignée (M18). La note est du contenu secondaire : plus petite,
   dans l'encre atténuée ; la pastille « en cours » reprend l'accent. */
.ic-page .ic-fiche-note {
    margin: .15rem 0 0;
    font-size: .82rem;
    color: var(--prn-muted);
}

.ic-page .ic-fiche-note.is-ramq { font-style: italic; }

/* R-11 (ronde 2026-09-23) : `--prn-bg-soft` n'est défini nulle part — le
   repli clair #f1f5f9 restait sous le rouge ÉCLAIRCI du thème sombre (1,73:1).
   Fond teinté par color-mix sur le token de sévérité : il se décline seul en
   clair et en sombre. */
.ic-page .ic-fiche-ramq.is-not_covered {
    background: color-mix(in srgb, var(--prn-danger, #b91c1c) 10%, transparent);
    color: var(--prn-danger, #b91c1c);
}

.ic-page .ic-fiche-opt.is-current {
    background: color-mix(in srgb, var(--prn-accent, #0f766e) 8%, transparent);
    border-radius: 4px;
}

.ic-page .ic-fiche-current {
    display: inline-block;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--prn-accent, #0f766e);
    border: 1px solid currentcolor;
    border-radius: 3px;
    padding: 0 .35rem;
    margin-left: .3rem;
    vertical-align: .08em;
}

/* IMPRESSION — les gardes sont peintes EN ENTIER (clôture 2026-09-02,
   constat C-1). À l'écran, l'hôte est épinglé et sa hauteur BORNÉE : une
   pile de gardes ne doit jamais recouvrir la saisie, et le pharmacien fait
   défiler. Sur papier il n'y a pas de barre de défilement — mesuré avant
   correctif : 140 px de gardes hors de la boîte, dont « PA ≥ 180/110 », de
   ton `absolute`. Une garde de sécurité ne disparaît jamais silencieusement
   (P3), et un document est un livrable complet (P11). */
@media print {
    .ic-page #icSuiviFlags:not(:empty) {
        position: static;
        max-height: none;
        overflow: visible;
        box-shadow: none;
        border-top: 0;
    }
}

/* ── Durée de la majoration du diurétique (B21, ronde 2026-09-23) : le choix
   3 / 5 / autre vit sur la carte du geste — commande en rangée, cibles
   ≥ 44 px, champ à 16 px (anti-zoom iOS), tokens seulement. */
.ic-page .ic-boost-days {
    margin: 0.75rem 0 0;
    padding: 0.35rem 0.75rem 0.5rem;
    border: 1px solid var(--prn-line);
    border-radius: 8px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 1.25rem;
}
.ic-page .ic-boost-days legend {
    padding: 0 0.3rem;
    font-size: 0.8rem;
    font-variant: small-caps;
    letter-spacing: 0.02em;
    color: var(--prn-muted);
}
.ic-page .ic-boost-opt,
.ic-page .ic-boost-other {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 44px;
    min-width: 44px; /* R-14 (ronde 2026-10-13) : cible tactile ≥ 44 px en largeur aussi */
    padding: 0 0.35rem;
    cursor: pointer;
}
.ic-page .ic-boost-other[hidden] { display: none; }
.ic-page .ic-boost-other input { width: 5rem; font-size: 16px; }

/* R-8 (ronde IC 2026-10-13) : en sombre, le bouton de contour (« ← Précédent »)
   parle le teal des actions génériques du site, comme sur l'étalon HTA —
   il restait à l'encre grise, bordure 1,22:1. */
[data-theme="dark"] .ic-page .btn-outline:not(:hover):not(.is-active) {
    color: var(--prn-teal, #6ee0de);
    border-color: color-mix(in srgb, var(--prn-teal, #6ee0de) 45%, transparent);
}
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .ic-page .btn-outline:not(:hover):not(.is-active) {
        color: var(--prn-teal, #6ee0de);
        border-color: color-mix(in srgb, var(--prn-teal, #6ee0de) 45%, transparent);
    }
}
