@import url('https://fonts.googleapis.com/css2?family=Barlow+Semi+Condensed:wght@600;700;800&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap');

:root{
  /* Palette extraite du logo Sentis SST : vert du wordmark + dégradé
     de la signature "Ressentir. Prévenir. Protéger." (foncé > clair) + gris du "SST" */
  --green: #0F924E;
  --green-dark: #0B7440;
  --green-light: #E7F5EE;
  --grad-dark: #0E3E1C;
  --grad-mid: #2F8B52;
  --grad-light: #AECB86;
  --gray: #5C5C5C;
  --gray-dark: #3A3A3A;
  --gradient-brand: linear-gradient(90deg, var(--grad-dark) 0%, var(--grad-mid) 52%, var(--grad-light) 100%);
  --gradient-deep: linear-gradient(135deg, var(--grad-dark) 0%, #1C6B3B 58%, var(--grad-mid) 100%);
  --ink: #23281F;
  --bg: #FFFFFF;
  --bg-alt: #F6F9F7;
  --red: #C72325;
  --red-bg: #FDF0EF;
  --orange: #E07000;
  --orange-bg: #FFF8F0;
  --text: #23281F;
  --text-muted: #5B6A60;
  --border: #E3E9E4;
  --white: #FFFFFF;
  --gradient-btn: linear-gradient(135deg, #0E3E1C 0%, #14A85B 100%);
  --radius: 8px;
  --shadow: 0 1px 2px rgba(14,62,28,.06), 0 8px 24px rgba(14,62,28,.07);
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter', sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}

h1,h2,h3,h4{
  font-family:'Barlow Semi Condensed', sans-serif;
  font-weight:800;
  letter-spacing:.01em;
  line-height:1.05;
  color:var(--ink);
}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--green);
  display:inline-flex; align-items:center; gap:8px;
}
.eyebrow::before{content:''; width:16px; height:2px; background:var(--gradient-brand); display:inline-block; border-radius:2px;}
.mono{font-family:'IBM Plex Mono', monospace;}

.container{max-width:1180px; margin:0 auto; padding:0 32px;}
@media(max-width:640px){.container{padding:0 20px;}}

section{padding:88px 0;}
@media(max-width:768px){section{padding:56px 0;}}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'Inter'; font-weight:600; font-size:.95rem;
  padding:14px 26px; border-radius:var(--radius);
  border:1px solid transparent; cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background-position .35s ease, border-color .18s ease, color .18s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn:active{transform:translateY(0);}
.btn-primary{
  background:var(--gradient-btn); background-size:180% 180%; background-position:0% 0%;
  color:var(--white); box-shadow:0 2px 8px rgba(14,62,28,.22), 0 10px 24px -8px rgba(14,62,28,.4);
}
.btn-primary:hover{background-position:100% 100%; box-shadow:0 4px 14px rgba(14,62,28,.28), 0 16px 32px -10px rgba(14,62,28,.5);}
.btn-outline{background:transparent; color:var(--ink); border-color:var(--border);}
.btn-outline:hover{border-color:var(--green); color:var(--green-dark); background:var(--green-light);}
.btn-white{background:var(--white); color:var(--green-dark); box-shadow:0 2px 10px rgba(0,0,0,.08);}
.btn-white:hover{background:var(--bg-alt);}

/* ---------- HEADER / NAV ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.88); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}
header::after{content:''; display:block; height:2px; background:var(--gradient-brand); opacity:.9;}
.nav{display:flex; align-items:center; justify-content:space-between; padding:18px 0;}
.logo{display:flex; align-items:center; gap:10px; font-family:'Barlow Semi Condensed'; font-weight:800; font-size:1.25rem; color:var(--ink);}
.nav-links{display:flex; align-items:center; gap:34px;}
.nav-links a{font-size:.92rem; font-weight:500; color:var(--text-muted); transition:color .15s; position:relative; padding-bottom:4px;}
.nav-links a::after{content:''; position:absolute; left:0; right:100%; bottom:0; height:2px; background:var(--gradient-brand); transition:right .22s ease; border-radius:2px;}
.nav-links a:hover, .nav-links a.active{color:var(--green-dark);}
.nav-links a:hover::after, .nav-links a.active::after{right:0;}
.nav-cta{display:flex; align-items:center; gap:16px;}
.nav-toggle{display:none; background:none; border:none; cursor:pointer;}
@media(max-width:880px){
  .nav-links{position:absolute; top:100%; left:0; right:0; background:var(--white); flex-direction:column; align-items:flex-start; padding:20px 24px; gap:16px; border-bottom:1px solid var(--border); display:none;}
  .nav-links.open{display:flex;}
  .nav-toggle{display:block;}
  .nav-cta .btn-outline{display:none;}
}

/* ---------- HERO ---------- */
.hero{padding:76px 0 60px; overflow:hidden; position:relative;}
.hero::before{
  content:''; position:absolute; top:-180px; right:-160px; width:640px; height:640px; z-index:-1;
  background:radial-gradient(circle, rgba(174,203,134,.30) 0%, rgba(47,139,82,.10) 45%, transparent 72%);
  filter:blur(10px);
}
.hero::after{
  content:''; position:absolute; bottom:-220px; left:-200px; width:520px; height:520px; z-index:-1;
  background:radial-gradient(circle, rgba(15,146,78,.08) 0%, transparent 70%);
}
.hero-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:center;}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr; gap:44px;}}
.hero h1{font-size:clamp(2.3rem, 4.4vw, 3.5rem); margin-bottom:20px;}
.hero h1 em, .grad-text{
  font-style:normal; background:var(--gradient-brand);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero p.lead{font-size:1.12rem; color:var(--text-muted); max-width:52ch; margin-bottom:32px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:40px;}
.hero-tags{display:flex; gap:10px; flex-wrap:wrap;}
.tag{
  font-family:'IBM Plex Mono'; font-size:.72rem; font-weight:600; letter-spacing:.04em;
  padding:6px 12px; border:1px solid var(--border); border-radius:999px; color:var(--text-muted); background:var(--white);
  transition:border-color .18s ease, color .18s ease, transform .18s ease;
}
.tag:hover{border-color:var(--green); color:var(--green-dark); transform:translateY(-1px);}

/* Signature gauge element */
.gauge-card{
  background:var(--gradient-deep); border-radius:14px; padding:36px 30px 30px;
  box-shadow:var(--shadow); position:relative; overflow:hidden;
}
.gauge-card::before{
  content:''; position:absolute; inset:0;
  background:radial-gradient(circle at 15% 0%, rgba(174,203,134,.28), transparent 55%);
}
.gauge-label{position:relative; color:#B9C9C0; font-family:'IBM Plex Mono'; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:18px;}
.gauge-wrap{position:relative; display:flex; justify-content:center;}
.gauge-score{
  position:absolute; top:58%; left:50%; transform:translate(-50%,-50%);
  text-align:center;
}
.gauge-score .num{font-family:'Barlow Semi Condensed'; font-weight:800; font-size:2.8rem; color:var(--white); line-height:1;}
.gauge-score .out{font-family:'IBM Plex Mono'; font-size:.72rem; color:#8FA79A;}
.gauge-legend{position:relative; display:flex; justify-content:space-between; margin-top:14px; padding-top:14px; border-top:1px solid rgba(255,255,255,.1);}
.gauge-legend div{text-align:center; flex:1;}
.gauge-legend .dot{width:8px; height:8px; border-radius:50%; margin:0 auto 6px;}
.gauge-legend span{display:block; font-family:'IBM Plex Mono'; font-size:.68rem; color:#B9C9C0;}
.gauge-legend strong{display:block; font-family:'Barlow Semi Condensed'; font-weight:700; color:var(--white); font-size:1rem;}

/* ---------- STATS BAR ---------- */
.stats{background:var(--gradient-deep); padding:0;}
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr); }
.stat{padding:34px 20px; text-align:center; border-left:1px solid rgba(255,255,255,.08);}
.stat:first-child{border-left:none;}
.stat .num{font-family:'Barlow Semi Condensed'; font-weight:800; font-size:2.1rem; color:var(--white);}
.stat .lbl{font-family:'IBM Plex Mono'; font-size:.72rem; color:#9FB5AA; margin-top:4px;}
@media(max-width:768px){.stats-grid{grid-template-columns:repeat(2,1fr);} .stat:nth-child(3){border-left:none;}}

/* ---------- SECTORS / CARDS ---------- */
.section-head{max-width:640px; margin-bottom:48px;}
.section-head h2{font-size:clamp(1.7rem,3vw,2.3rem); margin-top:10px;}
.section-head p{color:var(--text-muted); margin-top:14px; font-size:1.03rem;}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
@media(max-width:900px){.grid-3{grid-template-columns:1fr 1fr;} }
@media(max-width:640px){.grid-3, .grid-2{grid-template-columns:1fr;}}

.card{background:var(--white); border:1px solid var(--border); border-radius:14px; padding:28px; transition:box-shadow .25s ease, transform .25s ease, border-color .25s ease;}
.card:hover{box-shadow:var(--shadow); transform:translateY(-3px); border-color:transparent;}
.card .icon{
  width:44px; height:44px; border-radius:11px; background:var(--gradient-brand);
  display:flex; align-items:center; justify-content:center; margin-bottom:18px;
  color:#fff; font-weight:700; font-family:'IBM Plex Mono'; box-shadow:0 6px 16px -6px rgba(14,62,28,.45);
}
.card h3{font-size:1.15rem; margin-bottom:10px; color:var(--ink);}
.card p{color:var(--text-muted); font-size:.94rem;}

/* ---------- FORMULAS / PRICING ---------- */
.formula{background:var(--white); border:1px solid var(--border); border-radius:16px; padding:34px; display:flex; flex-direction:column; height:100%; transition:transform .25s ease, box-shadow .25s ease;}
.formula:hover{transform:translateY(-3px);}
.formula.featured{border-color:var(--green); box-shadow:var(--shadow); position:relative;}
.formula.featured::after{content:''; position:absolute; top:0; left:0; right:0; height:5px; background:var(--gradient-brand); border-radius:16px 16px 0 0; z-index:1;}
.formula.featured::before{
  content:'RECOMMANDÉ'; position:absolute; top:-13px; left:28px; z-index:2;
  background:var(--green); color:#fff; font-family:'IBM Plex Mono'; font-size:.65rem; letter-spacing:.08em;
  padding:5px 10px; border-radius:4px; box-shadow:0 2px 6px rgba(14,62,28,.3);
}
.formula .eyebrow{margin-bottom:10px;}
.formula h3{font-size:1.35rem; margin-bottom:6px;}
.formula .price{font-family:'Barlow Semi Condensed'; font-weight:800; font-size:2.1rem; color:var(--ink); margin:14px 0 4px;}
.formula .price span{font-family:'IBM Plex Mono'; font-size:.8rem; color:var(--text-muted); font-weight:500;}
.formula .desc{color:var(--text-muted); font-size:.9rem; margin-bottom:20px;}
.formula ul{margin:0 0 26px; display:flex; flex-direction:column; gap:11px;}
.formula li{font-size:.9rem; padding-left:22px; position:relative; color:var(--text);}
.formula li::before{content:'✓'; position:absolute; left:0; color:var(--green); font-weight:700;}
.formula .btn{margin-top:auto; justify-content:center;}

/* ---------- WHY / VALUES ---------- */
.why{background:var(--bg-alt);}
.value-row{display:flex; gap:20px; padding:22px 0; border-top:1px solid var(--border);}
.value-row:last-child{border-bottom:1px solid var(--border);}
.value-row .n{font-family:'IBM Plex Mono'; color:var(--green); font-weight:600; font-size:.85rem; padding-top:3px;}
.value-row h4{font-size:1.1rem; margin-bottom:4px;}
.value-row p{color:var(--text-muted); font-size:.92rem;}

/* ---------- TESTIMONIAL / QUOTE ---------- */
.quote-block{background:var(--gradient-deep); border-radius:14px; padding:48px; color:var(--white);}
.quote-block p{font-family:'Barlow Semi Condensed'; font-weight:600; font-size:1.4rem; line-height:1.4; max-width:64ch;}
.quote-block .who{margin-top:22px; font-family:'IBM Plex Mono'; font-size:.78rem; color:#9FB5AA;}

/* ---------- CTA STRIP ---------- */
.cta-strip{background:var(--gradient-deep); color:var(--white); text-align:center;}
.cta-strip h2{color:var(--white); font-size:clamp(1.6rem,3vw,2.2rem); margin-bottom:14px;}
.cta-strip p{color:rgba(255,255,255,.85); margin-bottom:30px; max-width:56ch; margin-left:auto; margin-right:auto;}

/* ---------- FORM ---------- */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media(max-width:640px){.form-grid{grid-template-columns:1fr;}}
.field{display:flex; flex-direction:column; gap:6px;}
.field.full{grid-column:1/-1;}
.field label{font-size:.82rem; font-weight:600; color:var(--ink);}
.field input, .field select, .field textarea{
  border:1px solid var(--border); border-radius:var(--radius); padding:11px 13px;
  font-family:'Inter'; font-size:.92rem; background:var(--white); color:var(--text);
}
.field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--green); outline-offset:1px;}

/* ---------- FOOTER ---------- */
footer{background:var(--gradient-deep); color:#CBD8D1; padding:60px 0 28px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.08);}
@media(max-width:768px){.footer-grid{grid-template-columns:1fr 1fr; gap:28px;}}
.footer-grid h5{font-family:'IBM Plex Mono'; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:#8FA79A; margin-bottom:16px;}
.footer-grid a, .footer-grid p{font-size:.88rem; color:#CBD8D1; display:block; margin-bottom:10px;}
.footer-grid a:hover{color:var(--white);}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:24px; font-size:.8rem; color:#7E958A; flex-wrap:wrap; gap:10px;}
.footer-logo{display:flex; align-items:center; gap:10px; font-family:'Barlow Semi Condensed'; font-weight:800; font-size:1.2rem; color:var(--white); margin-bottom:10px;}
.footer-tag{font-family:'IBM Plex Mono'; font-size:.75rem; color:#8FA79A;}

/* ---------- PAGE HEADER (sub-pages) ---------- */
.page-hero{background:var(--bg-alt); padding:60px 0 50px; border-bottom:1px solid var(--border);}
.page-hero .eyebrow{margin-bottom:12px;}
.page-hero h1{font-size:clamp(2rem,4vw,2.8rem);}
.page-hero p{color:var(--text-muted); max-width:60ch; margin-top:14px; font-size:1.05rem;}

/* ---------- FAQ ---------- */
.faq-item{border-top:1px solid var(--border); padding:22px 0;}
.faq-item:last-child{border-bottom:1px solid var(--border);}
.faq-q{display:flex; justify-content:space-between; align-items:center; cursor:pointer; gap:20px;}
.faq-q h4{font-size:1.02rem; color:var(--ink);}
.faq-q .plus{font-family:'IBM Plex Mono'; color:var(--green); font-size:1.2rem; transition:transform .2s; flex-shrink:0;}
.faq-item.open .plus{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .25s ease;}
.faq-item.open .faq-a{max-height:240px;}
.faq-a p{color:var(--text-muted); font-size:.92rem; padding-top:12px; max-width:70ch;}

/* ---------- CHATBOT DEMO WIDGET ---------- */
.chat-demo-card{
  background:var(--white); border:1px solid var(--border); border-radius:14px; overflow:hidden; box-shadow:var(--shadow);
  max-width:420px; margin:0 auto; display:flex; flex-direction:column; height:560px; position:relative;
}
.chat-demo-head{background:var(--gradient-deep); color:#fff; padding:16px 18px; display:flex; align-items:center; gap:10px;}
.chat-demo-head .dot-live{width:8px; height:8px; border-radius:50%; background:#6FE3A6;}
.chat-demo-head strong{font-family:'Barlow Semi Condensed'; font-size:1rem;}
.chat-demo-head span{display:block; font-size:.7rem; color:#B9E3CD; font-family:'IBM Plex Mono';}
.chat-demo-body{
  flex:1; overflow-y:auto; padding:18px; display:flex; flex-direction:column; gap:12px;
  background:var(--bg-alt);
  user-select:none; -webkit-user-select:none; -moz-user-select:none;
}
.chat-msg{max-width:82%; padding:11px 14px; border-radius:12px; font-size:.87rem; line-height:1.45;}
.chat-msg.bot{background:var(--white); border:1px solid var(--border); align-self:flex-start; border-bottom-left-radius:3px;}
.chat-msg.user{background:var(--green); color:#fff; align-self:flex-end; border-bottom-right-radius:3px;}
.chat-options{display:flex; flex-wrap:wrap; gap:8px; align-self:flex-start; max-width:92%;}
.chat-opt-btn{
  font-family:'Inter'; font-size:.82rem; font-weight:600; background:var(--white); color:var(--green-dark);
  border:1px solid var(--green); padding:8px 13px; border-radius:999px; cursor:pointer; transition:.15s;
}
.chat-opt-btn:hover{background:var(--gradient-brand); border-color:transparent; color:#fff;}
.chat-demo-foot{padding:12px 16px; border-top:1px solid var(--border); background:var(--white); font-family:'IBM Plex Mono'; font-size:.68rem; color:var(--text-muted); text-align:center;}
.chat-lock{
  position:absolute; inset:0; background:rgba(15,36,24,.94); color:#fff;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:36px;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.chat-lock.show{opacity:1; pointer-events:all;}
.chat-lock .lock-icn{width:46px; height:46px; border-radius:50%; background:var(--gradient-brand); display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-size:1.3rem; box-shadow:0 8px 20px -6px rgba(174,203,134,.5);}
.chat-lock h4{color:#fff; font-size:1.2rem; margin-bottom:10px;}
.chat-lock p{color:#B9C9C0; font-size:.86rem; margin-bottom:22px; max-width:34ch;}

::selection{background:var(--green); color:#fff;}

/* ---------- SCROLL REVEAL ---------- */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1);}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-delay-1.in{transition-delay:.08s;}
.reveal-delay-2.in{transition-delay:.16s;}
.reveal-delay-3.in{transition-delay:.24s;}
@media (prefers-reduced-motion: reduce){.reveal{opacity:1; transform:none; transition:none;}}

/* ---------- LOGO IMAGE ---------- */
.logo-mark{width:38px; height:38px; flex-shrink:0; object-fit:contain;}
.logo-full{height:42px; width:auto; display:block;}
.footer-logo .logo-mark{width:34px; height:34px; filter:brightness(0) invert(1);}

/* ---------- SECTORS MARQUEE (dynamic ticker) ---------- */
.marquee{
  border-top:1px solid var(--border); border-bottom:1px solid var(--border);
  background:var(--bg-alt); overflow:hidden; padding:16px 0;
}
.marquee-track{display:flex; width:max-content; gap:48px; animation:marquee 32s linear infinite;}
.marquee:hover .marquee-track{animation-play-state:paused;}
.marquee span{
  font-family:'IBM Plex Mono'; font-size:.82rem; font-weight:600; letter-spacing:.04em;
  color:var(--text-muted); white-space:nowrap; display:flex; align-items:center; gap:10px;
}
.marquee span::before{content:''; width:6px; height:6px; border-radius:50%; background:var(--gradient-brand); display:inline-block;}
@keyframes marquee{from{transform:translateX(0);} to{transform:translateX(-50%);}}
@media (prefers-reduced-motion: reduce){.marquee-track{animation:none;}}

/* ---------- PHOTO PLACEHOLDER ---------- */
.photo-slot{
  border:1.5px dashed var(--border); border-radius:14px; background:var(--bg-alt);
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  color:var(--text-muted); gap:8px; padding:24px; min-height:220px; transition:border-color .2s ease;
}
.photo-slot:hover{border-color:var(--green);}
.photo-slot .cam{width:40px; height:40px; border-radius:50%; background:var(--white); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; font-size:1.1rem;}
.photo-slot strong{font-family:'Barlow Semi Condensed'; font-size:.95rem; color:var(--ink); font-weight:700;}
.photo-slot span{font-family:'IBM Plex Mono'; font-size:.68rem; letter-spacing:.03em;}
.photo-slot.wide{min-height:280px;}
.photo-slot.tall{min-height:340px;}
.photo-img{width:100%; height:220px; object-fit:cover; border-radius:14px; display:block; box-shadow:var(--shadow);}
.photo-img.tall{height:380px;}
.photo-img.wide{height:280px;}

/* ---------- DIAGNOSTIC QUIZ ---------- */
.diag-card{
  max-width:640px; margin:0 auto; background:var(--white); border:1px solid var(--border);
  border-radius:18px; padding:44px; box-shadow:var(--shadow); min-height:360px;
}
@media(max-width:640px){.diag-card{padding:28px 22px;}}
.diag-progress{height:6px; background:var(--bg-alt); border-radius:999px; overflow:hidden; margin-bottom:22px;}
.diag-progress-bar{height:100%; background:var(--gradient-brand); border-radius:999px; transition:width .35s ease;}
.diag-step{font-family:'IBM Plex Mono'; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--green); margin-bottom:14px;}
.diag-q{font-size:1.4rem; line-height:1.25; margin-bottom:8px;}
.diag-ref{font-family:'IBM Plex Mono'; font-size:.72rem; color:var(--text-muted); margin-bottom:26px;}
.diag-options{display:flex; flex-direction:column; gap:12px;}
.diag-opt{
  text-align:left; padding:16px 18px; border:1.5px solid var(--border); border-radius:10px;
  background:var(--white); font-family:'Inter'; font-size:.98rem; font-weight:500; color:var(--ink);
  cursor:pointer; transition:border-color .15s ease, background .15s ease, transform .15s ease;
}
.diag-opt:hover{border-color:var(--green); background:var(--green-light); transform:translateX(3px);}

.diag-results{text-align:center;}
.diag-gauge{position:relative; display:flex; justify-content:center; margin-bottom:6px;}
.diag-score{position:absolute; top:58%; left:50%; transform:translate(-50%,-50%); text-align:center;}
.diag-score span{font-family:'Barlow Semi Condensed'; font-weight:800; font-size:2.6rem; color:var(--ink); line-height:1;}
.diag-score small{display:block; font-family:'IBM Plex Mono'; font-size:.7rem; color:var(--text-muted);}
.diag-zone{display:inline-block; font-family:'IBM Plex Mono'; font-size:.78rem; font-weight:600; letter-spacing:.03em; padding:6px 14px; border-radius:999px; margin-top:8px;}
.diag-zone-rouge{background:var(--red-bg); color:var(--red);}
.diag-zone-orange{background:var(--orange-bg); color:var(--orange);}
.diag-zone-vert{background:var(--green-light); color:var(--green-dark);}
.diag-weak{display:flex; flex-direction:column; gap:10px; margin:18px 0; text-align:left;}
.diag-weak-item{background:var(--bg-alt); border:1px solid var(--border); border-radius:10px; padding:14px 16px;}
.diag-weak-item strong{display:block; font-size:.9rem; color:var(--ink); margin-bottom:3px;}
.diag-weak-item span{font-size:.86rem; color:var(--text-muted);}
.diag-note{font-size:.84rem; color:var(--text-muted); max-width:48ch; margin:0 auto;}

/* ---------- FLOATING ASSISTANT WIDGET ---------- */
.assistant-bubble-wrap{position:fixed; bottom:24px; right:24px; z-index:80; display:flex; align-items:center; gap:10px;}
.assistant-tip{
  background:var(--ink); color:#fff; font-family:'Inter'; font-size:.82rem; font-weight:500;
  padding:9px 14px; border-radius:10px; white-space:nowrap; box-shadow:0 6px 18px rgba(0,0,0,.18);
  opacity:0; transform:translateX(8px); pointer-events:none; transition:opacity .25s ease, transform .25s ease;
}
.assistant-tip.show{opacity:1; transform:translateX(0);}
.assistant-tip::after{content:''; position:absolute; right:-5px; top:50%; transform:translateY(-50%) rotate(45deg); width:9px; height:9px; background:var(--ink);}
.assistant-bubble{
  width:58px; height:58px; border-radius:50%; border:none; cursor:pointer; flex-shrink:0;
  background:var(--gradient-btn); box-shadow:0 8px 24px -6px rgba(14,62,28,.5);
  display:flex; align-items:center; justify-content:center; transition:transform .2s ease;
}
.assistant-bubble:hover{transform:scale(1.06);}
.assistant-bubble-icon{font-size:1.5rem;}
.assistant-panel{
  position:fixed; bottom:96px; right:24px; z-index:80;
  width:360px; max-width:calc(100vw - 32px); height:480px; max-height:70vh;
  background:var(--white); border-radius:16px; box-shadow:0 20px 50px -12px rgba(14,62,28,.35);
  border:1px solid var(--border); display:flex; flex-direction:column; overflow:hidden;
  opacity:0; transform:translateY(16px) scale(.98); pointer-events:none;
  transition:opacity .22s ease, transform .22s ease;
}
.assistant-panel.open{opacity:1; transform:translateY(0) scale(1); pointer-events:all;}
.assistant-head{background:var(--gradient-deep); color:#fff; padding:16px 18px; display:flex; align-items:center; gap:10px;}
.assistant-head strong{font-family:'Barlow Semi Condensed'; font-size:1rem; display:block;}
.assistant-head span{font-size:.7rem; color:#B9E3CD; font-family:'IBM Plex Mono';}
.assistant-head div{flex:1;}
.assistant-close{background:none; border:none; color:#fff; font-size:.9rem; cursor:pointer; opacity:.75;}
.assistant-close:hover{opacity:1;}
.assistant-body{flex:1; overflow-y:auto; padding:18px; display:flex; flex-direction:column; gap:12px; background:var(--bg-alt); user-select:none; -webkit-user-select:none; -moz-user-select:none;}
.assistant-body .chat-options{display:flex; flex-direction:column; align-items:stretch;}
.assistant-body .chat-opt-btn{text-align:left; display:block;}
.assistant-foot{padding:10px 16px; border-top:1px solid var(--border); background:var(--white); font-family:'IBM Plex Mono'; font-size:.65rem; color:var(--text-muted); text-align:center;}
.assistant-lock{
  position:absolute; inset:0; background:rgba(15,36,24,.96); color:#fff; border-radius:16px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:30px;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.assistant-lock.show{opacity:1; pointer-events:all;}
.assistant-lock .lock-icn{width:44px; height:44px; border-radius:50%; background:var(--gradient-brand); display:flex; align-items:center; justify-content:center; margin-bottom:16px; font-size:1.2rem;}
.assistant-lock h4{color:#fff; font-size:1.05rem; margin-bottom:8px;}
.assistant-lock p{color:#B9C9C0; font-size:.82rem; margin-bottom:18px; max-width:30ch;}
@media(max-width:480px){
  .assistant-panel{right:16px; bottom:88px;}
  .assistant-bubble-wrap{right:16px; bottom:16px;}
  .assistant-tip{display:none;}
}
