/* ============================================================================
   Pro Re Nata — Consultations infectio : page unique à sections (arc 2, A.2)
   ============================================================================
   Peau d'accent de la famille infectio — D295 (owner, QCM 2026-09-23,
   « Vert mousse #4d7c0f (Recommandé) »). Choix d'identité assumé, à ne pas
   « corriger » par zèle :
     · --inf-accent        #4d7c0f (5,0:1 sur blanc) — fonds, bordures,
                           anneaux, texte d'accent ; en sombre #a3e635 ;
     · le teal reste la couleur des actions génériques du site ; l'ambre, celle
       des précautions — le vert mousse ne sert ni l'un ni l'autre ;
     · la peau atteint les briques partagées par leurs canaux : accordéon
       (--prn-acc-accent*), carte de décision (--suivi-accent*), « Portée et
       sources » (--portee-accent) — patron anxiete.css / hta.css.
   Reprend l'habillage de css/atb.css (refonte esthétique 2026-08-14 :
   tokens + color-mix(), bord complet teinté, cartes tactiles) rescopé sur
   `.infectio-page` ; classes et ids des verrous inchangés.
   ============================================================================ */

.infectio-page {
    --inf-accent: #4d7c0f;
    --inf-accent-strong: #3f6212;
    --inf-accent-soft: color-mix(in srgb, #4d7c0f 8%, #fff);
    --inf-accent-line: color-mix(in srgb, #4d7c0f 35%, #fff);
    --prn-acc-accent:        var(--inf-accent);
    --prn-acc-accent-strong: var(--inf-accent-strong);
    --prn-acc-accent-soft:   var(--inf-accent-soft);
    --prn-acc-accent-line:   var(--inf-accent-line);
    --suivi-accent:          var(--inf-accent-strong);
    --suivi-accent-soft:     var(--inf-accent-soft);
    --suivi-accent-strong:   var(--inf-accent-strong);
}
[data-theme="dark"] .infectio-page {
    --inf-accent: #a3e635;
    --inf-accent-strong: #bef264;
    --inf-accent-soft: rgba(163, 230, 53, 0.12);
    --inf-accent-line: rgba(163, 230, 53, 0.35);
}
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .infectio-page {
        --inf-accent: #a3e635;
        --inf-accent-strong: #bef264;
        --inf-accent-soft: rgba(163, 230, 53, 0.12);
        --inf-accent-line: rgba(163, 230, 53, 0.35);
    }
}
.infectio-page .page-header { --portee-accent: var(--inf-accent); }
.infectio-page .page-header h1 { color: var(--inf-accent-strong); }

/* ── Page à sections : blocs, sous-titres, états vides ──────────────── */
.infectio-page .inf-empty {
    margin: 0.25rem 0;
    color: var(--prn-ink-soft);
}
.infectio-page .inf-subhead {
    margin: 1.1rem 0 0.4rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--inf-accent-strong);
}
.infectio-page .inf-kicker {
    margin: 0 0 0.25rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.infectio-page .inf-actions { margin: 1rem 0 0.25rem; }
/* Un bouton d'action long (« Générer la lettre de prise en charge conjointe »)
   passe à la ligne dans sa carte au lieu d'en déborder en mobile (clôture §8,
   2026-09-25 — mesuré à 375 px). */
.infectio-page .inf-actions .btn { white-space: normal; max-width: 100%; text-align: center; }
.infectio-page .inf-decision { margin-bottom: 0.9rem; }
/* « IRC sévère connue » sous le champ DFGe (carte Patient). */
.infectio-page .inf-renal-known { margin: 0.5rem 0 0; }
/* Éditeur d'ordonnance DANS la carte de décision (simplification de
   l'écran, owner 2026-09-26) : le médicament ne se lit qu'une fois — le titre
   de la carte le porte, la rangée de l'éditeur ne le répète pas. L'éditeur
   perd son habillage de carte et se sépare des rangées par le filet
   pointillé du pied de carte ; son titre prend les petites capitales des
   étiquettes. La prophylaxie, hors carte, garde l'éditeur complet. */
.infectio-page .inf-decision .prn-rx-editor {
    margin: 0.8rem 0 0;
    padding: 0.75rem 0 0;
    border: 0;
    border-top: 1px dashed var(--prn-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.infectio-page .inf-decision .prn-rx-editor h4 {
    margin: 0;
    font-family: inherit;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--prn-muted);
}
.infectio-page .inf-decision .prn-rx-editor .prn-rx-hint { margin: 0.1rem 0 0.5rem; }
.infectio-page .inf-decision .prn-rx-editor .prn-rx-row {
    grid-template-columns: 1fr;
    padding: 0;
    border: 0;
    background: transparent;
}
.infectio-page .inf-decision .prn-rx-editor .prn-rx-drug { display: none; }
.infectio-page .inf-decision .prn-opt-note { margin-top: 0.6rem; }
/* Conduite du score (D292/D327) : questions et contexte sous le verdict,
   prise en charge conjointe dite sans bloquer, écart replié. */
.infectio-page .inf-conduct { margin-top: 0.75rem; }
.infectio-page .inf-sga-context { margin-top: 0.6rem; }
.infectio-page .inf-conjointe { margin: 0 0 0.9rem; }
.infectio-page .inf-conjointe p { margin: 0; }
.infectio-page .inf-conjointe ul { margin: 0.35rem 0 0; padding-left: 1.2rem; }
.infectio-page .inf-cond-group + .inf-cond-group { margin-top: 0.75rem; }
.infectio-page .inf-cond-group-title {
    margin: 0 0 0.35rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--prn-ink-soft);
}
/* Précaution en une ligne : titre visible, détail replié (divulgation
   progressive — le détail reste intégral au volet et à l'impression). */
.infectio-page .inf-line {
    border: 1px solid var(--prn-line);
    border-radius: var(--radius-sm);
    background: var(--prn-surface);
    padding: 0.55rem 0.8rem;
    margin: 0.45rem 0;
}
.infectio-page .inf-line > summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--prn-ink);
}
.infectio-page .inf-line > p,
.infectio-page .inf-line > ul { margin: 0.45rem 0 0; }
.infectio-page .inf-line-warn {
    border-color: color-mix(in srgb, var(--prn-warning) 45%, var(--prn-line));
    background: color-mix(in srgb, var(--prn-warning) 6%, var(--prn-surface));
}
.infectio-page .inf-line-preg {
    border-color: color-mix(in srgb, var(--inf-accent) 40%, var(--prn-line));
}
.infectio-page .inf-orientation h3 { margin-top: 0.1rem; }

