/* Tokens locaux : le thème des écrans métier n'est pas changé par cette feuille. */
#app > .page.fi-home {
  --fi-bg:#07161d; --fi-ink:#f5f7f7; --fi-muted:#b4c4cb; --fi-border:#68818b80;
  --fi-glass:#23363dcc; --fi-accent:#61dbe2; --fi-space:clamp(20px,3.6vw,64px);
  inset:0; left:0; padding:0 var(--fi-space) 24px; color:var(--fi-ink);
  background:radial-gradient(ellipse at 80% 0,#25404a80,transparent 60%),var(--fi-bg);
  overflow:auto; scrollbar-width:thin; scrollbar-color:#536b77 transparent;
  font-weight:400; isolation:isolate;
}
.fi-home * { box-sizing:border-box; }
.fi-home a:focus-visible,.fi-home button:focus-visible,.fi-home input:focus-visible { outline:3px solid var(--fi-accent);outline-offset:4px; }
.fi-home button,.fi-home a { -webkit-tap-highlight-color:transparent; }
.fi-skip { position:fixed;left:20px;top:-100px;padding:12px 20px;background:#fff;color:#091a22;border-radius:10px;z-index:20; }
.fi-skip:focus { top:12px; }
.fi-header { display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;min-height:92px;position:relative;z-index:3;max-width:1600px;margin:auto; }
.fi-brand { width:140px;display:inline-flex;align-items:center;min-height:44px; }
/* Fenêtre sur le mot-symbole approuvé : ses lettres ne sont pas redessinées.
   Le fond sombre est fusionné avec l'en-tête, sans modifier le fichier source. */
.fi-wordmark { display:block;width:120px;height:34px;overflow:hidden;flex-shrink:0; }
.fi-nav { display:flex;gap:4px;padding:4px;border:1px solid var(--fi-border);border-radius:22px;background:#263c4455; }
.fi-nav a { display:flex;align-items:center;justify-content:center;min-height:38px;padding:0 30px;border-radius:17px;font-size:15px; }
.fi-nav a[aria-current] { background:#526c7780; }
.fi-account { min-width:0;justify-self:end;display:flex;align-items:center;gap:12px;font-size:13px;max-width:100%;min-height:44px; }
.fi-avatar { border:1px solid #cfdee4;border-radius:50%;height:42px;width:42px;display:grid;place-items:center;flex-shrink:0;font-size:20px; }
.fi-company { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:190px; }
.fi-main { max-width:1600px;margin:0 auto; }
.fi-intro { position:relative;z-index:2;pointer-events:none;margin-top:18px;margin-bottom:-116px;min-height:116px; }
.fi-intro h1 { margin:0;font-size:clamp(28px,3.2vw,52px);line-height:1.14;font-weight:450;letter-spacing:-.035em;max-width:50%;overflow-wrap:anywhere;text-wrap:balance; }
.fi-intro p { margin:8px 0 0;color:var(--fi-muted);font-size:clamp(16px,1.6vw,25px); }
.fi-demo { display:inline-block;font-size:11px;letter-spacing:.04em;color:#cedce2;margin-top:10px; }
.fi-clock { display:inline-block;margin:10px 12px 0 0;font-size:12px;color:var(--fi-muted);font-variant-numeric:tabular-nums; }
.fi-scene { position:relative;margin:0 calc(-1 * var(--fi-space)); }
.fi-scene-canvas { position:relative; }
.fi-video { position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity 1.6s ease;pointer-events:none;mask-image:linear-gradient(to bottom,transparent,#000 8%,#000 88%,transparent); }
.fi-video.pret { opacity:1; }
.fi-building { display:block;width:100%;height:auto;aspect-ratio:1672/941;object-fit:contain;mask-image:linear-gradient(to bottom,transparent,#000 8%,#000 88%,transparent); }
.fi-room { display:flex;align-items:center;justify-content:center;gap:9px;min-height:38px;padding:8px 16px;border:1px solid #9bb7bf66;border-radius:14px;background:#132a34e6;color:#fff;font-size:clamp(12px,1vw,15px);line-height:1.25;box-shadow:0 3px 15px #0005;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:background 160ms,border-color 160ms,box-shadow 160ms;white-space:nowrap;position:absolute;left:var(--room-x);top:var(--room-y);transform:translate(-50%,-50%);text-shadow:0 1px 1px #000; }
.fi-room:hover { background:#294a57f5;border-color:var(--fi-accent);box-shadow:0 0 0 3px #61dbe219,0 6px 18px #0006; }
.fi-dot { height:7px;width:7px;border-radius:50%;background:var(--fi-accent);flex-shrink:0; }
.fi-heart { background:#183b49ef;border-color:#8ae9edaa; }
.fi-scene-footer { display:flex;justify-content:space-between;align-items:center;gap:12px;margin:-62px 0 20px;position:relative;font-size:12px;color:var(--fi-muted); }
.fi-scene-footer a { display:flex;align-items:center;gap:8px;min-height:44px; }
.fi-scene-footer svg { width:16px;height:16px; }
.fi-cards { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;position:relative; }
.fi-card { background:linear-gradient(125deg,#4f5c624d,#15272eaa);border:1px solid var(--fi-border);border-radius:19px;padding:24px;display:flex;flex-direction:column;min-width:0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px); }
.fi-card-title { display:flex;align-items:center;gap:14px; }
.fi-card-icon { width:42px;height:42px;display:grid;place-items:center;background:#ffffff14;border-radius:13px;flex-shrink:0; }
.fi-card h2 { margin:0;font-size:clamp(17px,1.5vw,23px);font-weight:500;letter-spacing:-.015em; }
.fi-card p { margin:12px 0 22px;font-size:14px;line-height:1.5;color:#d1dce1;overflow-wrap:anywhere; }
.fi-action { display:flex;align-items:center;justify-content:space-between;gap:20px;align-self:start;border:1px solid #8ca3ad80;border-radius:22px;padding:10px 18px;min-height:44px;margin-top:auto;font-size:14px; }
.fi-action svg { width:17px; }
.fi-action:hover,.fi-round:hover { background:#ffffff14; }
.fi-home .fi-composer { position:relative;left:auto;bottom:auto;transform:none;margin:28px auto 0;padding:7px;display:flex;align-items:center;gap:10px;width:min(760px,100%);height:auto;min-height:66px;border:1px solid var(--fi-border);border-radius:34px;background:#102229e8;box-shadow:0 8px 35px #0004;z-index:2; }
.fi-home .fi-composer input { min-width:0;width:0;flex:1;color:var(--fi-ink);background:transparent;font-size:15px;height:42px;padding:0 8px;border:0;border-radius:20px; }
.fi-home .fi-composer input::placeholder { color:var(--fi-muted);opacity:1; }
.fi-round,.fi-send { width:46px;height:46px;display:grid;place-items:center;border-radius:50%;flex-shrink:0; }
.fi-round { color:var(--fi-ink); }
.fi-send { background:#f6fbfc;color:#13252d; }
.fi-send:disabled { opacity:.55;cursor:wait; }
.fi-feedback { color:var(--fi-muted);text-align:center;font-size:13px;line-height:1.5;min-height:0;margin:8px 0 0; }
.fi-feedback:empty { display:none; }
.fi-footer { display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap;margin-top:16px;color:var(--fi-muted);font-size:12px; }
.fi-footer a,.fi-footer button { display:flex;align-items:center;gap:7px;min-height:44px; }
.fi-footer svg { width:16px;height:16px; }
.fi-home .citation { display:none; }
@media (min-width:1600px) { .fi-scene { margin-left:0;margin-right:0; } }
@media (max-width:1000px) {
  .fi-header { grid-template-columns:1fr auto;gap:12px;min-height:80px; }.fi-nav { order:3;grid-column:1/-1;justify-self:center;margin-bottom:18px; }
  .fi-intro { margin:8px 0 0;min-height:0; }.fi-intro h1 { max-width:100%; }.fi-scene { margin-top:10px; }
  .fi-room { font-size:12px;min-height:40px;padding:8px 11px;gap:6px; }.fi-cards { gap:12px; }.fi-card { padding:18px; }.fi-card-title { gap:10px; }.fi-card-icon { width:34px;height:34px; }
}
@media (max-width:760px) {
  #app > .page.fi-home { --fi-space:20px; }
  .fi-brand { width:140px; }.fi-company { max-width:130px; }.fi-account { gap:8px; }.fi-avatar { width:36px;height:36px; }
  /* Les marges de paysage seules sont recadrées : tout le bâtiment et tous
     les liens restent visibles. Aucun carrousel, zoom ou glissement à apprendre. */
  .fi-scene { margin-left:-20px;margin-right:-20px;overflow:clip; }
  .fi-scene-canvas { width:100%; }
  .fi-building { width:120%;max-width:none;margin-left:-10%; }
  .fi-video { width:120%;max-width:none;left:-10%; }
  .fi-rooms { display:block;margin:0; }
  .fi-room { left:var(--room-mobile-x);top:var(--room-mobile-y);width:var(--room-mobile-width);height:44px;min-height:44px;min-width:44px;font-size:clamp(11px,2.9vw,13px);line-height:1.15;white-space:normal;padding:0;text-align:center;gap:0;border:0;border-radius:10px;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none; }
  .fi-room-label { display:block;max-width:100%;min-width:44px;padding:5px 4px;border:1px solid #9bb7bf88;border-radius:8px;background:#102a35ec;box-shadow:0 2px 8px #0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px); }
  .fi-room:hover { background:none;box-shadow:none; }
  .fi-room:hover .fi-room-label,.fi-room:focus-visible .fi-room-label { background:#294a57;border-color:var(--fi-accent); }
  .fi-room .fi-dot { display:none; }
  .fi-home .fi-room:focus-visible { outline-offset:-3px; }
  .fi-heart { margin-top:10px; }
  .fi-scene-footer { margin:8px 0 14px;font-size:11px;align-items:center; }
  .fi-cards { grid-template-columns:1fr;gap:12px; }.fi-card { padding:20px; }.fi-card p { margin-bottom:16px; }.fi-card h2 { font-size:20px; }
  .fi-home .fi-composer { margin-top:20px;gap:2px;padding:5px;min-height:58px; }.fi-home .fi-composer input { font-size:14px;padding:0 4px; }.fi-round,.fi-send { width:40px;height:44px; }
  .fi-footer { gap:8px 20px; }
}
@media (prefers-reduced-motion:reduce) { .fi-home * { animation:none!important;transition:none!important;scroll-behavior:auto!important; } }
@media (forced-colors:active) { .fi-room,.fi-card,.fi-nav,.fi-action,.fi-home .fi-composer { border:1px solid CanvasText; }.fi-dot { background:CanvasText; } }

/* L'architecture utilise la largeur de la page, jamais une limite de hauteur
   qui la transformerait en miniature sur un écran large et peu haut. */
@media (min-width:761px) and (max-width:1000px) {
  .fi-header { grid-template-columns:1fr auto 1fr;gap:12px; }
  .fi-nav { order:initial;grid-column:auto;margin:0; }.fi-nav a { padding:0 18px; }
  .fi-account .fi-company { max-width:100px; }
  .fi-room { padding:8px 9px;font-size:11px;gap:5px; }
}

/* Le panneau réutilise /messages : pas de nouvel historique ni d'autre moteur IA. */
.fi-talk { position:fixed;right:14px;top:45%;z-index:30;width:46px;height:54px;display:grid;place-items:center;color:#f4fbfc;background:#173b49ed;border:1px solid #91c4d099;border-radius:18px;box-shadow:0 6px 22px #0005;backdrop-filter:blur(18px); }
.fi-talk:hover { background:#265665; }.fi-talk:focus-visible,.fi-dialog a:focus-visible,.fi-dialog button:focus-visible { outline:3px solid #61dbe2;outline-offset:3px; }
.fi-talk-count { position:absolute;top:-6px;right:-5px;padding:2px 5px;background:#d8faff;color:#12313b;border-radius:10px;font-size:11px;min-width:18px; }
.fi-talk-count[hidden] { display:none; }
.fi-dialog { position:fixed;inset:16px 16px 16px auto;margin:0;width:min(460px,calc(100vw - 32px));height:calc(100dvh - 32px);max-height:none;max-width:none;padding:0;border:1px solid #66838f;border-radius:24px;background:#0d222b;color:#f5f8fa;box-shadow:0 16px 80px #0008;overflow:hidden; }
.fi-dialog[open] { display:flex;flex-direction:column; }.fi-dialog::backdrop { background:#00101a66;backdrop-filter:blur(3px); }
.fi-dialog > header { display:flex;align-items:center;gap:8px;padding:20px 18px;flex-shrink:0; }.fi-dialog > header > div { flex:1; }.fi-dialog h2 { margin:0;font-size:20px;font-weight:500; }.fi-dialog header p { margin:6px 0 0;font-size:12px;color:#b5c9d3; }
.fi-dialog .fi-close,.fi-dialog .fi-expand { display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:50%;color:#eaf4f8; }.fi-dialog button:hover,.fi-dialog a:hover { background:#ffffff15; }
.fi-frame-area { position:relative;flex:1;min-height:0; }.fi-frame-area iframe { width:100%;height:100%;border:0;display:block;background:#f7f6f3;position:relative; }.fi-frame-loading { position:absolute;inset:20px;font-size:14px;color:#c8dae1; }
.fi-dialog > footer { padding:12px 16px;font-size:11px;text-align:center;color:#b5c9d3;flex-shrink:0; }
@media(max-width:700px) { .fi-talk { width:42px;height:48px;right:8px;top:48%; }.fi-dialog { inset:8px;width:calc(100vw - 16px);height:calc(100dvh - 16px);border-radius:18px; } }
@media(max-width:760px) { body:has(.fi-home) .fi-talk { top:auto;bottom:18px;right:14px;transform:none; } #app > .page.fi-home { padding-bottom:84px; } }

/* La messagerie embarquée adopte l'accueil. Aucune route, aucun fil ni aucune
   action ne sont remplacés ; ces règles ne touchent pas les écrans autonomes. */
.fi-conversation-embed:has(.dm-page) {
  color-scheme:dark;--encre:#edf5f8;--sur-encre:#0b151a;--muet:#b3c6cf;--sourd:#b3c6cf;
  --trait:#87b1c32e;--bleu:#63dce5;
}
.fi-conversation-embed:has(.dm-page) body { background:#0d222b;color:#edf5f8; }
.fi-conversation-embed #app:has(.dm-page) > .barre,
.fi-conversation-embed #app:has(.dm-page) > .lateral,
.fi-conversation-embed .dm-page .citation { display:none!important; }
.fi-conversation-embed #app > .dm-page { inset:0;padding:0;overflow:hidden; }
.fi-conversation-embed .dm-page .dm { height:100dvh;min-height:0;max-height:none;margin:0;border:0;border-radius:0;box-shadow:none;background:radial-gradient(ellipse at top right,#22445166,transparent 75%),#0d222b; }
.fi-conversation-embed .dm-liste { border:0; }
.fi-conversation-embed .dm-liste-tete { padding:4px 20px 12px; }
.fi-conversation-embed .dm-liste-tete .rond { display:none; }
.fi-conversation-embed .dm-liste-tete h1 { font-size:14px;font-weight:400;color:#b3c6cf; }
.fi-conversation-embed .dm-convs { padding:0 12px 14px;gap:6px; }
.fi-conversation-embed .dm-conv { padding:14px 12px;border:1px solid #8faebb18;background:#ffffff04;transition:background 150ms,border-color 150ms; }
.fi-conversation-embed .dm-conv:hover,.fi-conversation-embed .dm-conv.on { background:#78c9da14;border-color:#8faebb66; }
.fi-conversation-embed .dm-conv-txt { gap:6px; }
.fi-conversation-embed .dm-badge,.fi-conversation-embed .dm-total { background:#b2edf1;color:#09242d; }
.fi-conversation-embed .dm-tete { padding:12px 16px 16px;gap:10px; }
.fi-conversation-embed .dm-qui small { font-size:11px;line-height:1.4; }
.fi-conversation-embed .dm-pt { display:none; }
.fi-conversation-embed .dm-bulles { padding:18px 16px 24px;gap:12px;scrollbar-width:thin;scrollbar-color:#526c78 transparent; }
.fi-conversation-embed .dm-jour span { color:#b3c6cf;background:#ffffff07; }
.fi-conversation-embed .dm .msg { max-width:94%; }
.fi-conversation-embed .dm .msg.dir .msg-corps { background:#203b47;border:1px solid #8daebf24;color:#edf5f8;line-height:1.55; }
.fi-conversation-embed .dm .msg.dir.rouge .msg-corps { background:#442c36; }
.fi-conversation-embed .dm .msg.moi .msg-corps { background:#315763;color:#fff;line-height:1.55; }
.fi-conversation-embed .dm .msg-sous { opacity:1;color:#b9cbd3; }
.fi-conversation-embed .dm .creux,.fi-conversation-embed .dm .rond { border:1px solid #7fa6b455;color:#ecf7fa;background:#ffffff07; }
.fi-conversation-embed .dm .plein { color:#09242d;background:#b2edf1;border-color:#b2edf1; }
.fi-conversation-embed .dm .rouge-texte { color:#ffb8ba; }
.fi-conversation-embed .dm .msg-gestes { gap:8px;padding-top:6px; }
.fi-conversation-embed .dm .msg-gestes .petit { min-height:36px; }
.fi-conversation-embed .dm-saisie { padding:10px;gap:6px;margin:8px 12px 14px;border:1px solid #8fb2c355;border-radius:28px;background:#112c37;box-shadow:0 10px 32px #0003; }
.fi-conversation-embed .dm-saisie input { width:0;min-width:0;border:0;background:transparent;padding:8px 4px;color:#edf5f8; }
.fi-conversation-embed .dm-saisie input::placeholder { color:#b3c6cf; }
.fi-conversation-embed .dm-emoji { width:30px;min-width:30px;height:38px; }
.fi-conversation-embed .dm-envoyer { background:#def6f7; }
.fi-conversation-embed .dm-envoyer svg { stroke:#102c37; }
.fi-conversation-embed .dm-emojis { background:#183843;border:1px solid #8fb2c355;grid-template-columns:repeat(6,36px); }
.fi-conversation-embed .dm-ecrit span { background:#203b47; }
.fi-conversation-embed .dm button:focus-visible,.fi-conversation-embed .dm a:focus-visible,.fi-conversation-embed .dm input:focus-visible { outline:2px solid #63dce5;outline-offset:3px; }
@media(prefers-reduced-motion:reduce) { .fi-conversation-embed * { animation:none!important;transition:none!important; } }
