/* Oscar Space — application mobile des tâches (PWA). Mise en page téléphone d'abord (375 × 812), fluide jusqu'au bureau.
   Trois thèmes par attribut data-theme sur <html> : atmosphere (défaut), helios, deepspace. Jetons repris de preferences.css. */

:root, html[data-theme="atmosphere"] {
  --paper:#faf9f6; --ink:#101b2b; --muted:#626a70; --line:#d8d8d0; --wash:#eeede7; --surface:#ffffff; --accent:#947441; --gold:#e3b857;
  --danger:#a33a2a; --ok:#2f6b3a; --info:#2e5a88; --shadow:0 1px 2px rgba(16,27,43,.06);
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif; --sans:Manrope,system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  color-scheme: light;
}
html[data-theme="helios"] {
  --paper:#f7e5bb; --ink:#141a33; --muted:#504530; --line:#c5a46b; --wash:#efd39b; --surface:#f6dfae; --accent:#70511d; --gold:#e3b857;
  --danger:#8e2f1f; --ok:#2f5e2f; --info:#2a4b78; --shadow:0 1px 2px rgba(20,26,51,.12); color-scheme: light;
}
html[data-theme="deepspace"] {
  --paper:#0a0f22; --ink:#f6e7c1; --muted:#c8c5bd; --line:#454554; --wash:#1b223a; --surface:#141a33; --accent:#e3b857; --gold:#e3b857;
  --danger:#f08a78; --ok:#8fd19a; --info:#8fb8ea; --shadow:none; color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; min-width: 0; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font: 16px/1.55 var(--sans); overflow-x: hidden;
  padding-bottom: calc(66px + env(safe-area-inset-bottom));
}
img, svg { max-width: 100%; }
img { height: auto; }
a { color: var(--accent); text-decoration: none; overflow-wrap: anywhere; }
a:hover { text-decoration: underline; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 500; line-height: 1.15; margin: 0 0 .4em; overflow-wrap: anywhere; }
h1 { font-size: clamp(30px, 7vw, 42px); }
h2 { font-size: 26px; margin-top: 1.3em; }
h3 { font-size: 22px; }
h4 { font-size: 17px; font-family: var(--sans); font-weight: 700; margin: 1.1em 0 .3em; letter-spacing: .02em; }
p, li, td, th, label, input, select, textarea, button { font-size: 16px; }
p, li { overflow-wrap: anywhere; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 15px; background: var(--wash); padding: 1px 6px; border-radius: 3px; overflow-wrap: anywhere; }
hr { border: 0; border-top: 1px solid var(--line); margin: 20px 0; }
[hidden] { display: none !important; }
.saut { position: absolute; left: -999px; top: 0; background: var(--ink); color: var(--paper); padding: 8px 12px; }
.saut:focus { left: 8px; z-index: 50; }

/* Barre du haut */
.topbar { position: sticky; top: 0; z-index: 20; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px;
  padding: calc(8px + env(safe-area-inset-top)) 16px 8px; background: var(--wash); border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: 8px; color: var(--ink); }