/* ── Étape 1 — choix du syndrome ───────────────────────────────────────── */
.infectio-page .atb-syndrome-list {
    list-style: none;
    padding: 0;
    margin: 0.75rem 0;
}
.infectio-page .atb-syndrome-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.95rem 1.1rem;
    border-radius: var(--radius-lg);
    font: inherit;
    cursor: pointer;
    margin-bottom: 0.65rem;
    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);
}
.infectio-page .atb-syndrome-row:hover {
    border-color: var(--prn-int-hover-border);
    background: var(--prn-int-hover-bg);
    box-shadow: var(--shadow-xs);
}
.infectio-page .atb-syndrome-row:focus-visible {
    outline: 2px solid var(--prn-int-strong);
    outline-offset: 2px;
}
.infectio-page .atb-syndrome-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-strong), var(--shadow-xs);
}
.infectio-page .atb-syndrome-head {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 0.35rem;
}
.infectio-page .atb-syndrome-head strong {
    font-size: 1.02rem;
    letter-spacing: -0.01em;
}
.infectio-page .atb-syndrome-desc {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.5;
    color: var(--prn-ink-soft);
}
/* Coche de sélection, dessinée en fin de rangée d'en-tête. */
.infectio-page .atb-syndrome-row.is-selected .atb-syndrome-head::after {
    content: "✓";
    flex: 0 0 auto;
    margin-left: auto;
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 50%;
    background: var(--prn-int-strong);
    color: var(--prn-int-strong-on);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1;
    display: grid;
    place-items: center;
}
/* Tag présent (ex. « Référence ER ») : il garde le bord droit, la coche
   le suit simplement (les deux margin-left:auto se neutraliseraient). */
