/* The assistant's cards, in the site's own tokens: no new palette, no new type. */
#demo-bandeau { position: fixed; left: 12px; bottom: 12px; z-index: 4; max-width: min(520px, 60vw); font: 500 11.5px/1.4 var(--sans); color: var(--muted); background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-s, 6px); padding: 6px 10px; box-shadow: var(--ombre-s, none); }
#demo-bandeau a { color: var(--accent); }
body.rail-ouvert #demo-bandeau { max-width: min(440px, 40vw); }
@media (max-width: 700px) { #demo-bandeau { display: none; } }

.msg.carte { max-width: 100%; align-self: stretch; }
.msg.carte .verdict { display: flex; flex-wrap: wrap; gap: 4px; align-items: baseline; font-size: var(--micro, 11px); letter-spacing: .6px; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.msg.carte .verdict .v-lbl { font-weight: 700; }
.msg.carte .verdict.v-ici .v-lbl { color: var(--ok); }
.msg.carte .verdict.v-ailleurs .v-lbl { color: var(--accent); }
.msg.carte .verdict.v-absent .v-lbl { color: var(--warn); }
.msg.carte .verdict .v-fiche { text-transform: none; letter-spacing: 0; font-weight: 500; }
.msg.carte .texte { margin: 0 0 10px; font-size: 14.5px; line-height: 1.5; color: var(--text); }
.msg.carte ol.texte { padding-left: 20px; }
.msg.carte ol.texte li { margin: 4px 0; }
.msg.carte .note { margin: 0 0 8px; font-size: 12.5px; color: var(--muted); }
.msg.carte .note.question { color: var(--text); font-weight: 600; }
.msg.carte .passage { margin: 10px 0; padding: 10px 12px; border-left: 3px solid var(--accent); background: var(--bg-alt); border-radius: var(--r-s, 6px); font-size: 13.5px; line-height: 1.5; }
.msg.carte .passage .chemin, .msg.carte .preuves .chemin { display: block; font-size: var(--micro, 11px); text-transform: uppercase; letter-spacing: .6px; color: var(--muted); margin-bottom: 4px; }
.msg.carte .passage .cite { font-family: var(--serif, Georgia, serif); color: var(--text); }
.msg.carte .passage .extrait, .msg.carte .passage .plus { display: block; margin-top: 5px; font-size: var(--micro, 11px); color: var(--muted); }
.msg.carte .chips { margin-top: 10px; }
.msg.carte .chip.ghost { background: transparent; border-style: dashed; color: var(--muted); }
.msg.carte .chip.ghost:hover { color: var(--accent); }
.msg.carte .merci { font-size: 12.5px; color: var(--muted); align-self: center; }
.msg.carte details.audit { margin-top: 10px; font-size: 12px; }
.msg.carte details.audit summary { cursor: pointer; color: var(--muted); list-style: none; display: none; }
.msg.carte details.audit pre { margin: 6px 0 0; padding: 8px 10px; white-space: pre-wrap; word-break: break-word; font-size: 11.5px; line-height: 1.45; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-s, 6px); color: var(--muted); max-height: 260px; overflow: auto; }
.msg.carte .pied { margin-top: 8px; font-size: var(--micro, 11px); color: var(--muted); }
.msg.carte .pied .mode.modele::before { content: "◆ "; color: var(--ok); }
.msg.carte .pied .mode.local::before { content: "◇ "; }
.msg.carte.absence .preuves { margin: 0; display: grid; grid-template-columns: max-content 1fr; gap: 6px 12px; font-size: 13px; line-height: 1.45; }
.msg.carte.absence .preuves dt { color: var(--muted); font-size: var(--micro, 11px); text-transform: uppercase; letter-spacing: .6px; padding-top: 3px; }
.msg.carte.absence .preuves dd { margin: 0; }
.msg.carte.absence .preuves ul { margin: 0; padding-left: 16px; }
.msg.carte.absence .preuves .cite { font-family: var(--serif, Georgia, serif); }
.msg.carte.absence .preuves .why { color: var(--muted); }
.msg.attente .points { display: inline-flex; gap: 4px; }
.msg.attente .points span { width: 6px; height: 6px; border-radius: 50%; background: var(--muted); animation: rebond 1.1s infinite; }
.msg.attente .points span:nth-child(2) { animation-delay: .15s; }
.msg.attente .points span:nth-child(3) { animation-delay: .3s; }
@media (max-width: 560px) { .msg.carte.absence .preuves { grid-template-columns: 1fr; } }
