/* Utilitaires partagés entre les composants de chat (au-delà de la CSS scoped par composant,
   *.razor.css) — rien de spécifique à un seul composant ne doit vivre ici. */

.card {
    background: var(--surface-raised);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    padding: var(--space-4);
}

/* Style du HTML produit par SimpleMarkdown.ToMarkup (Shared/Chat/SimpleMarkdown.cs), injecté via
   MarkupString dans .chat-bubble__text et .chat-bubble__progress-text (ChatBubble.razor) et .chat-block--text
   (ResponseBlockView.razor).
   Doit vivre ici, pas dans le .razor.css scopé de ces composants : le CSS isolé Blazor n'ajoute son
   attribut de portée (b-xxx) qu'aux éléments écrits littéralement dans le fichier .razor propriétaire,
   jamais à du HTML injecté dynamiquement via MarkupString au runtime — même contournement déjà documenté
   pour NavLink (wwwroot/css/layout.css, .sidebar__link). */
.chat-bubble__text p,
.chat-bubble__progress-text p,
.chat-block--text p {
    margin: 0;
}

    .chat-bubble__text p + p,
    .chat-bubble__progress-text p + p,
    .chat-block--text p + p {
        margin-top: var(--space-3);
    }

.chat-bubble__text ul,
.chat-bubble__text ol,
.chat-bubble__progress-text ul,
.chat-bubble__progress-text ol,
.chat-block--text ul,
.chat-block--text ol {
    margin: var(--space-2) 0;
    padding-left: var(--space-5);
}

.chat-bubble__text li,
.chat-bubble__progress-text li,
.chat-block--text li {
    margin: var(--space-1) 0;
}

.chat-bubble__text code,
.chat-bubble__progress-text code,
.chat-block--text code {
    font-family: var(--font-mono);
    background: var(--surface-sunken);
    border-radius: var(--radius-sm);
    padding: 0 4px;
}

.chat-bubble__text a,
.chat-bubble__progress-text a,
.chat-block--text a {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: currentColor;
}

.chat-markdown__heading {
    font: var(--text-body-strong);
}

/* Tableau Markdown (SimpleMarkdown.RenderTable) : même carte que le bloc "tableau" structuré
   (.chat-block--table, ResponseBlockView.razor.css — scopé, donc redéclaré ici pour le HTML injecté).
   Couleur ink explicite : posé dans la bulle assistant (texte on-fill blanc), il hériterait sinon d'un
   texte blanc illisible sur les lignes zébrées en surface. max-width 100% + défilement horizontal
   (.chat-block__table-scroll) : un tableau large reste dans la bulle plutôt que de l'élargir. */
.chat-markdown__table {
    padding: 0;
    overflow: hidden;
    max-width: 100%;
    color: var(--ink);
    white-space: normal;
    margin: var(--space-2) 0;
}

.chat-markdown__table code {
    white-space: nowrap;
}