.infectio-page .atb-syndrome-row.is-selected .atb-syndrome-head:has(.atb-tag)::after {
    margin-left: 0;
}
.infectio-page .atb-tag {
    display: inline-block;
    flex: 0 0 auto;
    margin-left: auto;
    padding: 0.16rem 0.6rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    background: var(--prn-teal-light);
    color: var(--prn-teal-strong);
    border: 1px solid color-mix(in srgb, var(--prn-teal) 30%, transparent);
}
.infectio-page .atb-tag-warning {
    background: var(--prn-danger-bg);
    color: var(--prn-danger);
    border-color: color-mix(in srgb, var(--prn-danger) 30%, transparent);
}

/* ── Présentation et impression clinique (orientation, QCM 2026-10-17) ──
   La question en cours se distingue (fond d'accent, bord complet) ; les
   réponses données restent modifiables au-dessus. La tête acquise porte la
   pilule « Plus probable » à l'accent de la famille ; une impression exclue
   s'estompe mais reste lisible et cliquable (le pharmacien garde la main) —
   son motif est dit en mots, jamais par la seule teinte. */
.infectio-page .inf-presentation { margin-bottom: 0.4rem; }
.infectio-page .inf-pres-row {
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    padding: 0.35rem 0.55rem;
}
.infectio-page .inf-pres-row.is-current {
    border-color: var(--inf-accent-line);
    background: var(--inf-accent-soft);
}
.infectio-page .inf-pres-more { margin-top: 0.6rem; }
.infectio-page .inf-pres-more > .inf-pres-row { margin-top: 0.45rem; }
.infectio-page .inf-orient-verdict {
    margin: 0.75rem 0 0;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--inf-accent-line);
    border-radius: var(--radius-sm);
    background: var(--inf-accent-soft);
    color: var(--prn-ink);
}
.infectio-page .inf-orient-verdict .inf-kicker {
    display: inline;
    margin: 0;
    color: var(--inf-accent-strong);
}
.infectio-page .inf-orient-verdict.is-pending {
    border-style: dashed;
    background: var(--prn-surface);
}
.infectio-page .atb-tag-probable {
    background: var(--inf-accent-soft);
    color: var(--inf-accent-strong);
    border-color: var(--inf-accent-line);
}
.infectio-page .atb-syndrome-row.is-excluded:not(.is-selected) {
    border-style: dashed;
    background: transparent;
}
.infectio-page .atb-syndrome-row.is-excluded:not(.is-selected) .atb-syndrome-head strong { color: var(--prn-ink-soft); }
.infectio-page .atb-rf-chip.is-derived { cursor: default; }
.infectio-page .inf-derived-tag {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--inf-accent-strong);
}

/* ── Fieldsets (profil structuré, conditions, gate drapeaux rouges) ────── */
.infectio-page .atb-conditions {
    border: 1px solid var(--prn-line);
    border-radius: var(--radius-lg);
    padding: 0.95rem 1.15rem 1.05rem;
    margin-top: 0.9rem;
    background: var(--prn-surface);
}
.infectio-page .atb-conditions legend {
    float: left;
    width: 100%;
    margin: 0 0 0.55rem;
    padding: 0;
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--prn-muted);
}
.infectio-page .atb-conditions legend + * { clear: both; }
.infectio-page .atb-conditions-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.55rem;
}
.infectio-page .atb-cond-chip {
    appearance: none;
    border: 1.5px solid var(--prn-line);
    background: var(--prn-surface);
    color: var(--prn-ink);
    padding: 0.45rem 0.9rem;
    border-radius: 999px;
    font: inherit;
    font-size: 0.85rem;
    cursor: pointer;
    min-height: 38px;
    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);
}
.infectio-page .atb-cond-chip:hover {
    border-color: var(--prn-int-hover-border);
    background: var(--prn-int-hover-bg);
}
.infectio-page .atb-cond-chip:focus-visible {
    outline: 2px solid var(--prn-int-strong);
    outline-offset: 2px;
}
.infectio-page .atb-cond-chip.is-selected {
    background: var(--prn-int-selected-bg);
    border-color: var(--prn-int-selected-border);
    color: var(--prn-int-text);
    font-weight: 600;
    box-shadow: inset 0 0 0 1px var(--prn-int-strong);
}

