/* Parcours vocal — style « conversation », mobile d'abord (390 px). */
body.voice-app{background:#f5f6f8}
.shell{display:flex;flex-direction:column;height:100vh;height:100dvh;max-width:720px;margin:0 auto;background:#f5f6f8}
.voice-app .topnotice{font-size:12px;padding:6px 12px;line-height:1.35}
.vhead{padding:8px 12px 4px}.vhead .brand{font-size:18px}
/* Bandeau de prix en direct (repliable) */
.pricebar{background:#fff;border-top:1px solid #dde2e8;border-bottom:1px solid #dde2e8}
.pricetoggle{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:9px 12px;font-size:14px;color:#173a5e;cursor:pointer;min-height:44px}
.pricetoggle.loading #priceText{color:#7b8794}
.pricetoggle .chev{flex:none;transition:transform .2s}.pricetoggle[aria-expanded=true] .chev{transform:rotate(180deg)}
.pricebar.flash{animation:flash 1.2s ease-out}@keyframes flash{0%{background:#e3f6e8}100%{background:#fff}}
.pricepanel{padding:0 12px 10px;font-size:13px}
.pricepanel .ptitle{color:#52606d;font-size:12px;margin-bottom:4px}
.pricepanel .top{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid #eef0f3}
.pricepanel .top b{color:#173a5e;white-space:nowrap}
.pricepanel button{margin-top:8px;width:100%}
/* Progression 1/9 */
.progress{padding:6px 12px 6px;background:#f5f6f8}
.ptext{font-size:12px;color:#52606d;margin-bottom:4px;font-weight:600}
.pbar{display:grid;grid-template-columns:repeat(9,1fr);gap:3px}
.pbar i{height:6px;border-radius:3px;background:#dde2e8}.pbar i.on{background:#2f7de1}.pbar i.cur{background:#9cc2f2}
/* Fil de conversation */
.chatview,.resultsview{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
.thread{display:flex;flex-direction:column;gap:10px;padding:12px 12px 16px}
.b{max-width:86%;padding:10px 14px;border-radius:18px;font-size:16px;line-height:1.35;position:relative;word-wrap:break-word}
.b.bot{align-self:flex-start;background:#eef3f9;color:#1f2933;border-bottom-left-radius:4px}
.b.user{align-self:flex-end;background:#173a5e;color:#fff;border-bottom-right-radius:4px}
.b.user.interim{background:#fff;color:#173a5e;border:1.5px dashed #173a5e;opacity:.9}
.b.note{align-self:stretch;max-width:100%;background:#fff7e6;border:1px solid #f0d9a8;color:#3e4c59;font-size:13px;border-radius:12px}
.b.intro{align-self:stretch;max-width:100%;background:#fff;border:1px solid #dde2e8;border-radius:14px;font-size:14px}
.b.intro h3{margin:0 0 6px;font-size:17px;color:#173a5e}.b.intro p{margin:6px 0}
.b.intro .privacy{background:#f3f6fa;border-radius:10px;padding:8px 10px;font-size:13px;color:#3e4c59}
.b.intro .cta{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.b.intro .cta button{min-height:48px;font-size:16px}
.b .hint{display:block;margin-top:6px;font-size:13px;color:#52606d}
.b.current{box-shadow:0 0 0 2px #2f7de1}
.badge{display:none;position:absolute;top:-10px;left:12px;background:#2f7de1;color:#fff;font-size:11px;font-weight:700;border-radius:10px;padding:2px 8px 2px 6px;align-items:center;gap:4px}
.b.current.reading .badge{display:inline-flex}
.badge .eq{display:inline-flex;gap:2px;align-items:flex-end;height:10px}
.badge .eq i{width:2px;background:#fff;border-radius:1px;animation:eq .9s infinite ease-in-out}
.badge .eq i:nth-child(2){animation-delay:.15s}.badge .eq i:nth-child(3){animation-delay:.3s}
@keyframes eq{0%,100%{height:3px}50%{height:10px}}
.b .confirm{display:flex;gap:8px;margin-top:8px}
.b .confirm button{flex:1;min-height:44px;border-radius:22px;font-size:15px}
.b .confirm button.secondary{background:#fff}
.b .confirm.used{opacity:.45;pointer-events:none}
.b .seeall{margin-top:8px;width:100%}
.vfoot{margin:8px 12px 16px;border:1px solid #dde2e8;border-radius:10px;font-size:12px}
/* Clavier de secours (feuille au-dessus du dock) */
.kbsheet{background:#fff;border-top:1px solid #dde2e8;box-shadow:0 -6px 18px rgba(23,58,94,.10);padding:10px 12px}
.kbtitle{font-size:13px;color:#52606d;margin-bottom:6px}
.kboptions{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.kboptions button{background:#fff;color:#173a5e;border:1.5px solid #9fb3c8;border-radius:12px;text-align:left;min-height:46px;font-size:15px}
.kbform{display:flex;gap:6px}
.kbform input{flex:1;min-width:0;padding:11px 10px;border:1px solid #c5ccd5;border-radius:10px;font-size:16px}
/* Dock fixe : répéter · micro · clavier */
.dock{background:#fff;border-top:1px solid #dde2e8;box-shadow:0 -4px 16px rgba(0,0,0,.06);padding:6px 16px calc(8px + env(safe-area-inset-bottom))}
.status{text-align:center;font-size:13px;color:#52606d;min-height:18px;margin-bottom:4px}
.status.listening{color:#c62828;font-weight:600}
.dockrow{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}
.side{background:transparent;color:#173a5e;border:0;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;padding:6px;min-height:56px}
.side:disabled{color:#b0b8c2}
.mic{width:76px;height:76px;border-radius:50%;padding:0;background:#173a5e;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(23,58,94,.35);position:relative}
.mic .wave{display:none;gap:4px;align-items:center;height:30px}.mic .wave i{width:5px;border-radius:3px;background:#fff;animation:eq2 .8s infinite ease-in-out}
.mic .wave i:nth-child(2){animation-delay:.12s}.mic .wave i:nth-child(3){animation-delay:.24s}.mic .wave i:nth-child(4){animation-delay:.36s}
@keyframes eq2{0%,100%{height:8px}50%{height:28px}}
.mic.speaking{background:#2f7de1}.mic.speaking .i-mic{display:none}.mic.speaking .wave{display:flex}
.mic.listening{background:#d64545;box-shadow:0 0 0 0 rgba(214,69,69,.55);animation:pulse 1.3s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(214,69,69,.55)}70%{box-shadow:0 0 0 16px rgba(214,69,69,0)}100%{box-shadow:0 0 0 0 rgba(214,69,69,0)}}
.mic.off{background:#b0b8c2;box-shadow:none}
.dockprivacy{text-align:center;font-size:11px;color:#7b8794;margin-top:4px}
/* Résultats */
.resultsview{padding:0 12px}
.reshead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 0 8px}
.reshead h2{margin:0;font-size:20px;color:#173a5e}
.reshead button{font-size:13px;min-height:40px}
.resultsview .plan{background:#fff}
.finalmention{margin:12px 0;padding:10px 12px;background:#173a5e;color:#fff;border-radius:10px;font-size:13px;text-align:center}
@media(min-width:900px){.shell{border-left:1px solid #dde2e8;border-right:1px solid #dde2e8}}
.chatview{position:relative}.thread{position:relative}

/* 28/10 22:50 : bouton son + gros bouton Commencer */
.vhead{display:flex;align-items:center;justify-content:space-between;gap:8px}
.mutebtn{display:flex;align-items:center;gap:6px;background:#fff;color:#173a5e;border:1.5px solid #9fb3c8;border-radius:22px;min-height:40px;padding:6px 12px;font-size:13px;font-weight:600}
.mutebtn .i-off{display:none}.mutebtn.muted{background:#173a5e;color:#fff;border-color:#173a5e}.mutebtn.muted .i-on{display:none}.mutebtn.muted .i-off{display:inline}
.b.intro .cta .bigstart{min-height:72px;font-size:22px;font-weight:700;border-radius:36px;background:#173a5e;color:#fff;box-shadow:0 4px 12px rgba(23,58,94,.3)}
.b.intro .cta .startsub{font-size:13px;color:#52606d;text-align:center}
.b.intro .cta .linkbtn{background:transparent;color:#2f7de1;border:0;min-height:40px;font-size:14px;text-decoration:underline;box-shadow:none}
