/* Orvel Live : plein écran vocal + bulle vivante */
html.ol-lock{overflow:hidden}
.ol-root{position:fixed;inset:0;z-index:10000;color:#e6f1f5;font:15px/1.5 Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:radial-gradient(ellipse at 50% 40%,#0a1226 0%,#04070f 55%,#02040a 100%);display:flex;flex-direction:column;align-items:center;overflow:hidden}
.ol-root.ol-min{display:none}
.ol-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.ol-tag{position:absolute;left:18px;top:16px;display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:.04em;color:#cfe9f2}
.ol-tag i{width:30px;height:30px;border-radius:50%;background:#02050a url(/img/orvel-mark-256.webp) center/92% no-repeat;box-shadow:0 0 14px rgba(130,90,255,.6)}
.ol-top{position:absolute;top:12px;z-index:3;width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(120,200,255,.3);background:rgba(7,13,20,.6);color:#e6f1f5;font-size:24px;line-height:1;cursor:pointer}
.ol-close{right:14px}.ol-min-b{right:64px}
.ol-top:hover{background:rgba(34,229,255,.15)}
.ol-stage{position:absolute;left:0;right:0;bottom:130px;z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 16px;text-align:center}
.ol-status{display:inline-flex;align-items:center;gap:9px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#9fd8e8}
.ol-status i{width:9px;height:9px;border-radius:50%;background:#22e5ff;box-shadow:0 0 10px #22e5ff}
.ol-root[data-state=listening] .ol-status i{animation:ol-dot 1s ease-in-out infinite}
.ol-root[data-state=thinking] .ol-status i{background:#8a5cff;box-shadow:0 0 10px #8a5cff;animation:ol-dot .6s ease-in-out infinite}
.ol-root[data-state=speaking] .ol-status i{background:#ff4fb0;box-shadow:0 0 10px #ff4fb0;animation:ol-dot .45s ease-in-out infinite}
.ol-root[data-state=error] .ol-status{color:#ffc766}.ol-root[data-state=error] .ol-status i{background:#ffb02e;box-shadow:0 0 10px #ffb02e}
@keyframes ol-dot{50%{transform:scale(1.7);opacity:.6}}
.ol-sub{max-width:min(760px,92vw);min-height:1.5em}
.ol-sub-bot{font-size:clamp(17px,2.4vw,23px);line-height:1.45;color:#f2fbff;max-height:28vh;overflow:hidden;text-shadow:0 0 18px rgba(34,229,255,.35)}
.ol-chunk{opacity:.55;transition:opacity .25s}
.ol-chunk.ol-cur{opacity:1}.ol-chunk.ol-done{opacity:.8}
.ol-sub-bot:not(:has(.ol-cur)) .ol-chunk{opacity:1}
.ol-sub-me{font-size:15px;color:#e8b85a}
.ol-interim{opacity:.75;font-style:italic}
.ol-note{font-size:13px;color:#ffc766;background:rgba(255,176,46,.09);border:1px solid rgba(255,176,46,.35);border-radius:10px;padding:7px 12px;max-width:min(620px,92vw);display:none}
.ol-note.ol-on{display:block}
.ol-ctl{position:absolute;left:0;right:0;bottom:70px;z-index:2;display:flex;justify-content:center;gap:10px;flex-wrap:wrap;padding:0 12px}
.ol-btn{font:inherit;font-size:14px;color:#e6f1f5;background:rgba(7,13,20,.65);border:1px solid rgba(120,200,220,.35);border-radius:999px;padding:8px 16px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ol-btn:hover{background:rgba(34,229,255,.16)}
.ol-btn[hidden]{display:none}
.ol-primary{color:#02050a;background:#22e5ff;border-color:#22e5ff;font-weight:600}
.ol-primary:hover{background:#6af0ff}
.ol-ico{width:46px;height:46px;padding:0;justify-content:center;border-color:rgba(34,229,255,.7);box-shadow:0 0 18px rgba(34,229,255,.35)}
.ol-ico.ol-off{border-color:rgba(255,176,46,.6);color:#ffc766;box-shadow:none}
.ol-stop{border-color:rgba(255,79,176,.6)}
.ol-kbd{position:absolute;left:50%;transform:translateX(-50%);bottom:18px;z-index:3;width:min(560px,92vw);display:flex;gap:8px}
.ol-kbd[hidden]{display:none}
.ol-kbd input{flex:1;min-width:0;font:inherit;color:#e6f1f5;background:rgba(2,5,10,.7);border:1px solid rgba(120,200,220,.35);border-radius:999px;padding:9px 16px}
.ol-warn{position:absolute;left:0;right:0;bottom:4px;z-index:2;text-align:center;font-size:11.5px;color:#7f95a0;padding:0 12px}
.ol-kbd:not([hidden])~.ol-warn{display:none}
.ol-consent{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);width:min(520px,92vw);max-height:90vh;overflow:auto;padding:22px 24px;border-radius:18px;background:rgba(6,11,19,.92);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(34,229,255,.4);box-shadow:0 0 60px rgba(130,90,255,.35)}
.ol-consent h2{margin:0 0 10px;font-size:19px;font-weight:600;color:#fff}
.ol-consent p{margin:0 0 9px;font-size:14px;color:#c7d9e0}
.ol-consent .ol-cwarn{color:#ffc766;font-size:13px}
.ol-crow{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.ol-root :focus-visible,.oa-panel .ol-voicebtn:focus-visible,.oa-panel .ol-micbtn:focus-visible,.ol-consent :focus-visible{outline:2px solid #e8b85a;outline-offset:2px}
/* panneau du chat */
.ol-voicebar{padding:0 14px 8px}
.ol-voicebtn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:600;font-size:13.5px;color:#e6f1f5;border:1px solid transparent;border-radius:999px;padding:8px 12px;cursor:pointer;background:linear-gradient(#0a1020,#0a1020) padding-box,linear-gradient(90deg,#22e5ff,#8a5cff,#ff4fb0,#ff9a3c) border-box}
.ol-voicebtn:hover{filter:brightness(1.25)}
.ol-micbtn{flex:none;width:38px;display:flex;align-items:center;justify-content:center;color:#22e5ff;background:rgba(34,229,255,.07);border:1px solid rgba(34,229,255,.35);border-radius:10px;cursor:pointer;padding:0}
.ol-micbtn[hidden]{display:none}
.ol-micbtn.ol-on{color:#02050a;background:#ff4fb0;border-color:#ff4fb0;animation:ol-dot 1s ease-in-out infinite}
.oa-form .ol-micbtn{padding:0}
.ol-pnote{margin:0 14px 8px;font-size:12.5px;color:#ffc766}
.ol-pc.ol-consent{position:static;transform:none;width:auto;margin:0 12px 8px;padding:12px 14px;box-shadow:none;max-height:240px}
.ol-pc.ol-consent h2{font-size:15px}.ol-pc.ol-consent p{font-size:12.5px}
/* bulle vivante */
.oa-orb::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:2px solid rgba(34,229,255,.0);pointer-events:none;opacity:0;transform:scale(1)}
.oa-orb.ol-alive{animation:oa-breathe 3s ease-in-out infinite}
.oa-orb.ol-alive::after{opacity:1;border-color:rgba(34,229,255,.85);box-shadow:0 0 14px rgba(34,229,255,.6);transform:scale(calc(1 + var(--ol-l,0) * .32));transition:transform .08s linear}
.oa-orb[data-ol=speaking]::after{border-color:rgba(255,79,176,.9);box-shadow:0 0 16px rgba(255,79,176,.6)}
.oa-orb[data-ol=thinking]::after{border-color:rgba(138,92,255,.9);box-shadow:0 0 16px rgba(138,92,255,.6);border-style:dashed;animation:ol-spin 2.4s linear infinite}
.oa-orb[data-ol=error]::after{border-color:rgba(255,176,46,.95);box-shadow:0 0 16px rgba(255,176,46,.6)}
.oa-orb.ol-dict::after{opacity:1;border-color:rgba(255,79,176,.9);animation:ol-pulse 1s ease-in-out infinite}
@keyframes ol-spin{to{transform:rotate(360deg)}}
@keyframes ol-pulse{50%{transform:scale(1.25);opacity:.5}}
@media(max-width:600px){.ol-stage{bottom:150px}.ol-ctl{bottom:84px}.ol-tag span{display:none}}
@media(max-height:560px){.ol-sub-bot{max-height:22vh}.ol-stage{bottom:112px}.ol-ctl{bottom:62px}}
@media(prefers-reduced-motion:reduce){.ol-root,.oa-orb.ol-alive,.ol-micbtn.ol-on,.ol-status i,.oa-orb.ol-dict::after,.oa-orb[data-ol=thinking]::after{animation:none!important}.ol-chunk{transition:none}.oa-orb.ol-alive::after{transition:none}}