/* Profil structuré (âge / poids / DFGe) */
.infectio-page .atb-profile-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.75rem;
    margin-bottom: 0.6rem;
}
.infectio-page .atb-profile-grid label {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--prn-ink-soft);
}
.infectio-page .atb-profile-grid input {
    border: 1.5px solid var(--prn-line-strong);
    border-radius: var(--radius-sm);
    padding: 0.45rem 0.65rem;
    min-height: 42px;
    font: inherit;
    background: var(--prn-surface);
    color: var(--prn-ink);
    transition: border-color var(--t-fast) var(--ease-out);
}
.infectio-page .atb-profile-grid input:hover { border-color: var(--prn-int-hover-border); }
.infectio-page .atb-profile-grid input:focus-visible {
    outline: 2px solid var(--prn-int-strong);
    outline-offset: 1px;
}
.infectio-page .atb-preg-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin: 0.45rem 0;
}
.infectio-page .atb-preg-label {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--prn-ink-soft);
}
.infectio-page .atb-preg-chip {
    appearance: none;
    border: 1.5px solid var(--prn-line);
    background: var(--prn-surface);
    color: var(--prn-ink);
    padding: 0.3rem 0.85rem;
    min-height: 36px;
    border-radius: 999px;
    font: inherit;
    font-size: 0.85rem;
    cursor: pointer;
    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);
}
.infectio-page .atb-preg-chip:hover {
    border-color: var(--prn-int-hover-border);
    background: var(--prn-int-hover-bg);
}
.infectio-page .atb-preg-chip:focus-visible {
    outline: 2px solid var(--prn-int-strong);
    outline-offset: 2px;
}
.infectio-page .atb-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;
    box-shadow: inset 0 0 0 1px var(--prn-int-strong);
}
.infectio-page .atb-preg-note {
    font-size: 0.78rem;
    color: var(--prn-muted);
}
/* Conditions dérivées du profil : bandeau teal discret, zéro re-saisie. */
.infectio-page .atb-derived-note {
    margin: 0.65rem 0 0.1rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid color-mix(in srgb, var(--prn-teal) 26%, var(--prn-line));
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--prn-teal) 7%, var(--prn-surface));
    font-size: 0.85rem;
    line-height: 1.5;
}
.infectio-page .atb-peds-dose {
    margin: 0.35rem 0;
    padding: 0.5rem 0.7rem;
    border: 1px solid color-mix(in srgb, var(--prn-teal) 30%, var(--prn-line));
    background: var(--prn-teal-light);
    border-radius: var(--radius-sm);
    font-size: 0.9rem;
}

/* ── Gate drapeaux rouges (étape profil) ───────────────────────────────── */
/* Un drapeau tient sur UNE ligne (simplification de l'écran, owner
   2026-09-26) : case et libellé à gauche, « Pourquoi on s'inquiète » à
   droite ; le dépliage passe sous la ligne. Deux colonnes dès 1 024 px.
   Mesuré : 9 drapeaux de la cystite ≈ 1 005 px → voir le rapport. */
