
.ai-open{width:100%;margin:0 0 12px;padding:10px 14px;border:1px solid #b9c6cc;border-radius:14px;background:#f6f9fa;color:#344d5a;font:600 13px/1.3 system-ui;cursor:pointer;box-shadow:inset 0 1px 0 #fff,inset 0 -2px 0 #dde5e9}
.ai-open.active{background:#526b78;color:#fff}
#ai-dialog{width:480px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px);padding:24px;border:1px solid #d0d7dc;border-radius:20px;background:#fff;color:#202a30;overflow:auto;box-shadow:0 12px 40px #0004}
#ai-dialog::backdrop{background:#0003;backdrop-filter:none}
#ai-dialog header{display:flex;align-items:center;justify-content:space-between;gap:18px}
#ai-dialog h2{margin:6px 0;font-size:24px}#ai-dialog h3{font-size:15px;margin:0 0 10px}
.ai-eyebrow{font-size:10px;letter-spacing:.1em;color:#667983}.ai-intro{font-size:13px;line-height:1.6;margin:15px 0 20px}
#ai-dialog .ai-close{display:grid;place-items:center;flex:none;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:#000;color:#fff;font:24px/1 Arial;cursor:pointer}
#ai-form label{display:block;font-size:13px;font-weight:600;margin-bottom:8px}
#ai-message{box-sizing:border-box;width:100%;resize:vertical;min-height:95px;padding:12px;border:1px solid #bcc8ce;border-radius:12px;background:#fff;color:inherit;font:14px/1.5 system-ui}
.ai-privacy{font-size:11px;line-height:1.5;color:#687a84;margin:8px 0 14px}
#ai-apply{padding:10px 15px;border:1px solid #526b78;border-radius:12px;background:#526b78;color:#fff;font:600 13px/1.4 system-ui;cursor:pointer}
#ai-dialog button:disabled{opacity:.45;cursor:default}.ai-status{font-size:13px;line-height:1.5;margin:16px 0}
.ai-preview{padding:16px;border:1px solid #d5dfe3;border-radius:14px;background:#f5f8f9}.ai-criteria{padding-left:18px;font-size:13px;line-height:1.6}.ai-notes p,.ai-replace{font-size:12px;line-height:1.5;color:#566b77}
#ai-clear{display:block;margin:16px 0 0;padding:0;border:0;background:none;color:inherit;text-decoration:underline;font:12px/1.4 system-ui;cursor:pointer}
.culture-dark .ai-open,.culture-dark #ai-dialog{background:#101619;color:#edf2f4;border-color:#465963;box-shadow:inset 0 -2px 0 #050809}
.culture-dark .ai-open.active{background:#526b78}.culture-dark #ai-dialog .ai-close{background:#34444d}
.culture-dark #ai-message{background:#050809;border-color:#52616a;color:#edf2f4}
.culture-dark .ai-preview{background:#192329;border-color:#43535d}.culture-dark :is(.ai-privacy,.ai-eyebrow,.ai-notes p,.ai-replace){color:#b6c8d2}
#ai-dialog :focus-visible,.ai-open:focus-visible{outline:2px solid #20b8ff;outline-offset:3px}

.ai-active{font-size:12px;line-height:1.5;margin:-4px 0 12px;color:#526b78}.culture-dark .ai-active{color:#b6c8d2}

.culture-dark #ai-dialog :is(.ai-intro,.ai-status){color:#d0dbe0}

.ai-dictation{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0}
#ai-microphone{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #526b78;border-radius:22px;background:#f1f5f7;color:#344d5a;padding:7px 12px;font:600 12px/1.4 system-ui;cursor:pointer}
#ai-microphone svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.ai-dictation-status{flex:1;min-width:150px;font:12px/1.5 system-ui;color:#526b78}
.ai-dictation-cancel{border:0;background:none;text-decoration:underline;color:inherit;font-size:12px;cursor:pointer}
.ai-dictation.recording #ai-microphone{background:#a82f43;color:#fff;border-color:#a82f43}
.culture-dark #ai-microphone{background:#263943;color:#edf2f4;border-color:#657d89}
.culture-dark .ai-dictation-status{color:#c3d2da}
.culture-dark .ai-dictation.recording #ai-microphone{background:#a82f43;border-color:#cf6b7b}

.ai-send-hint{font:11px/1.5 system-ui;color:#687a84;margin:10px 0 0}.culture-dark .ai-send-hint{color:#b6c8d2}

#ai-dialog h2{font-size:18px;font-weight:600;line-height:1.4;margin:0}#ai-dialog header{margin-bottom:16px;gap:12px}.ai-status:empty{display:none}.ai-preview{margin-top:14px}.ai-criteria{margin-bottom:0}#ai-information{margin-top:20px}

#ai-dialog .ai-dictation{justify-content:flex-end;gap:8px;margin:10px 0 0}
#ai-dialog .ai-dictation-status:empty{display:none}
#ai-dialog .ai-dictation-status{margin-right:auto;min-width:0}
#ai-dialog .ai-icon-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:30px;height:30px;padding:0;border:1px solid #b9c6cc;border-radius:50%;background:#f1f5f7;color:#344d5a;cursor:pointer}
#ai-dialog .ai-icon-button[hidden]{display:none}
#ai-dialog .ai-icon-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#ai-dialog #ai-send{background:#526b78;color:#fff;border-color:#526b78}
.culture-dark #ai-dialog .ai-icon-button{background:#263943;border-color:#657d89;color:#edf2f4}
#ai-dialog .recording #ai-microphone{background:#a82f43;border-color:#cf6b7b;color:#fff}
#ai-dialog .transcribing #ai-microphone svg,#ai-form[aria-busy="true"] #ai-send svg{animation:ai-wait 1s ease-in-out infinite alternate}
@keyframes ai-wait{to{opacity:.25}}
@media(prefers-reduced-motion:reduce){#ai-dialog .transcribing #ai-microphone svg,#ai-form[aria-busy="true"] #ai-send svg{animation:none;opacity:.4}}

/* Saisie et actions réunies dans un seul cadre, sans superposer le texte. */
#ai-form{border:1px solid #bcc8ce;border-radius:12px;background:#fff;overflow:hidden}
#ai-form:has(#ai-message:focus-visible){outline:2px solid #20b8ff;outline-offset:3px}
#ai-dialog #ai-message{display:block;min-height:76px;padding:12px;border:0;border-radius:0;background:transparent;outline:none;box-shadow:none}
#ai-dialog .ai-dictation{margin:0;padding:4px 10px 10px;box-sizing:border-box}
#ai-dialog .ai-icon-button{display:grid;place-items:center;box-sizing:border-box;line-height:1;gap:0}
#ai-dialog .ai-icon-button svg{display:block;flex:none;margin:0;vertical-align:middle}
.culture-dark #ai-form{background:#050809;border-color:#52616a}

#ai-dialog #ai-message{min-height:45px;height:45px;max-height:210px;resize:none;overflow-y:hidden}
#ai-dialog #ai-microphone{background:transparent;border-color:transparent;box-shadow:none;color:#526b78}
.culture-dark #ai-dialog #ai-microphone{background:transparent;border-color:transparent;color:#c3d2da}
#ai-dialog #ai-microphone:hover{color:#159bda}
#ai-dialog .recording #ai-microphone{background:transparent;border-color:transparent;color:#ed657e}
#ai-dialog #ai-send:disabled{background:#cbd2d6;border-color:transparent;color:#7a878e;opacity:.55;box-shadow:none}
.culture-dark #ai-dialog #ai-send:disabled{background:#263037;color:#6c7b83;border-color:transparent;opacity:.65}
#ai-dialog #ai-send:not(:disabled){background:#159bd5;border-color:#159bd5;color:white;box-shadow:0 0 9px #159bd52b}

/* Live voice envelope: silence stays dotted, speech draws rounded bars. */
#ai-dialog .ai-voice-wave{display:none;flex:1;min-width:0;height:30px;align-items:center;justify-content:space-between;gap:2px;overflow:hidden;color:#647b88}
#ai-dialog .recording .ai-voice-wave{display:flex}
#ai-dialog .ai-voice-wave i{display:block;flex:0 0 3px;height:3px;border-radius:3px;background:currentColor;transition:height 70ms linear}
.culture-dark #ai-dialog .ai-voice-wave{color:#b5c8d2}
#ai-dialog #ai-microphone .ai-stop-glyph{display:none;fill:currentColor;stroke:none}
#ai-dialog .recording #ai-microphone .ai-mic-glyph{display:none}
#ai-dialog .recording #ai-microphone .ai-stop-glyph{display:block}
#ai-dialog .recording{flex-wrap:nowrap}
@media(prefers-reduced-motion:reduce){#ai-dialog .ai-voice-wave i{transition:none}}

/* Annulation à gauche, commandes de dictée et envoi à droite. */
#ai-dialog .ai-dictation-cancel{margin-right:auto}

/* Phylactère autonome, sans pastille autour. */
#map #ai-map-open{display:grid;place-items:center;width:48px;height:46px;margin:0 0 10px 19px;padding:0;border:0;border-radius:0;background:transparent;color:#344d5a;box-shadow:none;cursor:pointer;transition:transform .18s,color .18s}
#ai-map-open svg{display:block;width:46px;height:43px;overflow:visible;filter:drop-shadow(0 2px 2px #0002)}
#ai-map-open .ai-chat-bubble{fill:#fff;stroke:#536b78;stroke-width:1.5;stroke-linejoin:round;transition:stroke .18s,fill .18s}
#ai-map-open .ai-chat-dots{fill:currentColor}
.culture-dark #map #ai-map-open{background:transparent;color:#e2eef5;box-shadow:none}
.culture-dark #ai-map-open .ai-chat-bubble{fill:#10191f;stroke:#b4c9d5}
#map #ai-map-open:hover{color:#20b8ff;transform:translateY(-2px)}
#map #ai-map-open:hover .ai-chat-bubble{stroke:#20b8ff}
#map #ai-map-open:focus-visible{outline:2px solid #20b8ff;outline-offset:3px;border-radius:8px}
.map-intro-running #ai-map-open{visibility:hidden}
@media(prefers-reduced-motion:reduce){#map #ai-map-open,#ai-map-open .ai-chat-bubble{transition:none}}

#ai-dialog{position:fixed;top:120px;bottom:auto;left:24px;right:auto;margin:0;z-index:1100;max-height:calc(100dvh - 144px)}