.brand img { width: 28px; height: 28px; }
.brand span { font: 500 20px/1 var(--serif); }
.brand small { display: block; font: 9px/1.4 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.titre-ecran { font: 500 20px/1.1 var(--serif); margin: 0; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.outils { display: flex; gap: 4px; }
.outils a { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 50%; color: var(--ink); }
.outils a:hover, .outils a[aria-current] { background: var(--surface); text-decoration: none; }
.outils svg, .tabbar svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* Bandeau d'état (hors ligne, API indisponible, cache) */
.bandeau { position: sticky; top: 0; z-index: 21; padding: 8px 16px; font-size: 15px; background: var(--gold); color: #101b2b; border-bottom: 1px solid var(--line); }
.bandeau.erreur { background: var(--danger); color: #fff; }
.bandeau a, .bandeau button { color: inherit; text-decoration: underline; background: none; border: 0; padding: 0; font: inherit; cursor: pointer; }

/* Contenu */
.vue { max-width: 860px; margin: 0 auto; padding: 16px 16px 24px; }
.vue:focus { outline: none; }
.entete { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.eyebrow { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.meta { display: flex; flex-wrap: wrap; gap: 6px 16px; color: var(--muted); font-size: 15px; }
.meta b { color: var(--ink); font-weight: 600; }
.crumb { font-size: 13px; color: var(--muted); margin-bottom: 10px; }
.crumb a { color: var(--muted); }
.vide { color: var(--muted); padding: 24px 12px; text-align: center; border: 1px dashed var(--line); border-radius: 6px; background: var(--wash); }
.note { color: var(--muted); font-size: 15px; }
.erreur-texte { color: var(--danger); }

/* Cartes, listes */
.carte { background: var(--surface); border: 1px solid var(--line); border-radius: 6px; padding: 14px 16px; margin: 12px 0; box-shadow: var(--shadow); }
.carte h3 { margin-top: 0; }
.liste { list-style: none; margin: 0; padding: 0; }
.liste > li { border-top: 1px solid var(--line); }
.liste > li:first-child { border-top: 0; }
.ligne { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; color: var(--ink); }
.ligne:hover { text-decoration: none; }
.ligne .corps { flex: 1; min-width: 0; }
.ligne .titre { font-weight: 600; display: block; }
.ligne .sous { color: var(--muted); font-size: 15px; display: flex; flex-wrap: wrap; gap: 4px 12px; }
.ligne .sous .retard { color: var(--danger); font-weight: 600; }
.ligne .droite { text-align: right; color: var(--muted); font-size: 14px; white-space: nowrap; }
.coche { appearance: none; width: 26px; height: 26px; flex: none; margin-top: 2px; border: 2px solid var(--muted); border-radius: 50%; background: var(--surface); cursor: pointer; position: relative; }
.coche:checked { background: var(--accent); border-color: var(--accent); }
.coche:checked::after { content: ""; position: absolute; left: 8px; top: 3px; width: 6px; height: 12px; border: solid var(--paper); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.fait .titre { text-decoration: line-through; color: var(--muted); }

/* Pastilles */
.pill { display: inline-block; font-size: 13px; line-height: 1.3; padding: 3px 9px; border-radius: 20px; border: 1px solid var(--line); background: var(--wash); color: var(--ink); white-space: nowrap; vertical-align: middle; }
.pill.acte, .pill.fait, .pill.atteint { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.pill.ouvert, .pill.en-cours { background: var(--info); color: #fff; border-color: var(--info); }
.pill.propose, .pill.prevu, .pill.a-faire { background: var(--gold); color: #101b2b; border-color: var(--gold); }
.pill.ecarte, .pill.annule, .pill.suspendue { background: var(--wash); color: var(--muted); }
.pill.glisse, .pill.critique, .pill.retard { background: var(--danger); color: #fff; border-color: var(--danger); }
.pill.haute { border-color: var(--danger); color: var(--danger); background: transparent; }
.pill.en-vigueur { border-color: var(--ok); color: var(--ok); background: transparent; }
.pill.amendee, .pill.proposee { border-color: var(--accent); color: var(--accent); background: transparent; }
.puces { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 4px 0 8px; }
.puces code { font-size: 15px; }

/* Compteurs */
.compteurs { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin: 12px 0; }
.compteur { background: var(--surface); border: 1px solid var(--line); border-radius: 6px; padding: 12px 14px; }
.compteur b { display: block; font: 500 32px/1 var(--serif); color: var(--accent); }
.compteur span { color: var(--muted); font-size: 14px; }

/* Boutons et formulaires */
button, .bouton { font: 600 16px/1.2 var(--sans); padding: 11px 16px; border-radius: 6px; border: 1px solid var(--accent); background: var(--accent); color: var(--paper); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; text-decoration: none; }
html[data-theme="deepspace"] button, html[data-theme="deepspace"] .bouton { color: #0a0f22; }
button:hover, .bouton:hover { filter: brightness(1.08); text-decoration: none; }
button:disabled { opacity: .55; cursor: not-allowed; }
.secondaire { background: var(--surface); color: var(--ink); border-color: var(--line); }
html[data-theme="deepspace"] .secondaire { color: var(--ink); }
.discret { background: none; border-color: transparent; color: var(--accent); padding: 8px 10px; min-height: 40px; }
html[data-theme="deepspace"] .discret { color: var(--accent); }
.danger { background: var(--danger); border-color: var(--danger); color: #fff; }
.actions-barre { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.fab { position: fixed; right: 16px; bottom: calc(80px + env(safe-area-inset-bottom)); z-index: 15; width: 56px; height: 56px; border-radius: 50%; padding: 0; font-size: 30px; box-shadow: 0 4px 14px rgba(0,0,0,.25); }
form.fiche { display: grid; gap: 14px; }
.champ { display: grid; gap: 4px; }
.champ > span { font-size: 14px; font-weight: 600; color: var(--muted); letter-spacing: .02em; }
input[type="text"], input[type="email"], input[type="date"], input[type="number"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], select, textarea {
  width: 100%; font: 16px/1.4 var(--sans); padding: 11px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--ink); min-height: 44px; }
input[type="color"] { padding: 4px; width: 64px; }
textarea { min-height: 96px; resize: vertical; }
input:focus, select:focus, textarea:focus, button:focus-visible, a:focus-visible { outline: 2px solid var(--gold); outline-offset: 1px; }
.deux { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cases { display: grid; gap: 6px; max-height: 200px; overflow: auto; border: 1px solid var(--line); border-radius: 6px; padding: 8px 10px; background: var(--surface); }
.cases label { display: flex; gap: 8px; align-items: center; }
.cases input { width: 20px; height: 20px; }
.filtres { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0; }
.filtres select, .filtres input { width: auto; flex: 1 1 140px; min-height: 40px; padding: 8px 10px; }
.chips { display: flex; gap: 6px; flex-wrap: wrap; margin: 8px 0; }
.chip { font: 15px var(--sans); padding: 7px 12px; border-radius: 20px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); min-height: 36px; }
.chip[aria-pressed="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.interrupteur { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); }
.interrupteur:first-child { border-top: 0; }
.interrupteur input { width: 24px; height: 24px; flex: none; }

/* Tableaux */
.tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 12px 0; max-width: 100%; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
table { border-collapse: collapse; width: 100%; min-width: 520px; }
table.compo, table.etroite { min-width: 0; }
table.compo th, table.compo td:first-child, table.etroite th { white-space: nowrap; }
[id] { scroll-margin-top: 72px; }
th, td { text-align: left; padding: 9px 10px; border-top: 1px solid var(--line); vertical-align: top; overflow-wrap: anywhere; }
th { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); border-top: 0; background: var(--wash); }
td.st-proposee, td.st-amendee { color: var(--accent); }
td.st-suspendue { color: var(--muted); }

/* Arbre des projets */
.arbre, .arbre ul { list-style: none; margin: 0; padding: 0; }
.arbre ul { margin-left: 18px; border-left: 1px solid var(--line); padding-left: 10px; }
.noeud { display: flex; align-items: center; gap: 6px; padding: 8px 0; }
.noeud .plier { width: 32px; height: 32px; min-height: 32px; padding: 0; border-radius: 50%; background: var(--wash); color: var(--ink); border-color: var(--line); flex: none; font-size: 14px; }
.noeud .plier[aria-expanded="false"] { transform: rotate(-90deg); }
.noeud .couleur { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.noeud a { color: var(--ink); font-weight: 600; flex: 1; }
.noeud .nb { color: var(--muted); font-size: 14px; white-space: nowrap; }
.barre-av { height: 6px; background: var(--wash); border-radius: 3px; overflow: hidden; margin: 6px 0; }
.barre-av > div { height: 100%; background: var(--accent); }

/* Gantt */
.gantt { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); margin: 12px 0; }
.gantt-grille { position: relative; display: grid; grid-template-columns: 150px 1fr; }
.gantt-noms { position: sticky; left: 0; z-index: 2; background: var(--surface); border-right: 1px solid var(--line); }
.gantt-noms div, .gantt-lignes .gl { height: 36px; display: flex; align-items: center; padding: 0 8px; border-top: 1px solid var(--line); font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gantt-noms .ent { height: 44px; font-size: 13px; color: var(--muted); border-top: 0; }
.gantt-mois { display: flex; height: 44px; }
.gantt-mois div { width: var(--mois); flex: none; font-size: 12px; color: var(--muted); padding: 4px 4px 0; border-left: 1px solid var(--line); line-height: 1.2; }
.gantt-mois div b { display: block; color: var(--ink); font-weight: 600; }
.gantt-lignes .gl { position: relative; padding: 0; }
.gantt-lignes .gl .barre { position: absolute; top: 9px; height: 18px; border-radius: 4px; opacity: .85; }
.gantt-lignes .gl .jalon { position: absolute; top: 11px; width: 14px; height: 14px; transform: translateX(-7px) rotate(45deg); background: var(--ink); border: 2px solid var(--paper); }
.gantt-lignes .gl .jalon.atteint { background: var(--ok); }
.gantt-lignes .gl .jalon.glisse { background: var(--danger); }
.gantt-aujourdhui { position: absolute; top: 0; bottom: 0; width: 0; border-left: 2px dashed var(--gold); z-index: 1; }

/* Jalons */
.mois-titre { font: 500 22px var(--serif); margin: 18px 0 6px; color: var(--accent); }
.hist li { padding: 8px 0; border-top: 1px solid var(--line); font-size: 15px; }
.hist li b { font-weight: 600; }
.hist li .quand { color: var(--muted); }

/* Connexion */
.connexion { max-width: 420px; margin: 24px auto; text-align: center; }
.connexion .logo { width: 96px; height: 96px; margin: 0 auto 10px; }
.connexion button { width: 100%; }
.connexion form { text-align: left; margin-top: 18px; }

/* Module Systèmes du satellite (reprend systemes.css du site, jetons de thème) */
.sys .sommaire { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 8px; }
.sys .sommaire a { font-size: 16px; padding: 8px 12px; background: var(--wash); border: 1px solid var(--line); border-radius: 20px; color: var(--ink); }
.sys .ci { padding-left: 20px; margin: 4px 0 10px; }
.sys .regles { padding-left: 22px; }
.sys .regles li { margin: 10px 0; }
.sys .src { display: block; font-size: 15px; color: var(--muted); overflow-wrap: anywhere; }
.sys .vue3d { display: block; width: 100%; background: #fff; border: 1px solid var(--line); border-radius: 3px; margin: 12px 0; }
.sys .vue-vide { background: var(--wash); border: 1px dashed var(--line); border-radius: 3px; padding: 18px; color: var(--muted); text-align: center; margin: 12px 0; }
.sys .variante { background: var(--surface); border: 1px solid var(--line); border-radius: 3px; padding: 16px; margin: 18px 0; }
.sys .variante h3, .sys .variante h2 { margin: .3em 0 .4em; }
.sys .variante:target, .sys .sat:target { outline: 2px solid var(--gold); }
.sys .cars div { border-top: 1px solid var(--line); padding: 8px 0; overflow-wrap: anywhere; }
.sys .cars b { color: var(--accent); }
.sys .eff { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.sys .eff > div { background: var(--wash); border-radius: 3px; padding: 8px 10px; }
.sys .eff .k { display: block; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.sys .eff .oui { color: var(--ink); font-weight: 600; }
.sys .eff .non { color: var(--muted); }
.sys .eff .autre { color: var(--accent); }
.sys .remarque { color: var(--muted); font-style: italic; }
.sys .count { color: var(--muted); }
.sys-list { display: grid; grid-template-columns: 1fr; gap: 12px; }
.sys-card { display: block; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 6px; padding: 14px 16px; }
.sys-card:hover { text-decoration: none; border-color: var(--accent); }
.sys-card h3 { margin: .2em 0; }
.sys-card .count { margin: 4px 0; font-size: 15px; }
.sys .pied { color: var(--muted); font-size: 14px; margin-top: 28px; border-top: 1px solid var(--line); padding-top: 10px; }
.sys .verrou { background: var(--wash); border: 1px solid var(--line); border-radius: 6px; padding: 14px 16px; margin: 16px 0; }

/* Barre d'onglets du bas */
.tabbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; display: grid; grid-template-columns: repeat(5, 1fr); background: var(--wash); border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom); }
.tabbar a { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 2px 6px; color: var(--muted); font-size: 11px; letter-spacing: .02em; min-height: 56px; }
.tabbar a[aria-current] { color: var(--accent); }
.tabbar a:hover { text-decoration: none; }
.lateral { display: none; }

/* Toast */
.toast { position: fixed; left: 50%; bottom: calc(84px + env(safe-area-inset-bottom)); transform: translateX(-50%); z-index: 30; background: var(--ink); color: var(--paper); padding: 10px 16px; border-radius: 6px; font-size: 15px; max-width: calc(100vw - 32px); box-shadow: 0 4px 14px rgba(0,0,0,.3); }
.toast.erreur { background: var(--danger); color: #fff; }

/* Bureau : colonne latérale à la place de la barre du bas */
@media (min-width: 900px) {
  body { padding-bottom: 24px; display: grid; grid-template-columns: 230px 1fr; grid-template-rows: auto 1fr; }
  .bandeau { grid-column: 1 / -1; }
  .topbar { grid-column: 1 / -1; }
  .lateral { display: flex; flex-direction: column; gap: 2px; padding: 16px 12px; border-right: 1px solid var(--line); background: var(--wash); position: sticky; top: 61px; align-self: start; height: calc(100vh - 61px); }
  .lateral a { padding: 10px 12px; border-radius: 6px; color: var(--ink); font-weight: 500; }
  .lateral a[aria-current] { background: var(--surface); color: var(--accent); font-weight: 700; }
  .lateral a:hover { text-decoration: none; background: var(--surface); }
  .tabbar { display: none; }
  .fab { bottom: 32px; }
  .toast { bottom: 32px; }
  .vue { padding: 24px 32px 40px; }
  .sys-list { grid-template-columns: 1fr 1fr; }
}
@media print { .topbar, .tabbar, .lateral, .fab, .bandeau { display: none; } body { padding: 0; } }

/* ---- Alfred (D-27) : bouton central de la barre basse et écran de conversation ---- */
.tabbar.six { grid-template-columns: 1fr 1fr 1.3fr 1fr 1fr 1fr; }
.tabbar a.alfred { color: var(--accent); padding-top: 2px; }
.tabbar a.alfred .alfred-rond { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-top: -14px; border-radius: 50%; background: var(--accent); color: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.18); }
.tabbar a.alfred .alfred-rond svg { width: 24px; height: 24px; stroke: #fff; }
.tabbar a.alfred[aria-current] .alfred-rond { outline: 3px solid var(--wash); box-shadow: 0 0 0 5px var(--accent); }
.chat { display: flex; flex-direction: column; gap: 10px; padding-bottom: 120px; }
.chat .bulle { max-width: 88%; padding: 10px 14px; border-radius: 16px; line-height: 1.4; white-space: pre-wrap; overflow-wrap: anywhere; }
.chat .bulle.moi { align-self: flex-end; background: var(--accent); color: #fff; border-bottom-right-radius: 4px; }
.chat .bulle.alfred { align-self: flex-start; background: var(--surface); border: 1px solid var(--line); border-bottom-left-radius: 4px; }
.chat .bulle.systeme { align-self: center; background: none; color: var(--muted); font-size: 14px; }
.chat .vide-chat { text-align: center; color: var(--muted); padding: 24px 12px; }
.chat .vide-chat .exemples { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 12px; }
.chat .vide-chat button { font: inherit; font-size: 14px; padding: 8px 12px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); cursor: pointer; }
.propositions { align-self: stretch; display: flex; flex-direction: column; gap: 8px; }
.proposition { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 10px; background: var(--surface); }
.proposition .texte { flex: 1; font-size: 15px; }
.proposition .texte small { display: block; color: var(--muted); font-size: 12px; }
.proposition button { font: inherit; font-size: 14px; padding: 6px 10px; border-radius: 8px; border: 1px solid var(--line); background: var(--wash); color: var(--ink); cursor: pointer; }
.proposition button.valider { background: var(--accent); color: #fff; border-color: var(--accent); }
.proposition.faite { opacity: .6; border-left-color: var(--ok, #2e7d32); }
.proposition.ignoree { opacity: .5; text-decoration: line-through; }
.saisie-alfred { position: fixed; left: 0; right: 0; bottom: calc(62px + env(safe-area-inset-bottom)); z-index: 19; display: flex; gap: 8px; align-items: flex-end; padding: 8px 12px; background: var(--wash); border-top: 1px solid var(--line); }
.saisie-alfred textarea { flex: 1; font: inherit; font-size: 16px; min-height: 44px; max-height: 120px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); resize: none; }
.saisie-alfred button { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line); background: var(--surface); color: var(--ink); cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.saisie-alfred button svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.saisie-alfred button.envoyer { background: var(--accent); color: #fff; border-color: var(--accent); }
.saisie-alfred button.micro.actif { background: var(--danger); color: #fff; border-color: var(--danger); animation: pulse 1s infinite; }
@keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.08); } }
@media (min-width: 900px) { .saisie-alfred { left: 240px; bottom: 0; } .tabbar.six { display: none; } }
.saisie-alfred button.voix.actif { background: var(--gold); color: #101b2b; border-color: var(--gold); }

/* ---- mode intégré (D-30) : l'app dans le tableau de bord de l'espace employé ---- */
html.integre .topbar, html.integre .lateral, html.integre .tabbar { display: none !important; }
html.integre body { display: block; padding: 0 0 100px; }
html.integre .vue { padding: 16px 20px 40px; max-width: 1100px; }
html.integre .saisie-alfred { left: 0; bottom: 0; }
html.integre .chat { padding-bottom: 90px; }
.transcript { white-space: pre-wrap; font: inherit; font-size: 15px; line-height: 1.5; max-height: 60vh; overflow: auto; margin: 8px 0 0; }
.entete .bouton.secondaire { margin-left: 8px; }