.infectio-page .atb-rf-gate {
    border-color: color-mix(in srgb, var(--prn-danger) 30%, var(--prn-line));
}
.infectio-page .atb-rf-gate legend { color: var(--prn-danger); }
.infectio-page .atb-rf-gate-hint {
    font-size: 0.85rem;
    color: var(--prn-muted);
    margin: 0.15rem 0 0;
    line-height: 1.5;
}
.infectio-page .atb-rf-list {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-top: 0.6rem;
}
@media (min-width: 1024px) {
    .infectio-page .atb-rf-list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: start;
    }
}
.infectio-page .atb-rf-item {
    border: 1px solid color-mix(in srgb, var(--prn-danger) 26%, var(--prn-line));
    border-radius: var(--radius);
    background: var(--prn-danger-bg-soft);
    padding: 0 0.75rem;
    display: flex;
    flex-direction: row; /* .prn-flag-item (socle) est en colonne */
    flex-wrap: wrap;
    align-items: center;
    column-gap: 0.75rem;
    transition: background-color var(--t-fast) var(--ease-out),
                box-shadow var(--t-fast) var(--ease-out);
}
.infectio-page .atb-rf-item.is-selected {
    background: var(--prn-danger-bg);
    box-shadow: inset 0 0 0 1.5px var(--prn-danger);
}
.infectio-page .atb-rf-chip {
    appearance: none;
    border: none;
    background: transparent;
    color: var(--prn-ink);
    flex: 1 1 12rem;
    min-height: 44px;
    padding: 0.1rem 0;
    border-radius: 6px;
    font: inherit;
    font-size: 0.88rem;
    font-weight: 600;
    text-align: left;
    line-height: 1.45;
    cursor: pointer;
}
/* Ouvert, le volet (texte long) passe seul à la ligne, en pleine largeur,
   par le seul retour à la ligne du flex — aucune règle `[open]` n'est
   nécessaire (mutation 2026-09-26 : la retirer ne change rien). */
.infectio-page .atb-rf-item .cons-flag-more { flex: 0 0 auto; margin: 0 0 0 auto; }
.infectio-page .atb-rf-chip::before {
    content: "☐ ";
    color: var(--prn-danger);
    font-weight: 700;
}
.infectio-page .atb-rf-chip.is-selected {
    background: transparent;
    color: var(--prn-danger);
}
.infectio-page .atb-rf-chip.is-selected::before { content: "☑ "; }
.infectio-page .atb-rf-chip:hover,
.infectio-page .atb-rf-chip:focus-visible {
    outline: 2px solid var(--prn-danger);
    outline-offset: 2px;
}
.infectio-page .atb-rf-warning {
    margin: 0.7rem 0 0;
    padding: 0.55rem 0.75rem;
    border: 1px solid color-mix(in srgb, var(--prn-danger) 30%, var(--prn-line));
    border-radius: var(--radius-sm);
    background: var(--prn-danger-bg);
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1.5;
    color: var(--prn-danger);
}

