/* Assistant IA « ornith » des outils publics : carte d'explication, zone
   d'appel et formulaires courts (signalement, hygiene). Surfaces claires,
   encre, accent cyan de la marque ; le niveau (ok / a surveiller / urgent)
   est un tampon, jamais une couleur de fond criarde. */

.ai-assist { --ai-ink: #0b2534; --ai-muted: #526976; --ai-line: #d5e2e8; --ai-cyan: #087ba4; --ai-paper: #fff;
    margin: 18px 0 0; border: 1px solid var(--ai-line); border-radius: 18px; background: var(--ai-paper); color: var(--ai-ink); font-size: 15px; line-height: 1.55; text-align: left; overflow: hidden; }
.ai-assist *, .ai-assist *::before, .ai-assist *::after { box-sizing: border-box; }
.ai-assist-head { display: flex; align-items: center; gap: 14px; padding: 14px 18px; border-bottom: 1px solid var(--ai-line); background: linear-gradient(90deg, #eef8fc, #fff 70%); }
.ai-assist-mark { display: grid; place-items: center; flex: none; width: 38px; height: 38px; border-radius: 11px; background: #0b2534; color: #5dd6ff; }
.ai-assist-mark svg { width: 20px; height: 20px; }
.ai-assist-title { flex: 1; min-width: 0; }
.ai-assist-title strong { display: block; font-size: 15.5px; font-weight: 700; letter-spacing: -.01em; color: var(--ai-ink); }
.ai-assist-title small { display: block; font-size: 12.5px; color: var(--ai-muted); }
.ai-assist-go { display: inline-flex; align-items: center; gap: 8px; flex: none; min-height: 42px; padding: 0 16px; border: 0; border-radius: 12px; background: #0b2534; color: #fff; font: 700 14px/1 inherit; font-family: inherit; cursor: pointer; transition: background .15s, transform .15s; }
.ai-assist-go:hover { background: #087ba4; }
.ai-assist-go:active { transform: translateY(1px); }
.ai-assist-go[disabled] { opacity: .55; cursor: progress; }
.ai-assist-go:focus-visible, .ai-assist-form textarea:focus-visible { outline: 3px solid rgba(17, 191, 255, .45); outline-offset: 2px; }
.ai-assist-body { padding: 16px 18px 18px; }
.ai-assist-body[hidden] { display: none; }

.ai-assist-wait { display: flex; align-items: center; gap: 12px; margin: 0; color: var(--ai-muted); font-size: 14px; }
.ai-assist-wait i { display: inline-flex; gap: 4px; }
.ai-assist-wait i b { width: 7px; height: 7px; border-radius: 50%; background: var(--ai-cyan); animation: ai-dot 1.1s infinite ease-in-out; }
.ai-assist-wait i b:nth-child(2) { animation-delay: .15s; }
.ai-assist-wait i b:nth-child(3) { animation-delay: .3s; }
@keyframes ai-dot { 0%, 80%, 100% { opacity: .25; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }
@media (prefers-reduced-motion: reduce) { .ai-assist-wait i b { animation: none; opacity: .7; } }
.ai-assist-error { margin: 0; padding: 10px 12px; border-radius: 10px; background: #fff4e5; color: #8a4b08; font-size: 14px; }

.ai-assist-verdict { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: start; margin: 0 0 14px; }
.ai-assist-level { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border: 1.5px solid currentColor; border-radius: 7px; font-size: 11.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.ai-assist-level.is-ok { color: #0f766e; background: #e6f6f2; }
.ai-assist-level.is-watch { color: #a45a07; background: #fff4e0; }
.ai-assist-level.is-urgent { color: #b42318; background: #fdecea; }
.ai-assist-verdict p { margin: 2px 0 0; font-size: 15.5px; font-weight: 600; color: var(--ai-ink); }
.ai-assist-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.ai-assist h4 { margin: 0 0 8px; font-size: 11.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--ai-muted); }
.ai-assist ul, .ai-assist ol { margin: 0; padding: 0; list-style: none; }
.ai-assist-points li { position: relative; padding: 0 0 8px 16px; font-size: 14.5px; color: #1d3a4a; }
.ai-assist-points li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 6px; height: 6px; border-radius: 50%; background: #9fc3d2; }
.ai-assist-actions { counter-reset: ai-step; }
.ai-assist-actions li { position: relative; counter-increment: ai-step; margin: 0 0 8px; padding: 9px 12px 9px 44px; border: 1px solid var(--ai-line); border-radius: 12px; background: #f7fbfd; font-size: 14.5px; font-weight: 600; color: var(--ai-ink); }
.ai-assist-actions li::before { content: counter(ai-step); position: absolute; left: 11px; top: 9px; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 7px; background: #0b2534; color: #fff; font-size: 12px; font-weight: 800; }
.ai-assist-contacts { margin: 14px 0 0; padding: 12px 0 0; border-top: 1px dashed var(--ai-line); }
.ai-assist-contacts ul { display: flex; flex-wrap: wrap; gap: 6px; }
.ai-assist-contacts li { padding: 6px 10px; border-radius: 9px; background: #0b2534; color: #fff; font-size: 13.5px; font-weight: 600; }
.ai-assist-foot { margin: 14px 0 0; font-size: 12px; color: var(--ai-muted); }

/* Formulaires courts (signalement, hygiene) */
.ai-assist-form { display: grid; gap: 10px; padding: 16px 18px 18px; }
.ai-assist-form label { font-size: 13.5px; font-weight: 700; color: var(--ai-ink); }
.ai-assist-form textarea { width: 100%; min-height: 84px; padding: 11px 13px; border: 1.5px solid #c7d7de; border-radius: 12px; background: #fff; color: var(--ai-ink); font: inherit; font-size: 15px; resize: vertical; }
.ai-assist-form .ai-assist-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; justify-content: space-between; }
.ai-assist-form .ai-assist-row small { color: var(--ai-muted); font-size: 12.5px; max-width: 60ch; }
.ai-assist-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ai-assist-chips button { min-height: 32px; padding: 0 12px; border: 1px solid #c7d7de; border-radius: 999px; background: #fff; color: #1d3a4a; font: 600 13px/1 inherit; font-family: inherit; cursor: pointer; }
.ai-assist-chips button:hover { border-color: var(--ai-cyan); color: var(--ai-cyan); }

@media (max-width: 720px) {
    .ai-assist-head { flex-wrap: wrap; }
    .ai-assist-go { width: 100%; justify-content: center; }
    .ai-assist-cols { grid-template-columns: minmax(0, 1fr); }
    .ai-assist-verdict { grid-template-columns: minmax(0, 1fr); gap: 8px; }
    .ai-assist-verdict .ai-assist-level { justify-self: start; }
}
@media print { .ai-assist-go, .ai-assist-form { display: none !important; } }

/* Isolation vis-a-vis des styles globaux du site (boutons, listes, blocs). */
.ai-assist .ai-assist-verdict.is-plain { grid-template-columns: minmax(0, 1fr); }
.ai-assist .ai-assist-chips, .ai-assist .ai-assist-row { margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
.ai-assist button.ai-assist-go { min-height: 42px; padding: 0 16px; border: 0; border-radius: 12px; background: #0b2534; color: #fff; font-size: 14px; font-weight: 700; letter-spacing: 0; text-transform: none; box-shadow: none; }
.ai-assist button.ai-assist-go:hover { background: #087ba4; color: #fff; }
.ai-assist button.ai-assist-go svg { width: 17px; height: 17px; flex: none; }
.ai-assist .ai-assist-chips button { box-shadow: none; text-transform: none; letter-spacing: 0; }
.ai-assist .ai-assist-form label { margin: 0; letter-spacing: 0; text-transform: none; }
.ai-assist li { margin-left: 0; }
.ai-assist li::marker { content: none; }
.ai-assist .ai-assist-contacts li { max-width: 100%; white-space: normal; overflow-wrap: anywhere; line-height: 1.4; }
