/* Voicebot 1.4.8: desktop chat/drawer left, quote right; mobile unchanged. */
.app { height:var(--visible-height,100dvh); }
.app { display:flex; flex-direction:column; }
.bandeau { flex:none; min-height:88px; padding:10px 16px; gap:10px; overflow:visible; }
.panneaux { flex:1; min-height:0; }
.colonne-gauche { grid-column:2; grid-row:1; display:flex; flex-direction:column; min-height:0; min-width:0; overflow:hidden; }
.colonne-gauche > .devis { flex:1; min-height:0; }
.catalogue-colonne { display:none; grid-column:1; grid-row:1; min-height:0; min-width:0; overflow:hidden; background:white; z-index:1; }
#devis-resume { width:100%; min-height:44px; flex:none; text-align:left; border:0; border-radius:0; font-size:14px; padding:10px 16px; background:var(--fond); color:var(--bleu-fonce); }
.chat { grid-column:1; grid-row:1; min-width:0; }
.chat-titre { display:flex; align-items:center; gap:10px; padding:12px 16px 8px; flex:none; }
.chat-titre h2 { font-size:15px; color:var(--bleu-fonce); min-width:0; }
.chat-titre > button { flex:none; min-height:40px; padding:8px 10px; font-size:13px; }
.audio-saisie { display:flex; flex-direction:column; align-items:flex-start; gap:4px; flex:0 1 auto; min-width:0; max-width:100%; overflow-wrap:anywhere; }
.audio-saisie[data-active="true"] { flex-basis:100%; }
.audio-commandes { display:flex; gap:8px; align-items:center; flex-wrap:wrap; max-width:100%; }
.audio-commandes button { min-height:44px; max-width:100%; }
.audio-saisie small { font-size:12px; }
#parler { min-height:44px; padding:10px 22px; }
button:hover:not(:disabled) { filter:brightness(.93); }
button:focus-visible { outline:3px solid #7085e5; outline-offset:2px; }
.catalogue { flex:1; display:flex; flex-direction:column; min-height:0; overflow:hidden; padding:12px 16px 0; background:white; border-bottom:2px solid var(--ligne); }
.catalogue-titre { display:flex; align-items:center; gap:8px; flex:none; min-height:40px; }
.catalogue-titre h2 { flex:1; min-width:0; font-size:16px; padding:0; margin:0; overflow-wrap:anywhere; }
.catalogue-titre button { flex:none; min-height:40px; padding:6px 10px; font-size:14px; }
#catalogue-univers { flex:none; display:flex; gap:4px; padding:6px 0; }
#catalogue-univers button { flex:1; padding:7px 4px; min-height:36px; white-space:nowrap; font-size:14px; }
#catalogue-univers button[aria-selected="true"] { background:var(--bleu); color:white; }
#catalogue-fil { flex:none; display:flex; align-items:center; flex-wrap:wrap; font-size:14px; padding-bottom:5px; }
#catalogue-fil button { border:0; background:transparent; font-size:14px; padding:5px; min-height:30px; text-decoration:underline; text-underline-offset:3px; }
#catalogue-fil button[aria-current="page"] { text-decoration:none; }
.catalogue-corps { min-height:0; overflow:auto; overscroll-behavior:contain; padding:2px 2px 10px; flex:1; }
#catalogue-contenu { display:grid; gap:4px; }
#catalogue-contenu .catalogue-choix { width:100%; padding:6px 10px; text-align:left; }
.catalogue-choix { display:flex; align-items:center; gap:10px; height:38px; min-height:38px; font-size:14px; }
.catalogue-choix strong { flex:none; max-width:45%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; }
.catalogue-choix small { flex:1; min-width:0; font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.catalogue-choix small { font-weight:400; color:var(--gris); }
.catalogue-choix .chevron { margin-left:auto; flex:none; }
.catalogue-choix:disabled { background:#f0f1f4; color:#626577; border-color:#d4d6df; opacity:1; }
.catalogue-filtres { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px; }
.catalogue-filtres { position:sticky; top:-2px; z-index:1; background:white; padding:0 0 5px; }
.catalogue-filtres input, .catalogue-filtres select { font:inherit; font-size:14px; min-width:0; width:100%; min-height:36px; padding:6px; border:1px solid var(--gris); border-radius:6px; }
.catalogue-produit { display:flex; align-items:center; gap:8px; border-bottom:1px solid var(--ligne); min-height:38px; padding:2px 0; font-size:14px; }
.produit-info { flex:1; min-width:0; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.produit-info strong { font-size:14px; font-weight:600; overflow-wrap:anywhere; }
.produit-info small { color:var(--gris); font-size:14px; }
.catalogue-produit button { flex:none; min-height:34px; padding:5px 8px; font-size:14px; }
#catalogue-contenu .configuration { display:grid; gap:8px; width:100%; }
.configuration label { display:grid; gap:3px; }
.configuration input, .configuration select { min-width:0; width:100%; font:inherit; padding:5px; }
.configuration fieldset { padding:8px; border:1px solid var(--ligne); }
.configuration .option { display:flex; gap:8px; align-items:center; }
.configuration .option input { width:auto; }
#catalogue-etat { padding:5px 0; font-size:13px; }
#catalogue-etat:empty { display:none; }
#catalogue-etat.confirme { background:#e7f5ec; color:#125c2c; border-radius:5px; padding:8px; }
.bulle.caller { margin-left:auto; margin-right:0; background:#e9eeff; }
.bulle.assistant { margin-left:0; margin-right:auto; background:white; }
#chat-corps { overflow-anchor:none; overscroll-behavior:contain; }
#chat-nouveaux { flex:none; margin:4px 16px; align-self:center; }
.saisie { flex:none; padding-bottom:max(8px,env(safe-area-inset-bottom)); }
.saisie .commandes { flex-wrap:wrap; }
.saisie .commandes .aide { flex:1 1 8rem; min-width:0; overflow-wrap:anywhere; }
.saisie .commandes > button { max-width:100%; }
.saisie #envoyer-message { margin-left:auto; }
.option-guide { display:grid; gap:7px; border-top:1px solid var(--ligne); padding-top:8px; }
.option-guide select, .line-period select { max-width:100%; min-width:0; padding:6px; }
.offres { display:grid; gap:3px; }
.offres h3 { font-size:14px; margin-top:8px; padding:4px 0; }
.bulle.provisoire { border-style:dashed; opacity:.85; }
/* voicebot-progressive-response c01 : réponse encore produite, ou restée incomplète. */
.bulle.en-cours > div:first-child::after { content:" …"; opacity:.6; }
.bulle.incomplete { border-style:dashed; }
.onglets { display:none; }
#devis-articles { display:grid; gap:10px; margin:8px 0 16px; }
.article-edition { border:1px solid var(--ligne); padding:10px; border-radius:8px; display:grid; gap:5px; overflow-wrap:anywhere; }
.article-edition code { font-weight:600; }
.article-commandes { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.article-commandes button { min-width:44px; min-height:44px; padding:6px 9px; font-size:14px; }
.article-nom { display:flex; justify-content:space-between; gap:8px; align-items:baseline; }
.article-prix { white-space:nowrap; font-variant-numeric:tabular-nums; }
.article-stepper { display:inline-flex; align-items:center; gap:3px; }
.article-stepper output { min-width:28px; text-align:center; font-variant-numeric:tabular-nums; }
.article-plus { margin-left:auto; }
.article-menu { display:flex; flex-wrap:wrap; gap:6px; padding:8px 0; border-top:1px solid var(--ligne); }
.article-menu button { font-size:13px; padding:8px 10px; }
.article-options { padding-left:16px; font-size:13px; color:var(--gris); }
.line-period { display:grid; gap:8px; }
.detail-facturation summary { cursor:pointer; font-size:13px; padding:8px 0; }
.devis-titre { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:6px; padding:10px 16px; flex:none; }
.devis-titre h2 { font-size:16px; }
.devis-titre button { padding:8px 10px; font-size:13px; }
.devis-actions { display:flex; gap:6px; }
.devis-pied { flex:none; background:#fff; border-top:1px solid var(--ligne); padding:4px 16px; max-height:25%; overflow:auto; }
.devis-pied > button { padding:6px 10px; font-size:14px; }
.confirmation, .annulation { flex:none; margin:0 16px 8px; padding:8px; border:1px solid #b7c3f3; border-radius:6px; background:#eef1ff; max-height:25%; overflow:auto; }
.confirmation button, .annulation button { padding:8px 10px; margin:5px 5px 0 0; }
#audio-volume { width:60px; }
#audio-etat { font-size:13px; max-width:350px; }
[hidden] { display:none !important; }
.carte { padding:15px; }
td { overflow-wrap:anywhere; }
@media not all and (max-width:760px) {
  body[data-catalogue-open="true"] .catalogue-colonne { display:flex; flex-direction:column; }
  /* Keep scroll geometry and all live chat nodes; manual.js also sets inert. */
  body[data-catalogue-open="true"] .chat { visibility:hidden; pointer-events:none; }
  #devis-resume { display:none; }
}
@media (max-width:760px) {
  .bandeau { min-height:96px; padding:8px; gap:7px; }
  .bandeau .marque { font-size:16px; }
  .bandeau .actions { flex-wrap:wrap; }
  .bandeau button { padding:6px 9px; }
  .bandeau .etat { width:100%; margin:0; }
  .onglets { display:flex; flex:none; gap:3px; padding:5px; }
  .onglets button { flex:1; padding:8px; min-height:44px; }
  .onglets button[aria-selected="true"] { background:var(--bleu-fonce); }
  .panneaux { display:block; }
  .colonne-gauche { height:100%; }
  .chat { height:100%; }
  .panneaux .chat { display:none; }
  body[data-panel="chat"] .chat { display:flex; }
  body[data-panel="chat"] .colonne-gauche { display:none; }
  body[data-catalogue-open="true"] .colonne-gauche > .devis { flex:none; }
  body[data-catalogue-open="true"] .devis > .devis-titre,
  body[data-catalogue-open="true"] .devis > .corps { display:none; }
  body[data-catalogue-open="true"] .confirmation,
  body[data-catalogue-open="true"] .annulation { max-height:none; }
  .saisie .commandes { flex-wrap:wrap; }
  .audio-commandes strong { font-size:14px; }
  body[data-panel="devis"][data-catalogue-open="true"] .colonne-gauche { position:fixed; inset:0; height:var(--visible-height,100dvh); z-index:20; background:white; padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom); }
  .catalogue { padding:8px 12px 0; }
  .catalogue-titre button { min-height:44px; min-width:44px; }
  #catalogue-univers { overflow-x:auto; overscroll-behavior-x:contain; }
  #catalogue-univers button { flex:none; min-height:44px; padding:8px 10px; }
  #catalogue-fil button { min-height:44px; }
  .catalogue-choix { height:44px; min-height:44px; gap:8px; }
  .catalogue-choix strong { max-width:60%; }
  .catalogue-choix small { font-size:14px; }
  .catalogue-produit { min-height:44px; }
  .catalogue-produit button { min-height:44px; padding:8px; }
  .catalogue-filtres { grid-template-columns:minmax(0,1fr); }
  .catalogue-filtres input, .catalogue-filtres select { min-height:44px; }
  .devis .corps { padding:0 10px 10px; }
  .devis-titre, .devis-pied { padding:8px 10px; }
  .article-nom { flex-wrap:wrap; }
  .carte { padding:10px; }
}