/* ── Cartes de contenu (recommandation + synthèse) ─────────────────────── */
.infectio-page .atb-card {
    border: 1px solid var(--prn-line);
    border-radius: var(--radius-lg);
    padding: 1.15rem 1.3rem;
    margin: 0.9rem 0;
    background: var(--prn-surface);
    box-shadow: var(--shadow-xs);
}
.infectio-page .atb-card h3 {
    font-family: var(--font-serif);
    font-size: 1.08rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.25;
    color: var(--prn-navy);
    margin: 0 0 0.65rem;
}
.infectio-page .atb-card p,
.infectio-page .atb-card ul {
    margin: 0.4rem 0;
    line-height: 1.55;
}
.infectio-page .atb-card ul { padding-left: 1.25rem; }
.infectio-page .atb-card-warning {
    border-color: color-mix(in srgb, var(--prn-warning) 38%, var(--prn-line));
    background: color-mix(in srgb, var(--prn-warning) 6%, var(--prn-surface));
}
.infectio-page .atb-card-preg {
    border-color: color-mix(in srgb, #c026d3 30%, var(--prn-line));
    background: color-mix(in srgb, #c026d3 5%, var(--prn-surface));
}
.infectio-page .atb-card-redflag {
    border-color: color-mix(in srgb, var(--prn-danger) 34%, var(--prn-line));
    background: var(--prn-danger-bg-soft);
}
.infectio-page .atb-priority-hint {
    font-size: 0.85rem;
    color: var(--prn-muted);
    margin: 0.2rem 0 0.6rem;
}

/* Options de traitement (blocs 1re/2e ligne, alternatives, prophylaxie) */
.infectio-page .atb-rx {
    border: 1px solid color-mix(in srgb, var(--prn-teal) 16%, var(--prn-line));
    border-radius: var(--radius);
    padding: 0.75rem 0.9rem;
    margin: 0.55rem 0;
    background: var(--prn-surface-2);
}
.infectio-page .atb-rx h4 {
    margin: 0 0 0.35rem;
    font-size: 0.97rem;
    letter-spacing: -0.005em;
}
.infectio-page .atb-rx p { margin: 0.2rem 0; }
.infectio-page .atb-rx-note {
    font-size: 0.85rem;
    line-height: 1.5;
    color: var(--prn-muted);
    font-style: italic;
}
.infectio-page .atb-posology { font-weight: 500; }
.infectio-page .atb-posology strong { color: var(--prn-teal-strong); }

/* « Quand cette option convient » / « À surveiller » par option */
.infectio-page .atb-rx-when,
.infectio-page .atb-rx-monitor {
    font-size: 0.86rem;
    line-height: 1.5;
    margin: 0.3rem 0 0;
}
.infectio-page .atb-rx-when { color: var(--prn-teal-strong); }
.infectio-page .atb-rx-when strong { color: var(--prn-teal-strong); }
.infectio-page .atb-rx-monitor { color: var(--prn-ink-soft); }
.infectio-page .atb-rx-when-hint {
    font-size: 0.83rem;
    line-height: 1.45;
    margin: 0.3rem 0.2rem 0.55rem 2.55rem;
    color: var(--prn-teal-strong);
}

/* Options écartées par le profil (badge « Contre-indiqué » + cause) */
.infectio-page .atb-blocked-list {
    list-style: none;
    padding-left: 0;
    margin: 0;
}
.infectio-page .atb-blocked-item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin: 0.45rem 0;
    color: var(--prn-ink-soft);
    line-height: 1.5;
}

/* Drapeaux rouges encadrés (redFlagsHtml) dans une .atb-card : neutraliser
   le retrait de liste hérité de .atb-card ul. */
.infectio-page .atb-card .cons-flags { padding-left: 0; margin: 0.5rem 0 0; }

/* ── Étape 4 — sélecteur d'ordonnance ──────────────────────────────────── */
.infectio-page .atb-rx-option {
    position: relative;
    display: block;
    width: 100%;
    text-align: left;
    border: 1.5px solid var(--prn-line);
    background: var(--prn-surface);
    color: var(--prn-ink);
    border-radius: var(--radius);
    padding: 0.72rem 0.95rem 0.72rem 2.55rem;
    margin-bottom: 0.5rem;
    font: inherit;
    cursor: pointer;
    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);
}
/* Point radio dessiné — l'état sélectionné se lit d'un coup d'œil. */
.infectio-page .atb-rx-option::before {
    content: "";
    position: absolute;
    left: 0.85rem;
    top: 0.86rem;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    border: 2px solid var(--prn-line);
    background: var(--prn-surface);
    box-sizing: border-box;
    transition: border-color var(--t-fast) var(--ease-out),
                border-width var(--t-fast) var(--ease-out);
}
.infectio-page .atb-rx-option:hover {
    border-color: var(--prn-int-hover-border);
    background: var(--prn-int-hover-bg);
    box-shadow: var(--shadow-xs);
}
.infectio-page .atb-rx-option:hover::before { border-color: var(--prn-int-hover-border); }
.infectio-page .atb-rx-option:focus-visible {
    outline: 2px solid var(--prn-int-strong);
    outline-offset: 2px;
}
.infectio-page .atb-rx-option.is-selected {
    border-color: var(--prn-int-selected-border);
    background: var(--prn-int-selected-bg);
    box-shadow: inset 0 0 0 1px var(--prn-int-strong);
}
.infectio-page .atb-rx-option.is-selected::before {
    border: 5.5px solid var(--prn-int-strong);
    background: var(--prn-int-strong-on);
}
.infectio-page .atb-rx-option strong {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.95rem;
    letter-spacing: -0.005em;
}
.infectio-page .atb-rx-line {
    font-weight: 500;
    font-size: 0.8rem;
    color: var(--prn-muted);
}
.infectio-page .atb-rx-option-posology {
    font-size: 0.87rem;
    line-height: 1.45;
    color: var(--prn-ink-soft);
    margin-top: 0.15rem;
}
/* Note RAMQ sous l'option sélectionnée : alignée sur le texte de l'option. */
.infectio-page .atb-rx-option + .cons-ramq-note {
    margin: -0.05rem 0.2rem 0.7rem 2.55rem;
}

