/* Stagyy app : entretien en direct et coach. */

/* ---------- bascule entretien en direct / question par question ---------- */
.lv-modes{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border-radius:999px;background:var(--surface);border:1.5px solid var(--line);justify-self:start;max-width:100%}
.lv-modes a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 20px;border-radius:999px;text-decoration:none;color:var(--muted);font-weight:700;font-size:15px;text-align:center}
.lv-modes a:hover{color:var(--text)}
.lv-modes a[aria-current="page"]{background:var(--cobalt);color:#fff}

/* ---------- préparation ---------- */
.lv-setup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:24px;align-items:start}
.lv-how{position:sticky;top:20px}
.lv-steps{display:grid;gap:14px;counter-reset:lv}
.lv-steps li{position:relative;padding-left:44px;counter-increment:lv;min-height:32px;display:flex;align-items:center}
.lv-steps li::before{content:counter(lv);position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;background:var(--sun);color:#0F1A3A;border:2px solid #0F1A3A;display:grid;place-items:center;font:800 15px/1 var(--display)}
.lv-hint{margin-left:30px;margin-top:-6px}
.lv-go{margin-top:6px;gap:16px}
.lv-sec{font-size:20px;padding-top:4px}
.lv-sec:not(:first-child){margin-top:12px;padding-top:20px;border-top:1.5px dashed var(--line)}
.lv-saved{display:flex;align-items:center;gap:6px}
.lv-saved svg{width:16px;height:16px;flex:none;color:var(--ok)}
.lv-resume{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.lv-form .btn.sun{min-height:54px;padding:0 30px;font-size:17px}
.btn svg{width:18px;height:18px}

/* ---------- salle d'entretien ---------- */
.lv-wrap{max-width:900px;margin:0 auto;width:100%}
.lv-room{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;height:clamp(480px,calc(100dvh - 150px),880px);background:var(--surface);border:2px solid var(--edge);border-radius:26px;box-shadow:8px 8px 0 var(--shadow);overflow:hidden}
.lv-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:14px 18px;border-bottom:1.5px solid var(--line)}
.lv-who-box{display:flex;align-items:center;gap:12px;min-width:0}
.lv-id{display:grid;min-width:0}
.lv-name{font:800 18px/1.15 var(--display);font-variation-settings:"wdth" 88;letter-spacing:-.01em}
.lv-role{font-size:14px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lv-av{flex:none;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font:800 17px/1 var(--display);border:2px solid #0F1A3A;color:#0F1A3A;background:var(--sun)}
.lv-av.av0{background:var(--sun)}
.lv-av.av1{background:#9FE3C9}
.lv-av.av2{background:#FFB3A7}
.lv-av.av3{background:#B9C2FF}
.lv-av.av4{background:#F3D1FF}
.lv-av.av5{background:#C9E58A}
.lv-bars{display:inline-flex;align-items:flex-end;gap:3px;height:22px;opacity:.28;transition:opacity .2s}
.lv-bars i{display:block;width:4px;height:6px;border-radius:2px;background:var(--cobalt)}
.lv-head.speaking .lv-bars{opacity:1}
.lv-head.speaking .lv-bars i{animation:lv-bar .8s ease-in-out infinite}
.lv-head.speaking .lv-bars i:nth-child(2){animation-delay:.15s}
.lv-head.speaking .lv-bars i:nth-child(3){animation-delay:.3s}
.lv-head.speaking .lv-bars i:nth-child(4){animation-delay:.45s}
@keyframes lv-bar{0%,100%{height:5px}50%{height:22px}}
.lv-head.speaking .lv-av{box-shadow:0 0 0 4px color-mix(in srgb,var(--cobalt) 35%,transparent)}
.lv-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.lv-clock{font:800 20px/1 var(--display);font-variation-settings:"wdth" 84;font-variant-numeric:tabular-nums;min-width:3.4ch;text-align:right;margin-right:4px}
.lv-tog{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 13px;border-radius:999px;border:1.5px solid var(--line);background:transparent;color:var(--muted);font-weight:700;font-size:14px;cursor:pointer}
.lv-tog svg{width:18px;height:18px}
.lv-tog:hover{border-color:var(--muted);color:var(--text)}
.lv-tog[aria-pressed="true"]{background:var(--soft);border-color:var(--cobalt);color:var(--cobalt)}
.lv-tog[disabled]{opacity:.45;pointer-events:none}
:root[data-theme="dark"] .lv-tog[aria-pressed="true"]{color:var(--link)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .lv-tog[aria-pressed="true"]{color:var(--link)}}
.lv-prog{display:flex;align-items:center;gap:12px;padding:10px 18px;border-bottom:1.5px solid var(--line);background:var(--paper)}
.lv-prog .meter-bar{flex:1}
.lv-prog .fine{white-space:nowrap;font-variant-numeric:tabular-nums}

/* conversation */
.lv-log{overflow-y:auto;overscroll-behavior:contain;padding:20px 18px;display:flex;flex-direction:column;gap:16px;background:var(--paper);scroll-behavior:smooth}
.lv-msg{display:flex;gap:10px;align-items:flex-end;max-width:min(640px,92%)}
.lv-msg .lv-av{width:34px;height:34px;font-size:13px}
.lv-msg.rec{align-self:flex-start}
.lv-msg.me{align-self:flex-end;flex-direction:row-reverse}
.lv-body{display:grid;gap:4px;min-width:0}
.lv-msg.me .lv-body{justify-items:end}
.lv-who{font-size:12.5px;font-weight:700;color:var(--muted);padding:0 6px}
.lv-bubble{padding:12px 16px;border-radius:20px;font-size:16.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.lv-msg.rec .lv-bubble{background:var(--surface);border:1.5px solid var(--edge);border-bottom-left-radius:6px;box-shadow:3px 3px 0 var(--line)}
.lv-msg.me .lv-bubble{background:var(--cobalt);color:#fff;border:1.5px solid var(--cobalt);border-bottom-right-radius:6px}
.lv-replay{justify-self:start;display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--muted);font-weight:600;font-size:13px;padding:2px 6px;cursor:pointer;border-radius:8px}
.lv-replay svg{width:15px;height:15px}
.lv-replay:hover{color:var(--link)}
.lv-dots{display:inline-flex;gap:5px;align-items:center;height:1.5em}
.lv-dots i{width:8px;height:8px;border-radius:50%;background:var(--muted);animation:lv-dot 1.1s ease-in-out infinite}
.lv-dots i:nth-child(2){animation-delay:.15s}
.lv-dots i:nth-child(3){animation-delay:.3s}
@keyframes lv-dot{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}
.lv-err,.lv-noteerr{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;background:var(--surface)}

/* zone de réponse */
.lv-composer{display:grid;gap:8px;padding:12px 14px 12px;border-top:1.5px solid var(--line);background:var(--surface)}
.lv-form-row{display:flex;align-items:flex-end;gap:10px}
.lv-ta{flex:1;min-height:48px;max-height:168px;resize:none;border-radius:24px;padding:12px 18px;line-height:1.4;overflow-y:auto}
.lv-mic,.lv-send{flex:none;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--edge);cursor:pointer;transition:transform .12s,box-shadow .12s,background .15s}
.lv-mic svg,.lv-send svg{width:22px;height:22px}
.lv-mic{background:var(--surface);color:var(--text);position:relative}
.lv-mic:hover{background:var(--soft)}
.lv-mic.on{background:var(--coral);border-color:var(--coral);color:#fff}
.lv-mic.on::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--coral);animation:lv-pulse 1.4s ease-out infinite}
@keyframes lv-pulse{from{opacity:.7;transform:scale(.9)}to{opacity:0;transform:scale(1.35)}}
.lv-send{background:var(--cobalt);color:#fff;box-shadow:3px 3px 0 var(--edge)}
.lv-send:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--edge)}
.lv-send[disabled],.lv-mic[disabled]{opacity:.45;pointer-events:none;box-shadow:none}
.lv-status{min-height:1.4em}
.lv-handsnote{background:var(--soft);padding:8px 12px;border-radius:12px}
.lv-endbox{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;padding:6px 4px}
.lv-endbox p{font-weight:600}
.lv-composer.listening .lv-ta{border-color:var(--coral)}

/* ---------- bilan ---------- */
.lv-wait{justify-items:center;text-align:center;padding:48px 20px}
.spin.big{width:44px;height:44px;border-width:4px;color:var(--cobalt)}
.lv-hero{gap:18px}
.lv-hero-top{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.lv-hero .ring{width:112px;height:112px}
.lv-hero.ok .ring-fg{stroke:var(--ok)}
.lv-hero.low .ring-fg{stroke:var(--coral)}
.lv-verdict{display:inline-block;justify-self:start;padding:6px 12px;border-radius:999px;font-weight:800;font-size:13.5px;background:var(--sun);color:#0F1A3A}
.lv-hero.ok .lv-verdict{background:var(--ok);color:#fff}
.lv-hero.low .lv-verdict{background:var(--coral);color:#fff}
.lv-summary{font-size:17.5px;line-height:1.6;max-width:68ch}
.lv-crits{display:grid;gap:14px}
.lv-crit-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.lv-seg{display:inline-flex;gap:5px;flex:none}
.lv-seg i{width:26px;height:10px;border-radius:999px;background:var(--line)}
.lv-seg i.on{background:var(--cobalt)}
.lv-seg i.on.s1,.lv-seg i.on.s2{background:var(--coral)}
.lv-seg i.on.s3{background:var(--sun);box-shadow:inset 0 0 0 1.5px #0F1A3A}
.lv-seg i.on.s5{background:var(--ok)}
.lv-prio{border-color:var(--coral)}
.lv-qs{display:grid;gap:10px}
.lv-q{border:1.5px solid var(--line);border-radius:16px;padding:0;background:var(--surface)}
.lv-q[open]{border-color:var(--cobalt)}
.lv-q summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer;font-weight:700;list-style:none}
.lv-q summary::-webkit-details-marker{display:none}
.lv-q-text{flex:1;min-width:0}
.lv-q .stack{padding:0 16px 16px}
.lv-q .stars{flex:none}
.lv-q .stars svg{width:18px;height:18px}
.lv-transcript summary{cursor:pointer;font:800 20px/1.2 var(--display);font-variation-settings:"wdth" 84}
.lv-transcript .stack{margin-top:14px}

/* ---------- mobile ---------- */
@media (max-width:900px){
  .lv-setup{grid-template-columns:minmax(0,1fr)}
  .lv-how{position:static}
  .lv-room{height:clamp(440px,calc(100dvh - 160px),880px);border-radius:22px;box-shadow:5px 5px 0 var(--shadow)}
}
@media (max-width:620px){
  .lv-head{padding:10px 12px}
  .lv-tog span{display:none}
  .lv-tog{width:40px;padding:0;justify-content:center}
  .lv-log{padding:14px 12px}
  .lv-msg{max-width:96%}
  .lv-bubble{font-size:16px}
  .lv-prog{padding:8px 12px}
  .lv-composer{padding:10px 10px calc(10px + env(safe-area-inset-bottom,0px))}
  .lv-bars{display:none}
  .lv-modes a{padding:0 14px;font-size:14px}
}
@media (prefers-reduced-motion:reduce){
  .lv-log{scroll-behavior:auto}
  .lv-head.speaking .lv-bars i{animation:none;height:14px}
  .lv-mic.on::after{animation:none;opacity:.5}
}

/* ---------- coach IA ---------- */
.co-fab{position:fixed;right:22px;bottom:22px;z-index:60;display:inline-flex;align-items:center;gap:10px;min-height:54px;padding:0 22px 0 18px;border-radius:999px;border:2px solid #0F1A3A;background:var(--sun);color:#0F1A3A;font:700 16px/1 var(--body);box-shadow:4px 4px 0 #0F1A3A;cursor:pointer;transition:transform .12s,box-shadow .12s}
.co-fab:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 #0F1A3A}
.co-fab:active{transform:translate(2px,2px);box-shadow:0 0 0 #0F1A3A}
.co-fab svg{width:22px;height:22px}
.co-panel:focus{outline:none}
.co-panel{position:fixed;right:22px;bottom:22px;z-index:70;width:min(410px,calc(100vw - 24px));height:min(640px,calc(100dvh - 44px));display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--surface);color:var(--text);border:2px solid var(--edge);border-radius:26px;box-shadow:8px 8px 0 var(--shadow);overflow:hidden}
.co-head{display:flex;align-items:center;gap:12px;padding:14px 14px 14px 16px;border-bottom:1.5px solid var(--line)}
.co-mark{flex:none;width:42px;height:42px;border-radius:14px;background:var(--sun);color:#0F1A3A;border:2px solid #0F1A3A;display:grid;place-items:center;transform:rotate(-5deg)}
.co-mark svg{width:22px;height:22px}
.co-titles{flex:1;min-width:0;display:grid;line-height:1.25}
.co-titles b{font:800 18px/1.15 var(--display);font-variation-settings:"wdth" 88;letter-spacing:-.01em}
.co-titles span{font-size:13px;color:var(--muted)}
.co-log{overflow-y:auto;overscroll-behavior:contain;padding:16px 14px;display:flex;flex-direction:column;gap:12px;background:var(--paper)}
.co-msg{display:flex;max-width:92%}
.co-msg.bot{align-self:flex-start}
.co-msg.me{align-self:flex-end}
.co-bubble{padding:11px 15px;border-radius:18px;font-size:15.5px;line-height:1.5;overflow-wrap:anywhere;display:grid;gap:8px}
.co-msg.bot .co-bubble{background:var(--surface);border:1.5px solid var(--edge);border-bottom-left-radius:5px;box-shadow:3px 3px 0 var(--line)}
.co-msg.me .co-bubble{background:var(--cobalt);color:#fff;border-bottom-right-radius:5px;white-space:pre-wrap}
.co-bubble p{margin:0}
.co-list{display:grid;gap:5px;padding-left:20px;margin:0}
ul.co-list{list-style:disc}
ol.co-list{list-style:decimal}
.co-list li::marker{color:var(--cobalt)}
.co-acts{display:flex;flex-wrap:wrap;gap:8px;padding-top:2px}
.co-acts .btn{min-height:38px;font-size:14px;padding:0 14px}
.co-acts .btn svg{width:15px;height:15px}
.co-suggest{display:flex;flex-wrap:wrap;gap:8px;padding-top:2px}
.co-chip{border:1.5px solid var(--line);background:var(--surface);color:var(--text);border-radius:999px;padding:9px 14px;font:600 14px/1.25 var(--body);text-align:left;cursor:pointer}
.co-chip:hover{border-color:var(--cobalt);color:var(--link)}
.co-err{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between;background:var(--surface)}
.co-code{flex-basis:100%;order:3;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.co-foot{display:grid;gap:8px;padding:12px 14px 12px;border-top:1.5px solid var(--line);background:var(--surface)}
.co-form{display:flex;align-items:flex-end;gap:8px}
.co-ta{flex:1;min-height:46px;max-height:120px;resize:none;border-radius:23px;padding:11px 16px;line-height:1.4}
.co-form .lv-send{width:46px;height:46px}
.co-profile{font-size:13.5px;gap:8px}
.co-profile small{display:block;color:var(--muted);font-size:12.5px;line-height:1.35;margin-top:2px}
.co-profile input{width:18px;height:18px}
.co-new{font-size:13.5px}
.co-disc{font-size:12.5px;line-height:1.35}
.nav .nav-coach{display:flex;align-items:center;gap:12px;min-height:46px;padding:0 14px;border-radius:14px;border:2px dashed var(--line);background:transparent;color:var(--text);font:600 16px/1 var(--body);cursor:pointer;width:100%;text-align:left}
.nav .nav-coach svg{width:20px;height:20px;flex:none;color:var(--cobalt)}
.nav .nav-coach:hover{border-color:var(--cobalt);background:var(--soft)}
@media (max-width:900px){
  .co-fab{right:14px;bottom:calc(78px + env(safe-area-inset-bottom,0px));min-height:50px;padding:0 18px 0 14px}
  .co-panel{inset:0;width:auto;height:auto;max-height:none;border:0;border-radius:0;box-shadow:none;z-index:120;padding-top:env(safe-area-inset-top,0px)}
  .co-foot{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
}
@media print{.co-fab,.co-panel{display:none!important}}

/* ---------- notes vocales et voix réaliste ---------- */
.lv-bubble.lv-note{white-space:normal;display:grid;gap:8px;min-width:min(280px,72vw)}
.lv-note-row{display:flex;align-items:center;gap:12px}
.lv-play{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:0;background:#fff;color:var(--cobalt);cursor:pointer;transition:transform .12s}
.lv-play:hover{transform:scale(1.06)}
.lv-play svg{width:20px;height:20px}
.lv-play.off{background:rgba(255,255,255,.22);color:#fff;cursor:default}
.lv-play.off:hover{transform:none}
.lv-wave{flex:1;display:flex;align-items:center;gap:2px;height:32px;min-width:0}
.lv-wave i{flex:1;min-width:2px;max-width:5px;border-radius:2px;background:rgba(255,255,255,.78)}
.lv-dur{flex:none;font-variant-numeric:tabular-nums;font-weight:700;font-size:14px}
.lv-trans{font-size:14.5px;line-height:1.45}
.lv-trans summary{cursor:pointer;font-weight:600;width:max-content}
.lv-trans summary:hover{text-decoration:underline}
.lv-trans p{margin-top:6px;white-space:pre-wrap;overflow-wrap:anywhere}
.lv-mic.note{width:56px;height:56px;background:var(--cobalt);border-color:var(--edge);color:#fff;box-shadow:3px 3px 0 var(--edge)}
.lv-mic.note:hover{background:var(--cobalt);transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--edge)}
.lv-mic.note svg{width:26px;height:26px}
.lv-recbar{display:flex;align-items:center;gap:12px;padding:10px 12px;border:2px solid var(--coral);border-radius:18px;background:color-mix(in srgb,var(--coral) 8%,var(--surface))}
.lv-rec-dot{flex:none;width:12px;height:12px;border-radius:50%;background:var(--coral);animation:lv-blink 1.2s ease-in-out infinite}
@keyframes lv-blink{50%{opacity:.25}}
.lv-rec-time{flex:none;font-variant-numeric:tabular-nums;font-weight:700;min-width:3.2ch}
.lv-meter{flex:1;display:flex;align-items:center;gap:3px;height:38px;min-width:48px}
.lv-meter i{flex:1;min-height:4px;height:10%;border-radius:3px;background:var(--coral);transition:height .09s linear}
.lv-voicecard .lv-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.lv-stat{display:grid;gap:2px;padding:12px 14px;border:1.5px solid var(--line);border-radius:14px;background:var(--soft)}
.lv-stat b{font-size:28px;line-height:1.1;font-variant-numeric:tabular-nums}
.lv-stat span{font-size:13px;color:var(--muted)}
.lv-stat small{font-size:13px;font-weight:600}
@media (max-width:560px){
  .lv-recbar{flex-wrap:wrap;gap:8px 10px}
  .lv-meter{order:3;flex-basis:100%}
  .lv-recbar .btn{flex:1}
}
@media (prefers-reduced-motion:reduce){
  .lv-rec-dot{animation:none}
  .lv-meter i{transition:none}
}