/* Volet 2 — stratégie prophylactique (ITU récidivante) : section séparée
   d'un pointillé teal, choix « Aucune ce jour » inclus dans le radiogroup. */
.infectio-page .atb-prophy-picker {
    margin: 1.15rem 0 0.35rem;
    padding-top: 0.95rem;
    border-top: 1.5px dashed color-mix(in srgb, var(--prn-teal) 35%, var(--prn-line));
}
.infectio-page .atb-prophy-picker h4 {
    margin: 0 0 0.55rem;
    font-size: 0.93rem;
    font-weight: 700;
    color: var(--prn-teal-strong);
}

.infectio-page .atb-ordo-btn {
    display: block;
    width: 100%;
    margin-top: 0.9rem;
    padding: 0.7rem 1rem;
    font-size: 0.95rem;
}
.infectio-page .atb-print-btn { margin-top: 1.1rem; }

/* ── Checklist santé publique (ITSS) ───────────────────────────────────── */
.infectio-page .atb-checklist {
    list-style: none;
    padding: 0;
    margin: 0.4rem 0 0;
}
.infectio-page .atb-checklist li { margin-bottom: 0.5rem; }
.infectio-page .atb-checklist label {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    cursor: pointer;
    line-height: 1.5;
}
.infectio-page .atb-checklist input[type="checkbox"] {
    margin-top: 0.25rem;
    width: 1.05em;
    height: 1.05em;
    accent-color: var(--prn-int-strong);
}

/* ── Sources ───────────────────────────────────────────────────────────── */
.infectio-page .atb-sources {
    font-size: 0.82rem;
    line-height: 1.55;
    color: var(--prn-muted);
}
.infectio-page .atb-sources li { margin: 0.2rem 0; }

/* ── Mobile ────────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
    .infectio-page .atb-syndrome-row { padding: 0.85rem 0.95rem; }
    .infectio-page .atb-conditions { padding: 0.85rem 0.9rem 0.95rem; }
    .infectio-page .atb-card { padding: 0.95rem 1rem; }
    .infectio-page .atb-rx-option { padding-left: 2.35rem; }
    .infectio-page .atb-rx-option::before { left: 0.72rem; }
    .infectio-page .atb-rx-option + .cons-ramq-note { margin-left: 2.35rem; }
    .infectio-page .atb-rx-when-hint { margin-left: 2.35rem; }
}

/* ── Hub « Infectiologie » (arc 2, B.3) — cartes générées depuis la donnée ─ */
.infectio-page .inf-hub-group + .inf-hub-group { margin-top: 2rem; }
.infectio-page .inf-hub-title {
    margin: 0 0 0.9rem;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--inf-accent-strong);
}
.infectio-page .inf-hub-card h3 {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
}
.infectio-page .inf-hub-icon {
    flex: none;
    font-size: 1.2rem;
    line-height: 1;
    color: var(--inf-accent);
}

/* ── Textes courts (D276, arc 3) : la phrase courte, l'intégral replié ─── */
.infectio-page .inf-more { display: inline; }
.infectio-page .inf-more > summary {
    display: inline;
    cursor: pointer;
    font-size: 0.85em;
    font-weight: 600;
    color: var(--inf-accent-strong);
}
.infectio-page .inf-more[open] > span { display: block; margin-top: 0.3rem; color: var(--prn-ink-soft); }
@media print {
    .infectio-page .inf-more > summary { display: none; }
    .infectio-page .inf-more > span { display: block; }
}
.infectio-page .inf-orient-why {
    display: block;
    margin-top: 0.4rem;
    font-size: 0.88rem;
    color: var(--prn-ink);
}
.infectio-page .inf-orient-why .inf-kicker {
    display: inline;
    margin: 0 0.25rem 0 0;
    color: var(--inf-accent-strong);
}
