  :root{
  /* verdicts produit (Programme) : convient / à surveiller / à éviter */
  --ok:#4F6B3E;--warn:#96621F;--no:#96422C;

    --caramel:#C9986C; --mocha:#7A4F35; --espresso:#211309;
    --gold:#B6823F; --gold-soft:#D9B27E; --gold-deep:#8A5F2E; --gold-lum:#EBC98A;
    --hair:rgba(108,72,42,.13); --ink-faint:rgba(44,30,18,.45);
    /* accent terracotta « afro premium chaleureux » — usage PARCIMONIEUX (filets, petits accents, état actif) */
    --terra:#C0573B; --terra-soft:#D98A6E; --terra-deep:#9C422B;
    /* couleurs de verdict — UNE source de vérité (note, verdict, ingrédients, couverture) */
    --v-ok:#436b39; --v-warn:#9a6a1f; --v-bad:#a23f2f;
    --v-ok-s:#5a8a4f; --v-warn-s:#c98a2e; --v-bad-s:#b15a4a;
    --cream:#F6E8D5; --sand:#ECDDCA; --sand-2:#E2D0B9;
    --cream-bright:#FFF7EA;                 /* crème vive — texte sur bouton moment actif (accueil v7) */
    --cov-amber-rgb:180,120,42;             /* ambre du voile chaud circadien (accueil v7), opacité pilotée par --cov-warm */
    --card:#FBF5EC; --ink:#2C1E12; --ink-soft:#6B5742; --line:rgba(108,72,42,.12);
    --shadow:0 18px 40px -24px rgba(58,35,18,.42);
    --shadow-sm:0 10px 24px -18px rgba(58,35,18,.4);
    --sage:#6E8B5B; --sage-deep:#4F6B42; --sage-soft:#8AA877;
    /* briques visuelles unifiées (valeurs dominantes existantes) — une seule source */
    --radius-card:20px;   /* rayon dominant des cartes (était 20/22 mélangés) */
    /* échelle typographique (V2 13/07) : 10 crans UI — ~40 tailles historiques consolidées ; ≥24px = display art-dirigé, libre */
    --fs-10:11px; --fs-11:11px; --fs-12:12px; --fs-13:13px; --fs-14:14px;
    --fs-15:15px; --fs-16:16px; --fs-18:18px; --fs-20:20px; --fs-22:22px;
    --track-kicker:.16em;   /* étiquettes majuscules standard (était .12/.14/.16 mélangés) */
    --track-kicker-lg:.22em;/* étiquettes majuscules display (était .2/.22/.24 mélangés) */
    --radius-field:16px;  /* conteneurs internes : listes, segments, champs */
    --shadow-card:var(--shadow);     /* ombre principale des cartes */
    --shadow-soft:var(--shadow-sm);  /* ombre secondaire (cartes plates) */
  }
  *{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
  html,body{height:100%;}
  body{font-family:'Instrument Sans',-apple-system,sans-serif;font-optical-sizing:auto;
    background:#0e0a07;
    display:flex;align-items:stretch;justify-content:center;min-height:100vh;min-height:100dvh;padding:0;color:var(--ink);}

  /* mobile : l'app remplit tout l'écran (bord à bord) */
  .phone{width:100%;max-width:100%;height:100vh;height:100dvh;max-height:none;border-radius:0;overflow:hidden;position:relative;
    box-shadow:none;background:var(--sand);}

  .screen{position:absolute;inset:0;display:none;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;}
  .screen.active{display:flex;}
  .screen,.chat{scrollbar-width:none;-ms-overflow-style:none;}
  .screen::-webkit-scrollbar,.chat::-webkit-scrollbar{display:none;width:0;height:0;}
  /* accessibilité & finitions pro */
  button,.opt{cursor:pointer;}
  :focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px;border-radius:10px;}
  .screen{scroll-padding-top:72px;scroll-padding-bottom:96px;}
  @media (prefers-reduced-motion: reduce){
    *{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
    .stg,.content>*,.screen.active .options .opt,.screen.active .chat .bub{opacity:1!important;transform:none!important;}
  }
  .tip b svg{width:23px;height:23px;stroke:var(--gold-soft);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
  .finding .ic svg{width:19px;height:19px;stroke:var(--mocha);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
  .cam .face svg{width:104px;height:104px;stroke:var(--cream);fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;opacity:.5;}

  @keyframes reveal4b{from{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}

  @keyframes drawline{to{transform:scaleX(1)}}
  .btn-cream::after,.btn-gold::after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);transform:skewX(-18deg);pointer-events:none;}
  .btn-cream:hover::after,.btn-gold:hover::after{animation:sweep .85s ease;}
  @keyframes sweep{to{left:130%}}
  .opt.sel .mk{animation:pop .34s cubic-bezier(.2,.9,.3,1.2);}
  @keyframes pop{0%{transform:scale(.5)}60%{transform:scale(1.14)}100%{transform:scale(1)}}
  /* carte profil partageable */
  .btn-share{margin-top:11px;background:transparent;border:1px solid var(--gold);color:var(--mocha);box-shadow:none;}
  .btn-share:hover{background:rgba(182,130,63,.08);}
  #card .cardwrap{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:8px 30px 40px;gap:15px;z-index:2;}
  .profilecard{width:100%;border-radius:26px;padding:28px 26px;background:linear-gradient(160deg,rgba(246,232,213,.16),rgba(33,19,9,.34));border:1px solid rgba(217,178,126,.32);box-shadow:0 30px 70px -30px rgba(0,0,0,.6);backdrop-filter:blur(4px);}
  .pc-top{display:flex;justify-content:space-between;align-items:center;}
  .pc-logo{font-family:'Fraunces',serif;font-size:24px;color:var(--cream);} .pc-logo .dot{color:var(--gold-soft);}
  .pc-handle{font-size:var(--fs-13);color:rgba(246,232,213,.7);}
  .pc-hero{text-align:center;padding:24px 0 20px;}
  .pc-kicker{font-size:var(--fs-11);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold-soft);font-weight:600;}
  .pc-type{font-family:'Fraunces',serif;font-size:78px;line-height:1;color:var(--cream);margin:6px 0 12px;}
  .pc-tagline{font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-16);color:rgba(246,232,213,.9);}
  .pc-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;border-top:1px solid rgba(246,232,213,.16);padding-top:18px;}
  .pc-stats div{text-align:center;} .pc-stats b{display:block;font-family:'Fraunces',serif;font-size:var(--fs-18);color:var(--gold-soft);} .pc-stats span{font-size:var(--fs-10);color:rgba(246,232,213,.7);letter-spacing:.03em;text-transform:uppercase;}
  .pc-foot{text-align:center;margin-top:18px;font-size:var(--fs-12);color:rgba(246,232,213,.55);letter-spacing:.02em;}
  #card .link{color:rgba(246,232,213,.8);} #card .link u{color:var(--cream);}
  .pc-note{display:none;font-size:var(--fs-13);color:rgba(246,232,213,.78);text-align:center;max-width:290px;line-height:1.5;}

  @keyframes fade{from{opacity:0}to{opacity:1}}
  @keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
  @keyframes riseSm{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
  @keyframes glow{0%,100%{opacity:.85;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.07)}}
  @keyframes sheen{0%{transform:translateX(-120%) rotate(8deg)}100%{transform:translateX(220%) rotate(8deg)}}
  @keyframes drawIn{from{stroke-dashoffset:520}to{stroke-dashoffset:0}}
  @keyframes scan{0%{transform:translateY(-30%)}100%{transform:translateY(130%)}}

  /* grain layer reused */
  .grain::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.09;mix-blend-mode:overlay;z-index:1;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

  /* ---------------- DARK immersive ---------------- */
  .dark{color:var(--cream);
    background:
      radial-gradient(115% 70% at 50% -8%, rgba(217,178,126,.4), transparent 52%),
      radial-gradient(90% 60% at 88% 18%, rgba(201,152,108,.32), transparent 55%),
      linear-gradient(165deg, var(--caramel) 0%, var(--mocha) 48%, var(--espresso) 100%);}
  .dark .eyebrow{color:var(--gold-soft);}

  .silk{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;}
  .silk i{position:absolute;top:-10%;left:0;width:60%;height:120%;
    background:linear-gradient(90deg, transparent, rgba(246,232,213,.14), transparent);
    filter:blur(14px);animation:sheen 11s ease-in-out infinite;}
  .curls{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.5;pointer-events:none;}
  .curls path{fill:none;stroke:var(--gold-soft);stroke-width:1.1;stroke-linecap:round;opacity:.5;
    stroke-dasharray:520;animation:drawIn 2.6s ease forwards;}

  .eyebrow{font-size:var(--fs-11);letter-spacing:.36em;text-transform:uppercase;font-weight:600;}

  /* welcome */
  #welcome .wrap{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;padding:max(64px,calc(env(safe-area-inset-top,0px) + 30px)) 36px calc(44px + env(safe-area-inset-bottom,0px));}

  #welcome .hero{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;}
  .logo{font-family:'Fraunces',serif;font-weight:360;font-size:96px;line-height:.9;letter-spacing:-.025em;color:var(--cream);
    text-shadow:0 2px 40px rgba(0,0,0,.3);}
  .logo .dot{color:var(--gold-soft);}
  .hairline{width:46px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-soft),transparent);margin:22px 0 4px;}
  .tagline{font-family:'Fraunces',serif;font-style:italic;font-weight:330;font-size:26px;line-height:1.3;margin-top:18px;max-width:300px;color:var(--cream);}
  .sub{font-size:var(--fs-14);line-height:1.6;margin-top:16px;max-width:286px;color:rgba(246,232,213,.9);letter-spacing:.004em;}

  .btn{width:100%;padding:18px;border:none;border-radius:18px;cursor:pointer;font-family:'Instrument Sans',sans-serif;font-size:var(--fs-16);font-weight:600;letter-spacing:.01em;transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s,filter .22s;position:relative;overflow:hidden;}
  .btn:active{transform:scale(.972);}
  .btn-cream{background:linear-gradient(180deg,#fbf0df,var(--cream));color:var(--espresso);box-shadow:0 16px 40px -14px rgba(0,0,0,.5);}
  .btn-cream:hover{filter:brightness(1.03);box-shadow:0 20px 46px -14px rgba(0,0,0,.55);}
  .btn-gold{background:linear-gradient(135deg,var(--gold-soft),var(--gold));color:#3a2410;box-shadow:0 16px 34px -12px rgba(122,79,53,.7);font-weight:600;}
  .btn-gold:hover{filter:brightness(1.04);}
  .link{background:none;border:none;cursor:pointer;font-family:inherit;font-size:var(--fs-14);font-weight:500;padding:7px;}
  .dark .link{color:rgba(246,232,213,.74);} .dark .link u{color:var(--cream);text-underline-offset:3px;text-decoration-thickness:1px;}
  .signature{text-align:center;font-size:var(--fs-12);margin-top:20px;letter-spacing:.01em;}
  .dark .signature{color:rgba(246,232,213,.55);}
  /* welcome — 3 étapes */
  .steps{display:flex;flex-direction:column;gap:11px;margin-top:24px;max-width:300px;width:100%;}
  .step{display:flex;align-items:center;gap:13px;text-align:left;}
  .step .no{flex:0 0 auto;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;
    font-family:'Fraunces',serif;font-size:var(--fs-13);font-weight:500;color:var(--espresso);
    background:linear-gradient(155deg,var(--gold-soft),var(--gold));box-shadow:0 4px 14px -6px rgba(122,79,53,.7);}
  .step p{font-size:var(--fs-13);line-height:1.4;color:rgba(246,232,213,.9);}
  .step p b{color:var(--cream);font-weight:600;}
  .step:not(:last-child){position:relative;}
  .step:not(:last-child)::after{content:"";position:absolute;left:13px;top:30px;width:1px;height:11px;
    background:linear-gradient(180deg,rgba(217,178,126,.5),transparent);}

  /* topbar */
  .topbar{display:flex;align-items:center;gap:14px;padding:max(56px,calc(env(safe-area-inset-top,0px) + 16px)) 28px 0;z-index:2;}
  .back{width:44px;height:44px;border-radius:50%;border:1px solid rgba(246,232,213,.28);background:rgba(255,255,255,.07);color:var(--cream);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:var(--fs-18);flex:0 0 auto;backdrop-filter:blur(6px);transition:background .2s;}
  .back:hover{background:rgba(255,255,255,.14);}
  .progress{flex:1;height:4px;border-radius:3px;background:rgba(246,232,213,.2);overflow:hidden;}
  .progress span{display:block;height:100%;background:linear-gradient(90deg,var(--gold-soft),var(--cream));border-radius:3px;transition:width .55s cubic-bezier(.3,.9,.3,1);}

  /* onboarding */
  #onb .body{flex:1;display:flex;flex-direction:column;padding:42px 32px 30px;z-index:2;}
  .q-step{display:none;flex-direction:column;flex:1;}
  .q-step.on{display:flex;}
  .q-title{font-family:'Fraunces',serif;font-weight:370;font-size:34px;line-height:1.12;margin:10px 0 7px;color:var(--cream);letter-spacing:-.01em;}
  .q-title em{font-style:italic;color:var(--gold-soft);}
  /* PREMIER CONSEIL (onboarding) — carte éditoriale « l'app me connaît déjà », filet terracotta */
  .onb-conseil .oc-card{margin-top:22px;border-radius:20px;overflow:hidden;background:var(--card);box-shadow:0 24px 48px -24px rgba(33,19,9,.5);position:relative;text-align:left;}
  .onb-conseil .oc-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;z-index:3;background:linear-gradient(90deg,var(--terra-soft),var(--terra) 55%,transparent);}
  .onb-conseil .oc-strip{padding:14px 18px 0;}
  .onb-conseil .oc-tag{font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--mocha);font-weight:700;}
  .onb-conseil .oc-body{padding:6px 18px 18px;}
  .onb-conseil .oc-geste{font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-20);line-height:1.25;color:var(--ink);margin:8px 0 0;letter-spacing:-.01em;}
  .onb-conseil .oc-dd{margin-top:15px;display:flex;flex-direction:column;gap:11px;}
  .onb-conseil .oc-r{display:flex;gap:11px;align-items:flex-start;font-size:var(--fs-13);line-height:1.42;color:var(--ink-soft);}
  .onb-conseil .oc-r b{color:var(--ink);font-weight:600;}
  .onb-conseil .oc-ic{flex:0 0 auto;width:19px;height:19px;margin-top:1px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-11);font-weight:700;}
  .onb-conseil .oc-yes .oc-ic{background:rgba(79,107,66,.16);color:var(--sage-deep);}
  .onb-conseil .oc-no .oc-ic{background:rgba(156,66,43,.14);color:var(--terra-deep);}
  .onb-conseil .oc-sign{margin-top:17px;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:center;gap:9px;}
  .onb-conseil .oc-sign-tx{font-size:var(--fs-12);color:var(--ink-soft);line-height:1.3;}
  .onb-conseil .oc-sign-tx b{display:block;font-family:'Fraunces',serif;font-style:italic;color:var(--mocha);font-weight:500;font-size:var(--fs-13);}
  .q-hint{font-size:var(--fs-14);color:rgba(246,232,213,.9);margin-bottom:26px;line-height:1.5;letter-spacing:.004em;}
  .options{display:flex;flex-direction:column;gap:12px;flex:1;}
  .opt{padding:16px 18px;border-radius:17px;border:1px solid rgba(246,232,213,.2);background:rgba(255,255,255,.06);color:var(--cream);font-size:var(--fs-16);font-weight:500;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;transition:background-color .2s cubic-bezier(.2,.8,.2,1),border-color .2s cubic-bezier(.2,.8,.2,1),color .2s cubic-bezier(.2,.8,.2,1),transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s cubic-bezier(.2,.8,.2,1),opacity .2s cubic-bezier(.2,.8,.2,1);backdrop-filter:blur(5px);text-align:left;}
  .opt:hover{background:rgba(255,255,255,.12);transform:translateY(-1px);border-color:rgba(246,232,213,.34);}
  .opt.sel{background:linear-gradient(180deg,#fbf0df,var(--cream));color:var(--espresso);border-color:var(--cream);box-shadow:0 12px 28px -14px rgba(0,0,0,.5);}
  .opt .mk{width:22px;height:22px;border-radius:50%;border:1.5px solid rgba(246,232,213,.4);flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:var(--fs-12);color:transparent;transition:background-color .2s,border-color .2s,color .2s,transform .2s var(--ease-out),box-shadow .2s,opacity .2s;}
  .opt.multi .mk{border-radius:7px;}                 /* carré arrondi = on peut en cocher plusieurs */
  .opt.sel .mk{background:var(--mocha);border-color:var(--mocha);color:var(--cream);}
  .opt small{display:block;font-weight:400;font-size:var(--fs-12);opacity:.66;margin-top:2px;}
  #onb .contbtn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;filter:saturate(.6);}
  .skip{text-align:center;margin-top:18px;}
  .screen.active .options .opt{opacity:0;animation:rise .3s var(--ease-out) both;}
  .screen.active .options .opt:nth-child(1){animation-delay:.06s}
  .screen.active .options .opt:nth-child(2){animation-delay:.13s}
  .screen.active .options .opt:nth-child(3){animation-delay:.2s}
  .screen.active .options .opt:nth-child(4){animation-delay:.27s}

  /* ===== onboarding — split éditorial (cohérent avec le hero & l'app) ===== */
  .onb-split{display:flex;flex-direction:column;flex:1;min-height:100%;}
  .onb-rail{display:none;}                         /* mobile : caché, flux dark inchangé */
  .onb-pane{display:flex;flex-direction:column;flex:1;min-height:100%;}
  @media (prefers-reduced-motion:no-preference){
    #onb .q-step.on{animation:onbStageIn .46s var(--ease-out);}   /* question → question, en douceur */
    .onb-rail img{animation:lp2ken 24s ease-in-out infinite alternate;}
  }
  @keyframes onbStageIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
  @media(min-width:880px){
    #onb{padding:0;}
    #onb .body{max-width:none;margin:0;}            /* annule la colonne étroite centrée */
    .onb-split{flex-direction:row;align-items:stretch;height:100vh;min-height:100vh;}
    .onb-rail{display:block;position:relative;flex:1 1 46%;overflow:hidden;
      -webkit-mask-image:linear-gradient(90deg,#000 72%,transparent 100%);
              mask-image:linear-gradient(90deg,#000 72%,transparent 100%);}
    .onb-rail img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 18%;}
    .onb-rail-veil{position:absolute;inset:0;
      background:linear-gradient(180deg,rgba(33,19,9,.34),rgba(33,19,9,.08) 38%,rgba(33,19,9,.7));}
    .onb-rail-cap{position:absolute;left:46px;right:56px;bottom:54px;z-index:2;}
    .onb-rail-eyebrow{display:block;font-size:var(--fs-11);letter-spacing:.34em;text-transform:uppercase;font-weight:600;color:var(--gold-soft);}
    .onb-rail-line{font-family:'Fraunces',serif;font-weight:380;font-size:25px;line-height:1.22;letter-spacing:-.01em;
      color:var(--cream);margin-top:13px;max-width:15ch;text-wrap:balance;text-shadow:0 2px 18px rgba(0,0,0,.4);}
    .onb-pane{flex:1 1 54%;align-self:center;width:100%;max-width:560px;margin:0 auto;padding:0 5vw;height:auto;min-height:0;}
    #onb .topbar{padding:0 0 8px;}
    #onb .progress{max-width:260px;}
    #onb .body{padding:30px 0 40px;flex:0 1 auto;}
    #onb .q-title{font-size:40px;}
    #onb .q-hint{font-size:var(--fs-15);margin-bottom:30px;}
    #onb .options{gap:13px;}
    #onb .actions{margin-top:26px;}
    #onb .actions .btn-cream{width:auto;align-self:flex-start;min-width:200px;}
  }
  @media(min-width:1280px){
    .onb-rail{flex:1 1 42%;}
    .onb-pane{flex:1 1 58%;max-width:600px;}
  }

  /* ===== Design Lot 1 : l'onboarding au niveau de la landing ===== */
  /* A. bande photo en tête sur mobile (le visage de la landing accompagne les questions) */
  .onb-topphoto{position:relative;flex:0 0 auto;height:21vh;min-height:122px;max-height:184px;overflow:hidden;margin:0;background:var(--espresso);
    -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 56%,transparent 100%);
            mask-image:linear-gradient(180deg,#000 0%,#000 56%,transparent 100%);}
  .onb-topphoto img{width:100%;height:100%;object-fit:cover;object-position:center 22%;filter:saturate(1.04) contrast(1.02) brightness(.97);}
  .onb-topphoto::after{content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(180deg,rgba(33,19,9,.30) 0%,rgba(33,19,9,0) 42%,var(--espresso) 100%),
      radial-gradient(125% 80% at 50% 30%, rgba(201,152,108,.22), transparent 62%);
    mix-blend-mode:multiply;}
  @media (prefers-reduced-motion:no-preference){ .onb-topphoto img{animation:lp2ken 26s ease-in-out infinite alternate;} }
  #onb .topbar{padding-top:14px;}                  /* la photo gère le haut, plus besoin du grand retrait */
  .onb-chap{font-size:var(--fs-11);font-weight:600;letter-spacing:var(--track-kicker);color:var(--gold-soft);font-variant-numeric:tabular-nums;flex:0 0 auto;}

  /* B. bouton « or signature » (au lieu du crème confondu avec les options) — le sweep .btn-cream::after reste */
  #onb .btn-cream{background:linear-gradient(150deg,#F4DCAC,var(--gold-soft) 46%,var(--gold));color:#3a2410;box-shadow:0 14px 34px -16px rgba(182,130,63,.85);}
  #onb .btn-cream:hover{filter:brightness(1.04);box-shadow:0 18px 40px -16px rgba(182,130,63,.9);}

  /* C. titres « voix de la landing » (même réglage optique que .lp2-word) */
  #onb .q-title{font-variation-settings:'opsz' 120,'SOFT' 50;letter-spacing:-.02em;line-height:1.1;font-weight:380;}
  #onb .q-hint{font-size:var(--fs-15);line-height:1.55;max-width:34ch;}

  /* D. trait d'or au-dessus de chaque question + pastille « plusieurs réponses » */
  #onb .body .eyebrow{position:relative;padding-top:17px;}
  #onb .body .eyebrow::before{content:"";position:absolute;top:0;left:0;width:32px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--gold),var(--gold-soft));}
  #onb .onb-pill{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-size:var(--fs-12);font-weight:500;letter-spacing:.015em;
    color:var(--gold-soft);background:rgba(217,178,126,.12);border:1px solid rgba(217,178,126,.3);border-radius:99px;padding:5px 12px;margin:-14px 0 22px;}

  /* E. couronne or à la place de la coche, lueur dorée qui monte */
  .onbcrown svg{width:44px;height:37px;fill:var(--gold-soft);stroke:none;stroke-dasharray:none;stroke-dashoffset:0;
    filter:drop-shadow(0 5px 14px rgba(217,178,126,.5));}
  .q-step.on .onbcrown svg{animation:onbCrownIn .75s var(--ease-out) both;}
  @keyframes onbCrownIn{from{opacity:0;transform:scale(.4) translateY(8px)}to{opacity:1;transform:none}}
  #onb .onb-final{position:relative;}
  #onb .onb-final::before{content:"";position:absolute;left:50%;bottom:-6%;transform:translateX(-50%);width:150%;height:72%;pointer-events:none;z-index:0;
    background:radial-gradient(58% 60% at 50% 100%, rgba(217,178,126,.20), transparent 72%);}
  #onb .onb-final > *{position:relative;z-index:1;}

  @media(min-width:880px){ .onb-topphoto{display:none;} }   /* desktop : le rail latéral prend le relais */

  /* photo */
  #photo .pbody{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px 32px 36px;z-index:2;text-align:center;}
  .angles{display:flex;gap:8px;margin:14px 0 4px;}
  .angles i{width:7px;height:7px;border-radius:50%;background:rgba(246,232,213,.3);}
  .angles i.on{background:var(--gold-soft);box-shadow:0 0 10px rgba(217,178,126,.7);transform:scale(1.3);}
  .angles i.done{background:var(--gold-soft);opacity:.85;}
  .cam{width:248px;height:312px;border-radius:124px/156px;position:relative;margin:18px 0 28px;
    background:radial-gradient(circle at 50% 38%, #3a2614 0%, #221409 55%, #140d07 100%);
    box-shadow:inset 0 0 70px rgba(13,9,6,.7), 0 22px 50px -26px rgba(0,0,0,.7);}
  .cam .guide{position:absolute;inset:0;border-radius:inherit;border:1.5px dashed rgba(246,232,213,.45);animation:camPulse 2.6s ease-in-out infinite;}
  @keyframes camPulse{0%,100%{transform:scale(1);opacity:.55}50%{transform:scale(1.02);opacity:.9}}
  @media (prefers-reduced-motion: reduce){ .cam .guide{animation:none;} }
  .cam .tick{position:absolute;width:18px;height:18px;border:2px solid var(--gold-soft);opacity:.85;}
  .cam .tick.tl{top:24px;left:34px;border-right:none;border-bottom:none;border-radius:6px 0 0 0;}
  .cam .tick.tr{top:24px;right:34px;border-left:none;border-bottom:none;border-radius:0 6px 0 0;}
  .cam .tick.bl{bottom:24px;left:34px;border-right:none;border-top:none;border-radius:0 0 0 6px;}
  .cam .tick.br{bottom:24px;right:34px;border-left:none;border-top:none;border-radius:0 0 6px 0;}
  .cam .face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:70px;opacity:.7;}
  .cam .ring{position:absolute;inset:-3px;border-radius:inherit;background:none!important;border:2.5px solid transparent;border-top-color:var(--gold-soft);border-right-color:rgba(217,178,126,.4);animation:spin 1.5s linear infinite;display:none;}
  @keyframes spin{to{transform:rotate(360deg)}}
  .campose{font-size:var(--fs-14);letter-spacing:.02em;color:var(--gold-soft);font-weight:600;margin:-10px 0 18px;min-height:18px;text-align:center;}
  .retake{margin:12px auto 0;min-height:44px;background:transparent;border:1px solid rgba(217,178,126,.45);color:var(--gold-soft);font-family:'Instrument Sans',sans-serif;font-size:var(--fs-13);font-weight:600;padding:11px 16px;border-radius:14px;cursor:pointer;transition:background .2s;}
  .retake:active{background:rgba(217,178,126,.12);}
  .shutter{width:78px;height:78px;border-radius:50%;background:linear-gradient(180deg,#fbf0df,var(--cream));border:5px solid rgba(246,232,213,.35);margin:6px auto 0;cursor:pointer;transition:transform .15s var(--ease-out);box-shadow:0 14px 30px -12px rgba(0,0,0,.5);}
  .shutter:active{transform:scale(.9);}
  .tips{display:flex;gap:20px;justify-content:center;margin-top:26px;flex-wrap:wrap;}
  .tip{font-size:var(--fs-12);color:rgba(246,232,213,.8);display:flex;flex-direction:column;align-items:center;gap:7px;width:80px;}
  .tip b{font-size:var(--fs-20);}

  /* ---------------- LIGHT app ---------------- */
  .light{background:
    radial-gradient(120% 60% at 50% 0%, rgba(217,178,126,.22), transparent 46%),
    linear-gradient(180deg, var(--sand) 0%, var(--sand-2) 100%);color:var(--ink);}
  .appbar{padding:max(56px,calc(env(safe-area-inset-top,0px) + 16px)) 24px 12px;display:flex;align-items:center;justify-content:space-between;}
  .appbar .t{font-family:'Fraunces',serif;font-size:26px;font-weight:440;letter-spacing:-.012em;}
  .appbar .pill{font-size:var(--fs-11);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mocha);background:var(--card);border:1px solid var(--line);padding:7px 13px;border-radius:20px;box-shadow:var(--shadow-sm);}
  .content{flex:1;padding:16px 24px 40px;}
  .content > *{opacity:0;}
  .screen.active .content > *{animation:rise .3s var(--ease-out) both;} /* Emil : la navigation (100+/jour) doit être vive — 550ms rendait toute l'app lente */
  .screen.active .content > *:nth-child(1){animation-delay:.04s}
  .screen.active .content > *:nth-child(2){animation-delay:.11s}
  .screen.active .content > *:nth-child(3){animation-delay:.18s}
  .screen.active .content > *:nth-child(4){animation-delay:.25s}
  .screen.active .content > *:nth-child(5){animation-delay:.32s}
  .screen.active .content > *:nth-child(n+6){animation-delay:.38s} /* les cartes 6+ arrivent APRÈS les premières, plus jamais avant (audit) */
  .card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);padding:20px;box-shadow:var(--shadow-card),inset 0 1px 0 rgba(255,255,255,.6);margin-bottom:24px;}
  /* LOT 3 — historique wash days (Mes cheveux) */
  .wh-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:var(--fs-14);}
  .wh-row:last-child{border-bottom:none;}
  .wh-date{flex:1;color:var(--espresso);font-weight:600;}
  .wh-min{color:var(--ink-soft);}
  .wh-feel{font-size:var(--fs-18);width:24px;text-align:center;}
  .jln-strip{display:flex;gap:6px;}
  .jln{flex:1;text-align:center;}
  .jln-dot{width:34px;height:34px;border-radius:50%;margin:0 auto 6px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--fs-12);background:#efe7da;color:var(--ink-soft);}
  .jln-done .jln-dot{background:var(--gold);color:#fff;}
  .jln-due .jln-dot{background:#fff;border:2px solid var(--gold);color:var(--gold);}
  .jln-lbl{font-size:var(--fs-11);color:var(--ink-soft);line-height:1.25;}
  .jln-due .jln-lbl{color:var(--gold);font-weight:600;}
  /* l'or sur fond clair échoue le contraste (2.8:1) → mocha (5.1:1). L'or reste réservé aux fonds sombres. */
  .kicker{font-size:var(--fs-11);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--mocha);font-weight:600;}
  /* émoji des labels (kicker/gk) : EN LIGNE au bord du contenu (aligné au titre/corps de
     la carte) — il respire comme le reste, jamais collé au bord de la carte. */
  .kicker,.gk{position:relative;}
  .ki-emo{display:inline-block;margin-right:.5em;font-size:var(--fs-12);letter-spacing:0;line-height:1;vertical-align:-.04em;}
  /* NAYA EN GRAND dans l'en-tête d'accueil (façon KRU) : portrait rond à droite du salut */
  .ed-hero-txt{display:flex;align-items:flex-end;gap:14px;}
  .ed-greet{flex:1;min-width:0;}
  .ed-naya{flex:0 0 auto;width:80px;height:80px;border-radius:50%;padding:2.5px;border:0;cursor:pointer;
    background:linear-gradient(140deg,var(--gold-soft),var(--terra-soft));
    box-shadow:0 14px 30px -12px rgba(20,11,5,.72);-webkit-tap-highlight-color:transparent;
    transition:transform var(--d-fast,.16s) var(--ease-out,ease);}
  .ed-naya img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 24%;border:2.5px solid var(--cream);display:block;}
  .ed-naya:active{transform:scale(.94);}

  #result .rd-geste .gjour .gd-body .go-row{cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;}
  #result .rd-geste .gjour .gd-body .go-ck{flex:0 0 auto;width:21px;height:21px;border-radius:50%;border:2px solid rgba(220,182,128,.6);display:flex;align-items:center;justify-content:center;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s var(--ease-out),box-shadow .2s ease,opacity .2s ease;}
  #result .rd-geste .gjour .gd-body .go-row.done .go-ck{background:linear-gradient(135deg,var(--gold-soft),var(--gold));border-color:transparent;}
  #result .rd-geste .gjour .gd-body .go-row.done .go-ck::after{content:"";width:10px;height:6px;border-left:2px solid #3a2410;border-bottom:2px solid #3a2410;transform:translateY(-1px) rotate(-45deg);}
  #result .rd-geste .gjour .gd-body .go-row.done b{text-decoration:line-through;text-decoration-color:rgba(246,232,213,.45);opacity:.62;}
  #result .rd-geste .gjour .gd-body .go-row.done span{opacity:.6;}
    /* fréquence de chaque geste d'or (réponse Tatiana : la routine est rythmée{display:inline-block;margin-left:7px;font-size:var(--fs-10);font-weight:600;letter-spacing:.02em;text-decoration:none;color:#3a2410;background:linear-gradient(135deg,var(--gold-soft),var(--gold));padding:1px 8px;border-radius:99px;vertical-align:middle;white-space:nowrap;}

  @keyframes momPulse{0%{transform:scale(1);}42%{transform:scale(1.028);}100%{transform:scale(1);}}
  .mom-pulse{animation:momPulse .6s ease;}
  @media (prefers-reduced-motion: reduce){ .mom-pulse{animation:none;} }
  /* ligne fine régularité — un seul héros (le geste), pas de 2e carte sombre */
  .mom-line{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;
    padding:9px 14px;background:none;border:none;border-radius:12px;cursor:pointer;
    font-family:inherit;text-align:left;-webkit-tap-highlight-color:transparent;}
  .mom-line:active{background:rgba(58,36,20,.06);}
  .mom-line-tx{flex:1;min-width:0;font-size:var(--fs-13);color:var(--ink-soft);font-weight:500;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .mom-line-chev{flex:0 0 auto;font-size:var(--fs-16);color:var(--ink-soft);opacity:.55;line-height:1;}
  .mom-line.mom-pulse{animation:momPulse .6s ease;}
  @media (prefers-reduced-motion: reduce){ .mom-line.mom-pulse{animation:none;} }

  .h-lead{font-size:var(--fs-14);color:var(--ink-soft);line-height:1.55;margin-bottom:6px;}

  /* diagnostic révélation : la jauge dorée de chaque mesure se remplit */
  .screen.active .metrics .metric::before{transform-origin:center;animation:barFill .6s var(--ease-out) both;}
  .screen.active .metrics .metric:nth-child(1)::before{animation-delay:.35s}
  .screen.active .metrics .metric:nth-child(2)::before{animation-delay:.46s}
  .screen.active .metrics .metric:nth-child(3)::before{animation-delay:.57s}
  @keyframes barFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}

  .metrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:11px;margin-top:20px;}
  .metric{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);padding:15px 8px;text-align:center;box-shadow:var(--shadow-soft);position:relative;overflow:hidden;color:inherit;font-family:inherit;cursor:pointer;}
  .metric::before{content:"";position:absolute;top:0;left:28%;right:28%;height:2px;background:var(--gold-soft);opacity:.55;border-radius:2px;}
  .metric .v{font-family:'Fraunces',serif;font-size:var(--fs-20);color:var(--mocha);}
  .metric .l{font-size:var(--fs-10);color:var(--ink-soft);margin-top:3px;letter-spacing:.04em;text-transform:uppercase;}

  /* trichoscopy macro */
  .reveal{height:158px;border-radius:18px;margin:6px 0 10px;position:relative;overflow:hidden;
    background:
      radial-gradient(120% 90% at 70% 20%, rgba(168,116,74,.55), transparent 60%),
      radial-gradient(80% 80% at 20% 90%, rgba(20,11,6,.7), transparent 60%),
      conic-gradient(from 200deg at 60% 40%, #5a3c25, #2c1a0e, #6b4628, #2c1a0e, #5a3c25);}
  .reveal .strands{position:absolute;inset:0;opacity:.55;mix-blend-mode:soft-light;
    background:repeating-radial-gradient(circle at 30% 30%, rgba(0,0,0,.5) 0 2px, transparent 2px 7px),
      repeating-radial-gradient(circle at 75% 60%, rgba(0,0,0,.45) 0 2px, transparent 2px 8px);}

  .reveal .tag{position:absolute;left:12px;bottom:11px;z-index:2;font-size:var(--fs-11);font-weight:500;color:var(--cream);background:rgba(20,11,6,.5);padding:6px 11px;border-radius:20px;backdrop-filter:blur(6px);border:1px solid rgba(246,232,213,.16);}

  .finding{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line);}
  .finding:last-child{border-bottom:none;}
  .finding .ic{width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,var(--sand),var(--sand-2));display:flex;align-items:center;justify-content:center;font-size:var(--fs-18);flex:0 0 auto;box-shadow:inset 0 0 0 1px var(--line);}
  .finding .tx b{font-size:var(--fs-15);letter-spacing:-.005em;} .finding .tx p{font-size:var(--fs-14);color:var(--ink-soft);margin-top:3px;line-height:1.48;}

  /* coach */
  #coach{background:radial-gradient(120% 50% at 50% 0%, rgba(217,178,126,.2), transparent 44%),linear-gradient(180deg, var(--sand) 0%, #e4d2bb 100%);}
  .chat-head{padding:max(54px,calc(env(safe-area-inset-top,0px) + 14px)) 22px 14px;display:flex;align-items:center;gap:13px;border-bottom:1px solid var(--line);background:rgba(251,245,236,.66);backdrop-filter:blur(10px);}
  .avatar{width:52px;height:52px;border-radius:50%;position:relative;flex:0 0 auto;
    background:radial-gradient(circle at 35% 28%, var(--caramel), var(--mocha) 70%, var(--espresso));
    box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--gold-soft),0 10px 20px -8px rgba(74,44,22,.55);}
  .avatar img{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center 15%;}
  .avatar .on-dot{position:absolute;right:1px;bottom:1px;width:13px;height:13px;border-radius:50%;background:#6E8B5B;border:2.5px solid var(--card);z-index:2;box-shadow:0 0 0 1px rgba(0,0,0,.04);}
  .chat-head .nm{font-family:'Fraunces',serif;font-weight:480;font-size:var(--fs-18);letter-spacing:-.01em;color:var(--espresso);line-height:1.05;}
  .chat-head .st{font-size:var(--fs-12);color:var(--ink-soft);margin-top:2px;}
  .chat{min-height:100%;padding:6px 2px 10px;display:flex;flex-direction:column;justify-content:flex-end;gap:11px;}
  .bub{opacity:0;transform:translateY(8px);transition:opacity .25s var(--ease-out),transform .25s var(--ease-out);} /* Emil : surface fréquente → 250ms */
  .bub.in{opacity:1;transform:none;}
  .typing{align-self:flex-start;display:none;gap:5px;padding:14px 18px;background:var(--card);border:1px solid var(--line);border-radius:20px;border-bottom-left-radius:7px;box-shadow:var(--shadow-sm);}
  .typing.show{display:inline-flex;}
  .typing i{width:7px;height:7px;border-radius:50%;background:var(--mocha);opacity:.4;animation:td 1s infinite;}
  .typing i:nth-child(2){animation-delay:.15s} .typing i:nth-child(3){animation-delay:.3s}
  @keyframes td{0%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
  .bub{max-width:80%;padding:13px 17px;border-radius:22px;font-size:var(--fs-15);line-height:1.5;}
  .bub.her{background:linear-gradient(180deg,#FFFBF4,var(--card));color:var(--ink);align-self:flex-start;border-bottom-left-radius:7px;box-shadow:0 8px 20px -14px rgba(58,35,18,.45);border:1px solid rgba(182,130,63,.18);}
  .bub.me{background:linear-gradient(158deg,var(--mocha),var(--espresso));color:var(--cream);align-self:flex-end;border-bottom-right-radius:7px;box-shadow:0 12px 24px -14px rgba(33,19,9,.6);}
  .sugg{display:flex;gap:8px;flex-wrap:wrap;padding:8px 16px 12px;}
  .sugg button{font-size:var(--fs-13);padding:10px 15px;border-radius:20px;border:1px solid rgba(182,130,63,.35);background:linear-gradient(180deg,#FFFBF4,var(--card));color:var(--mocha);font-family:inherit;font-weight:500;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s,transform .2s var(--ease-out),box-shadow .2s,opacity .2s;box-shadow:0 4px 12px -9px rgba(58,35,18,.4);}
  .sugg button:hover{background:var(--mocha);color:var(--cream);border-color:var(--mocha);}
  .inbar{padding:11px 16px;display:flex;gap:10px;align-items:center;background:rgba(251,245,236,.7);backdrop-filter:blur(10px);border-top:1px solid var(--line);}
  .inbar input,.inbar textarea{flex:1;border:1px solid var(--line);background:var(--card);border-radius:22px;padding:13px 17px;font-family:inherit;font-size:var(--fs-16);outline:none;color:var(--ink);}
  .inbar textarea{resize:none;max-height:110px;line-height:1.45;overflow-y:auto;-webkit-appearance:none;}
  .inbar input::placeholder,.inbar textarea::placeholder{color:var(--ink-soft);}
  .inbar .send{width:44px;height:44px;border-radius:50%;border:none;background:linear-gradient(155deg,var(--gold-soft),var(--gold));color:#fff;font-size:var(--fs-18);cursor:pointer;flex:0 0 auto;box-shadow:0 8px 18px -8px rgba(182,130,63,.7);transition:transform .12s var(--ease-out);}
  .inbar .send:active{transform:scale(.9);}
  .inbar .send:disabled{opacity:.55;cursor:wait;}
  #coach .inbar textarea:focus-visible,#coach .inbar button:focus-visible,#coach .op-chip:focus-visible,#coach .rl-chip:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;}
  .chat-head .avatar:active{transform:scale(.96);transition:transform .12s var(--ease-out);}
  /* bouton 💛 discret : ouvre le check bien-être dans la feuille (sorti du chat) */
  .inbar .hlth-trig{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--card);font-size:var(--fs-18);line-height:1;cursor:pointer;flex:0 0 auto;display:grid;place-items:center;transition:transform .12s var(--ease-out),background .2s;}
  .inbar .hlth-trig:active{transform:scale(.9);}
  .inbar .mic{width:44px;height:44px;border-radius:50%;border:1px solid var(--gold-soft);background:var(--card);color:var(--mocha);cursor:pointer;flex:0 0 auto;display:grid;place-items:center;transition:background-color .2s,border-color .2s,color .2s,transform .2s var(--ease-out),box-shadow .2s,opacity .2s;}
  .inbar .mic svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
  .inbar .mic.on{background:linear-gradient(160deg,#8B2C3A,#5e1f28);color:var(--cream);border-color:#8B2C3A;animation:micpulse 1.1s ease-in-out infinite;}
  @keyframes micpulse{0%,100%{box-shadow:0 0 0 0 rgba(139,44,58,.45)}50%{box-shadow:0 0 0 7px rgba(139,44,58,0)}}

  /* routine */
  .budget-lbl{font-size:var(--fs-12);font-weight:600;color:var(--espresso);margin:14px 0 6px;}
  .budget-lbl span{font-weight:500;color:var(--ink-soft);}
  .budget{display:flex;gap:6px;background:var(--sand-2);padding:5px;border-radius:var(--radius-field);margin:0 0 18px;border:1px solid var(--line);}
  .suggrow{display:block;width:100%;text-align:left;background:rgba(60,36,20,.04);border:1px solid var(--line);border-radius:13px;padding:11px 13px;margin:7px 0 0;cursor:pointer;transition:background .2s,border-color .2s;}
  .suggrow:hover{background:rgba(60,36,20,.08);border-color:var(--gold-soft);}
  .suggrow b{display:block;font-size:var(--fs-14);color:var(--espresso);font-weight:600;}
  .suggrow span{display:block;font-size:var(--fs-12);color:var(--ink-soft);margin-top:1px;}
  .budget button{flex:1;padding:12px 6px;border-radius:12px;border:none;background:transparent;font-family:inherit;font-size:var(--fs-13);font-weight:600;color:var(--ink-soft);cursor:pointer;transition:background-color .25s cubic-bezier(.2,.8,.2,1),border-color .25s cubic-bezier(.2,.8,.2,1),color .25s cubic-bezier(.2,.8,.2,1),transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s cubic-bezier(.2,.8,.2,1),opacity .25s cubic-bezier(.2,.8,.2,1);}
  .budget button.on{background:var(--card);color:var(--espresso);box-shadow:var(--shadow-sm);}
  .step{display:flex;gap:15px;padding:15px 0;border-bottom:1px solid var(--line);}
  .step:last-child{border-bottom:none;}
  .step .no{width:32px;height:32px;border-radius:50%;background:linear-gradient(160deg,var(--espresso),#46291699);color:var(--cream);font-family:'Fraunces',serif;font-size:var(--fs-15);display:flex;align-items:center;justify-content:center;flex:0 0 auto;box-shadow:0 6px 14px -8px rgba(74,44,22,.6);}
  .step .d b{font-size:var(--fs-15);} .step .d p{font-size:var(--fs-14);color:var(--ink-soft);margin-top:3px;line-height:1.48;}
  .prod{display:flex;align-items:center;gap:13px;padding:13px;background:linear-gradient(180deg,var(--sand),var(--sand-2));border-radius:var(--radius-field);margin-top:11px;border:1px solid var(--line);}
  .prod .sw{width:42px;height:48px;border-radius:7px 7px 9px 9px;flex:0 0 auto;position:relative;
    background:linear-gradient(160deg,var(--caramel),var(--mocha));box-shadow:inset 0 -6px 10px -6px rgba(0,0,0,.4);}
  .prod .sw::before{content:"";position:absolute;top:-5px;left:50%;transform:translateX(-50%);width:14px;height:7px;border-radius:3px 3px 0 0;background:var(--espresso);}
  .prod .pi{flex:1;} .prod .pi b{font-size:var(--fs-14);display:block;} .prod .pi span{font-size:var(--fs-12);color:var(--ink-soft);}
  .prod .pr{font-family:'Fraunces',serif;font-size:var(--fs-16);color:var(--mocha);}
  .save{position:relative;overflow:hidden;background:linear-gradient(150deg,var(--mocha),var(--espresso));color:var(--cream);border-radius:var(--radius-card);padding:24px;text-align:center;margin-bottom:16px;box-shadow:var(--shadow-card);}
  .save .shine{position:absolute;top:-40%;left:0;width:40%;height:180%;background:linear-gradient(90deg,transparent,rgba(246,232,213,.16),transparent);transform:rotate(8deg);animation:sheen 1.1s ease-out .3s both;}
  .save .kk{font-size:var(--fs-11);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold-soft);font-weight:600;position:relative;}
  .save .big{font-family:'Fraunces',serif;font-size:40px;margin-top:4px;position:relative;}
  .save .lbl{font-size:var(--fs-13);opacity:.82;margin-top:3px;position:relative;line-height:1.4;max-width:240px;margin-left:auto;margin-right:auto;}

  /* bottom nav */
  .nav{position:sticky;bottom:0;min-height:66px;flex:0 0 auto;background:rgba(251,245,236,.94);backdrop-filter:blur(16px);border-top:1px solid var(--line);display:flex;z-index:5;padding-bottom:env(safe-area-inset-bottom,0px);}
  .nav button{flex:1;border:none;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;color:var(--ink-soft);font-family:inherit;position:relative;transition:color .2s;padding-top:4px;}
  .nav button.on{color:var(--espresso);}
  .nav button.on::before{content:"";position:absolute;top:7px;width:5px;height:5px;border-radius:50%;background:var(--gold);}
  /* touche signature (V3) : l'icône active se teinte d'or — le label reste espresso */
  .nav button.on svg{color:var(--gold-deep);stroke-width:2;transform:translateY(-1px);}
  .nav button svg{width:22px;height:22px;transition:transform var(--d-fast) var(--ease-out),stroke-width var(--d-fast) var(--ease-out);} .nav button span{font-size:var(--fs-10);font-weight:500;letter-spacing:.01em;}
  /* ---- bouton SCAN central : action phare, flottant sur la barre ---- */
  .nav button.nav-scan{flex:0 0 82px;gap:3px;padding-top:0;overflow:visible;}
  .nav-scan-disc{width:56px;height:56px;margin-top:-26px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#3a2410;
    background:linear-gradient(135deg,var(--gold-soft),var(--gold));
    box-shadow:0 12px 26px -10px rgba(122,79,53,.6),0 4px 10px -4px rgba(182,130,63,.45),0 0 0 6px rgba(251,245,236,.94);
    transition:transform .15s var(--ease-out);}
  .nav button.nav-scan svg{width:26px;height:26px;}
  .nav button.nav-scan:active .nav-scan-disc{transform:scale(.92);}
  .nav-scan-lbl{font-size:var(--fs-10);font-weight:600;letter-spacing:.01em;color:var(--gold);}

  .screen.active .stg{opacity:0;animation:rise .6s both;}

  /* ============ PREMIUM MVP — ajouts ============ */
  /* diagnostic : observé vs estimé + confiance */
  .conf{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-12);font-weight:600;color:var(--mocha);background:var(--card);border:1px solid var(--line);padding:7px 13px;border-radius:20px;box-shadow:var(--shadow-sm);margin-top:14px;}
  .conf .dotc{width:8px;height:8px;border-radius:50%;background:#6E8B5B;box-shadow:0 0 8px rgba(110,139,91,.7);}
  .metric .src{position:absolute;top:7px;right:7px;font-size:var(--fs-11);font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:2px 5px;border-radius:7px;}
  .metric .src.obs{color:#4F6B42;background:rgba(110,139,91,.18);}
  .metric .src.est{color:#9a6b2f;background:rgba(182,130,63,.18);}
  .legend{display:flex;gap:18px;justify-content:center;margin-top:14px;font-size:var(--fs-11);color:var(--ink-soft);}
  .legend i{display:inline-flex;align-items:center;gap:6px;font-style:normal;}
  .legend b{width:9px;height:9px;border-radius:3px;display:inline-block;}
  .legend .o{background:rgba(110,139,91,.8);} .legend .e{background:rgba(182,130,63,.8);}
  .honest{font-size:var(--fs-12);color:var(--ink-soft);line-height:1.5;text-align:center;margin-top:10px;padding:0 6px;}

  /* geste du jour (coach) */
  .gjour{margin:0 0 4px;border-radius:20px;padding:20px;color:var(--cream);position:relative;overflow:hidden;
    background:linear-gradient(155deg,rgba(58,36,20,.82),rgba(22,12,5,.94));
    box-shadow:var(--shadow);}
  .gjour > *{position:relative;z-index:1;}
  .gj-photo{position:absolute;inset:0;z-index:0;background:url('../img/crepu-hero.jpg') center/cover no-repeat;background-position:34% center;filter:sepia(.34) saturate(1.15) contrast(1.04) brightness(.92);-webkit-mask-image:linear-gradient(90deg,transparent,#000 80%);mask-image:linear-gradient(90deg,transparent,#000 80%);opacity:.5;transform-origin:72% 50%;}
  .gj-bloom{position:absolute;top:-60px;right:-40px;width:220px;height:220px;background:radial-gradient(circle,rgba(212,175,55,.18) 0%,transparent 70%);z-index:0;pointer-events:none;}
  .gj-sign{display:flex;align-items:center;gap:8px;margin:12px 0 8px;font-size:.8rem;color:rgba(212,175,55,.8);font-style:italic;}
  .gj-sign img{width:26px;height:26px;border-radius:50%;border:1.5px solid rgba(212,175,55,.5);object-fit:cover;flex-shrink:0;}
  .gjour .shine{display:none;}
  .gjour .wx{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-12);font-weight:600;color:var(--cream);background:rgba(246,232,213,.14);border:1px solid rgba(246,232,213,.22);padding:7px 12px;border-radius:18px;backdrop-filter:blur(4px);position:relative;}
  .gjour .wx svg{width:15px;height:15px;stroke:var(--gold-soft);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
  .gjour .gk{font-size:var(--fs-11);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold-soft);font-weight:600;margin-top:16px;position:relative;}
  .gjour h3{font-family:'Fraunces',serif;font-weight:400;font-size:var(--fs-22);line-height:1.22;margin:6px 0 9px;position:relative;}
  .gjour p{font-size:var(--fs-14);line-height:1.55;color:rgba(246,232,213,.9);position:relative;}
  .gjour .why{font-size:var(--fs-12);color:rgba(246,232,213,.74);border-top:1px solid rgba(246,232,213,.16);padding-top:11px;margin-top:11px;position:relative;}
  /* le pourquoi du cycle, VISIBLE (valeur avant effort) + attribution Tatiana */
  .gjour .pdj-cyclewhy{font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-14);line-height:1.5;color:rgba(246,232,213,.92);margin:10px 0 2px;position:relative;}
  .gjour .pdj-cyclesrc{display:flex;align-items:center;gap:7px;font-size:var(--fs-12);color:rgba(217,178,126,.9);margin:6px 0 2px;position:relative;}
  .gjour .pdj-t{width:20px;height:20px;border-radius:50%;background:rgba(217,178,126,.18);border:1px solid rgba(217,178,126,.4);display:inline-flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:var(--fs-11);color:var(--gold-soft);flex:0 0 auto;}
  .gjour .nutri-med{font-size:var(--fs-11);line-height:1.5;color:rgba(246,232,213,.55);font-style:italic;border-top:1px solid rgba(246,232,213,.12);padding-top:10px;margin-top:13px;position:relative;}
  /* 2a — état « geste fait » : la carte se calme, l'eyebrow passe en or plein */
  .gjour.gjour-done{opacity:.94;}
  .gjour.gjour-done .shine{display:none;}
  .gjour.gjour-done .gk{color:var(--gold);}
  /* 2a — liseré doré « foil » en haut du héros (premium, discret) */
  .gjour::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;z-index:2;
    background:linear-gradient(90deg,transparent,var(--gold-soft) 42%,var(--gold) 60%,transparent);opacity:.85;}
  .gjour-nutri .wx{background:rgba(150,196,140,.16);border-color:rgba(150,196,140,.30);}
  .gjour .whybtn{margin-top:13px;background:none;border:none;color:var(--gold-soft);font-family:inherit;font-size:var(--fs-12);font-weight:600;cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:6px;position:relative;}
  .gjour .whybtn span{transition:transform var(--d-base) var(--ease-out);display:inline-block;}
  .gjour .whybtn.open span{transform:rotate(90deg);}
  .gjour .whyc{max-height:0;overflow:hidden;transition:max-height var(--d-slow) var(--ease-out);position:relative;}
  .gjour .whyc.open{max-height:140px;}
  /* fix clip — .gjour a overflow:hidden ; ses enfants ne doivent pas dépasser */
  .gjour > *{min-width:0;max-width:100%;}
  .gjour .wx{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .gj-prod{display:flex;align-items:center;gap:12px;width:100%;min-width:0;margin-top:14px;padding:12px 14px;border-radius:var(--radius-field);cursor:pointer;position:relative;
    background:rgba(246,232,213,.12);border:1px solid rgba(217,178,126,.4);text-align:left;font-family:inherit;transition:background .2s,border-color .2s;overflow:hidden;}
  .gj-prod:hover,.gj-prod:active{background:rgba(246,232,213,.18);border-color:var(--gold-soft);}
  .gj-prod .gj-pl{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
  .gj-prod .gj-pk{font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-soft);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .gj-prod .gj-pl b{font-family:'Instrument Sans',sans-serif;font-weight:600;font-size:var(--fs-14);color:var(--cream);line-height:1.25;word-break:break-word;}
  .gj-prod .gj-pr{flex:0 1 auto;min-width:0;font-family:'Fraunces',serif;font-size:var(--fs-15);color:var(--gold-soft);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .gj-prod::after{content:"›";position:absolute;right:13px;bottom:7px;color:var(--gold-soft);font-size:var(--fs-14);opacity:.7;}
  .gj-adapt{display:block;min-height:44px;margin:1px 0 1px -10px;padding:10px;border:0;background:transparent;color:var(--gold-soft);font:600 var(--fs-12) 'Instrument Sans',sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer;}
  .gj-adapt:focus-visible{outline:2px solid var(--gold-soft);outline-offset:1px;border-radius:var(--radius-field);}
  /* COUTURE 1 — « avec ton <produit> » sur la carte (sombre) du geste du jour */
  .gj-uses{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:var(--fs-14);font-weight:600;
    color:var(--gold-soft);min-width:0;overflow:hidden;}
  .gj-uses .gj-crown{flex:0 0 auto;font-size:var(--fs-14);filter:saturate(1.1);}
  /* le nom du produit possédé peut être long — laisse-le se couper proprement */
  .gj-uses > :first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

  /* ---- pied de carte geste : sous-texte + sceau de validation ---- */
  .gj-foot{display:flex;align-items:center;gap:14px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(217,178,126,.16);position:relative;}
  .gj-foot .gj-ft{flex:1;min-width:0;font-size:var(--fs-12);color:rgba(246,232,213,.55);line-height:1.4;}
  .gj-foot .gj-ft b{color:var(--cream);font-family:'Fraunces',serif;font-weight:400;font-size:var(--fs-14);display:block;}
  /* sceau récompense — cercle doré 62px avec ✓ SVG */
  .seal{width:62px;height:62px;border-radius:50%;border:1px solid var(--gold-soft);
    background:radial-gradient(120% 120% at 30% 25%,rgba(217,178,126,.18),rgba(217,178,126,.04));
    display:flex;align-items:center;justify-content:center;flex:0 0 auto;cursor:pointer;}
  .seal svg{width:26px;height:26px;stroke:var(--gold-soft);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;opacity:.6;transition:stroke .25s,opacity .25s;}
  .seal.seal-filled{background:linear-gradient(160deg,var(--gold-soft),var(--mocha));}
  .seal.seal-filled svg{stroke:var(--cream);opacity:1;}
  @media (prefers-reduced-motion:reduce){.seal svg{transition:none;}}

  /* ---- check d'humeur dé-boxé : filet doré + question Fraunces + 3 visages SVG ---- */
  .nz{padding-left:16px;border-left:2px solid var(--gold-soft);margin-top:24px;}
  .nz .nz-q{font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-16);color:var(--ink);line-height:1.35;margin-bottom:14px;}
  .moods{display:flex;gap:14px;margin-top:0;}
  .mood{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    cursor:pointer;background:rgba(255,252,246,.65);
    box-shadow:inset 0 1px 2px rgba(108,72,42,.08),0 0 0 1px var(--hair);
    border:none;transition:transform .15s var(--ease-out),box-shadow .15s;flex:0 0 auto;}
  .mood:hover,.mood:active{transform:translateY(-2px);box-shadow:inset 0 1px 2px rgba(108,72,42,.08),0 0 0 2px var(--gold-soft);}
  .mood svg{width:28px;height:28px;stroke:var(--gold-deep);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}

  @media (prefers-reduced-motion:reduce){.mood{transition:none;}}

  .cal-card{margin:0 0 14px;border-radius:var(--radius-card);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-soft);overflow:hidden;}
  .cal-head{display:flex;align-items:center;gap:10px;width:100%;padding:15px 16px;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left;}
  .cal-head .cal-hk{flex:1;min-width:0;}
  .cal-head .kicker{margin:0;}
  .cal-head .cal-hsub{font-size:var(--fs-12);color:var(--ink-soft);margin-top:3px;line-height:1.3;}
  .cal-head .cal-hsub b{color:var(--mocha);font-weight:600;}
  .cal-chev{flex:0 0 auto;width:22px;height:22px;display:grid;place-items:center;color:var(--gold-soft);transition:transform .25s var(--ease-out);}
  .cal-chev svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
  .cal-head.open .cal-chev{transform:rotate(180deg);}
  .cal-body{max-height:0;overflow:hidden;transition:max-height var(--d-slow) var(--ease-out);}
  .cal-body.open{max-height:560px;}
  .cal-list{padding:2px 16px 14px;}
  .cal-acts{display:flex;gap:8px;padding:0 16px 12px;flex-wrap:wrap;}
  .cal-act{flex:1;min-width:140px;border:1px solid var(--line);background:rgba(217,178,126,.10);color:var(--espresso);border-radius:12px;padding:10px;font-family:inherit;font-size:var(--fs-13);font-weight:600;cursor:pointer;}
  .cal-act:active{background:rgba(217,178,126,.22);}
  .cal-del{margin-left:6px;border:none;background:none;color:#bbaa99;cursor:pointer;font-size:var(--fs-18);line-height:1;flex:0 0 auto;padding:0 2px;}
  .cal-pin.custom{background:var(--gold);}
  .cal-row{display:flex;align-items:flex-start;gap:12px;padding:11px 0;border-top:1px solid var(--line);}
  .cal-row:first-child{border-top:none;}
  .cal-pin{flex:0 0 auto;width:10px;height:10px;border-radius:50%;margin-top:5px;background:var(--caramel);box-shadow:0 0 0 4px rgba(201,152,108,.12);}
  .cal-pin.masque{background:var(--sage);box-shadow:0 0 0 4px rgba(110,139,91,.14);}
  .cal-pin.huile{background:var(--gold);box-shadow:0 0 0 4px rgba(182,130,63,.14);}
  .cal-pin.proteine{background:var(--mocha);box-shadow:0 0 0 4px rgba(122,79,53,.14);}
  .cal-pin.clarif{background:var(--mocha);box-shadow:0 0 0 4px rgba(122,79,53,.14);}
  .cal-pin.pointes{background:var(--gold-soft);box-shadow:0 0 0 4px rgba(217,178,126,.16);}
  .cal-pin.retrait{background:#B5664A;box-shadow:0 0 0 4px rgba(181,102,74,.14);}
  .cal-rtx{flex:1;min-width:0;}
  .cal-rtx b{display:block;font-family:'Instrument Sans',sans-serif;font-weight:600;font-size:var(--fs-14);color:var(--espresso);line-height:1.3;}
  .cal-rtx span{font-size:var(--fs-12);color:var(--ink-soft);line-height:1.4;}
  .cal-when{flex:0 0 auto;text-align:right;padding-left:6px;}
  .cal-when b{font-family:'Fraunces',serif;font-weight:400;font-size:var(--fs-15);color:var(--mocha);line-height:1.1;white-space:nowrap;}
  .cal-when.soon b{color:var(--gold);}
  .cal-when span{display:block;font-size:var(--fs-10);letter-spacing:.06em;color:var(--ink-soft);margin-top:1px;}
  .cal-foot{padding:0 16px 15px;font-size:var(--fs-11);color:var(--ink-soft);line-height:1.5;}
  .cal-foot b{color:var(--mocha);font-weight:600;}

  /* === Coiffures protectrices selon texture (.hs-*) === */
  .hs-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);padding:0;margin-bottom:16px;overflow:hidden;box-shadow:var(--shadow-soft);}
  .hs-head{width:100%;display:flex;align-items:center;gap:13px;padding:17px 18px;background:none;border:none;font-family:inherit;cursor:pointer;text-align:left;color:var(--espresso);}
  .hs-head .hs-ico{flex:0 0 auto;width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(150deg,var(--sand),var(--cream));border:1px solid var(--line);}
  .hs-head .hs-ico svg{width:21px;height:21px;stroke:var(--mocha);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
  .hs-head .hs-tl{flex:1;min-width:0;}
  .hs-head .hs-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold);font-weight:600;}
  .hs-head .hs-t{font-family:'Fraunces',serif;font-weight:400;font-size:var(--fs-18);line-height:1.2;color:var(--espresso);margin-top:2px;}
  .hs-head .hs-t i{font-style:italic;color:var(--gold-soft);}
  .hs-head .hs-chev{flex:0 0 auto;color:var(--mocha);transition:transform .25s var(--ease-out);}
  .hs-head .hs-chev svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;display:block;}
  .hs-card.open .hs-chev{transform:rotate(180deg);}
  .hs-body{max-height:0;overflow:hidden;transition:max-height var(--d-slow) var(--ease-out);}
  .hs-card.open .hs-body{max-height:2600px;}
  .hs-bi{padding:0 18px 18px;}
  .hs-alert{display:flex;gap:12px;align-items:flex-start;background:linear-gradient(150deg,rgba(182,130,63,.13),rgba(217,178,126,.1));border:1px solid rgba(182,130,63,.4);border-radius:var(--radius-field);padding:14px 15px;margin-bottom:16px;}
  .hs-alert .hs-al-ic{flex:0 0 auto;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:rgba(182,130,63,.18);}
  .hs-alert .hs-al-ic svg{width:17px;height:17px;stroke:var(--gold);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
  .hs-alert .hs-al-tx{flex:1;min-width:0;}
  .hs-alert .hs-al-tx b{display:block;font-size:var(--fs-13);font-weight:600;color:var(--mocha);margin-bottom:3px;}
  .hs-alert .hs-al-tx span{display:block;font-size:var(--fs-12);line-height:1.5;color:var(--ink-soft);}
  .hs-alert .hs-al-tx em{font-style:normal;font-weight:600;color:var(--mocha);}

  /* ===== Garde-fou bien-être cuir chevelu (.hlth-*) ===== */
  .hlth{margin:6px 0 4px;border-radius:var(--radius-card);padding:20px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-soft);}
  .hlth .hlth-k{font-size:var(--fs-11);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--sage);font-weight:600;display:flex;align-items:center;gap:7px;}
  .hlth .hlth-k svg{width:15px;height:15px;stroke:var(--sage);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
  .hlth h3{font-family:'Fraunces',serif;font-weight:400;font-size:var(--fs-20);line-height:1.25;color:var(--espresso);margin:9px 0 4px;}
  .hlth .hlth-sub{font-size:var(--fs-13);line-height:1.5;color:var(--ink-soft);margin:0 0 14px;}
  .hlth-list{display:flex;flex-direction:column;gap:9px;}
  .hlth-opt{display:flex;align-items:flex-start;gap:12px;cursor:pointer;padding:12px 13px;border-radius:15px;border:1px solid var(--line);background:var(--cream);transition:border-color .2s,background .2s;user-select:none;position:relative;}
  .hlth-opt:hover,.hlth-opt:active{border-color:var(--gold-soft);background:#FBF3E6;}
  .hlth-opt input{position:absolute;opacity:0;width:0;height:0;}
  .hlth-box{flex:0 0 auto;width:21px;height:21px;border-radius:7px;margin-top:1px;border:1.7px solid var(--gold-soft);background:#fff;display:flex;align-items:center;justify-content:center;transition:background .18s,border-color .18s;}
  .hlth-box svg{width:13px;height:13px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.5);transition:opacity .18s,transform .18s var(--ease-out);}
  .hlth-opt input:checked ~ .hlth-box{background:var(--gold);border-color:var(--gold);}
  .hlth-opt input:checked ~ .hlth-box svg{opacity:1;transform:scale(1);}
  .hlth-opt input:checked ~ .hlth-tx{color:var(--espresso);}
  .hlth-opt input:focus-visible ~ .hlth-box{outline:2px solid var(--gold);outline-offset:2px;}
  .hlth-tx{font-size:var(--fs-14);line-height:1.4;color:var(--ink);flex:1;}
  .hlth-msg{max-height:0;overflow:hidden;opacity:0;transition:max-height var(--d-slow) var(--ease-out),opacity var(--d-base) var(--ease-out),margin var(--d-base) var(--ease-out);}
  .hlth-msg.show{max-height:340px;opacity:1;margin-top:15px;}
  .hlth-care{border-radius:var(--radius-field);padding:15px 16px;background:linear-gradient(160deg,rgba(110,139,91,.12),rgba(182,130,63,.10));border:1px solid rgba(110,139,91,.3);}
  .hlth-care p{font-size:var(--fs-13);line-height:1.55;color:var(--ink);margin:0;}
  .hlth-care p b{color:var(--espresso);}
  .hlth-cta{margin-top:13px;display:inline-flex;align-items:center;gap:7px;padding:11px 16px;border-radius:14px;text-decoration:none;background:var(--sage);color:var(--cream);font-family:inherit;font-size:var(--fs-13);font-weight:600;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease-out),box-shadow .2s;}
  .hlth-cta:hover{transform:translateY(-1px);box-shadow:var(--shadow);}
  .hlth-cta svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
  .hlth-calm{display:flex;align-items:center;gap:10px;border-radius:var(--radius-field);padding:14px 16px;background:var(--sand);border:1px solid var(--line);}
  .hlth-calm span{font-size:var(--fs-18);flex:0 0 auto;}
  .hlth-calm p{font-size:var(--fs-13);line-height:1.5;color:var(--ink-soft);margin:0;}
  .hlth-note{font-size:var(--fs-11);line-height:1.5;color:var(--ink-soft);text-align:center;margin:13px 4px 0;opacity:.8;}

  /* ===== Carte Ingrédients pour toi (.ingr-*) ===== */
  .ingr-card{padding:0;overflow:hidden;}
  .ingr-head{width:100%;display:flex;align-items:center;gap:12px;padding:16px 17px;background:none;border:none;font-family:inherit;cursor:pointer;text-align:left;color:var(--espresso);}
  .ingr-head .ingr-ic{flex:0 0 auto;width:38px;height:38px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:linear-gradient(155deg,var(--gold-soft),var(--gold));box-shadow:var(--shadow-sm);}
  .ingr-head .ingr-ic svg{width:19px;height:19px;stroke:var(--cream);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
  .ingr-head .ingr-ht{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
  .ingr-head .ingr-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold);font-weight:600;}
  .ingr-head .ingr-t{font-family:'Fraunces',serif;font-weight:400;font-size:var(--fs-16);line-height:1.2;color:var(--espresso);}
  .ingr-head .ingr-chev{flex:0 0 auto;color:var(--ink-soft);transition:transform .3s var(--ease-out);}
  .ingr-head .ingr-chev svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
  .ingr-head.open .ingr-chev{transform:rotate(180deg);}
  .ingr-body{max-height:0;overflow:hidden;transition:max-height .45s var(--ease-out);}
  .ingr-body.open{max-height:1600px;}
  .ingr-bi{padding:2px 17px 18px;}
  .ingr-intro{font-size:var(--fs-12);line-height:1.55;color:var(--ink-soft);margin:0 0 14px;}
  .ingr-intro b{color:var(--mocha);font-weight:600;}
  .ingr-sec{margin-top:6px;}
  .ingr-sec + .ingr-sec{margin-top:18px;}
  .ingr-sh{display:flex;align-items:center;gap:8px;font-size:var(--fs-11);letter-spacing:var(--track-kicker);text-transform:uppercase;font-weight:700;margin-bottom:10px;}
  .ingr-sh.allies{color:var(--sage);}
  .ingr-sh.limit{color:var(--mocha);}
  .ingr-sh .ingr-dot{width:7px;height:7px;border-radius:50%;display:inline-block;}
  .ingr-sh.allies .ingr-dot{background:var(--sage);}
  .ingr-sh.limit .ingr-dot{background:var(--gold);}
  .ingr-item{display:flex;gap:11px;padding:11px 13px;border-radius:14px;margin-bottom:8px;background:var(--cream);border:1px solid var(--line);}
  .ingr-item.lim{background:linear-gradient(180deg,#FBF1E4,#F8EAD6);border-color:rgba(182,130,63,.28);}
  .ingr-item .ingr-em{flex:0 0 auto;font-size:var(--fs-15);line-height:1.5;}
  .ingr-item .ingr-tx{flex:1;min-width:0;}
  .ingr-item .ingr-nm{font-weight:600;font-size:var(--fs-13);color:var(--espresso);line-height:1.3;}
  .ingr-item .ingr-ds{font-size:var(--fs-12);line-height:1.5;color:var(--ink-soft);margin-top:2px;}
  .ingr-item .ingr-ds em{font-style:normal;color:var(--mocha);font-weight:600;}
  .ingr-note{display:flex;gap:8px;margin-top:7px;padding:9px 11px;border-radius:11px;background:rgba(182,130,63,.10);border:1px dashed rgba(182,130,63,.4);}
  .ingr-note .ingr-ne{flex:0 0 auto;font-size:var(--fs-12);line-height:1.5;}
  .ingr-note .ingr-ntx{font-size:var(--fs-11);line-height:1.5;color:var(--mocha);}
  .ingr-foot{font-size:var(--fs-11);line-height:1.55;color:var(--ink-soft);margin-top:16px;padding-top:13px;border-top:1px solid var(--line);}
  .ingr-foot b{color:var(--espresso);font-weight:600;}
  .coachscroll{flex:1;overflow-y:auto;padding:16px 16px 18px;}
  .coachscroll::-webkit-scrollbar{display:none;}
  .ask{font-size:var(--fs-11);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold);font-weight:600;margin:20px 4px 12px;}

  .shelf-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);}
  .shelf-item:last-child{border-bottom:none;}
  .shelf-item .sw{width:36px;height:44px;border-radius:6px 6px 8px 8px;flex:0 0 auto;background:linear-gradient(160deg,var(--caramel),var(--mocha));position:relative;box-shadow:inset 0 -5px 9px -6px rgba(0,0,0,.4);}
  .shelf-item .sw::before{content:"";position:absolute;top:-4px;left:50%;transform:translateX(-50%);width:12px;height:6px;border-radius:3px 3px 0 0;background:var(--espresso);}
  .shelf-item .pi{flex:1;min-width:0;} .shelf-item .pi b{font-size:var(--fs-14);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} .shelf-item .pi span{font-size:var(--fs-12);color:var(--ink-soft);}
  .verdict{font-size:var(--fs-11);font-weight:700;padding:5px 10px;border-radius:14px;display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;}
  .verdict svg{width:13px;height:13px;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
  .verdict.ok{color:var(--v-ok);background:rgba(110,139,91,.16);} .verdict.ok svg{stroke:var(--v-ok);}
  .verdict.warn{color:var(--v-warn);background:rgba(201,120,60,.16);} .verdict.warn svg{stroke:var(--v-warn);}
  .verdict.bad{color:var(--v-bad);background:rgba(168,63,47,.14);} .verdict.bad svg{stroke:var(--v-bad);}

  /* compteur coiffure protectrice */
  .protect{display:flex;align-items:center;gap:16px;background:linear-gradient(150deg,var(--espresso),#3a2316);color:var(--cream);border-radius:20px;padding:17px;margin-bottom:16px;box-shadow:var(--shadow);}
  .protect .pring{width:62px;height:62px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--gold-soft) calc(var(--p,70)*1%), rgba(246,232,213,.18) 0);}
  .protect .pring i{width:50px;height:50px;border-radius:50%;background:var(--espresso);display:grid;place-items:center;font-family:'Fraunces',serif;font-size:var(--fs-18);color:var(--cream);font-style:normal;}
  .protect .pt b{font-size:var(--fs-15);display:block;} .protect .pt span{font-size:var(--fs-12);color:rgba(246,232,213,.8);line-height:1.45;display:block;margin-top:2px;}

  /* progrès */
  #progres .growth{position:relative;height:172px;margin:2px 0 4px;}
  .growth svg{width:100%;height:100%;overflow:visible;}
  .growth .gl{font-size:var(--fs-10);fill:var(--ink-soft);}
  .growth .gdot{fill:var(--mocha);} .growth .gdot.fut{fill:var(--gold);}
  .tlrow{display:flex;gap:11px;overflow-x:auto;padding:6px 2px 4px;margin:0 -2px;}
  .tlrow::-webkit-scrollbar{display:none;}
  .shot{flex:0 0 auto;width:90px;text-align:center;}
  .shot .im{width:90px;height:116px;border-radius:14px;position:relative;overflow:hidden;border:1px solid var(--line);
    background:radial-gradient(120% 80% at 60% 25%,rgba(168,116,74,.5),transparent 60%),conic-gradient(from 200deg at 55% 45%,#5a3c25,#2c1a0e,#6b4628,#2c1a0e,#5a3c25);}
  .shot.add .im{background:var(--sand);border:1.5px dashed var(--gold-soft);display:grid;place-items:center;cursor:pointer;}
  .shot.add .im svg{width:26px;height:26px;stroke:var(--mocha);fill:none;stroke-width:1.7;stroke-linecap:round;}
  .shot .cap{font-size:var(--fs-11);color:var(--ink-soft);margin-top:6px;}
  .shot .cap b{display:block;color:var(--espresso);font-size:var(--fs-12);}
  .journal{display:flex;gap:9px;}
  .jbtn{flex:1;border:1px solid var(--line);background:var(--card);border-radius:var(--radius-field);padding:13px 6px;font-family:inherit;cursor:pointer;text-align:center;transition:background-color .2s,border-color .2s,color .2s,transform .2s var(--ease-out),box-shadow .2s,opacity .2s;color:var(--ink-soft);}
  .jbtn .je{display:block;margin:0 auto 6px;width:24px;height:24px;stroke:var(--mocha);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
  .jbtn b{font-size:var(--fs-12);color:var(--espresso);}
  .jbtn.sel{background:linear-gradient(180deg,#fbf0df,var(--cream));border-color:var(--gold-soft);box-shadow:var(--shadow-sm);transform:translateY(-1px);}
  .jdone{text-align:center;font-size:var(--fs-13);color:#4F6B42;margin-top:13px;opacity:0;transition:opacity .3s;}
  .jdone.show{opacity:1;}

  /* scanner screen */
  #scan .pbody{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px 32px 30px;z-index:2;text-align:center;}
  /* halo or derrière le cadre : guide l'œil vers le héros */
  #scan{position:relative;}
  #scan::before{content:'';position:absolute;left:0;right:0;top:0;height:62%;background:radial-gradient(70% 46% at 50% 40%, rgba(217,178,126,.16), transparent 62%);pointer-events:none;z-index:1;}
  .scanframe{width:264px;height:188px;border-radius:22px;position:relative;margin:22px 0 24px;display:grid;place-items:center;
    background:radial-gradient(120% 120% at 50% 0%, rgba(246,232,213,.10), rgba(33,19,9,.20));
    box-shadow:inset 0 0 64px rgba(33,19,9,.55), 0 24px 50px -24px rgba(0,0,0,.6);}
  .scanframe .ghost{width:62px;height:62px;opacity:.22;}
  .scanframe .ghost svg{width:100%;height:100%;stroke:var(--gold-soft);fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;}
  .scanframe .frame-lbl{position:absolute;bottom:16px;left:0;right:0;text-align:center;font-size:var(--fs-11);letter-spacing:var(--track-kicker);text-transform:uppercase;color:rgba(217,178,126,.6);}
  .scanframe .tick{position:absolute;width:26px;height:26px;border:2.5px solid var(--gold-soft);box-shadow:0 0 10px rgba(217,178,126,.4);}
  .scanframe .tlk{top:16px;left:18px;border-right:none;border-bottom:none;border-radius:6px 0 0 0;}
  .scanframe .trk{top:16px;right:18px;border-left:none;border-bottom:none;border-radius:0 6px 0 0;}
  .scanframe .blk{bottom:16px;left:18px;border-right:none;border-top:none;border-radius:0 0 0 6px;}
  .scanframe .brk{bottom:16px;right:18px;border-left:none;border-top:none;border-radius:0 0 6px 0;}
  .scanframe .laser{position:absolute;left:14px;right:14px;height:2px;background:linear-gradient(90deg,transparent,var(--gold-soft),transparent);top:18%;box-shadow:0 0 12px rgba(217,178,126,.8);animation:scan 2.6s ease-in-out infinite;}
  .inci-input{width:100%;min-height:128px;border-radius:18px;border:1px solid rgba(246,232,213,.26);background:rgba(255,255,255,.06);color:var(--cream);font-family:'Instrument Sans',sans-serif;font-size:var(--fs-16);line-height:1.5;padding:14px 15px;outline:none;resize:none;margin:18px 0 2px;-webkit-appearance:none;}
  .inci-input::placeholder{color:rgba(246,232,213,.46);}
  .inci-input:focus{border-color:var(--gold-soft);background:rgba(255,255,255,.09);}

  .scan-cta{display:block;max-width:320px;margin:18px auto 0;}
  .scan-cta.is-loading{opacity:.72;cursor:wait;}.scan-cta.is-loading::after{animation:none;}
  .scan-retry{display:block;min-height:44px;margin:8px auto 0;padding:8px 18px;border:1px solid var(--gold-soft);border-radius:var(--radius-field);background:transparent;color:var(--cream);font:600 var(--fs-13) 'Instrument Sans',sans-serif;cursor:pointer;}
  .scan-retry:focus-visible{outline:2px solid var(--gold-lum);outline-offset:2px;}
  .scan-paste-link{display:block;margin:12px auto 0;background:none;border:none;cursor:pointer;font:inherit;font-size:var(--fs-13);color:rgba(246,232,213,.9);text-decoration:underline;text-underline-offset:3px;min-height:44px;}
  .scan-paste-link:active{opacity:.7;}
  /* repli "le code-barres ne marche pas ?" : un seul chemin visible, le reste se déplie */
  #scanMore{max-width:320px;margin:4px auto 0;display:flex;flex-direction:column;gap:2px;}
  #scanMore .scan-paste-link{margin:6px auto;}
  /* mode rayon en icône discrète dans la topbar */

  /* bottom sheet (résultat scan) */
  /* Plan 001 (Emil 14/07) : transitions INTERRUPTIBLES, plus de keyframes — rouvrir en plein vol
     repart de la position courante ; la fermeture existe (220 ms, plus vive que l'entrée 320 ms). */
  .sheet{position:absolute;inset:0;z-index:30;background:rgba(18,10,5,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:flex-end;
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .22s ease, visibility 0s linear .22s;}
  .sheet.show{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .3s ease;}
  .sheet .panel{width:100%;background:var(--sand);color:var(--ink);border-radius:28px 28px 0 0;padding:24px 24px 30px;box-shadow:0 -20px 50px -20px rgba(0,0,0,.5);max-height:90%;overflow-y:auto;
    transform:translateY(100%);transition:transform .22s var(--ease-in);}
  .sheet.show .panel{transform:translateY(0);transition:transform .32s var(--ease-drawer);}
  @media (prefers-reduced-motion:reduce){
    .sheet,.sheet.show{transition:opacity .15s ease, visibility 0s linear .15s;}
    .sheet .panel,.sheet.show .panel{transform:none;transition:none;}
  }
  .sheet .btn-share{color:var(--mocha);}
  .sheet .panel::-webkit-scrollbar{display:none;}
  .sheet .grip{width:44px;height:4px;border-radius:3px;background:rgba(108,72,42,.35);margin:0 auto 18px;}
  /* en-tête de fiche : décision utile avant la preuve chiffrée */
  .scan-head{background:var(--cream-bright);border:1px solid var(--hair);border-radius:var(--radius-card);padding:18px 18px 16px;margin-bottom:14px;box-shadow:var(--shadow-soft);}
  .scan-head .bigverdict{margin-bottom:0;}
  /* barre de score colorée sous le gros chiffre */
  .scorebar{height:5px;border-radius:99px;background:var(--line);overflow:hidden;margin:0;flex:1;}
  .scorebar i{display:block;height:100%;border-radius:99px;width:0;transition:width .55s cubic-bezier(.3,.9,.3,1);}
  .scorebar.ok i{background:var(--v-ok-s);} .scorebar.mid i{background:var(--v-warn-s);} .scorebar.bad i{background:var(--v-bad-s);}
  /* ligne "pour toi" : le pourquoi personnalisé, juste sous le verdict */
  .pourtoi{display:flex;gap:9px;align-items:flex-start;font-size:var(--fs-13);line-height:1.45;color:var(--ink);background:var(--cream);border-radius:var(--radius-field);padding:11px 13px;margin:14px 0 0;}
  .scan-facts{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:14px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);}
  .scan-fact{min-width:0;padding:10px 8px 10px 0;}.scan-fact+.scan-fact{padding-left:12px;border-left:1px solid var(--hair);}
  .scan-fact span,.scan-fact b{display:block;}.scan-fact span{font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--ink-faint);}
  .scan-fact b{margin-top:3px;font-size:var(--fs-12);line-height:1.35;color:var(--espresso);font-weight:600;}
  .scan-confidence.a_confirmer{color:var(--v-warn);}
  .scan-proof{margin:0;padding:5px 0 0;}
  .scan-proof-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--hair);}
  .scan-proof-row:last-child{border-bottom:0;}
  .scan-proof-row dt,.scan-proof-row dd{margin:0;font-size:var(--fs-11);line-height:1.4;}
  .scan-proof-row dt{color:var(--ink-faint);}
  .scan-proof-row dd{max-width:62%;color:var(--espresso);font-weight:600;text-align:right;}
  .scan-scoreline{display:flex;align-items:center;gap:12px;margin-top:12px;}
  .pourtoi .pt-ic{flex:0 0 auto;font-weight:700;}
  .pourtoi.ok .pt-ic{color:var(--v-ok);} .pourtoi.warn .pt-ic{color:var(--v-warn);} .pourtoi.bad .pt-ic{color:var(--v-bad);}
  .bigverdict{display:flex;align-items:center;gap:13px;margin-bottom:16px;}
  .bigverdict .bi{width:52px;height:52px;border-radius:15px;flex:0 0 auto;display:grid;place-items:center;}
  .bigverdict .bi svg{width:26px;height:26px;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
  .bigverdict.ok .bi{background:rgba(110,139,91,.18);} .bigverdict.ok .bi svg{stroke:var(--v-ok);}
  .bigverdict.warn .bi{background:rgba(217,160,60,.18);} .bigverdict.warn .bi svg{stroke:var(--v-warn);}
  .bigverdict.bad .bi{background:rgba(168,63,47,.16);} .bigverdict.bad .bi svg{stroke:var(--v-bad);} /* « à éviter » = bordeaux, distinct de « prudence » */
  .bigverdict .bt b{font-family:'Fraunces',serif;font-size:var(--fs-20);display:block;line-height:1.1;} .bigverdict .bt span{font-size:var(--fs-14);color:var(--ink-soft);}
  /* « pour toi · {Signature} 👑 · porosité {poro} » — discret, sous le label : la note est pour ELLE, pas universelle */
  .bigverdict .bt .bv-perso{display:block;margin-top:4px;font-size:var(--fs-12);font-weight:600;letter-spacing:.01em;color:var(--gold);opacity:.92;}
 /* note fusionnée au verdict, lisible d'un coup */
  .ingrow{display:flex;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid rgba(108,72,42,.08);font-size:var(--fs-13);}
  .ingrow:last-child{border-bottom:none;}
  /* pastilles d'ingrédient : cercles PLEINS colorés + glyphe blanc (rythme net en colonne) */
  .ingrow .id{width:24px;height:24px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-size:var(--fs-12);font-weight:700;color:#fff;}
  .ingrow .id.good{background:var(--v-ok-s);}
  .ingrow .id.warn{background:var(--v-warn-s);}
  .ingrow .id.bad{background:var(--v-bad-s);}
  .ingrow .id.na{background:#c9bdb0;}
  /* badge marque (scan) — informatif, ne change jamais la note */
  .brand-note{border-radius:14px;padding:11px 13px;margin:0 0 14px;font-size:var(--fs-13);line-height:1.45;}
  .brand-note.brand-bo{display:flex;align-items:center;gap:9px;background:rgba(217,178,126,.14);border:1px solid rgba(182,130,63,.28);color:var(--mocha);font-weight:600;}
  .brand-note.brand-bo .bo-ic{font-size:var(--fs-18);flex:0 0 auto;}
  .brand-note.brand-warn{background:rgba(168,63,47,.08);border:1px solid rgba(168,63,47,.22);}
  .brand-note.brand-warn b{display:block;color:#a23f2f;margin-bottom:3px;}
  .brand-note.brand-warn p{margin:0;color:var(--ink);}
  /* ---- COMPARER 2 PRODUITS ---- */
  .cmp-banner{display:flex;align-items:center;gap:10px;background:rgba(217,178,126,.16);border:1px solid rgba(182,130,63,.34);border-radius:14px;padding:11px 13px;margin:2px 0 16px;}
  .cmp-banner-l{flex:1;min-width:0;} .cmp-banner-l b{display:block;font-size:var(--fs-14);color:#f3e7d4;} .cmp-banner-l span{display:block;font-size:var(--fs-12);color:rgba(243,231,212,.7);margin-top:1px;}
  .cmp-banner-x{flex:0 0 auto;width:30px;height:30px;border-radius:50%;border:none;background:rgba(255,255,255,.1);color:#f3e7d4;font-size:var(--fs-14);cursor:pointer;}
  .cmp-h{text-align:center;margin:4px 0 16px;} .cmp-h b{font-family:'Fraunces',serif;font-size:var(--fs-22);display:block;color:var(--ink);} .cmp-h span{font-size:var(--fs-13);color:var(--ink-soft);}
  .cmp-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .cmp-col{position:relative;background:#fff;border:1px solid #ece3d8;border-radius:18px;padding:18px 12px 16px;text-align:center;box-shadow:0 6px 20px rgba(33,19,9,.05);}
  .cmp-col.cmp-best{border-color:rgba(182,130,63,.5);box-shadow:0 8px 26px rgba(182,130,63,.18);}
  .cmp-crown{position:absolute;top:-12px;left:50%;transform:translateX(-50%);font-size:var(--fs-22);}
  .cmp-nom{font-size:var(--fs-13);font-weight:600;color:var(--ink);line-height:1.25;min-height:32px;display:flex;align-items:center;justify-content:center;}
  .cmp-score{font-family:'Fraunces',serif;margin:8px 0 6px;} .cmp-score b{font-size:34px;line-height:1;} .cmp-score span{font-size:var(--fs-13);color:var(--ink-soft);}
  .cmp-score.ok b{color:var(--v-ok);} .cmp-score.mid b{color:var(--v-warn);} .cmp-score.bad b{color:var(--v-bad);}
  .cmp-verd{display:inline-block;font-size:var(--fs-12);font-weight:700;border-radius:99px;padding:3px 11px;}
  .cmp-verd.ok{color:var(--v-ok);background:rgba(110,139,91,.16);} .cmp-verd.mid{color:var(--v-warn);background:rgba(201,120,60,.16);} .cmp-verd.bad{color:var(--v-bad);background:rgba(168,63,47,.14);}
  .cmp-sub{font-size:var(--fs-12);color:var(--ink-soft);margin-top:8px;}
  .cmp-win{text-align:center;margin:18px 0 4px;} .cmp-win b{font-family:'Fraunces',serif;font-size:var(--fs-18);display:block;color:var(--ink);} .cmp-win p{margin:5px 0 0;font-size:var(--fs-13);line-height:1.5;color:var(--ink-soft);}
  /* scanner caméra en direct (plein écran) */
  .livescan{position:fixed;inset:0;z-index:1000;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;}
  .livescan video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  .livescan .ls-frame{position:relative;z-index:2;width:78%;max-width:320px;height:180px;border:2px solid rgba(246,232,213,.85);border-radius:18px;box-shadow:0 0 0 9999px rgba(0,0,0,.45);}
  .livescan .ls-laser{position:absolute;left:6%;right:6%;top:50%;height:2px;background:linear-gradient(90deg,transparent,var(--gold-soft),transparent);animation:lsLaser 1.8s ease-in-out infinite;}
  @keyframes lsLaser{0%,100%{top:14%}50%{top:86%}}
  .livescan .ls-hint{position:relative;z-index:2;color:var(--cream);font-size:var(--fs-15);text-align:center;max-width:300px;margin:22px 18px 0;text-shadow:0 2px 12px rgba(0,0,0,.7);}
  .livescan .ls-photo{position:relative;z-index:2;margin-top:18px;background:rgba(246,232,213,.14);border:1px solid rgba(246,232,213,.4);color:var(--cream);border-radius:14px;padding:12px 18px;font:inherit;font-size:var(--fs-14);font-weight:600;cursor:pointer;}
  .livescan .ls-close{position:absolute;top:max(16px,env(safe-area-inset-top,0px));right:18px;z-index:3;background:rgba(0,0,0,.45);border:1px solid rgba(246,232,213,.4);color:var(--cream);border-radius:99px;padding:9px 14px;font:inherit;font-size:var(--fs-13);font-weight:600;cursor:pointer;}
  @media (prefers-reduced-motion:reduce){ .livescan .ls-laser{animation:none;top:50%;} }
  .ingrow b{font-size:var(--fs-13);} .ingrow span{font-size:var(--fs-12);color:var(--ink-soft);display:block;}
  /* fenêtre générique (bottom-sheet) — contenu */
  .sheet-head{display:flex;align-items:center;gap:13px;margin-bottom:15px;}
  .sheet-head .sw{width:46px;height:54px;border-radius:7px 7px 9px 9px;flex:0 0 auto;background:linear-gradient(160deg,var(--caramel),var(--mocha));position:relative;box-shadow:inset 0 -5px 9px -6px rgba(0,0,0,.4);}
  .sheet-head .sw::before{content:"";position:absolute;top:-5px;left:50%;transform:translateX(-50%);width:14px;height:7px;border-radius:3px 3px 0 0;background:var(--espresso);}
  .sheet-head .sheet-ht b{font-family:'Fraunces',serif;font-weight:400;font-size:var(--fs-20);color:var(--espresso);display:block;line-height:1.12;}
  .sheet-head .sheet-ht span{font-size:var(--fs-14);color:var(--ink-soft);}
  .sheet-p{font-size:var(--fs-14);color:var(--ink-soft);line-height:1.55;margin-bottom:16px;}
  /* moment d'analyse */
  .analyzing{position:absolute;inset:0;z-index:7;display:none;flex-direction:column;align-items:center;justify-content:center;gap:26px;padding:0 28px;
    background:radial-gradient(circle at 50% 40%, #241509 0%, #16100a 60%, #0d0906 100%);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);}
  .analyzing.show{display:flex;animation:fade .3s both;}
  .an-ring{width:66px;height:66px;border-radius:50%;border:2.5px solid rgba(217,178,126,.22);border-top-color:var(--gold-soft);animation:spin 1s linear infinite;}
  /* ligne dorée qui balaie le haut→bas, illusion "Face ID" du scan */
  .an-scan{position:absolute;left:0;right:0;top:0;height:130px;pointer-events:none;
    background:linear-gradient(180deg, transparent, rgba(217,178,126,.42) 48%, rgba(246,232,213,.6) 50%, rgba(217,178,126,.42) 52%, transparent);
    animation:anSweep 2.1s cubic-bezier(.45,.05,.55,.95) infinite;}
  @keyframes anSweep{0%{transform:translateY(-130px);opacity:0}10%{opacity:1}90%{opacity:1}100%{transform:translateY(100vh);opacity:0}}
  @media (prefers-reduced-motion: reduce){ .an-scan{display:none;} }
  .an-txt{font-family:'Fraunces',serif;font-size:var(--fs-18);line-height:1.45;color:var(--cream);font-style:italic;text-align:center;max-width:300px;min-height:52px;transition:opacity .25s;text-wrap:balance;}
  /* affordance "ça s'ouvre" */
  .prod,.shelf-item,.step{cursor:pointer;transition:transform var(--d-fast) var(--ease-out);}
  .prod:active,.shelf-item:active,.step:active{transform:scale(.99);}
  /* wash day cochable */
  .wd-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;}
  .wd-prog{font-family:'Fraunces',serif;font-size:var(--fs-13);color:var(--mocha);}
  .wd-bar{height:5px;border-radius:3px;background:var(--sand-2);overflow:hidden;margin-bottom:2px;}
  .wd-bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold-soft),var(--gold));border-radius:3px;transition:width .5s var(--ease-out);}
  .step{align-items:center;}
  .step .d{flex:1;min-width:0;}
  .step .no{background:var(--sand-2);color:var(--mocha);border:1.5px solid var(--line);box-shadow:none;position:relative;transition:background var(--d-base) var(--ease-out),color var(--d-base),border-color var(--d-base);}
  .step.done .no{background:linear-gradient(150deg,var(--sage),var(--sage-deep));border-color:var(--sage-deep);color:transparent;}
  .step.done .no::after{content:"";position:absolute;left:50%;top:47%;width:11px;height:6px;border-left:2.4px solid #fff;border-bottom:2.4px solid #fff;transform:translate(-50%,-50%) rotate(-45deg);}
  .step.done .d b{color:var(--ink-soft);text-decoration:line-through;text-decoration-color:rgba(107,87,66,.45);}
  .step.done .d p{opacity:.55;}
  .step-info{flex:0 0 auto;width:30px;height:30px;border-radius:50%;border:none;background:none;color:var(--ink-soft);cursor:pointer;display:grid;place-items:center;opacity:.5;transition:opacity .2s,transform var(--d-fast) var(--ease-out);}
  .step-info:hover{opacity:1;} .step-info:active{transform:scale(.9);}
  .step-info svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
  /* anneau réutilisable (hydratation, objectif) */
  .ring{border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:conic-gradient(var(--gold) calc(var(--p,70)*1%), var(--sand-2) 0);}
  .ring i{border-radius:50%;background:var(--card);display:grid;place-items:center;font-family:'Fraunces',serif;font-style:normal;color:var(--mocha);box-shadow:inset 0 1px 0 rgba(255,255,255,.5);}
  .ring.big{width:86px;height:86px;} .ring.big i{width:70px;height:70px;font-size:var(--fs-20);}
  .hydro{display:flex;align-items:center;gap:18px;}
  .hydro-tx .kicker{margin-bottom:3px;} .hydro-tx b{font-family:'Fraunces',serif;font-weight:400;font-size:var(--fs-18);color:var(--espresso);display:block;} .hydro-tx p{font-size:var(--fs-14);color:var(--ink-soft);margin-top:3px;line-height:1.45;}
  /* slider avant / après */
  .ba{position:relative;height:206px;border-radius:var(--radius-field);overflow:hidden;border:1px solid var(--line);user-select:none;touch-action:none;cursor:ew-resize;}
  .ba-after,.ba-before{position:absolute;inset:0;}
  .ba-after{background:radial-gradient(120% 80% at 60% 20%,rgba(180,128,82,.55),transparent 60%),conic-gradient(from 210deg at 55% 45%,#6b4a2e,#33200f,#7a5430,#33200f,#6b4a2e);}
  .ba-before{clip-path:inset(0 50% 0 0);background:radial-gradient(120% 80% at 60% 20%,rgba(120,82,52,.5),transparent 60%),conic-gradient(from 160deg at 50% 50%,#4a3120,#241408,#523620,#241408,#4a3120);}
  .ba-handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--cream);transform:translateX(-1px);z-index:3;box-shadow:0 0 0 1px rgba(0,0,0,.15);}
  .ba-handle span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;background:var(--cream);box-shadow:0 4px 12px -4px rgba(0,0,0,.5);display:grid;place-items:center;}
  .ba-handle span::before{content:"‹ ›";font-size:var(--fs-13);color:var(--mocha);letter-spacing:1px;}
    /* avant/après VERROUILLÉ (gratuit) : la transformation est là,floutée{cursor:default;}

  .ba-lbl{position:absolute;bottom:11px;z-index:2;font-size:var(--fs-11);font-weight:600;color:var(--cream);background:rgba(20,11,6,.5);padding:5px 10px;border-radius:14px;backdrop-filter:blur(4px);}
  .ba-lbl-l{left:11px;} .ba-lbl-r{right:11px;}
  /* état vide */
  .empty{text-align:center;padding:20px 12px 8px;}
  .empty svg{width:30px;height:30px;stroke:var(--gold);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin-bottom:10px;}
  .empty-tx{font-size:var(--fs-13);color:var(--ink-soft);margin-bottom:14px;line-height:1.5;max-width:240px;margin-left:auto;margin-right:auto;}
  /* produits : liste ordonnée compacte + réordonnable */
  .prod2{display:flex;flex-wrap:wrap;align-items:center;gap:4px 9px;padding:9px 2px;border-bottom:1px solid var(--line);cursor:pointer;transition:background var(--d-fast) var(--ease-out),opacity var(--d-base) var(--ease-out),transform var(--d-base) var(--ease-out);}
  .prod2.removing{opacity:0;transform:translateX(24px);}
  .prod-x{flex:0 0 auto;width:26px;height:26px;border-radius:50%;border:none;background:none;color:var(--ink-soft);cursor:pointer;display:grid;place-items:center;opacity:.45;transition:opacity var(--d-fast) var(--ease-out),color var(--d-fast),background var(--d-fast);}
  .prod-x svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;}
  .prod-x:hover{opacity:1;background:rgba(139,44,58,.1);color:#8B2C3A;}
  .prod2:last-of-type{border-bottom:none;}
  .prod2.dragging{background:var(--sand);border-radius:12px;border-bottom-color:transparent;box-shadow:var(--shadow-sm);}
  .prod-no{width:22px;height:22px;border-radius:50%;background:var(--sand-2);color:var(--mocha);font-family:'Fraunces',serif;font-size:var(--fs-12);display:grid;place-items:center;flex:0 0 auto;}
  /* vignette produit (visuel par famille à côté de chaque produit conseillé) */
  .prod-thumb{width:38px;height:38px;border-radius:10px;flex:0 0 auto;display:grid;place-items:center;overflow:hidden;background:linear-gradient(150deg,var(--sand),var(--cream));}
  .prod-thumb img{width:100%;height:100%;object-fit:cover;}
  .prod-thumb svg{width:19px;height:19px;fill:none;stroke:var(--mocha);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}

  .prod2 .pi{flex:1 1 100%;min-width:0;} /* nom en pleine ligne : prix+grip+croix passent dessous, alignés à droite — cohérent pour toutes les lignes (avant : wrap aléatoire selon la longueur du nom) */ .prod2 .pi b{font-size:var(--fs-14);display:block;white-space:normal;overflow-wrap:break-word;line-height:1.3;} .prod2 .pi span{font-size:var(--fs-11);color:var(--ink-soft);}
  .prod2 .pr{font-family:'Fraunces',serif;font-size:var(--fs-15);color:var(--mocha);flex:0 0 auto;margin-left:auto;}
  .prod-grip{flex:0 0 auto;width:28px;height:28px;border:none;background:none;color:var(--ink-soft);cursor:grab;display:grid;place-items:center;opacity:.45;touch-action:none;}
  .prod-grip:active{cursor:grabbing;opacity:.8;}
  .prod-grip i{display:block;width:14px;height:2px;border-radius:1px;background:currentColor;box-shadow:0 5px 0 currentColor,0 -5px 0 currentColor;}
  .addprod{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:13px;padding:11px;border-radius:14px;border:1.5px dashed var(--gold-soft);background:none;color:var(--mocha);font-family:inherit;font-size:var(--fs-14);font-weight:600;cursor:pointer;transition:background var(--d-fast) var(--ease-out),transform var(--d-fast);}
  .addprod:hover{background:rgba(182,130,63,.06);} .addprod:active{transform:scale(.99);}
  .addprod svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;}
  /* ===== ACCUEIL EN 3 ZONES NOMMÉES (Aujourd'hui / Cette semaine / Mes produits) ===== */
  .home-zone{margin:0 0 6px;}
  .zone-head{display:flex;align-items:center;gap:8px;margin:18px 2px 10px;font-family:'Instrument Sans',sans-serif;font-weight:700;font-size:var(--fs-12);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold);}
  .zone-head::before{content:"";flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:var(--gold-soft);}
  .home-zone:first-child .zone-head{margin-top:6px;}
  /* Installation PWA : secours Instagram immédiat, guide Safari seulement après une première valeur. */
  .iab-guide{position:fixed;left:12px;right:12px;bottom:max(84px,calc(72px + env(safe-area-inset-bottom)));z-index:9999;display:flex;align-items:center;gap:11px;max-width:520px;margin:0 auto;padding:12px 12px 12px 14px;border:1px solid rgba(217,178,126,.45);border-radius:var(--radius-field);background:var(--espresso);color:var(--cream);box-shadow:var(--shadow-card);}
  .iab-guide[hidden]{display:none;}
  .iab-guide-icon{display:grid;place-items:center;width:44px;height:44px;flex:0 0 auto;border-radius:50%;background:rgba(217,178,126,.14);color:var(--gold-soft);}
  .iab-guide-icon svg{width:22px;height:22px;}
  .iab-guide-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:2px;font-size:var(--fs-12);line-height:1.4;color:rgba(246,232,213,.78);}
  .iab-guide-copy strong{font-family:'Fraunces',serif;font-size:var(--fs-16);font-weight:500;color:var(--cream);}
  .iab-guide-close{width:44px;height:44px;flex:0 0 auto;border:0;background:transparent;color:var(--gold-soft);font:400 var(--fs-22) 'Instrument Sans',sans-serif;}
  .install-card{margin:18px 0 12px;padding:18px 0 4px;border-top:1px solid var(--hair);background:transparent;color:var(--ink);}
  .install-head{display:flex;align-items:flex-start;gap:12px;}
  .install-mark{display:grid;place-items:center;width:40px;height:40px;flex:0 0 auto;border-radius:50%;background:var(--cream);color:var(--gold-deep);}
  .install-mark svg{width:23px;height:23px;}
  .install-copy{min-width:0;flex:1;}.install-title{font-family:'Fraunces',serif;font-size:var(--fs-16);font-weight:500;text-wrap:balance;}.install-copy p{margin-top:3px;font-size:var(--fs-12);line-height:1.45;color:var(--ink-soft);text-wrap:pretty;}
  .install-steps{display:flex;flex-wrap:wrap;gap:5px 16px;margin:12px 0 0;padding:0;list-style:none;counter-reset:install-step;}
  .install-steps li{display:flex;align-items:center;min-height:36px;gap:7px;font-size:var(--fs-11);line-height:1.35;color:var(--ink-soft);counter-increment:install-step;}
  .install-steps li::before{content:counter(install-step);display:grid;place-items:center;width:22px;height:22px;flex:0 0 auto;border:1px solid var(--line);border-radius:50%;color:var(--gold-deep);font-weight:600;}
  .install-later{min-height:44px;margin-top:0;padding:0;border:0;background:transparent;color:var(--ink-faint);font:600 var(--fs-11) 'Instrument Sans',sans-serif;text-decoration:underline;text-underline-offset:3px;}
  /* Signalement bêta : choix fermés uniquement, aucune zone de texte personnelle. */
  .report-intro{text-wrap:pretty;}
  .report-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0 12px;}
  .report-choice{min-height:52px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-field);background:var(--card);color:var(--ink);font:500 var(--fs-13) 'Instrument Sans',sans-serif;text-align:left;transition:background var(--d-fast),border-color var(--d-fast),transform var(--d-fast) var(--ease-out);}
  .report-choice:active{transform:scale(.98);}.report-choice.on{border-color:var(--gold-deep);background:var(--cream);box-shadow:inset 0 0 0 1px var(--gold-deep);}
  .report-privacy{margin:4px 0 10px;padding-top:10px;border-top:1px solid var(--hair);font-size:var(--fs-11);line-height:1.45;color:var(--ink-soft);}
  .report-status{min-height:22px;margin:0 0 8px;font-size:var(--fs-12);line-height:1.4;color:var(--ink-soft);}.report-status.ok{color:var(--v-ok);}.report-status.error{color:var(--v-bad);}
  @media(max-width:340px){.report-choices{grid-template-columns:1fr;}}
  /* desktop : Accueil COMPOSÉ — 1 colonne (mobile) → grille sémantique 2 colonnes (≥880px).
     Mobile : scène → cap → premiers pas → déclaration → conseil → installation.
     Desktop : scène à gauche, cap à droite ; les suites restent sous leur colonne. */
  #result .home-flow{display:block;} /* mobile : flux naturel, ordre DOM = contrat */
  @media(min-width:880px){
    /* Grille 2 colonnes : AGIR (gauche) / VOIR (droite) — enfants directs placés explicitement */
    #result .home-flow{display:grid;grid-template-columns:1.42fr 1fr;gap:34px;max-width:1120px;margin:18px auto 0;padding:0 24px;align-items:start;}
    /* zone1 (Aujourd'hui) : col gauche / ligne 1 */
    #result .home-flow > .home-zone:nth-child(1){grid-column:1;grid-row:1;margin:0 0 22px;}
    #result .home-flow > #planJourHost{grid-column:2;grid-row:1;}
    #result .home-flow > #premiersPasHost{grid-column:1;grid-row:2;}
    #result .home-flow > #checkHost{grid-column:1;grid-row:3;}
    /* Le conseil secondaire reste sous le cap, jamais sous l'action principale. */
    #result .home-flow > #conseilsHost{grid-column:2;grid-row:2;}
    /* #installHost : instructions « écran d'accueil » = mobile ; sur ordi la carte est hors contexte
       (!important : renderInstall() pose display:'' en inline) */
    #result .home-flow > .sig-install-foot{display:none !important;}
    /* Zones : zone-head sans marge top, cards sans padding latéral */
    #result .home-flow > .home-zone > .zone-head{margin-top:0;}
    #result .home-flow > .home-zone > .content,
    #result .home-flow > .home-zone .card{max-width:none;margin:0 0 18px;padding-left:0;padding-right:0;}
  }

  /* ============ PREMIUM PASS v2 — motion, type, desktop, rétention ============ */
  :root{
    --ease-out:cubic-bezier(.16,1,.3,1);
    --ease-in:cubic-bezier(.7,0,.84,0);
    --ease-drawer:cubic-bezier(.32,.72,0,1); /* courbe tiroir iOS (Ionic) — les feuilles */
    --ease-soft:cubic-bezier(.4,0,.2,1);
    --spring:cubic-bezier(.34,1.4,.64,1);
    --d-fast:180ms; --d-base:260ms; --d-slow:440ms;
  }
    /* typo premium : optical sizing Fraunces + kickers éditoriaux resserrés */
  .logo,.pc-type,.q-title,.appbar .t,.gjour h3,.tagline,.sb-logo,.bigverdict .bt b{font-optical-sizing:auto;}
  /* V1d — typo de détail : chiffres tabulaires (les compteurs ne « sautent » plus), titres équilibrés (pas de mot orphelin) */
  .streak b,.hh-streak b,.wm-ring-txt b,.et-h .n{font-variant-numeric:tabular-nums;}
  .hh-hi,.q-title,.gjour h3,.seq-h b{text-wrap:balance;}
  .logo{font-variation-settings:'opsz' 144,'SOFT' 60;letter-spacing:-.03em;}
    .pc-type{font-variation-settings:'opsz' 144,'SOFT' 55;}
  .q-title{font-variation-settings:'opsz' 80,'SOFT' 50;}
  .eyebrow,.kicker,.ask,.gk,.pc-kicker,.save .kk{font-feature-settings:'ss01';}

  .streak{display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--line);padding:8px 13px;border-radius:20px;box-shadow:var(--shadow-sm);flex:0 0 auto;}
  .streak svg{width:16px;height:16px;stroke:var(--gold);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
  .streak b{font-family:'Fraunces',serif;font-size:var(--fs-15);color:var(--mocha);} .streak span{font-size:var(--fs-10);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;}

  .hh-hi{font-family:'Fraunces',serif;font-weight:400;font-size:28px;color:var(--espresso);letter-spacing:-.015em;line-height:1.05;}
  .hh-sub{font-size:var(--fs-13);color:var(--ink-soft);margin-top:7px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;line-height:1.4;}
  .hh-streak{display:inline-flex;align-items:center;gap:5px;color:var(--mocha);font-weight:600;}
  .hh-streak::before{content:"";width:3px;height:3px;border-radius:50%;background:var(--ink-soft);opacity:.55;margin-right:2px;}
  .hh-streak svg{width:14px;height:14px;stroke:var(--gold);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
  .hh-streak b{font-family:'Fraunces',serif;font-weight:500;}
  /* palier de couronne (à vie) : la couronne du header prend la couleur du palier */
  .hh-tier svg, .ed-hero .hh-tier svg{stroke:currentColor;}
  .hh-tier b{color:inherit;}
  /* carte palier de l'écran Progrès */
  .crown-card .crown-name{display:block;font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-20);margin-top:2px;}
  .crown-card .crown-count{margin:2px 0 0;font-size:var(--fs-13);color:var(--ink-soft);}
  .crown-card .crown-bar{height:8px;border-radius:99px;background:rgba(108,72,42,.12);overflow:hidden;margin:10px 0 6px;}
  .crown-card .crown-bar i{display:block;height:100%;border-radius:99px;background:var(--gold);transition:width .8s var(--ease-out);}
  .crown-card .crown-next{margin:0;font-size:var(--fs-13);color:var(--mocha);font-weight:600;}
  .crown-card .crown-note{margin:7px 0 0;font-size:var(--fs-12);color:var(--ink-soft);opacity:.8;}
  /* le tiroir de Naya : un bouton-mystère après le check, contenu révélé au tap */
  .tiroir-btn{display:block;margin-top:10px;color:var(--gold);font-weight:600;}
  .tiroir-tip{margin-top:10px;padding:10px 12px;border-radius:12px;background:rgba(217,178,126,.14);border:1px solid rgba(182,130,63,.25);}
  /* ── Vague 3 : le mouvement comme un rituel précieux ── */
  /* la réponse LIVE de Naya entre comme une confidence : montée douce + halo doré qui s'éteint */
  .bub.her.live{transition:opacity .55s var(--ease-out),transform .55s var(--ease-out);transform:translateY(14px) scale(.985);}
  .bub.her.live.in{animation:nayaGlow 1.3s ease-out .1s 1;}
  @keyframes nayaGlow{
    0%{box-shadow:0 8px 20px -14px rgba(58,35,18,.45);}
    35%{box-shadow:0 10px 30px -8px rgba(217,178,126,.6),0 0 0 1px rgba(217,178,126,.35);}
    100%{box-shadow:0 8px 20px -14px rgba(58,35,18,.45);}
  }
  /* le check se retourne en vraie 3D : Naya répond au verso de la carte */
  .check-card{transition:transform .23s var(--ease-out);will-change:transform;}
  .check-card.flip3d{transform:perspective(720px) rotateY(90deg);}

  @keyframes flipIn{from{transform:perspective(720px) rotateY(-86deg);}to{transform:perspective(720px) rotateY(0);}}
  /* la couronne-médaille : elle tourne sur elle-même puis flotte, comme remise en main propre */
  .crown3d-stage{perspective:640px;display:flex;justify-content:center;}
  .crown3d{font-size:58px;line-height:1;transform-style:preserve-3d;
    animation:crownSpin 1.5s cubic-bezier(.2,.8,.25,1) both, crownFloat 3.4s ease-in-out 1.6s infinite;}
  @keyframes crownSpin{0%{transform:rotateY(0) scale(.25);opacity:0;}45%{opacity:1;}100%{transform:rotateY(720deg) scale(1);opacity:1;}}
  @keyframes crownFloat{0%,100%{transform:translateY(0) rotateY(0);}50%{transform:translateY(-7px) rotateY(14deg);}}
  @media (prefers-reduced-motion:reduce){
    .crown3d{animation:none;}
    .bub.her.live{transition:none;transform:none;}
    .bub.her.live.in{animation:none;}
    .check-card, .check-card.flip3d{transition:none;transform:none;}

  }

  .hh-actions{display:flex;align-items:center;gap:10px;margin-top:2px;}
  .hh-scan{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--card);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--d-fast) var(--ease-out);flex:0 0 auto;}
  .hh-scan:active{transform:scale(.92);}
  .hh-scan svg{width:20px;height:20px;stroke:var(--mocha);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}

  .dc-coils{opacity:.5;mix-blend-mode:soft-light;
    background:
      repeating-radial-gradient(circle at 32% 28%, rgba(0,0,0,.55) 0 1.5px, transparent 1.5px 6px),
      repeating-radial-gradient(circle at 72% 64%, rgba(0,0,0,.5) 0 1.5px, transparent 1.5px 7px),
      repeating-radial-gradient(circle at 48% 92%, rgba(0,0,0,.45) 0 1.5px, transparent 1.5px 8px);}

  .dc-vig{box-shadow:inset 0 -70px 80px -30px rgba(13,7,3,.92), inset 0 34px 60px -30px rgba(13,7,3,.5);}

  @keyframes dcSheen{0%{transform:translateX(-130%) rotate(8deg);}55%,100%{transform:translateX(470%) rotate(8deg);}}

  /* carte profil compacte (Accueil) */
  .profcard{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:15px 16px;box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.6);margin-bottom:16px;}
  .profcard-thumb{width:62px;height:62px;border-radius:14px;flex:0 0 auto;position:relative;overflow:hidden;background:radial-gradient(120% 90% at 60% 20%, rgba(168,116,74,.5), transparent 60%), linear-gradient(155deg,#5e4029,#1b0f08);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);}
  .profcard-thumb i{position:absolute;inset:0;display:block;}
  .profcard-info{flex:1;min-width:0;}
  .profcard-name{font-family:'Fraunces',serif;font-weight:400;font-size:30px;line-height:1;color:var(--espresso);margin:3px 0 5px;letter-spacing:-.01em;}
  .profcard-sub{font-size:var(--fs-14);color:var(--ink-soft);}
  .profcard-conf{margin-top:0;flex:0 0 auto;align-self:flex-start;}

  /* prénom — champ onboarding */
  .nameField{width:100%;padding:17px 18px;border-radius:17px;border:1px solid rgba(246,232,213,.28);background:rgba(255,255,255,.07);color:var(--cream);font-family:'Fraunces',serif;font-size:var(--fs-22);outline:none;backdrop-filter:blur(5px);transition:border-color var(--d-base) var(--ease-out),background var(--d-base) var(--ease-out);}
  .nameField::placeholder{color:rgba(246,232,213,.45);font-style:italic;}
  .nameField:focus{border-color:var(--gold-soft);background:rgba(255,255,255,.12);}
  .actions{margin-top:26px;}

  /* ============ ÉCRAN CONNEXION — éditorial KROWN (cohérent landing) ============ */
  #login{background:var(--espresso);padding:0;}
  #login .lgx-back{position:absolute;top:max(14px,calc(env(safe-area-inset-top,0px) + 10px));left:14px;z-index:6;
    width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    border:1px solid rgba(246,232,213,.3);background:rgba(20,12,6,.34);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
    color:var(--cream);font-size:26px;line-height:1;cursor:pointer;transition:background .2s,transform .12s var(--ease-out);}
  #login .lgx-back:hover{background:rgba(20,12,6,.5);}
  #login .lgx-back:active{transform:scale(.92);}
  #login .lgx-card{flex:1 1 auto;display:flex;flex-direction:column;min-height:100%;}
  /* photo hero (écho à la landing) */
  #login .lgx-photo{position:relative;flex:0 0 auto;height:40vh;min-height:280px;max-height:380px;overflow:hidden;}
  #login .lgx-photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%;
    animation:lgxKen 20s ease-in-out infinite alternate;}
  #login .lgx-veil{position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(180deg,rgba(33,19,9,.34) 0%,rgba(33,19,9,0) 30%,rgba(33,19,9,.5) 72%,var(--espresso) 100%);}
  #login .lgx-crest{position:absolute;left:0;right:0;bottom:34px;z-index:2;
    display:flex;flex-direction:column;align-items:center;gap:11px;}
  #login .lgx-crest svg{width:50px;height:46px;filter:drop-shadow(0 8px 20px rgba(0,0,0,.5));}
  #login .lgx-word{font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-18);letter-spacing:.4em;padding-left:.4em;
    color:var(--cream);text-shadow:0 2px 16px rgba(0,0,0,.55);}
  /* panneau crème */
  #login .lgx-sheet{flex:1 1 auto;position:relative;z-index:3;margin-top:-26px;
    background:linear-gradient(180deg,var(--cream),#F1E2CB);border-radius:30px 30px 0 0;
    box-shadow:0 -18px 44px -22px rgba(0,0,0,.45);
    padding:34px 26px calc(38px + env(safe-area-inset-bottom,0px));}
  #login .lgx-inner{max-width:382px;margin:0 auto;text-align:center;}
  #login .lgx-eyebrow{display:block;color:var(--mocha);margin-bottom:9px;}
  #login .lgx-title{font-family:'Fraunces',serif;font-weight:400;font-size:32px;line-height:1.04;color:var(--espresso);margin:0;}
  #login .lgx-title em{font-style:italic;color:var(--gold);}
  #login .lgx-welcome{font-size:var(--fs-14);line-height:1.55;color:var(--ink-soft);margin:11px auto 0;max-width:300px;}
  /* champs clairs & lisibles (scopés — n'affecte pas .nameField global) */
  #login .lgx-fields{display:flex;flex-direction:column;gap:11px;margin-top:24px;text-align:left;}
  #login .nameField{font-family:'Instrument Sans',sans-serif!important;font-size:var(--fs-16)!important;
    padding:16px 16px;border-radius:14px;border:1px solid rgba(122,79,53,.22);
    background:#FFFCF7;color:var(--ink);box-shadow:inset 0 1px 2px rgba(122,79,53,.06);
    transition:border-color .22s var(--ease-out),background .22s var(--ease-out),box-shadow .22s var(--ease-out);}
  #login .nameField::placeholder{color:rgba(108,87,66,.5);font-style:normal;}
  #login .nameField:focus{border-color:var(--gold);background:#fff;outline:none;
    box-shadow:0 0 0 3px rgba(182,130,63,.16),inset 0 1px 2px rgba(122,79,53,.05);}
  /* bouton doré premium (écho au CTA de la landing) */
  #login .actions{margin-top:16px;}
  #login .lgx-btn{position:relative;overflow:hidden;width:100%;padding:16px;border-radius:14px;
    font-family:inherit;font-size:var(--fs-16);font-weight:600;color:#3a2410;cursor:pointer;border:none;
    background:linear-gradient(150deg,#F4DCAC,var(--gold-soft) 46%,var(--gold));
    box-shadow:0 16px 34px -16px rgba(182,130,63,.8);transition:transform .14s var(--ease-out),filter .2s;}
  #login .lgx-btn::after{content:"";position:absolute;top:0;left:-65%;width:42%;height:100%;
    background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);
    transform:skewX(-18deg);pointer-events:none;}
  @media (prefers-reduced-motion:no-preference){ #login .lgx-btn::after{animation:lgxShine 5s ease-in-out 1.4s infinite;} }
  #login .lgx-btn:hover{filter:brightness(1.04);}
  #login .lgx-btn:active{transform:scale(.98);}
  #login #loginMsg{font-size:var(--fs-13);line-height:1.45;min-height:18px;margin-top:11px;text-align:center;color:var(--mocha);letter-spacing:.004em;}
  /* liens secondaires */
  #login .lgx-links{display:flex;flex-direction:column;align-items:center;gap:5px;margin-top:15px;}
  #login .lgx-links .link{color:var(--ink-soft);font-size:var(--fs-14);background:none;border:none;cursor:pointer;font-family:inherit;padding:4px;}
  #login .lgx-links .link u{color:var(--mocha);text-underline-offset:3px;text-decoration-thickness:1px;}
  #login #loginForgot{font-size:var(--fs-14);color:var(--ink-soft);opacity:.85;}
  /* animations d'entrée */
  @keyframes lgxKen{from{transform:scale(1.05)}to{transform:scale(1.14)}}
  @keyframes lgxShine{0%,72%{left:-65%}86%,100%{left:135%}}
  @media (prefers-reduced-motion:no-preference){
    #login.active .lgx-inner>*{opacity:0;transform:translateY(13px);animation:lgxRise .6s var(--ease-out) forwards;}
    #login.active .lgx-inner>*:nth-child(1){animation-delay:.14s}
    #login.active .lgx-inner>*:nth-child(2){animation-delay:.2s}
    #login.active .lgx-inner>*:nth-child(3){animation-delay:.26s}
    #login.active .lgx-inner>*:nth-child(4){animation-delay:.32s}
    #login.active .lgx-inner>*:nth-child(5){animation-delay:.38s}
    #login.active .lgx-inner>*:nth-child(6){animation-delay:.44s}
    #login.active .lgx-inner>*:nth-child(7){animation-delay:.5s}
    #login.active .lgx-crest{opacity:0;animation:lp2fade .9s var(--ease-out) .12s forwards;}
  }
  @keyframes lgxRise{to{opacity:1;transform:none}}
  /* entrée douce de l'écran (fondu, pas de saut) — corrige la transition qui "coupait" */
  #login.active{animation:loginIn .5s var(--ease-out) both;}
  @keyframes loginIn{from{opacity:0}to{opacity:1}}
  @media(min-width:600px){ #login .lgx-title{font-size:34px;} }
  /* desktop : carte centrée élégante */
  /* DESKTOP : split éditorial plein écran (écho au hero) — fini le "petit carré" */
  @media(min-width:880px){
    #login{padding:0;background:var(--espresso);}
    #login .lgx-back{top:28px;left:28px;}
    #login .lgx-card{flex:1 1 auto;flex-direction:row;align-items:stretch;
      width:100%;min-height:100vh;margin:0;border-radius:0;overflow:hidden;box-shadow:none;}
    #login .lgx-photo{flex:1 1 50%;height:100vh;min-height:100vh;max-height:none;
      -webkit-mask-image:linear-gradient(90deg,#000 72%,transparent 100%);
              mask-image:linear-gradient(90deg,#000 72%,transparent 100%);}
    #login .lgx-photo img{object-position:center 16%;}
    #login .lgx-veil{background:linear-gradient(180deg,rgba(33,19,9,.30),rgba(33,19,9,.05) 34%,rgba(33,19,9,.30));}
    #login .lgx-crest{flex-direction:row;left:46px;right:auto;bottom:auto;top:40px;gap:14px;align-items:center;}
    #login .lgx-crest svg{width:40px;height:37px;}
    #login .lgx-word{font-size:var(--fs-16);}
    #login .lgx-sheet{flex:1 1 50%;display:flex;align-items:center;justify-content:center;
      margin-top:0;border-radius:0;box-shadow:none;
      padding:64px 6vw calc(64px + env(safe-area-inset-bottom,0px));}
    #login .lgx-inner{max-width:400px;width:100%;text-align:left;margin:0;}
    #login .lgx-eyebrow{margin-bottom:11px;}
    #login .lgx-title{font-size:40px;line-height:1.04;}
    #login .lgx-welcome{margin:13px 0 0;max-width:38ch;}
    #login .lgx-links{align-items:flex-start;margin-top:18px;}
    #login #loginMsg{text-align:left;}
  }
  @media(min-width:1280px){
    #login .lgx-photo{flex:1 1 54%;}
    #login .lgx-sheet{flex:1 1 46%;}
  }

  /* "fait ma routine" + micro-célébration sobre */
  .donebtn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:16px;border-radius:18px;border:none;cursor:pointer;font-family:inherit;font-size:var(--fs-16);font-weight:600;background:linear-gradient(150deg,var(--mocha),var(--espresso));color:var(--cream);box-shadow:var(--shadow);transition:transform var(--d-fast) var(--ease-out);margin-bottom:16px;}
  .donebtn:active{transform:scale(.975);}
  .donebtn.done{background:linear-gradient(150deg,#6E8B5B,#4F6B42);animation:doneSpring var(--d-slow) var(--spring);}
  /* moment signature (V3) : halo doré qui s'évase au check — transform/opacity uniquement */
  .donebtn{position:relative;}
  .donebtn::after{content:"";position:absolute;inset:-2px;border-radius:20px;border:2px solid var(--gold-soft);opacity:0;pointer-events:none;}
  .donebtn.done::after{animation:doneHalo .8s var(--ease-out) .08s;}
  @keyframes doneSpring{0%{transform:scale(1)}35%{transform:scale(.96)}70%{transform:scale(1.02)}100%{transform:scale(1)}}
  @keyframes doneHalo{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(1.12)}}
  @media (prefers-reduced-motion:reduce){ .donebtn.done{animation:none;} .donebtn.done::after{animation:none;} }
  .donebtn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;stroke-dashoffset:30;}
  .donebtn.done svg{animation:drawck var(--d-slow) var(--ease-out) forwards;}
  @keyframes drawck{to{stroke-dashoffset:0}}
  .confetti{position:absolute;inset:0;pointer-events:none;z-index:40;overflow:hidden;}
  .confetti i{position:absolute;top:-12px;width:8px;height:12px;border-radius:2px;opacity:0;animation:fall 1.5s var(--ease-in) forwards;}
  @keyframes fall{0%{opacity:1;transform:translateY(0) rotate(0)}100%{opacity:0;transform:translateY(640px) rotate(540deg)}}

  /* transitions d'écran premium (fade-through léger) */
  .screen.active{animation:scrIn .34s var(--ease-out);}
  @keyframes scrIn{from{opacity:0;transform:translateY(10px) scale(.992)}to{opacity:1;transform:none}}

  /* ---- DESKTOP : barre latérale + contenu centré (≥880px) ---- */
  .stage{position:absolute;inset:0;}
  .sidebar{display:none;}
  @media(min-width:880px){
    body{padding:0;align-items:stretch;}
    .phone{width:100%;max-width:100%;height:100vh;max-height:100vh;border-radius:0;box-shadow:none;display:flex;flex-direction:row;background:linear-gradient(180deg,var(--sand),var(--sand-2));}
    .stage{position:relative;inset:auto;flex:1;height:100vh;overflow:hidden;}
    .nav{display:none!important;}
    .sidebar{display:flex;flex-direction:column;width:264px;flex:0 0 auto;background:rgba(251,245,236,.72);backdrop-filter:blur(18px);border-right:1px solid var(--line);padding:34px 18px 24px;gap:5px;}
    .sb-logo{font-family:'Fraunces',serif;font-size:30px;color:var(--espresso);padding:2px 14px 26px;letter-spacing:-.02em;}
    .sb-logo .dot{color:var(--gold);}
    /* le rail latéral porte déjà la marque → on retire le logo KROWN redondant du héros */
    .ed-hero-logo{display:none!important;}
    .sb-item{display:flex;align-items:center;gap:13px;padding:13px 15px;border-radius:14px;border:none;background:none;font-family:inherit;font-size:var(--fs-15);font-weight:500;color:var(--ink-soft);cursor:pointer;transition:background var(--d-fast) var(--ease-out),color var(--d-fast) var(--ease-out);text-align:left;width:100%;}
    .sb-item svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto;}
    .sb-item:hover{background:rgba(122,79,53,.07);color:var(--espresso);}
    .sb-item.on{background:var(--card);color:var(--espresso);box-shadow:var(--shadow-sm);}
    .sb-foot{margin-top:auto;font-size:var(--fs-12);color:var(--ink-soft);padding:0 14px;line-height:1.5;}
    /* contenu centré, jamais étiré */
    .content,.coachscroll{max-width:720px;margin-left:auto;margin-right:auto;width:100%;}
        .appbar,.chat-head{max-width:720px;margin-left:auto;margin-right:auto;width:100%;}
    .sugg,.inbar{max-width:720px;margin-left:auto;margin-right:auto;width:100%;}
    .appbar{padding-top:40px;} .chat-head{padding-top:36px;}
    /* écrans immersifs : contenu centré sur grand écran */
    #welcome .wrap,#onb .body,#photo .pbody,#scan .pbody,#card .cardwrap{max-width:560px;margin-left:auto;margin-right:auto;width:100%;}
    #account .content{max-width:560px;}
    /* landing pré-connexion : pas d'onglets app sur l'accueil (visiteur non connecté) */
    .phone:has(#welcome.active) .sidebar,
    .phone:has(#onb.active) .sidebar,
    .phone:has(#login.active) .sidebar{display:none!important;}
  }

  /* ============ DÉSENCOMBRER : accordéons, avatar, compte ============ */
  /* accordéon sobre */
  .acc{border-top:1px solid var(--line);}
  .acc-h{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 2px;background:none;border:none;font-family:inherit;font-size:var(--fs-13);font-weight:600;color:var(--mocha);cursor:pointer;text-align:left;}
  .acc-h .chev{flex:0 0 auto;display:flex;transition:transform var(--d-base) var(--ease-out);}
  .acc-h .chev svg{width:17px;height:17px;stroke:var(--mocha);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
  .acc.open .acc-h .chev{transform:rotate(180deg);}
  .acc-c{max-height:0;overflow:hidden;transition:max-height var(--d-slow) var(--ease-out);}
  .acc.open .acc-c{max-height:560px;}
  .acc-ci{padding:0 2px 8px;}
  /* PARKING « Mes produits & bibliothèque » : accordéon qui CONTIENT d'autres
     accordéons (étagère, scans). La règle générique .acc.open .acc-c (sélecteur
     descendant) clipperait le contenu à 560px ET forcerait l'ouverture des
     sous-accordéons. On corrige avec des sélecteurs enfant-direct, plus spécifiques : */
  #parkLib > .acc.open > .acc-c{max-height:4000px;}
  #parkLib .rz-lib .acc:not(.open) > .acc-c{max-height:0;}
  #parkLib .rz-lib .acc:not(.open) > .acc-h .chev{transform:none;}
  /* « Au quotidien · gestes d'or » repliable (declutter de la carte d'action) */
  .gd-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:none;border:none;padding:0;cursor:pointer;font:inherit;text-align:left;}
  .gd-chev{color:var(--ink-soft);font-size:var(--fs-18);line-height:1;flex:0 0 auto;transition:transform .2s var(--ease-out);}
  .gd-body{margin-top:10px;}

  /* avatar compte (appbar / chat-head) */
  .appbar .ab-right{display:flex;align-items:center;gap:10px;}
  .av{width:38px;height:38px;border-radius:50%;border:none;background:radial-gradient(circle at 35% 28%,var(--caramel),var(--mocha) 72%);color:var(--cream);font-family:'Fraunces',serif;font-size:var(--fs-16);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;box-shadow:var(--shadow-sm),0 0 0 2px var(--card),0 0 0 3px var(--gold-soft);transition:transform var(--d-fast) var(--ease-out);}
  .av:active{transform:scale(.92);}

  /* page Compte */
  #account .appbar .t{font-size:var(--fs-20);}
  .acct-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:6px 0 10px;}
  .acct-av{width:84px;height:84px;border-radius:50%;background:radial-gradient(circle at 35% 28%,var(--caramel),var(--mocha) 72%,var(--espresso));color:var(--cream);font-family:'Fraunces',serif;font-size:36px;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 28px -12px rgba(74,44,22,.6),0 0 0 3px var(--card),0 0 0 4.5px var(--gold-soft);}
  .acct-name{font-family:'Fraunces',serif;font-weight:400;font-size:24px;margin-top:14px;color:var(--espresso);letter-spacing:-.01em;}
  .acct-meta{font-size:var(--fs-13);color:var(--ink-soft);margin-top:3px;}
  .plan{border-radius:var(--radius-card);padding:22px;color:var(--cream);position:relative;overflow:hidden;background:linear-gradient(150deg,var(--mocha),var(--espresso));box-shadow:var(--shadow-card);margin-bottom:16px;}
  .plan .shine{position:absolute;top:-40%;left:0;width:38%;height:180%;background:linear-gradient(90deg,transparent,rgba(246,232,213,.14),transparent);transform:rotate(8deg);animation:sheen 1.1s ease-out .3s both;pointer-events:none;}
  .plan .pk{font-size:var(--fs-11);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold-soft);font-weight:600;position:relative;}
  .plan h3{font-family:'Fraunces',serif;font-weight:400;font-size:25px;margin:5px 0 2px;position:relative;}
  .plan .price{font-size:var(--fs-14);color:rgba(246,232,213,.82);position:relative;}
  .plan .price b{font-family:'Fraunces',serif;font-size:var(--fs-20);color:var(--cream);}
  .plan ul{list-style:none;margin:16px 0 18px;display:flex;flex-direction:column;gap:9px;position:relative;}
  .plan li{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-14);color:rgba(246,232,213,.92);}
  .plan li svg{width:16px;height:16px;stroke:var(--gold-soft);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto;margin-top:2px;}
  .plan .cta{width:100%;padding:15px;border-radius:15px;border:none;background:linear-gradient(135deg,var(--gold-soft),var(--gold));color:#3a2410;font-family:inherit;font-weight:600;font-size:var(--fs-15);cursor:pointer;position:relative;box-shadow:0 12px 26px -12px rgba(0,0,0,.45);transition:transform var(--d-fast) var(--ease-out);}
  .plan .cta:active{transform:scale(.98);}
  /* Bloc Pro dégonflé : teaser une ligne + bouton « Voir les avantages » */
  .plan-teaser{display:flex;align-items:center;gap:12px;justify-content:space-between;border-radius:var(--radius-field);padding:13px 14px;margin-bottom:16px;background:linear-gradient(150deg,var(--mocha),var(--espresso));color:var(--cream);box-shadow:var(--shadow-sm);}
  .plan-teaser .pt-tx{display:flex;flex-direction:column;gap:2px;min-width:0;}
  .plan-teaser .pt-k{font-size:var(--fs-11);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold-soft);font-weight:600;}
  .plan-teaser .pt-sub{font-size:var(--fs-13);color:rgba(246,232,213,.86);line-height:1.25;}
  .plan-teaser .pt-btn{flex:0 0 auto;min-height:44px;padding:10px 14px;border-radius:12px;border:none;background:linear-gradient(135deg,var(--gold-soft),var(--gold));color:#3a2410;font-family:inherit;font-weight:600;font-size:var(--fs-14);cursor:pointer;transition:transform var(--d-fast) var(--ease-out);}
  .plan-teaser .pt-btn:active{transform:scale(.97);}
  .plan-teaser .pt-btn:focus-visible{outline:2px solid var(--cream-bright);outline-offset:2px;}
  @media(max-width:480px){
    #account .plan-teaser{align-items:flex-start;flex-direction:column;}
    #account .plan-teaser .pt-btn{width:100%;}
  }
  /* liste d'avantages Pro dans la feuille */
  ul.pro-benefits{list-style:none;margin:2px 0;padding:0;display:flex;flex-direction:column;gap:10px;}
  ul.pro-benefits li{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-14);color:var(--ink);}
  ul.pro-benefits li svg{width:17px;height:17px;stroke:var(--mocha);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto;margin-top:2px;}

  .acct-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:6px 18px;box-shadow:var(--shadow-sm);margin-bottom:16px;}
  .set-row{display:flex;width:100%;min-height:56px;align-items:center;justify-content:space-between;gap:12px;padding:15px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;font-family:inherit;text-align:left;cursor:pointer;}
  .set-row:last-child{border-bottom:none;}
  .set-row .sl b{font-size:var(--fs-14);display:block;color:var(--espresso);font-weight:500;} .set-row .sl span{font-size:var(--fs-12);color:var(--ink-soft);}
  .set-row .chevr{color:var(--ink-soft);font-size:var(--fs-16);flex:0 0 auto;}
  .toggle{width:46px;height:46px;border-radius:23px;background:transparent;position:relative;cursor:pointer;flex:0 0 auto;border:0;}
  .toggle::before{content:"";position:absolute;inset:9px 0;border-radius:16px;background:var(--sand-2);border:1px solid var(--line);transition:background var(--d-base) var(--ease-soft),border-color var(--d-base) var(--ease-soft);}
  .toggle.on::before{background:var(--mocha);border-color:var(--mocha);}
  .toggle i{position:absolute;top:12px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform var(--d-base) var(--spring);}
  .toggle.on i{transform:translateX(18px);}
  /* Segmented control Ma routine matin/soir/les-deux (réglages) */
  .moment-seg{display:inline-flex;background:var(--cream);border:1px solid var(--hair,rgba(108,72,42,.13));border-radius:999px;padding:3px;gap:0;box-shadow:0 4px 12px -8px rgba(58,35,18,.3);}
  .moment-btn{border:0;background:transparent;font-family:inherit;font-size:var(--fs-12);font-weight:600;color:var(--ink-soft);padding:7px 14px;border-radius:999px;cursor:pointer;min-width:46px;min-height:46px;transition:background .18s,color .18s,box-shadow .18s;}
  .moment-btn.on{background:linear-gradient(160deg,var(--gold),var(--gold-deep));color:var(--cream-bright);box-shadow:0 4px 10px -4px rgba(138,95,46,.5);}
  .moment-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
  @media (prefers-reduced-motion:reduce){ .moment-btn{transition:none;} }
  .logout{width:100%;padding:14px;border-radius:14px;border:1px solid var(--line);background:none;color:#8B2C3A;font-family:inherit;font-weight:600;font-size:var(--fs-14);cursor:pointer;margin-top:4px;}
  .acct-sec{font-size:var(--fs-11);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--mocha);font-weight:600;margin:6px 4px 10px;}
  /* EN-TÊTES DE ZONE COMPTE (3 zones : Identité / Réglages / Plus & légal) — réutilise l'esprit .zone-head */
  .acct-zone{display:flex;align-items:center;gap:8px;margin:26px 4px 12px;font-family:'Instrument Sans',sans-serif;font-weight:700;font-size:var(--fs-12);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold);}
  .acct-zone::before{content:"";flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:var(--gold-soft);}
  .acct-zone:first-of-type{margin-top:8px;}
  .acct-zone--quiet{color:var(--mocha);opacity:.7;}
  .acct-zone--quiet::before{background:var(--mocha);opacity:.4;}
  /* Mes scans récents (Routine) */
  .scan-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-top:1px solid var(--line);}
  .scan-row:first-child{border-top:none;}
  .scan-dot{width:11px;height:11px;border-radius:50%;flex:0 0 auto;box-shadow:0 0 0 3px rgba(0,0,0,.04);}
  .scan-row-tx{min-width:0;}
  .scan-row-tx b{display:block;font-size:var(--fs-14);color:var(--espresso);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .scan-row-tx span{display:block;font-size:var(--fs-12);color:var(--ink-soft);margin-top:1px;}
  .scans-empty{font-size:var(--fs-14);color:var(--ink-soft);padding:8px 2px;line-height:1.45;margin:0;}

  /* ============ ONBOARDING v2 : multi, shimmer, transitions ============ */
  .opt.multi .mk{border-radius:7px;}
  .btn:disabled{opacity:.4;pointer-events:none;filter:saturate(.7);}
  .opt:active{transform:scale(.985);}
  .nav button:active{transform:scale(.9);}
  .jbtn:active{transform:scale(.96);}
  .sb-item:active{transform:scale(.985);}
  .acc-h:active{opacity:.65;}
  .sugg button:active{transform:scale(.95);}
  .shutter:active{transform:scale(.88);}
  .q-title em{background:linear-gradient(118deg,var(--gold-soft),var(--cream));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--gold-soft);font-style:italic;}
  .q-step.on{animation:stageIn .5s var(--ease-out);}
  @keyframes stageIn{from{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:none}}
  .q-step.on .options .opt{opacity:0;animation:rise .5s both;}
  .q-step.on .options .opt:nth-child(1){animation-delay:.05s}
  .q-step.on .options .opt:nth-child(2){animation-delay:.12s}
  .q-step.on .options .opt:nth-child(3){animation-delay:.19s}
  .q-step.on .options .opt:nth-child(4){animation-delay:.26s}
  .q-step.on .options .opt:nth-child(5){animation-delay:.33s}
  .q-step.on .options .opt:nth-child(6){animation-delay:.40s}
  .onbcheck{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 38% 30%,rgba(246,232,213,.16),transparent 70%);border:1.5px solid var(--gold-soft);position:relative;}
  .onbcheck::before{content:"";position:absolute;inset:-9px;border-radius:50%;border:1.5px solid rgba(217,178,126,.45);animation:ringPulse 2s ease-out infinite;}
  @keyframes ringPulse{0%{transform:scale(.9);opacity:.85}100%{transform:scale(1.3);opacity:0}}
  .onbcheck svg{width:38px;height:38px;fill:none;stroke:var(--gold-soft);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;stroke-dashoffset:30;}
  .q-step.on .onbcheck svg{animation:drawck .6s .25s var(--ease-out) forwards;}
  /* progrès : la courbe se dessine */
  #progres.active .growth polyline:first-of-type{stroke-dasharray:320;animation:drawLine 1.3s var(--ease-out) both;}
  @keyframes drawLine{from{stroke-dashoffset:320;}to{stroke-dashoffset:0;}}
  #progres.active .growth path{opacity:0;animation:gFade .8s .9s both;}
  #progres.active .growth polyline:nth-of-type(2){opacity:0;animation:gFade .5s 1.2s both;}
  #progres.active .growth circle{opacity:0;animation:gFade .45s 1.35s both;}
  #progres.active .growth circle.fut{animation-delay:1.6s;}
  #progres.active .growth text{opacity:0;animation:gFade .5s 1.25s both;}
  @keyframes gFade{from{opacity:0;}to{opacity:1;}}

  @keyframes curlFloat{0%,100%{transform:rotate(-3.5deg) translateY(1px);}50%{transform:rotate(3.5deg) translateY(-4px);}}

  @keyframes unfurl{0%{opacity:0;transform:rotate(-130deg) scale(.45);}55%{opacity:1;}100%{opacity:1;transform:rotate(0) scale(1);}}
  /* retrait produit étagère */
  .shelf-x{flex:0 0 auto;width:26px;height:26px;border-radius:50%;border:none;background:none;color:var(--ink-soft);cursor:pointer;display:grid;place-items:center;opacity:.45;transition:opacity var(--d-fast) var(--ease-out),background var(--d-fast) var(--ease-out),color var(--d-fast);}
  .shelf-x svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;}
  .shelf-x:hover{opacity:1;background:rgba(139,44,58,.1);color:#8B2C3A;}
  .shelf-item{transition:opacity var(--d-base) var(--ease-out),transform var(--d-base) var(--ease-out);}
  .shelf-item.removing{opacity:0;transform:translateX(24px);}

  /* ============ ROUTINE ZONES (rz-*) — déclutter ============ */
  .rz-sec{display:flex;align-items:center;gap:9px;margin:26px 0 13px;}
  .rz-sec:first-of-type{margin-top:18px;}
  .rz-sec-ic{flex:0 0 auto;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;
    background:linear-gradient(150deg,var(--sand),var(--cream));border:1px solid var(--line);box-shadow:var(--shadow-sm);}
  .rz-sec-ic svg{width:16px;height:16px;stroke:var(--mocha);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
  .rz-sec-h{font-family:'Fraunces',serif;font-weight:430;font-size:var(--fs-18);letter-spacing:-.01em;color:var(--espresso);line-height:1;}

  .rz-sec--hero .rz-sec-ic{background:linear-gradient(155deg,var(--gold-soft),var(--gold));border-color:transparent;}
  .rz-sec--hero .rz-sec-ic svg{stroke:var(--cream);}
  .rz-sec--hero .rz-sec-h{font-size:var(--fs-20);}
  .rz-week{display:flex;flex-direction:column;gap:10px;margin-bottom:4px;}
  .rz-week .cal-card,.rz-week .protect{margin-bottom:0;}

  .rz-lib{position:relative;display:flex;flex-direction:column;gap:11px;
    padding:13px 12px 14px;margin-bottom:18px;border-radius:20px;
    background:rgba(108,72,42,.035);border:1px solid var(--line);}
  .rz-lib .hs-card,.rz-lib .card,.rz-lib .ingr-card{margin-bottom:0;box-shadow:none;}
  /* atténuer les blocs sombres : un seul dégradé foncé par écran (.donebtn) */
  .protect{background:linear-gradient(155deg,var(--card),var(--sand));color:var(--ink);
    border:1px solid var(--line);box-shadow:var(--shadow-sm);}
  .protect .pring{background:conic-gradient(var(--gold) calc(var(--p,70)*1%), var(--sand-2) 0);}
  .protect .pring i{background:var(--card);color:var(--mocha);}
  .protect .pt b{color:var(--espresso);}
  .protect .pt span{color:var(--ink-soft);}
  .save--quiet{background:linear-gradient(155deg,var(--card),var(--sand));color:var(--ink);
    border:1px solid var(--line);box-shadow:var(--shadow-sm);padding:20px;}
  .save--quiet .shine{display:none;}
  .save--quiet .kk{color:var(--gold);}
  .save--quiet .big{color:var(--mocha);}
  .save--quiet .lbl{color:var(--ink-soft);opacity:1;}

  /* ===== Check bien-être : prompt discret repliable (.hlthc-*) ===== */
  .hlth.hlthc{padding:0;background:transparent;border:none;box-shadow:none;margin:8px 0 4px;}
  .hlthc-prompt{display:flex;align-items:center;gap:11px;width:100%;
    min-height:48px;padding:11px 15px;border-radius:18px;border:1px solid var(--line);
    background:var(--card);box-shadow:var(--shadow-sm);
    font-family:inherit;text-align:left;cursor:pointer;color:var(--ink);
    transition:border-color .2s var(--ease-out),background .2s var(--ease-out),box-shadow .2s var(--ease-out);}
  .hlthc-prompt:hover,.hlthc-prompt:active{border-color:var(--gold-soft);background:#FBF3E6;}
  .hlthc-ic{flex:0 0 auto;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;
    background:linear-gradient(160deg,rgba(110,139,91,.16),rgba(182,130,63,.14));}
  .hlthc-ic svg{width:16px;height:16px;stroke:var(--sage);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
  .hlthc-label{flex:1;font-size:var(--fs-14);font-weight:500;color:var(--espresso);line-height:1.3;}
  .hlthc-chev{flex:0 0 auto;font-size:var(--fs-22);line-height:1;color:var(--gold-soft);transition:transform .25s var(--ease-out);}
  .hlthc.hlthc-open .hlthc-prompt{border-bottom-left-radius:0;border-bottom-right-radius:0;
    border-bottom-color:transparent;box-shadow:none;background:var(--card);}
  .hlthc.hlthc-open .hlthc-chev{transform:rotate(90deg);}
  .hlthc-body{max-height:0;overflow:hidden;transition:max-height var(--d-slow) var(--ease-out);}
  .hlthc.hlthc-open .hlthc-body{max-height:1200px;}
  .hlthc-inner{padding:4px 18px 20px;background:var(--card);border:1px solid var(--line);border-top:none;
    border-radius:0 0 22px 22px;box-shadow:var(--shadow-sm);}
  @media (prefers-reduced-motion: reduce){ .hlthc-body{transition:none;} }
  /* dans la feuille (prompt masqué) : la carte est autonome, coins arrondis complets */
  #gsheetBody .hlthc{margin:0;}
  #gsheetBody .hlthc-body{max-height:none;overflow:visible;}
  #gsheetBody .hlthc-inner{border-top:1px solid var(--line);border-radius:18px;padding-top:18px;}

  /* ============ ACCUEIL — status strip + diagnostic replié (.ac-*) ============ */
  .ac-status{display:flex;gap:10px;margin:0 0 4px;}
  .ac-stat{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:11px;min-height:62px;
    padding:12px 13px;border-radius:18px;border:1px solid var(--line);
    background:var(--card);box-shadow:var(--shadow-sm);}
  .ac-stat-ic{flex:0 0 auto;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;}
  .ac-stat-ic svg{width:19px;height:19px;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
  .ac-stat-ic--water{background:rgba(110,139,91,.12);}
  .ac-stat-ic--water svg{stroke:var(--sage);}
  .ac-stat-ic--shield{background:rgba(182,130,63,.12);}
  .ac-stat-ic--shield svg{stroke:var(--gold);}
  .ac-stat-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
  .ac-stat-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--ink-soft);font-weight:600;}
  .ac-stat-v{font-family:'Fraunces',serif;font-weight:430;font-size:var(--fs-14);line-height:1.15;color:var(--espresso);}
  /* ≤480px : côte à côte, la colonne texte tombe à ~85px → un mot par ligne (« On / surveille / les / pointes ») ; on empile */
  @media (max-width:480px){ .ac-status{flex-direction:column;} .ac-stat{min-height:0;} }

  /* liens secondaires discrets */
  .ac-foot{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:18px;}
  .ac-flink{min-height:44px;display:inline-flex;align-items:center;background:none;border:none;font-family:inherit;cursor:pointer;color:var(--ink-soft);font-size:var(--fs-13);padding:0 4px;}
  .ac-flink u{color:var(--mocha);}
  .ac-fsep{color:var(--line);font-size:var(--fs-12);}

  /* ============ PROGRÈS — combat companion (pg-*) ============ */
  .pg-fight{display:flex;align-items:center;gap:13px;padding:13px 15px;}
  .pg-fight-ic{flex:0 0 auto;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
    background:linear-gradient(150deg,var(--sand),var(--cream));border:1px solid var(--line);box-shadow:var(--shadow-sm);color:var(--sage);}
  .pg-fight-ic svg{width:18px;height:18px;}
  .pg-fight-tx b{font-family:'Fraunces',serif;font-weight:400;font-size:var(--fs-15);color:var(--espresso);display:block;line-height:1.1;}
  .pg-fight-tx p{font-size:var(--fs-14);color:var(--ink-soft);margin-top:3px;line-height:1.45;}

  /* === Coiffures protectrices : carrousel swipe (.hsc-*) === */
  .hsc-wrap{margin-top:2px;}
  .hsc-track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;touch-action:pan-x;padding:2px 2px 6px;margin:0 -2px;
    scrollbar-width:none;-ms-overflow-style:none;scroll-padding:0 8%;}
  .hsc-track::-webkit-scrollbar{display:none;}
  .hsc-slide{flex:0 0 84%;max-width:300px;scroll-snap-align:center;scroll-snap-stop:always;
    background:var(--cream);border:1px solid var(--line);border-radius:18px;
    overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;}
  .hsc-slide:first-child{margin-left:8%;}
  .hsc-slide:last-child{margin-right:8%;}
  .hsc-illu{position:relative;height:175px;flex:0 0 auto;display:grid;place-items:center;
    border-bottom:1px solid var(--line);overflow:hidden;}
  .hsc-illu::after{content:"";position:absolute;inset:0;
    background:radial-gradient(120% 90% at 78% 18%,rgba(255,255,255,.45),transparent 55%);pointer-events:none;}
  .hsc-illu svg{position:relative;z-index:1;width:60px;height:60px;fill:none;
    stroke:var(--espresso);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:.78;}
  .hsc-illu.g0{background:linear-gradient(150deg,var(--sand),var(--cream));}
  .hsc-illu.g1{background:linear-gradient(150deg,rgba(217,178,126,.42),rgba(246,232,213,.7));}
  .hsc-illu.g2{background:linear-gradient(150deg,rgba(122,79,53,.18),rgba(236,221,202,.8));}
  .hsc-illu.g3{background:linear-gradient(150deg,rgba(110,139,91,.16),rgba(246,232,213,.7));}
  .hsc-illu.g4{background:linear-gradient(150deg,rgba(201,152,108,.3),rgba(251,245,236,.85));}
  .hsc-illu.g5{background:linear-gradient(150deg,var(--sand-2),var(--cream));}
  .hsc-slide.hsc-soft .hsc-illu{background:linear-gradient(150deg,rgba(110,139,91,.2),rgba(246,232,213,.7));}
  .hsc-illu.hsc-photo{padding:0;overflow:hidden;}
  .hsc-illu.hsc-photo img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;object-position:center 28%;display:block;}
  .hsc-slide.hsc-soft .hsc-illu svg{stroke:var(--sage-deep);}
  .hsc-body{padding:14px 15px 15px;display:flex;flex-direction:column;flex:1;}
  .hsc-sh{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
  .hsc-name{font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-16);line-height:1.2;color:var(--espresso);}
  .hsc-tag{flex:0 0 auto;font-size:var(--fs-10);letter-spacing:.1em;text-transform:uppercase;font-weight:600;
    color:var(--sage-deep);background:rgba(110,139,91,.13);border:1px solid rgba(110,139,91,.3);
    padding:4px 8px;border-radius:11px;white-space:nowrap;}
  .hsc-geste{font-size:var(--fs-13);line-height:1.5;color:var(--ink);margin-top:9px;}
  .hsc-geste b{color:var(--mocha);font-weight:600;}
  .hsc-soft .hsc-tips{list-style:none;margin:8px 0 0;padding:0;}
  .hsc-soft .hsc-tips li{position:relative;padding-left:15px;font-size:var(--fs-12);line-height:1.5;color:var(--ink-soft);margin-bottom:6px;}
  .hsc-soft .hsc-tips li:last-child{margin-bottom:0;}
  .hsc-soft .hsc-tips li::before{content:"";position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:50%;background:var(--sage);}
  .hsc-dots{display:flex;flex-wrap:wrap;max-width:176px;justify-content:center;align-items:center;gap:0;margin:4px auto 0;}
  .hsc-dot{width:44px;height:44px;border:0;padding:0;cursor:pointer;background:transparent;position:relative;}
  .hsc-dot::after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;border-radius:50%;background:rgba(108,72,42,.22);transform:translate(-50%,-50%);transition:width var(--d-base) var(--ease-out),background var(--d-base) var(--ease-out);}
  .hsc-dot.on::after{width:20px;border-radius:4px;background:var(--gold);}

  /* === Accueil : héros éditorial plein écran (image premium) === */
  /* Design Lot 2 #1 : héro raccourci → l'action du jour (check / rituel) remonte au-dessus de la ligne de flottaison */
  .ed-hero{position:relative;width:100%;height:288px;flex:0 0 auto;overflow:hidden;border-radius:0 0 30px 30px;
    margin-bottom:10px;background:var(--espresso);}
  /* Design Lot 2 #3 : cibles tactiles ≥44px — fini les taps ratés sur les petits liens/chevrons */
  /* cibles tactiles ≥44px SANS casser les liens à plusieurs mots (inline-block garde les espaces et le retour à la ligne ; le flex collait les mots) */
  .link,.nd-more{min-height:44px;display:inline-block;padding-top:12px;padding-bottom:12px;line-height:1.35;}
  .step-info,.prod-grip,.prod-x,.hh-scan,.bilan-line{min-width:44px;min-height:44px;}
  .av{min-width:46px;min-height:46px;}
  .back{width:46px;height:46px;min-width:46px;min-height:46px;}
  .op-chip{min-height:44px;}
  .hist-add,.cid-diag,.pd-phone-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center;}
  #account .appbar .link{min-height:46px;}
  .ed-slides{position:absolute;inset:0;z-index:0;}
  .ed-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 26%;
    opacity:0;transition:opacity 2.6s ease-in-out;
    /* Lumière circadienne : --cov-bright et --cov-sepia sont posés par applyCircadien() via JS */
    filter:sepia(var(--cov-sepia,.3)) saturate(1.22) hue-rotate(-10deg) brightness(var(--cov-bright,.97)) contrast(1.03);}
  .ed-slide.on{opacity:1;animation:edZoom 11s ease-out both;}
  @keyframes edZoom{from{transform:scale(1.09);}to{transform:scale(1);}}
  @media (prefers-reduced-motion:reduce){ .ed-slide.on{animation:none;} .ed-slide{transition:none;} }
  /* Voile chaud circadien : superposé sur la photo, opacité pilotée par --cov-warm (0→1) */
  /* prefers-reduced-motion : pas d'animation, le tint statique reste */
  .ed-hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:rgba(var(--cov-amber-rgb),var(--cov-warm,0));
    transition:background .8s ease;pointer-events:none;}
  @media (prefers-reduced-motion:reduce){ .ed-hero::after{transition:none;} }
  .ed-hero-veil{position:absolute;inset:0;pointer-events:none;z-index:2;
    background:linear-gradient(180deg,rgba(33,19,9,.5) 0%,rgba(33,19,9,.05) 26%,rgba(33,19,9,.12) 52%,rgba(33,19,9,.86) 100%);}
  .ed-hero-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;
    padding:max(46px,calc(env(safe-area-inset-top,0px) + 16px)) 20px 0;z-index:2;}
  .ed-hero-logo{font-family:'Fraunces',serif;font-weight:500;letter-spacing:var(--track-kicker-lg);font-size:var(--fs-15);
    color:var(--cream);text-shadow:0 1px 14px rgba(0,0,0,.45);}
  .ed-hero .hh-actions{display:flex;gap:12px;}
  .ed-hero .hh-scan,.ed-hero .av{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,.16);border:1px solid rgba(246,232,213,.34);color:var(--cream);
    backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer;font-family:'Fraunces',serif;font-size:var(--fs-16);}
  .ed-hero .hh-scan svg{width:20px;height:20px;fill:none;stroke:var(--cream);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
  .ed-hero-txt{position:absolute;left:0;right:0;bottom:0;padding:0 22px 22px;z-index:2;}
  .ed-hero .hh-hi{font-family:'Fraunces',serif;font-weight:400;font-size:33px;line-height:1.03;color:var(--cream);
    text-shadow:0 2px 22px rgba(0,0,0,.4);letter-spacing:-.01em;}
  .ed-hero .hh-sub{margin-top:7px;color:rgba(246,232,213,.92);font-size:var(--fs-14);display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
  .ed-hero .hh-streak{display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.15);
    border:1px solid rgba(246,232,213,.3);padding:5px 10px;border-radius:20px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
  .ed-hero .hh-streak svg{width:14px;height:14px;fill:none;stroke:var(--gold-soft);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
  .ed-hero .hh-streak b{color:var(--cream);}
  /* Eyebrow daté (ex: « Mercredi soir ») — au-dessus du greeting */
  .cov-eb{font-size:var(--fs-11);font-weight:600;letter-spacing:var(--track-kicker);text-transform:uppercase;
    color:var(--gold-soft);margin-bottom:6px;min-height:0;line-height:1.2;}
  .cov-eb:empty{display:none;}
  /* Série 🔥 sous le greeting — capsule frosted-glass */
  .cov-streak{margin-top:10px;display:inline-flex;align-items:center;gap:6px;
    background:rgba(255,255,255,.13);border:1px solid rgba(246,232,213,.28);
    padding:5px 12px;border-radius:20px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
    font-size:var(--fs-13);color:var(--cream);font-weight:600;white-space:nowrap;}
  .cov-streak:empty{display:none;}
  /* Palier #hhTier supprimé de la couverture (doublon) */
  #hhTier{display:none !important;}
  @media (prefers-reduced-motion: reduce){ .ed-hero-img{animation:none;} }

    /* === Micro-interactions : retour tactile premium (tap → réduit) === */
  .btn,.donebtn,.jbtn,.addprod,.budget button,.hh-scan,.ed-hero .av,.av,.acc-h,.ingr-head,.hs-head,.cal-head,.hsc-dot,.hlthc-prompt,.opt{
    transition:transform .16s var(--ease-out),box-shadow .22s var(--ease-out),background .22s var(--ease-out),border-color .22s var(--ease-out);}
    .btn:active,.donebtn:active,.jbtn:active,.addprod:active,.budget button:active,.hh-scan:active,.av:active,.acc-h:active,.ingr-head:active,.hs-head:active,.cal-head:active,.hlthc-prompt:active,.opt:active{transform:scale(.97);}
  /* Carrousel : carte centrée mise en avant, voisines en retrait (effet focus) */
  .hsc-slide{transition:transform .34s var(--ease-out),opacity .34s var(--ease-out),box-shadow .34s var(--ease-out);
    transform:scale(.93);opacity:.55;}
  .hsc-slide.hsc-cur{transform:scale(1);opacity:1;box-shadow:var(--shadow);}
  @media (prefers-reduced-motion: reduce){
        .btn:active,.donebtn:active,.jbtn:active,.addprod:active,.budget button:active,.hh-scan:active,.av:active,.acc-h:active,.ingr-head:active,.hs-head:active,.cal-head:active,.hlthc-prompt:active,.opt:active{transform:none;}
    .hsc-slide{transform:none;opacity:1;transition:none;}
  }

  /* ============ ACCUEIL — restyle premium (cards/rows/CTA/foot) ============ */
  .ac-status{gap:11px;margin:0 0 2px;}
  .ac-stat{position:relative;overflow:hidden;align-items:flex-start;gap:12px;
    min-height:84px;padding:14px 14px 13px;border-radius:20px;border:1px solid rgba(217,178,126,.34);
    background:linear-gradient(158deg,#FFFBF4 0%,var(--card) 46%,var(--sand) 130%);
    box-shadow:var(--shadow-sm),inset 0 1px 0 rgba(255,255,255,.75),inset 0 0 0 1px rgba(255,255,255,.25);}
  .ac-stat::before{content:"";position:absolute;top:-46%;left:-30%;width:55%;height:200%;pointer-events:none;z-index:0;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);transform:rotate(9deg);opacity:0;}
  .screen.active #result .ac-stat::before{animation:acSheen 1.5s var(--ease-out) .35s both;}
  .screen.active #result .ac-stat:nth-child(2)::before{animation-delay:.5s;}
  .ac-stat-ic{position:relative;z-index:1;width:46px;height:46px;border-radius:15px;overflow:hidden;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.35),0 6px 14px -8px rgba(58,35,18,.5);}
  .ac-stat-ic svg{position:relative;z-index:2;width:21px;height:21px;stroke-width:1.7;}
  .ac-stat-ic .ac-fill{position:absolute;left:0;right:0;bottom:0;z-index:1;height:0;border-radius:0 0 14px 14px;
    pointer-events:none;transition:height 1.1s var(--ease-out);}
  .ac-stat-ic .ac-fill::after{content:"";position:absolute;left:0;right:0;top:-2px;height:5px;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);opacity:.7;}
  .ac-stat-ic--water{background:radial-gradient(120% 120% at 30% 18%,rgba(138,168,119,.28),rgba(110,139,91,.16) 60%,rgba(110,139,91,.10));}
  .ac-stat-ic--water svg{stroke:var(--sage-deep);}
  .ac-stat-ic--water .ac-fill{background:linear-gradient(180deg,rgba(138,168,119,.62),rgba(78,107,66,.5));}
  .ac-stat-ic--shield{background:radial-gradient(120% 120% at 30% 18%,rgba(217,178,126,.34),rgba(182,130,63,.16) 60%,rgba(182,130,63,.10));}
  .ac-stat-ic--shield svg{stroke:var(--gold);}
  .ac-stat-ic--shield .ac-fill{background:linear-gradient(180deg,rgba(217,178,126,.6),rgba(182,130,63,.5));}
  .ac-stat.is-filled .ac-fill{height:58%;}
  .ac-stat.lvl-low.is-filled .ac-fill{height:42%;}
  .ac-stat.lvl-mid.is-filled .ac-fill{height:62%;}
  .ac-stat.lvl-high.is-filled .ac-fill{height:80%;}
  @media (prefers-reduced-motion:no-preference){
    .ac-stat.is-filled .ac-stat-ic{animation:acBob 5.5s ease-in-out 1.2s infinite;}
    .ac-stat.is-filled .ac-stat-ic--shield{animation-delay:1.5s;}
  }
  .ac-stat-tx{z-index:1;gap:4px;padding-top:2px;}
  .ac-stat-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker);color:var(--gold);}
  .ac-stat-v{font-size:var(--fs-16);font-weight:430;line-height:1.16;color:var(--espresso);letter-spacing:-.005em;}
  @keyframes acSheen{0%{opacity:0;transform:translateX(0) rotate(9deg)}18%{opacity:1}100%{opacity:0;transform:translateX(340%) rotate(9deg)}}
  @keyframes acBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}

  .btn-gold{background:linear-gradient(135deg,#E4C593 0%,var(--gold-soft) 40%,var(--gold) 100%);
    box-shadow:0 16px 34px -12px rgba(122,79,53,.7),inset 0 1px 0 rgba(255,255,255,.45),inset 0 -2px 6px rgba(122,79,53,.25);letter-spacing:.012em;}
  .btn-gold:hover{filter:brightness(1.05) saturate(1.03);box-shadow:0 20px 40px -12px rgba(122,79,53,.78),inset 0 1px 0 rgba(255,255,255,.5);}
  .btn-gold:active{transform:scale(.975);box-shadow:0 8px 20px -10px rgba(122,79,53,.7),inset 0 2px 8px rgba(122,79,53,.35);}
  .btn-gold::after{background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),rgba(255,255,255,.15),transparent);width:40%;}
  @media (prefers-reduced-motion:no-preference){
    .screen.active #result .btn-gold::after{animation:btnDrift 6.5s var(--ease-out) 1s infinite;}
  }
  @keyframes btnDrift{0%{left:-70%}24%,100%{left:140%}}

  .ac-foot{gap:10px;margin-top:22px;padding-bottom:2px;}
  .ac-flink{min-height:40px;padding:0 15px;border-radius:999px;border:1px solid var(--line);background:rgba(251,245,236,.5);
    color:var(--ink-soft);font-size:var(--fs-12);font-weight:500;letter-spacing:.01em;gap:7px;
    transition:border-color .2s,background .2s,color .2s,transform .15s var(--ease-out);}
  .ac-flink:hover{border-color:rgba(217,178,126,.5);background:rgba(217,178,126,.08);color:var(--mocha);}
  .ac-flink:active{transform:scale(.96);}
  .ac-flink u{text-decoration:none;color:inherit;}
  .ac-flink svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto;opacity:.8;}
  .ac-fsep{display:none;}
  @media (prefers-reduced-motion:reduce){
    .ac-stat::before,.btn-gold::after,.ac-stat.is-filled .ac-stat-ic{animation:none!important;}
    .ac-stat .ac-fill{transition:none!important;}
  }

  @keyframes r3sheen{0%{left:-40%;opacity:0}10%{opacity:1}32%{left:130%;opacity:0}100%{left:130%;opacity:0}}

  .diag-sheet-head{display:flex;align-items:center;gap:13px;margin-bottom:16px;}
  .diag-sheet-ic{flex:0 0 auto;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;
    background:radial-gradient(120% 120% at 30% 18%,rgba(217,178,126,.34),rgba(122,79,53,.14) 60%,rgba(122,79,53,.1));box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);}
  .diag-sheet-ic svg{width:23px;height:23px;fill:none;stroke:var(--mocha);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
  .diag-sheet-ht{flex:1;display:flex;flex-direction:column;gap:2px;}
  .diag-sheet-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold);font-weight:600;}
  .diag-sheet-ht b{font-family:'Fraunces',serif;font-weight:430;font-size:var(--fs-22);color:var(--espresso);line-height:1;}
  .diag-sheet-x{flex:0 0 auto;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--card);
    display:grid;place-items:center;cursor:pointer;color:var(--ink-soft);}
  .diag-sheet-x svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

  /* ========================================================= */
  /* ===== LP2 — landing premium (welcome), bulletproof mobile-first ===== */
  #welcome .lp2{min-height:100%;display:flex;flex-direction:column;
    background:radial-gradient(125% 80% at 50% -8%, #3c2615 0%, #2a1810 40%, var(--espresso) 80%);
    color:var(--cream);}
  #welcome .lp2 *{box-sizing:border-box;}

  /* top bar */
  #welcome .lp2-top{display:flex;align-items:center;justify-content:space-between;
    padding:max(20px,calc(env(safe-area-inset-top,0px) + 16px)) 22px 8px;}
  #welcome .lp2-brand{display:inline-flex;align-items:center;gap:10px;}
  #welcome .lp2-brand svg{width:26px;height:24px;display:block;flex:0 0 auto;
    filter:drop-shadow(0 4px 12px rgba(182,130,63,.55));}
  #welcome .lp2-brandtxt{font-family:'Fraunces',serif;font-weight:520;font-size:var(--fs-18);
    letter-spacing:var(--track-kicker);color:var(--cream);}
  #welcome .lp2-login{font-family:inherit;font-size:var(--fs-14);font-weight:500;color:rgba(246,232,213,.85);
    background:none;border:none;padding:4px 2px;cursor:pointer;transition:color .2s;}
  #welcome .lp2-login:hover{color:var(--cream);}
  #welcome .lp2-topright{display:inline-flex;align-items:center;gap:18px;}
  /* toggle langue minimal FR | EN (barre du haut) */
  #welcome .lp2-top .lang--txt{background:none;border:none;padding:0;border-radius:0;gap:0;-webkit-backdrop-filter:none;backdrop-filter:none;}
  #welcome .lp2-top .lang--txt button{font-family:'Instrument Sans',sans-serif;font-size:var(--fs-13);font-weight:600;letter-spacing:.03em;
    color:rgba(246,232,213,.55);background:none;border:none;padding:8px 6px;filter:none;opacity:1;box-shadow:none;border-radius:0;cursor:pointer;transition:color .2s;}
  #welcome .lp2-top .lang--txt button:hover{color:rgba(246,232,213,.85);}
  /* anneau de focus accessible (clavier) */
  #welcome button:focus-visible,#welcome a:focus-visible{outline:2px solid var(--gold-soft);outline-offset:3px;border-radius:6px;}
  #welcome .lp2-top .lang--txt button.active{color:var(--cream);background:none;box-shadow:none;}
  #welcome .lp2-top .lang-sep{color:rgba(246,232,213,.3);font-size:var(--fs-12);}
  /* sélecteur de langue FR | EN (onglets pilule, actif en doré) */
  .lang{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:999px;
    background:rgba(28,16,8,.4);border:1px solid rgba(217,178,126,.34);
    -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);flex:0 0 auto;}
  .lang button{border:none;cursor:pointer;font-size:var(--fs-15);line-height:1;background:transparent;
    padding:5px 8px;border-radius:999px;filter:grayscale(.55);opacity:.6;
    transition:background-color .2s cubic-bezier(.2,.8,.2,1),border-color .2s cubic-bezier(.2,.8,.2,1),color .2s cubic-bezier(.2,.8,.2,1),transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s cubic-bezier(.2,.8,.2,1),opacity .2s cubic-bezier(.2,.8,.2,1);}
  .lang button:hover{opacity:.9;filter:grayscale(.15);}
  .lang button.active{filter:none;opacity:1;background:rgba(217,178,126,.26);
    box-shadow:0 4px 12px -6px rgba(182,130,63,.6),inset 0 1px 0 rgba(255,255,255,.18);}
  /* variante claire pour l'écran "Mon compte" */
  .lang--light{background:var(--card);border-color:var(--line);}
  .lang--light button.active{background:rgba(182,130,63,.16);
    box-shadow:0 4px 12px -6px rgba(182,130,63,.4),inset 0 1px 0 rgba(255,255,255,.5);}
  .acct-lang-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;}
  /* transition de langue premium : balayage de lumière dorée (façon Apple, jamais de clignotement) */
  #langWipe{position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:0;overflow:hidden;}
  #langWipe.go{animation:lwFade .78s ease forwards;}
  @keyframes lwFade{0%{opacity:0}14%{opacity:1}78%{opacity:1}100%{opacity:0}}
  #langWipe .lw-band{position:absolute;top:-25%;height:150%;left:0;width:62vw;
    background:linear-gradient(105deg,rgba(246,232,213,0) 0%,rgba(247,224,174,.82) 42%,rgba(255,247,233,.98) 50%,rgba(217,178,126,.82) 58%,rgba(246,232,213,0) 100%);
    filter:blur(13px);transform:translateX(-90vw) skewX(-12deg);
    mix-blend-mode:screen;}
  #langWipe.go .lw-band{animation:lwSweep .78s cubic-bezier(.5,0,.18,1) forwards;}
  @keyframes lwSweep{0%{transform:translateX(-90vw) skewX(-12deg)}100%{transform:translateX(180vw) skewX(-12deg)}}
  .acct-lang-row .sl b{display:block;font-size:var(--fs-15);color:var(--espresso);}
  .acct-lang-row .sl span{display:block;font-size:var(--fs-12);color:var(--ink-soft);margin-top:1px;}

  /* hero */
  #welcome .lp2-hero{display:flex;flex-direction:column;position:relative;
    background:linear-gradient(180deg,transparent 54%,var(--espresso) 86%);}
  /* photo héro intégrée au thème : pleine largeur, bords fondus dans l'espresso, teinte chaude */
  #welcome .lp2-photo{position:relative;margin:0;overflow:hidden;
    height:54vh;min-height:340px;max-height:500px;background:var(--espresso);
    -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 12%,#000 60%,transparent 100%);
            mask-image:linear-gradient(180deg,transparent 0%,#000 12%,#000 60%,transparent 100%);}
  #welcome .lp2-photo img{width:100%;height:100%;object-fit:cover;object-position:center 26%;
    filter:saturate(1.04) contrast(1.02) brightness(.97);}
  /* grade chaud + fondu bas vers l'espresso : la photo prend la couleur du décor */
  #welcome .lp2-photo::after{content:"";position:absolute;inset:0;pointer-events:none;
    background:
      linear-gradient(180deg,rgba(33,19,9,.42) 0%,rgba(33,19,9,0) 26%,rgba(33,19,9,.34) 62%,var(--espresso) 100%),
      radial-gradient(125% 80% at 50% 32%, rgba(201,152,108,.24), transparent 62%);
    mix-blend-mode:multiply;}
  #welcome .lp2-photo::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
    background:radial-gradient(120% 70% at 50% 22%, rgba(217,178,126,.16), transparent 58%);
    mix-blend-mode:soft-light;}

  #welcome .lp2-intro{padding:28px 24px 6px;position:relative;z-index:2;margin-top:-6vh;}
  #welcome .lp2-eyebrow{display:block;font-size:var(--fs-11);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;
    font-weight:600;color:var(--gold-soft);}
  #welcome .lp2-word{font-family:'Fraunces',serif;font-weight:500;font-optical-sizing:auto;
    font-variation-settings:'opsz' 96;font-size:clamp(34px,9vw,46px);line-height:1.04;letter-spacing:-.025em;
    color:var(--cream);margin-top:14px;max-width:15ch;}

    #welcome .lp2-word,#welcome .lp2-h2,#welcome .lp2-mani-txt,#welcome .sc-cap{text-wrap:balance;}

  @keyframes lp2tagSheen{0%,100%{background-position:120% 0}50%{background-position:-20% 0}}
  #welcome .lp2-lede{font-size:var(--fs-16);line-height:1.55;color:rgba(246,232,213,.85);margin-top:16px;max-width:34ch;text-wrap:pretty;}
  #welcome .lp2-lede b{color:var(--cream);font-weight:600;}

  #welcome .lp2-cta{display:flex;flex-direction:column;gap:12px;margin-top:27px;}

  #welcome .lp2-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;
    font-family:inherit;font-size:var(--fs-16);font-weight:600;color:#3a2410;cursor:pointer;
    background:linear-gradient(150deg,#F4DCAC,var(--gold-soft) 46%,var(--gold));border:none;
    border-radius:16px;padding:16px 22px;box-shadow:0 14px 34px -16px rgba(182,130,63,.8);
    transition:transform .14s var(--ease-out),filter .2s;}
  #welcome .lp2-btn span{transition:transform .2s var(--ease-out);}
  #welcome .lp2-btn:hover{filter:brightness(1.04);}
  #welcome .lp2-btn:hover span{transform:translateX(4px);}
  #welcome .lp2-btn:active{transform:scale(.975);}
  #welcome .lp2-link{font-family:inherit;font-size:var(--fs-14);font-weight:500;color:rgba(246,232,213,.72);
    background:none;border:none;cursor:pointer;padding:6px;}
  #welcome .lp2-link u{color:var(--cream);text-underline-offset:3px;text-decoration-thickness:1px;}

  #welcome .lp2-proof{margin-top:18px;font-size:var(--fs-13);line-height:1.5;color:rgba(246,232,213,.6);letter-spacing:.01em;text-align:center;}
  #welcome .lp2-proof b{color:var(--gold-soft);font-weight:600;}

  /* how it works — cream panel */
  #welcome .lp2-how{margin-top:-34px;background:linear-gradient(180deg,var(--cream),#F1E2CB);
    color:var(--espresso);border-radius:34px 34px 0 0;padding:60px 24px 56px;position:relative;z-index:1;
    box-shadow:0 -22px 44px -26px rgba(0,0,0,.55);}
  #welcome .lp2-how-head .lp2-eyebrow{color:var(--mocha);}
  #welcome .lp2-h2{font-family:'Fraunces',serif;font-weight:380;font-size:24px;line-height:1.2;
    letter-spacing:-.01em;color:var(--espresso);margin-top:12px;}
  #welcome .lp2-h2 em{font-style:italic;color:var(--mocha);}
  #welcome .lp2-steps{display:flex;flex-direction:column;gap:2px;margin-top:26px;}
  #welcome .lp2-step{display:flex;gap:16px;padding:19px 0;border-top:1px solid rgba(108,72,42,.15);}
  #welcome .lp2-step:first-child{border-top:none;padding-top:4px;}
  #welcome .lp2-num{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
    font-family:'Fraunces',serif;font-size:var(--fs-16);font-weight:500;color:#3a2410;
    background:linear-gradient(150deg,var(--gold-soft),var(--gold));
    box-shadow:0 9px 20px -9px rgba(182,130,63,.75);}
  #welcome .lp2-step h3{font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-18);color:var(--espresso);}
  #welcome .lp2-step p{font-size:var(--fs-14);line-height:1.6;color:var(--ink-soft);margin-top:4px;}
  #welcome .lp2-step em{font-style:italic;color:var(--mocha);}

  /* mini-FAQ (zone crème, accordéon) */
  #welcome .lp2-faq{margin:6px auto 0;max-width:560px;}
  #welcome .lp2-faq .lp2-how-head{text-align:center;}
  #welcome .lp2-faq-list{margin-top:22px;}
  #welcome .lp2-faq-item{border-top:1px solid rgba(108,72,42,.16);}
  #welcome .lp2-faq-item:last-child{border-bottom:1px solid rgba(108,72,42,.16);}
  #welcome .lp2-faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;
    padding:17px 2px;font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-16);line-height:1.3;color:var(--espresso);}
  #welcome .lp2-faq-item summary::-webkit-details-marker{display:none;}
  #welcome .lp2-faq-item summary::after{content:"";flex:0 0 auto;width:9px;height:9px;margin-right:5px;
    border-right:2px solid var(--mocha);border-bottom:2px solid var(--mocha);transform:rotate(45deg);
    transition:transform .32s var(--ease-out);}
  #welcome .lp2-faq-item[open] summary::after{transform:rotate(-135deg);}
  #welcome .lp2-faq-item summary:focus-visible{outline:2px solid var(--gold-soft);outline-offset:3px;border-radius:6px;}
  #welcome .lp2-faq-item p{font-size:var(--fs-14);line-height:1.62;color:var(--ink-soft);padding:0 26px 18px 2px;margin:0;}
  @media (prefers-reduced-motion:no-preference){
    #welcome .lp2-faq-item[open] p{animation:faqIn .4s var(--ease-out);}
  }
  @keyframes faqIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}

  /* raccords de la zone crème (système Apple : fin trait doré + phrase-pont) */
  #welcome .lp2-seam{display:flex;flex-direction:column;align-items:center;text-align:center;margin:42px auto 16px;max-width:340px;}
  #welcome .lp2-seam-rule{width:1px;height:44px;border-radius:1px;
    background:linear-gradient(180deg,transparent,var(--gold-soft) 55%,var(--gold));opacity:.72;}

  #welcome .lp2-seam--mini{margin:30px auto 8px;}

  /* closing */
  #welcome .lp2-final{position:relative;z-index:1;margin-top:-30px;border-radius:32px 32px 0 0;
    background:radial-gradient(125% 95% at 50% 120%, #3c2615 0%, var(--espresso) 72%);
    padding:54px 24px 40px;text-align:center;box-shadow:0 -20px 40px -28px rgba(0,0,0,.5);}
  #welcome .lp2-final .lp2-eyebrow{color:var(--gold-soft);}
  #welcome .lp2-h2--light{color:var(--cream);margin:12px auto 26px;max-width:18em;}
  #welcome .lp2-h2--light em{color:var(--gold-soft);}
  #welcome .lp2-final .lp2-btn{width:100%;max-width:330px;margin:0 auto;}
  #welcome .lp2-link--light{display:block;margin:15px auto 0;color:rgba(246,232,213,.72);}

  /* footer */
  #welcome .lp2-foot{padding:34px 24px calc(32px + env(safe-area-inset-bottom,0px));text-align:center;
    background:var(--espresso);}
  #welcome .lp2-foot .lp2-brand{justify-content:center;}
  #welcome .lp2-foot .lp2-brand svg{width:22px;height:20px;}
  #welcome .lp2-foot .lp2-brandtxt{font-size:var(--fs-15);}
  #welcome .lp2-foot-tag{font-family:'Fraunces',serif;font-style:italic;font-weight:400;font-size:var(--fs-15);
    color:var(--gold-soft);margin-top:15px;letter-spacing:.005em;}
  #welcome .lp2-foot-fine{font-size:var(--fs-13);line-height:1.5;color:rgba(246,232,213,.5);margin-top:8px;
    max-width:30ch;margin-left:auto;margin-right:auto;}
  #welcome .lp2-foot-meta{font-size:var(--fs-11);letter-spacing:.04em;color:rgba(246,232,213,.32);margin-top:16px;}

  /* entry animation (CSS only — always ends visible) */
  @media (prefers-reduced-motion:no-preference){
    #welcome .lp2-intro>*{opacity:0;transform:translateY(14px);animation:lp2rise .7s var(--ease-out) forwards;}
    #welcome .lp2-intro>*:nth-child(1){animation-delay:.06s}
    #welcome .lp2-intro>*:nth-child(2){animation-delay:.12s}
    #welcome .lp2-intro>*:nth-child(3){animation-delay:.18s}
    #welcome .lp2-intro>*:nth-child(4){animation-delay:.25s}
    #welcome .lp2-intro>*:nth-child(5){animation-delay:.32s}
    #welcome .lp2-intro>*:nth-child(6){animation-delay:.39s}
    #welcome .lp2-intro>*:nth-child(7){animation-delay:.46s}
    #welcome .lp2-photo{opacity:0;animation:lp2fade 1s var(--ease-out) .05s forwards;}
  }
  @keyframes lp2rise{to{opacity:1;transform:none}}
  @keyframes lp2fade{to{opacity:1}}

  /* ===== KROWN — détails premium (vivant & luxueux) ===== */
  #welcome .lp2-btn{position:relative;overflow:hidden;}
  @media (prefers-reduced-motion:no-preference){
    /* photo hero : léger ken-burns chaleureux */
    #welcome .lp2-photo img{animation:lp2ken 22s ease-in-out infinite alternate;}
    /* couronne qui respire (top bar) */
    #welcome .lp2-top .lp2-brand svg{animation:lp2crown 4.5s ease-in-out infinite;}
    /* éclat doré qui balaie les boutons */
    #welcome .lp2-btn::after{content:"";position:absolute;top:0;left:-65%;width:45%;height:100%;
      background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);
      transform:skewX(-18deg);pointer-events:none;animation:lp2shine 5.5s ease-in-out 1.6s infinite;}
  }
  @keyframes lp2ken{from{transform:scale(1.04)}to{transform:scale(1.13)}}
  @keyframes lp2crown{0%,100%{filter:drop-shadow(0 4px 12px rgba(182,130,63,.45))}50%{filter:drop-shadow(0 5px 20px rgba(217,178,126,.85))}}
  @keyframes lp2shine{0%,68%{left:-65%}84%,100%{left:135%}}

  /* révélation douce au défilement (how-it-works + final) */
  #welcome .rev{opacity:0;transform:translateY(24px);
    transition:opacity .75s var(--ease-out),transform .75s var(--ease-out);}
  #welcome .rev.rev-in{opacity:1;transform:none;}
  #welcome .lp2-step:nth-child(2).rev{transition-delay:.07s}
  #welcome .lp2-step:nth-child(3).rev{transition-delay:.14s}
  #welcome .lp2-step:nth-child(4).rev{transition-delay:.21s}
  @media (prefers-reduced-motion:reduce){ #welcome .rev{opacity:1!important;transform:none!important;} }

  /* flèche "ça progresse" — détail premium qui se dessine à l'apparition */
  #welcome .lp2-step h3{display:inline-flex;align-items:center;}
  #welcome .lp2-trend{width:18px;height:18px;margin-left:9px;flex:0 0 auto;fill:none;stroke:var(--gold);
    stroke-width:2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 6px rgba(182,130,63,.55));}
  #welcome .lp2-trend path{stroke-dasharray:42;stroke-dashoffset:0;}
  @media (prefers-reduced-motion:no-preference){
    #welcome .lp2-step:nth-child(4) .lp2-trend path{stroke-dashoffset:42;}
    #welcome .lp2-step:nth-child(4).rev-in .lp2-trend path{animation:lp2trend 1s var(--ease-out) .35s forwards;}
  }
  @keyframes lp2trend{to{stroke-dashoffset:0}}

  /* ===== manifeste — bande sombre, descente dans la matière ===== */
  #welcome .lp2-manifesto{position:relative;text-align:center;
    background:linear-gradient(180deg,var(--espresso) 0%,#2c1a10 44%,var(--espresso) 80%);
    padding:64px 26px 72px;}
  #welcome .lp2-manifesto::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
    width:52px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--gold-soft),transparent);}
  #welcome .lp2-manifesto .lp2-eyebrow{color:var(--gold-soft);}
  #welcome .lp2-mani-txt{font-family:'Fraunces',serif;font-weight:360;font-size:29px;line-height:1.32;
    color:var(--cream);margin:22px auto 0;max-width:14.5em;letter-spacing:-.008em;}
  #welcome .lp2-mani-txt em{font-style:italic;color:rgba(246,232,213,.54);}
  #welcome .lp2-mani-txt b{font-weight:500;font-style:italic;color:var(--gold-soft);}
  #welcome .lp2-mani-txt span{display:block;margin-top:15px;font-family:'Instrument Sans',sans-serif;
    font-size:var(--fs-15);line-height:1.55;color:rgba(246,232,213,.72);font-weight:400;}

  /* ===== app en action — téléphone vivant (Apple premium) ===== */
  #welcome .lp2-demo{text-align:center;margin:8px 0 2px;}
  #welcome .lp2-demo .lp2-eyebrow{color:var(--mocha);}
  #welcome .lp2-demo .lp2-h2{margin:12px 0 22px;}
  /* scène 3D */
  #welcome .lp2-phone-stage{position:relative;width:clamp(206px,58vw,260px);margin:0 auto;}
  #welcome .lp2-phone-shadow{display:none;}
  #welcome .lp2-phone-tilt{transform:none;}
  #welcome .lp2-phone-float{will-change:auto;}
  /* châssis fin & sombre — frontal, façon Apple */
  #welcome .lp2-phone{position:relative;width:100%;padding:8px;border-radius:42px;border:1px solid #130c06;
    background:linear-gradient(155deg,#2b1c10 0%,#160d07 60%,#0f0904 100%);
    box-shadow:0 2px 6px rgba(40,28,20,.12),0 26px 52px -18px rgba(40,28,20,.45),
      inset 0 0 0 1.5px rgba(255,255,255,.05),inset 0 1px 1px rgba(255,255,255,.07);}
  #welcome .lp2-phone::before{content:"";position:absolute;top:15px;left:50%;transform:translateX(-50%);z-index:6;
    width:34px;height:5px;border-radius:3px;background:rgba(0,0,0,.5);}
  /* reflet de lumière sur le verre */
  #welcome .lp2-phone-glass{position:absolute;inset:8px;border-radius:34px;overflow:hidden;z-index:5;pointer-events:none;}
  #welcome .lp2-phone-glass::after{content:"";position:absolute;top:-10%;bottom:-10%;left:0;width:58%;
    background:linear-gradient(108deg,transparent 32%,rgba(246,232,213,.12) 48%,transparent 62%);transform:translateX(-135%);}
  @media (prefers-reduced-motion:no-preference){ #welcome .lp2-phone-glass::after{animation:lp2glass 7s ease-in-out 2.4s infinite;} }
  @keyframes lp2glass{0%,82%{transform:translateX(-135%)}100%{transform:translateX(240%)}}
  /* écran */
  #welcome .lp2-phone-scr{position:relative;aspect-ratio:375 / 812;border-radius:34px;overflow:hidden;background:var(--espresso);}
  /* app en action : scroll CONTINU (pas de pin, jamais de blocage) */
  #welcome .lp2-scrolly{position:relative;text-align:center;}
  #welcome .lp2-scrolly-pin{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(6px,1.5vh,16px) 0 clamp(22px,4vh,40px);}
  #welcome .lp2-scrolly-pin .lp2-eyebrow{color:var(--mocha);}
  #welcome .lp2-scrolly-pin .lp2-h2{margin:12px 0 clamp(22px,3.5vh,36px);}
  #welcome .lp2-scrolly-cap{position:relative;width:100%;max-width:320px;min-height:30px;margin-top:16px;}
  #welcome .sc-cap{position:absolute;left:0;right:0;text-align:center;font-family:'Fraunces',serif;font-weight:500;
    font-size:var(--fs-18);letter-spacing:-.01em;color:var(--espresso);opacity:0;transform:translateY(7px);transition:opacity .45s var(--ease-out),transform .45s var(--ease-out);}
  #welcome .sc-cap.on{opacity:1;transform:none;}
  #welcome .lp2-scrolly .lp2-phone-dots{position:static;display:flex;gap:6px;justify-content:center;margin-top:14px;padding:0;}
  #welcome .lp2-scrolly .lp2-phone-dots i{width:6px;height:6px;border-radius:3px;background:rgba(122,79,53,.25);transition:width .3s var(--ease-out),background .3s;}
  #welcome .lp2-scrolly .lp2-phone-dots i.on{width:22px;background:linear-gradient(90deg,var(--gold-soft),var(--gold));}
  /* vraies pages de l'app, en fondu */
  #welcome .ph-screens{position:absolute;inset:0;display:flex;width:300%;will-change:transform;transition:none;}
  #welcome .lp2-shot{position:relative;flex:0 0 33.3333%;width:33.3333%;height:100%;object-fit:cover;object-position:top center;display:block;}
  @media (prefers-reduced-motion:reduce){ #welcome .lp2-shot{transition:none;} }

  #welcome .ph-screens{position:absolute;inset:0;display:flex;width:300%;will-change:transform;transition:none;}

  @keyframes lp2pulse{0%{box-shadow:0 0 0 0 rgba(143,178,134,.5)}70%{box-shadow:0 0 0 8px rgba(143,178,134,0)}100%{box-shadow:0 0 0 0 rgba(143,178,134,0)}}

  @keyframes phType{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}

  @media(min-width:920px){
    #welcome .lp2-manifesto{padding:96px 24px;}
    #welcome .lp2-mani-txt{font-size:43px;max-width:16em;}
    #welcome .lp2-mani-txt span{font-size:var(--fs-18);}
    #welcome .lp2-demo{margin:14px 0 0;}
    #welcome .lp2-phone-stage{width:clamp(300px,26vw,360px);}
    #welcome .sc-cap{font-size:var(--fs-22);}
  }

  /* ===== desktop editorial split (>=920px) ===== */
  @media(min-width:920px){
    #welcome .lp2{display:block;}
    #welcome .lp2-top{position:absolute;top:0;left:0;right:0;z-index:6;padding:30px 46px;}
    #welcome .lp2-top .lp2-brandtxt,#welcome .lp2-top .lp2-brand svg{text-shadow:0 2px 14px rgba(0,0,0,.5);filter:drop-shadow(0 3px 12px rgba(0,0,0,.55));}
    #welcome .lp2-hero{flex-direction:row;align-items:stretch;min-height:100vh;background:none;}
    #welcome .lp2-photo{flex:1 1 48%;margin:0;height:100vh;min-height:100vh;max-height:none;
      border-radius:0;border:none;box-shadow:none;
      -webkit-mask-image:linear-gradient(90deg,#000 70%,transparent 100%);mask-image:linear-gradient(90deg,#000 70%,transparent 100%);}
    #welcome .lp2-photo img{object-position:center 16%;}
    #welcome .lp2-intro{flex:1 1 52%;align-self:center;max-width:580px;padding:64px 6vw;margin-top:0;}
    #welcome .lp2-word{font-size:clamp(44px,4.4vw,56px);max-width:17ch;}
    #welcome .lp2-lede{font-size:var(--fs-16);max-width:40ch;}
    #welcome .lp2-cta{flex-direction:row;align-items:center;flex-wrap:wrap;gap:10px 18px;}
    #welcome .lp2-proof{text-align:left;}
    #welcome .lp2-btn{padding:16px 28px;}
    #welcome .lp2-how{border-radius:0;padding:88px 8vw;margin-top:0;}
    #welcome .lp2-how-head{max-width:760px;margin:0 auto;text-align:center;}
    #welcome .lp2-h2{font-size:36px;}
    #welcome .lp2-steps{flex-direction:row;gap:26px;max-width:1120px;margin:44px auto 0;}
    #welcome .lp2-step{flex:1;flex-direction:column;border-top:none;padding:0;}
    #welcome .lp2-step:first-child{padding-top:0;}
    #welcome .lp2-step h3{font-size:var(--fs-20);}
    #welcome .lp2-step p{font-size:var(--fs-15);}
    #welcome .lp2-num{margin-bottom:15px;}
    #welcome .lp2-final{padding:96px 8vw;}
    #welcome .lp2-h2--light{font-size:34px;}
    #welcome .lp2-faq{margin-top:10px;}
    #welcome .lp2-seam{margin:60px auto 18px;}
    #welcome .lp2-seam--mini{margin:40px auto 10px;}
    #welcome .lp2-faq-item summary{font-size:var(--fs-18);padding:19px 2px;}
    #welcome .lp2-faq-item p{font-size:var(--fs-15);}
    #welcome .lp2-final .lp2-btn{display:inline-flex;width:auto;}
  }

  /* ---- parcours tempes & bordures (accueil) ---- */
  .tempes-card{border-left:3px solid var(--gold);padding:18px 16px 14px;}

  .tempes-step{display:flex;gap:11px;align-items:flex-start;margin-top:12px;}
  .tempes-num{flex:0 0 22px;height:22px;border-radius:50%;background:linear-gradient(155deg,var(--gold-soft),var(--gold));color:#fff;display:grid;place-items:center;font-size:var(--fs-12);font-weight:600;margin-top:1px;}
  .tempes-step b{display:block;font-size:var(--fs-14);color:var(--ink);}
  .tempes-step span{display:block;font-size:var(--fs-14);color:var(--ink-soft);line-height:1.45;margin-top:2px;}
  .tempes-ctas{display:flex;gap:10px;margin-top:15px;}
  .tempes-ctas .btn{flex:1;font-size:var(--fs-13);padding:12px 8px;}
  .tempes-btn2{border:1px solid var(--gold-soft);background:var(--card);color:var(--mocha);}

  /* ---- fil du jour : ligne tempes du soir, cochable ---- */
  .tempes-line{display:flex;align-items:center;gap:10px;padding:13px 14px;border-left:3px solid var(--gold);}
  .tl-main{flex:1;min-width:0;display:flex;align-items:center;gap:11px;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;text-align:left;}
  .tl-ic{font-size:var(--fs-20);flex:0 0 auto;}
  .tl-tx{min-width:0;}
  .tl-tx b{display:block;font-size:var(--fs-14);color:var(--ink);}
  .tl-tx span{display:block;font-size:var(--fs-12);color:var(--ink-soft);margin-top:1px;}
  .tl-chk{flex:0 0 auto;border:1px solid var(--gold-soft);background:var(--card);color:var(--mocha);border-radius:18px;padding:8px 14px;font-size:var(--fs-13);font-weight:600;font-family:inherit;cursor:pointer;transition:transform .12s var(--ease-out);}
  .tl-chk:active{transform:scale(.94);}
  .tempes-line.done .tl-chk{background:linear-gradient(155deg,var(--gold-soft),var(--gold));color:#fff;border-color:transparent;}
  .tempes-line.done .tl-tx b{opacity:.65;}

  /* ---- le mot de Naya (accueil, change chaque jour) ---- */
  .naya-day{padding:16px;}
  .nd-head{display:flex;gap:10px;align-items:center;margin-bottom:9px;}
  .nd-av{width:38px;height:38px;border-radius:50%;overflow:hidden;flex:0 0 auto;border:2px solid var(--gold-soft);}
  .nd-av img{width:100%;height:100%;object-fit:cover;display:block;}
  .nd-head b{display:block;font-size:var(--fs-14);color:var(--ink);}
  .nd-head span{display:block;font-size:var(--fs-12);color:var(--ink-soft);text-transform:capitalize;}
  .nd-tip{font-size:var(--fs-15);line-height:1.55;color:var(--ink);margin:0 0 10px;font-family:Fraunces,serif;}
  .nd-more{font-size:var(--fs-13);color:var(--mocha);}

  /* ---- réponses rapides du coach (Naya parle la première) ---- */
  .op-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px;}
  .op-chip{border:1px solid var(--gold-soft);background:var(--card);color:var(--mocha);border-radius:18px;padding:9px 14px;font-size:var(--fs-13);font-family:inherit;cursor:pointer;transition:transform .12s var(--ease-out);}
  .op-chip:active{transform:scale(.94);}

  /* ---- célébration : étincelles ---- */
  .spark{position:fixed;bottom:16vh;z-index:9999;pointer-events:none;animation:sparkUp 1.5s ease-out forwards;opacity:0;}
  @keyframes sparkUp{0%{transform:translateY(0) scale(.6) rotate(-8deg);opacity:0;}15%{opacity:1;}100%{transform:translateY(-48vh) scale(1.2) rotate(10deg);opacity:0;}}

  /* ---- verdict éclair : la note tombe d'abord ---- */
  .scorebig{display:flex;align-items:baseline;gap:3px;flex:0 0 auto;font-family:Fraunces,serif;margin:0;}
  .scorebig b{font-size:var(--fs-22);line-height:1;font-weight:600;}
  .scorebig span{font-size:var(--fs-11);color:var(--ink-soft);font-weight:500;}
  .scorebig.ok b{color:var(--v-ok);} .scorebig.mid b{color:var(--v-warn);} .scorebig.bad b{color:var(--v-bad);}
  .pinbtn{width:100%;margin:8px 0 4px;border:1px solid var(--gold);border-radius:var(--radius-field);background:rgba(217,178,126,.14);color:var(--espresso);font-size:var(--fs-15);font-weight:600;min-height:48px;}
  .pinbtn.on{background:linear-gradient(155deg,var(--gold-soft),var(--gold));color:#fff;border-color:transparent;}

  /* ---- ma shortlist (écran scan, fond sombre) ---- */
  .sl-card{background:rgba(251,245,236,.08);border:1px solid rgba(246,232,213,.18);border-radius:var(--radius-field);padding:14px 14px 6px;max-width:340px;margin:0 auto;}
  .sl-h{font-size:var(--fs-12);letter-spacing:var(--track-kicker);text-transform:uppercase;color:rgba(246,232,213,.8);margin-bottom:6px;text-align:left;}
  .sl-row{display:flex;align-items:center;gap:9px;padding:9px 0;border-top:1px solid rgba(246,232,213,.1);}
  .sl-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto;}
  .sl-dot.ok{background:var(--v-ok-s);} .sl-dot.mid{background:var(--v-warn-s);} .sl-dot.bad{background:var(--v-bad-s);}
  .sl-nom{flex:1;font-size:var(--fs-14);color:#F6E8D5;text-align:left;}
  .sl-empty{font-size:var(--fs-13);line-height:1.5;color:rgba(246,232,213,.62);text-align:left;padding:4px 0 8px;}
  .sl-x{background:none;border:none;color:rgba(246,232,213,.55);font-size:var(--fs-14);cursor:pointer;padding:4px 6px;}

  /* ---- révélation du mois ---- */
  .reveal-card{border-left:3px solid var(--gold);}

  /* ===== Révélation du diagnostic (première arrivée après analyse) ===== */
  .naya-type{margin:12px 2px 0;font-family:'Fraunces',serif;font-size:var(--fs-16);line-height:1.5;color:var(--espresso);min-height:23px;}
  .naya-type.typing::after{content:"";display:inline-block;width:2px;height:1em;background:var(--gold);margin-left:2px;vertical-align:-2px;animation:ntBlink .8s step-end infinite;}
  @keyframes ntBlink{50%{opacity:0;}}
  .ac-stat{transition:opacity .5s ease,filter .5s ease;}
  .ac-stat.rv-dim{opacity:.3;filter:saturate(.3);}
  #result .rv-hide{opacity:0;transform:translateY(14px);pointer-events:none;}
  #result .rv-hide.rv-in{opacity:1;transform:none;pointer-events:auto;transition:opacity .6s var(--ease-out),transform .6s var(--ease-out);}
  @media (prefers-reduced-motion:reduce){ #result .rv-hide{opacity:1;transform:none;pointer-events:auto;} }

  /* ===== Transitions d'écran douces : sensation app, pas page web ===== */
  .screen.active{animation:screenIn .25s var(--ease-out);}
  @keyframes screenIn{from{opacity:0;transform:translateY(7px);}to{opacity:1;transform:none;}}
  @media (prefers-reduced-motion:reduce){ .screen.active{animation:none;} }

  /* ---- pédagogie du diagnostic : mesures tappables + fiches en 3 couches ---- */
  .metric{cursor:pointer;position:relative;transition:transform .12s var(--ease-out);}
  .metric:active{transform:scale(.97);}
  .m-more{display:block;margin-top:4px;font-size:var(--fs-10);color:var(--gold);font-weight:600;}
  .peda-bloc{margin-bottom:14px;}
  .peda-bloc .kicker{margin-bottom:5px;}
  .peda-bloc .sheet-p{margin:0;}
  .peda-geste{border-left:3px solid var(--gold);padding-left:12px;}

  /* ---- tes 3 gestes d'or (fiche diagnostic) ---- */
  .gestes-or{margin:4px 0 12px;padding:15px;}
  .go-row{display:flex;gap:11px;align-items:flex-start;margin-top:11px;}
  .go-ic{font-size:var(--fs-18);flex:0 0 26px;text-align:center;margin-top:1px;}
  .go-row b{display:block;font-size:var(--fs-14);color:var(--ink);}
  .go-row span{display:block;font-size:var(--fs-14);color:var(--ink-soft);line-height:1.45;margin-top:1px;}

  .gj-done{width:100%;margin-top:10px;}
  .rd-geste .gjour{margin-bottom:0;}
  .rafraichir{font-size:var(--fs-14);color:var(--ink-soft);line-height:1.45;margin:12px 0 0;padding-top:10px;border-top:1px solid rgba(33,19,9,.06);}
  .go-cta{display:block;margin-top:13px;font-size:var(--fs-13);color:var(--mocha);}

  /* ---- ta semaine en un regard (écran routine) ---- */
  /* ===== Ta routine · cette semaine : en-tête + prochain rendez-vous ===== */
  .wk-routine-h{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;margin:2px 2px 11px;}
  .wk-routine-t{font-family:'Fraunces',serif;font-weight:540;font-size:var(--fs-18);letter-spacing:-.01em;color:var(--espresso);}
  .wk-next{display:flex;align-items:center;gap:6px;font-size:var(--fs-12);line-height:1.3;color:var(--ink-soft);background:rgba(182,130,63,.09);border:1px solid var(--line);border-radius:999px;padding:4px 11px 4px 9px;}

  .week-strip{display:flex;gap:6px;margin:0 0 11px;}
  .ws-day{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 2px 8px;border-radius:14px;border:1px solid var(--line);background:var(--card);font-family:inherit;cursor:pointer;transition:transform .12s var(--ease-out);}
  .ws-day:active{transform:scale(.95);}
  .ws-day.today{border-color:var(--gold-soft);box-shadow:0 4px 14px -8px rgba(182,130,63,.55);}

  .ws-day b{font-size:var(--fs-15);color:var(--ink);font-weight:600;font-family:Fraunces,serif;line-height:1;}
  .ws-pin{font-size:var(--fs-13);line-height:1;margin-top:1px;}
  /* E1 (C0.1) : la couronne s'anime quand elle vient d'être posée (confirmation wash / re-calage) */
  .ws-pin-pose{animation:wsPinPose .55s cubic-bezier(.34,1.56,.64,1) both;}
  @keyframes wsPinPose{0%{transform:scale(.5) translateY(-6px);opacity:0;}60%{transform:scale(1.25) translateY(0);opacity:1;}100%{transform:scale(1);opacity:1;}}

  .ws-day.has{border-color:var(--gold-soft);}

  /* Wash day = l'ancre de la semaine : fond chaud + accent couronne */
  .ws-day.wash{border-color:var(--gold);background:linear-gradient(165deg,#FBEFDC,#F3DFC2);box-shadow:0 5px 16px -9px rgba(182,130,63,.65);}
    .ws-day.wash b{color:var(--espresso);}

  /* Phrase rassurante (ton Naya) : « voir la routine assurée » */
  .wk-reassure{margin:2px 2px 10px;font-size:var(--fs-13);line-height:1.5;color:var(--ink-soft);font-style:italic;font-family:'Fraunces',serif;}

  /* ---- je ne peux pas aujourd'hui : la routine qui pardonne ---- */
  .cantbtn{display:block;margin:10px auto 0;font-size:var(--fs-14);color:var(--ink-soft);background:none;border:none;cursor:pointer;font-family:inherit;text-decoration:underline;text-underline-offset:3px;}
  .cant-opt{display:flex;gap:12px;align-items:flex-start;width:100%;text-align:left;padding:14px;border-radius:var(--radius-field);border:1px solid var(--line);background:var(--card);margin-bottom:10px;cursor:pointer;font-family:inherit;transition:transform .12s var(--ease-out);}
  .cant-opt:active{transform:scale(.97);}
  .cant-ic{font-size:var(--fs-20);flex:0 0 26px;text-align:center;} .cant-ic svg{width:22px;height:22px;color:var(--gold-deep);vertical-align:middle;} /* C16 : branches urgence en SVG au trait */
  .cant-tx b{display:block;font-size:var(--fs-14);color:var(--ink);}
  .cant-tx span{display:block;font-size:var(--fs-14);color:var(--ink-soft);line-height:1.45;margin-top:2px;}

  /* règle zéro cul-de-sac : les statuts mènent au diagnostic */
  .ac-stat{cursor:pointer;}

  /* ---- ta semaine : 7 pastilles d'activité ---- */
  .week-pills{display:flex;align-items:center;gap:6px;margin:12px 2px 0;cursor:pointer;background:none;border:none;}
  .week-pills--prog{cursor:default;margin:6px 2px 14px;}
  .wp{width:9px;height:9px;border-radius:50%;background:rgba(122,79,53,.16);transition:background .3s;}
  .wp.on{background:linear-gradient(135deg,var(--gold-soft),var(--gold));}
  .wp.today{box-shadow:0 0 0 2px rgba(217,178,126,.4);}
  .wp-lbl{margin-left:6px;font-size:var(--fs-12);color:var(--ink-soft);}

  /* ---- check de couronne ---- */
  .check-card{border-left:3px solid var(--gold);}
  /* 2d — check d'humeur dé-boxé : plus de carte (fond/ombre/bordure), juste un filet doré à gauche = « Naya te parle ». Moins de boîtes, ça respire. */
  #result .check-card.card{background:transparent;box-shadow:none;border:0;border-left:3px solid var(--gold-soft);border-radius:0;padding:6px 2px 8px 15px;margin:6px 0 0;}

  /* ---- bilan du dimanche : ligne compte à rebours ---- */
  .bilan-line{display:flex;align-items:center;gap:9px;width:100%;background:none;border:none;padding:4px 2px;cursor:pointer;font-family:inherit;font-size:var(--fs-14);color:var(--ink-soft);}
  .bl-tx{text-decoration:underline;text-underline-offset:3px;}

  /* ---- produit du jour : la raison pour ELLE ---- */
  .gj-preason{display:block;font-size:var(--fs-11);color:var(--gold);margin-top:2px;font-weight:600;}

  /* ---- VAGUE A 100× ---- */
  /* jauge de tension tempes */
  .jauge{margin:8px 2px 0;}
  .jauge-bar{height:6px;border-radius:4px;background:rgba(122,79,53,.14);overflow:hidden;}
  .jauge-bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--gold-soft),var(--gold));transition:width .6s var(--ease-out);}
  .jauge-lbl{display:block;margin-top:5px;font-size:var(--fs-12);color:var(--ink-soft);}
  /* courbe de couronne */
  .facts-card{padding:18px;}
  .fact-row{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--hair);}
  .fact-row:last-of-type{border-bottom:0;}
  .fact-dot{width:10px;height:10px;border-radius:50%;background:var(--gold-deep);box-shadow:0 0 0 4px var(--sand);flex:0 0 auto;margin-top:5px;}
  .fact-photo .fact-dot{background:var(--terra);}.fact-trial .fact-dot{background:var(--sage-deep);}.fact-result .fact-dot{background:var(--espresso);}.fact-scan .fact-dot{background:var(--mocha);}
  .fact-tx{flex:1;min-width:0;}.fact-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
  .fact-top b{font-size:var(--fs-14);line-height:1.4;color:var(--espresso);}.fact-date{font-size:var(--fs-11);color:var(--ink-soft);white-space:nowrap;}
  .fact-tx p{font-size:var(--fs-12);line-height:1.45;color:var(--ink-soft);margin:3px 0 0;}
  .trial-wait{font-size:var(--fs-12);line-height:1.5;color:var(--ink-soft);margin:10px 0 0;padding-top:10px;border-top:1px solid var(--hair);}
  .trial-result{margin-top:13px;padding-top:13px;border-top:1px solid var(--hair);}.trial-result>b{font-size:var(--fs-14);color:var(--espresso);}
  .trial-result-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;}
  .trial-result-btn{min-height:44px;border:1px solid var(--gold-soft);border-radius:var(--radius-field);background:var(--cream-bright);color:var(--gold-deep);font:600 var(--fs-13) 'Instrument Sans',sans-serif;cursor:pointer;}
  .trial-result-btn:active{transform:scale(.97);}.trial-result-btn:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;}
  .facts-empty{padding-top:12px;}.facts-empty>p{font-size:var(--fs-14);line-height:1.55;color:var(--ink-soft);margin:0;}
  .facts-empty-actions{display:flex;gap:8px;margin-top:13px;}.facts-empty-actions .btn{margin:0;flex:1;min-height:44px;}
  @media(max-width:480px){.facts-empty-actions{flex-direction:column;}}
  /* mode rayon */
  /* (CSS mode rayon supprimé — fonctionnalité fusionnée dans la fiche unique le 13/06) */
  /* créneau sacré */
  .wash-pick{display:flex;align-items:center;gap:7px;width:100%;background:none;border:none;padding:2px 2px 12px;cursor:pointer;font-family:inherit;font-size:var(--fs-13);color:var(--ink);}
  .wash-pick b{font-weight:600;}
  .wash-pick span{color:var(--gold);font-size:var(--fs-12);margin-left:auto;}
  .wash-days{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px;}
  .wash-days .op-chip.on{background:linear-gradient(155deg,var(--gold-soft),var(--gold));color:#fff;border-color:transparent;}
  /* remplaçant */
  .rempbtn{width:100%;margin-bottom:10px;border:0;background:linear-gradient(170deg,var(--gold) 0%,var(--gold-deep) 130%);color:#FFF9EE;font-weight:600;box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 8px 20px -6px rgba(138,95,46,.45);} /* C4 v2 : l'action principale est en or PLEIN, comme partout */

  /* ---- naya détective ---- */
  .detective-card{border:1px solid var(--hair);}
  .detective-card .nd-fact{font-size:var(--fs-13);color:var(--ink-soft);margin:8px 0 10px;}
  .detective-card .nd-confirm{font-size:var(--fs-14);font-weight:600;color:var(--espresso);margin:10px 0 2px;}
  .detective-card .nd-test{display:block;font-family:Fraunces,serif;font-size:var(--fs-18);font-weight:500;line-height:1.35;color:var(--espresso);margin:8px 0;}
  .detective-card .nd-why{font-size:var(--fs-14);line-height:1.5;color:var(--ink);margin:0 0 10px;}
  .detective-card .nd-source{font-size:var(--fs-11);color:var(--ink-soft);border-top:1px solid var(--hair);padding-top:9px;margin:10px 0 2px;}

  /* ---- MODE WASH DAY « Couronne en 90 » ---- */
  .washgo{display:block;width:100%;margin-bottom:10px;}
  #washMode{position:fixed;inset:0;z-index:10000;display:none;flex-direction:column;padding:20px 22px calc(22px + env(safe-area-inset-bottom));
    background:linear-gradient(170deg,#2b1a0d,#211309 60%,#1a0f07);color:#F6E8D5;overflow-y:auto;}
  .wm-top{display:flex;align-items:center;justify-content:space-between;}
  .wm-top b{font-family:Fraunces,serif;font-size:30px;font-weight:600;color:var(--gold-soft);}
  .wm-x{background:rgba(251,245,236,.1);border:none;color:#F6E8D5;border-radius:var(--radius-field);padding:9px 14px;font:inherit;font-size:var(--fs-14);cursor:pointer;}
  .wm-prog{margin:14px 0 10px;font-size:var(--fs-12);letter-spacing:var(--track-kicker);text-transform:uppercase;color:rgba(246,232,213,.6);}
  .wm-prog .wm-prog-lab{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;}
  .wm-prog .wm-prog-lab b{color:var(--gold-soft);font-weight:700;}
  .wm-prog .wm-prog-rest{letter-spacing:.04em;text-transform:none;font-size:var(--fs-11);color:rgba(246,232,213,.55);}
  .wm-prog-bar{height:7px;border-radius:99px;background:rgba(251,245,236,.1);overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.35);}
  .wm-prog-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--terra-soft),var(--terra) 55%,var(--gold-soft));transition:width .8s cubic-bezier(.2,.8,.2,1);}
  .wm-card{position:relative;background:linear-gradient(162deg,#7c5238,#553421 46%,var(--espresso));border:1px solid rgba(246,232,213,.1);border-radius:22px;padding:24px 22px 22px;overflow:hidden;box-shadow:0 28px 60px -30px rgba(20,11,5,.9);}
  .wm-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--terra),var(--gold-soft));}
  .wm-card::after{content:"";position:absolute;top:-38%;right:-24%;width:210px;height:210px;border-radius:50%;background:radial-gradient(circle,rgba(217,178,126,.18),transparent 70%);pointer-events:none;}
  .wm-num{position:relative;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--gold-soft),var(--gold));color:#3a2410;display:grid;place-items:center;font-weight:700;font-size:var(--fs-16);margin-bottom:10px;box-shadow:0 6px 14px -6px rgba(0,0,0,.5);}
  .wm-card h2{position:relative;font-family:Fraunces,serif;font-size:26px;font-weight:600;margin:0 0 8px;color:#FBF3E6;}
  .wm-desc{position:relative;font-size:var(--fs-15);line-height:1.55;color:rgba(246,232,213,.85);margin:0 0 14px;}
  /* anneau-minuteur circulaire — l'élément signature du wash day */
  .wm-ring{position:relative;width:154px;height:154px;margin:6px auto 2px;}
  .wm-ring svg{transform:rotate(-90deg);display:block;}
  .wm-ring .wm-ring-bg{stroke:rgba(217,178,126,.16);}
  .wm-ring .wm-ring-fg{stroke:var(--gold-soft);stroke-linecap:round;transition:stroke-dashoffset 1s linear;}
  .wm-ring-txt{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
  .wm-ring-txt b{font-family:Fraunces,serif;font-size:42px;font-weight:500;color:#FCF5E9;line-height:1;font-variant-numeric:tabular-nums;}
  .wm-ring-txt span{margin-top:4px;font-size:var(--fs-11);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-soft);}

  .wm-pause{margin-top:14px;background:rgba(217,178,126,.1);border:1px solid rgba(217,178,126,.3);border-radius:18px;padding:16px;}
  .wm-pause p{font-family:Fraunces,serif;font-size:var(--fs-15);line-height:1.5;margin:6px 0 0;}
  .wm-pz2{font-size:var(--fs-13)!important;font-family:'Instrument Sans',sans-serif!important;color:rgba(246,232,213,.7);}
  .wm-next{margin-top:auto;padding:18px;font-size:var(--fs-16);}
  .wm-fin{display:flex;flex-direction:column;align-items:center;text-align:center;margin:auto 0;gap:8px;}
  /* couronne qui éclot : la récompense émotionnelle de fin de séance */
  .wm-crown{width:108px;height:108px;color:var(--gold-soft);filter:drop-shadow(0 8px 22px rgba(182,130,63,.5));margin-bottom:4px;}
  .wm-crown svg{width:100%;height:100%;display:block;}
  .wm-crown .wm-crown-p{stroke:currentColor;fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;}
  .wm-crown .wm-crown-g{fill:currentColor;stroke:none;}
  @keyframes wmBloom{0%{opacity:0;transform:scale(.2) rotate(-12deg);}60%{transform:scale(1.12) rotate(4deg);}100%{opacity:1;transform:scale(1) rotate(0);}}
  @media (prefers-reduced-motion:no-preference){ .wm-crown{animation:wmBloom 1.1s cubic-bezier(.2,1.3,.3,1) both;} }
  .wm-fin .kicker{color:var(--gold-soft);}
  .wm-fin-title{font-family:Fraunces,serif;font-weight:500;font-size:30px;line-height:1.12;margin:6px 0 2px;color:#FCF5E9;}
  .wm-fin-sub{font-size:var(--fs-14);line-height:1.5;color:rgba(246,232,213,.8);max-width:280px;margin:0 0 4px;}
  .wm-fin-stats{display:flex;gap:30px;margin:18px 0 6px;}
  .wm-fin-stats div{text-align:center;} .wm-fin-stats div b{display:block;font-family:Fraunces,serif;font-size:24px;color:var(--gold-soft);line-height:1;}
  .wm-fin-stats div span{display:block;margin-top:4px;font-size:var(--fs-11);letter-spacing:.05em;text-transform:uppercase;color:rgba(246,232,213,.6);}
  .wm-bigtime{font-family:Fraunces,serif;font-size:64px;font-weight:600;color:var(--gold-soft);}
  .wm-rec{font-size:var(--fs-15);margin:0;}
  .wm-rendu{font-size:var(--fs-13);color:rgba(246,232,213,.75);margin:0;}
  .wm-bars{display:flex;align-items:flex-end;gap:6px;height:48px;margin:10px 0;}
  .wm-bars i{width:14px;border-radius:4px 4px 0 0;background:linear-gradient(180deg,var(--gold-soft),var(--gold));}
  .wm-fin .btn{margin-top:14px;width:100%;}
  .wm-feel{width:100%;margin-top:18px;}
  .wm-feel-q{font-size:var(--fs-14);color:rgba(246,232,213,.8);margin-bottom:10px;}
  .wm-feel-row{display:flex;gap:10px;justify-content:center;}
  .wm-feel-b{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:12px 6px;cursor:pointer;transition:transform .15s var(--ease-out),border-color .2s,background .2s;}
  .wm-feel-b:active{transform:scale(.95);}
  .wm-feel-b.on{background:rgba(217,178,126,.2);border-color:var(--gold-soft);}
  .wm-feel-e{font-size:26px;line-height:1;} .wm-feel-l{font-size:var(--fs-12);color:rgba(246,232,213,.8);}

  /* ---- plan Maintenant : nudge sauvegarde + rattrapage 1 photo ---- */
  .nudge-card{border-left:3px solid var(--gold);}
    /* ---- INVITE NAYA (accueil) : le cœur de l'app{display:flex;align-items:center;gap:13px;width:100%;text-align:left;cursor:pointer;
    border:1px solid rgba(182,130,63,.32);border-radius:20px;padding:14px 16px;font-family:inherit;
    background:linear-gradient(135deg,rgba(217,178,126,.16),rgba(174,122,53,.08));
    box-shadow:0 6px 20px rgba(33,19,9,.05);transition:transform .18s var(--ease-out),box-shadow .25s ease;}

  /* ---- PAYWALL : récap valeur Pro ---- */
  .pw-row{display:flex;align-items:center;gap:11px;font-size:var(--fs-14);color:var(--ink);padding:7px 0;border-bottom:1px solid rgba(33,19,9,.05);}
  .pw-row:last-child{border-bottom:none;}
  .pw-ic{flex:0 0 auto;font-size:var(--fs-18);width:24px;text-align:center;}
  .scan-quota{text-align:center;font-size:var(--fs-12);color:rgba(246,232,213,.6);margin:6px 0 0;}
  .onephoto{display:block;margin:14px auto 0;min-height:44px;padding:12px 8px;font-size:var(--fs-13);color:rgba(246,232,213,.92);background:none;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:3px;font-family:inherit;max-width:300px;line-height:1.4;}

  /* ---- chantier 5 : chips actives + carte dermato ---- */
  .op-chips .op-chip.on{background:linear-gradient(155deg,var(--gold-soft),var(--gold));color:#fff;border-color:transparent;font-weight:600;}
  /* COUTURE 3 — étagère navigable (recherche + filtres). L'accordéon ne doit plus tronquer la liste filtrée. */
  .shelf-acc.open > .acc-c{max-height:3000px;}
  #produits .shelf-search{min-height:auto;font-size:var(--fs-14);margin:4px 0 10px;padding:10px 13px;border-radius:14px;background:rgba(122,79,53,.05);border:1px solid rgba(122,79,53,.16);color:var(--espresso);line-height:1.4;}
  #produits .shelf-search::placeholder{color:var(--ink-soft);}
  #produits .shelf-search:focus{border-color:var(--gold-soft);background:rgba(122,79,53,.07);}
  .shelf-chips{margin:0 0 12px;}
  .shelf-noresult{font-size:var(--fs-13);color:var(--ink-soft);text-align:center;padding:14px 0;}
  .dermato-card{border-left:3px solid #8B2C3A;margin-bottom:14px;}

  .wm-pret{font-size:var(--fs-13);color:rgba(246,232,213,.7);text-align:center;margin:14px 0 6px;line-height:1.5;}

/* ── Diagnostic de routine sur l'étagère (couverture des 5 besoins) ── */
.cov-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:14px 14px 8px;margin:0 0 16px;box-shadow:0 6px 20px rgba(33,19,9,.05);}
.cov-head{display:flex;flex-direction:column;gap:2px;margin-bottom:10px;}
.cov-head b{font-family:'Fraunces',serif;font-size:var(--fs-16);color:var(--espresso);}
.cov-head span{font-size:var(--fs-13);color:var(--mocha);}
.cov-crown{color:var(--gold)!important;font-weight:600;}
.cov-roles{display:flex;flex-direction:column;gap:7px;}
.cov-row{display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:11px;background:#faf6f0;}
.cov-row.missing{background:#fbeeec;}
.cov-row.replace{background:#fdf5e8;}
.cov-ic{flex:none;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-13);font-weight:700;color:#fff;}
.cov-row.ok .cov-ic{background:#5a8a4f;}
.cov-row.replace .cov-ic{background:#c98a2e;}
.cov-row.missing .cov-ic{background:#b15a4a;}
.cov-tx{flex:1;min-width:0;display:flex;flex-direction:column;}
.cov-tx b{font-size:var(--fs-14);color:var(--espresso);}
.cov-tx span{font-size:var(--fs-12);color:var(--mocha);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cov-add{flex:none;background:var(--gold);color:#fff;border:none;border-radius:9px;padding:7px 13px;font-size:var(--fs-13);font-weight:600;min-height:34px;}

/* ── Carte couverture : barre de progression segmentée ── */
.cov-prog{display:flex;gap:4px;margin:8px 0 2px;}
.cov-prog i{flex:1;height:6px;border-radius:99px;background:var(--line);}
.cov-prog i.on{background:var(--gold);}
.cov-prog i.full{background:var(--v-ok-s);}
/* ===== ÉCRAN KIT COURONNE (#kitMode) — range ton placard famille par famille ===== */
#kitMode{position:fixed;inset:0;z-index:10001;display:none;
  padding:14px 20px calc(28px + env(safe-area-inset-bottom));
  background:radial-gradient(140% 90% at 50% 0%,#FDF8F0 0%,var(--cream) 50%,#EFDDC6 100%);
  color:var(--ink);overflow-y:auto;-webkit-overflow-scrolling:touch;}
#kitMode .rm-top{display:flex;align-items:center;gap:12px;padding:2px 0 4px;}
#kitMode .rm-x{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.6);border:1px solid var(--line);
  color:var(--mocha);font-size:var(--fs-16);cursor:pointer;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
#kitMode .rm-title{font-family:'Fraunces',serif;font-weight:440;font-size:24px;color:var(--espresso);}
#kitMode .kit-feed{max-width:440px;width:100%;margin:0 auto;}
#kitMode .kit-lead{font-size:var(--fs-14);color:var(--ink-soft);line-height:1.5;margin:8px 2px 16px;}
#kitMode .kit-lead b{color:var(--mocha);}
#kitMode .kit-prog-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-field,16px);padding:13px 15px;margin-bottom:16px;box-shadow:var(--shadow-sm);}
#kitMode .kit-pl{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--fs-13);color:var(--ink-soft);margin-bottom:9px;}
#kitMode .kit-pl b{font-family:'Fraunces',serif;font-size:var(--fs-15);color:var(--mocha);font-weight:600;}
#kitMode .kit-fam{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:15px;margin-bottom:12px;box-shadow:var(--shadow-sm);}
#kitMode .kit-fh{display:flex;align-items:center;gap:9px;margin-bottom:11px;}
#kitMode .kit-emo{width:34px;height:34px;border-radius:11px;background:var(--sand);display:grid;place-items:center;font-size:var(--fs-16);flex:none;}
#kitMode .kit-fh b{font-family:'Fraunces',serif;font-size:var(--fs-16);font-weight:600;flex:1;}
#kitMode .kit-freq{font-size:var(--fs-11);color:var(--ink-soft);background:var(--sand);padding:3px 8px;border-radius:20px;white-space:nowrap;}
#kitMode .kit-prod{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 11px;}
#kitMode .kit-th{width:40px;height:40px;border-radius:10px;flex:none;display:grid;place-items:center;font-size:var(--fs-18);background:linear-gradient(135deg,#F3E6D2,#E7D3B8);}
#kitMode .kit-nm{flex:1;min-width:0;}
#kitMode .kit-nm b{display:block;font-size:var(--fs-14);line-height:1.25;}
#kitMode .kit-nm span{font-size:var(--fs-12);color:var(--ink-soft);}
#kitMode .kit-v{font-size:var(--fs-12);font-weight:600;padding:5px 10px;border-radius:20px;white-space:nowrap;}
#kitMode .kit-v.ok{background:rgba(67,107,57,.13);color:var(--v-ok);}
#kitMode .kit-v.bad{background:rgba(162,63,47,.12);color:var(--v-bad);}
#kitMode .kit-v.warn{background:rgba(154,106,31,.14);color:var(--v-warn);}
#kitMode .kit-auto{font-size:var(--fs-11);color:var(--v-ok);margin-top:8px;}
#kitMode .kit-swap{margin-top:10px;background:rgba(192,87,59,.06);border:1px dashed rgba(192,87,59,.35);border-radius:13px;padding:10px 11px;font-size:var(--fs-13);color:var(--mocha);}
#kitMode .kit-swap b{color:var(--terra);}
#kitMode .kit-ask{font-size:var(--fs-14);color:var(--ink-soft);margin-bottom:11px;}
#kitMode .kit-sugg-intro{font-size:var(--fs-13);color:var(--ink-soft);margin-bottom:10px;}
#kitMode .kit-row{display:flex;gap:8px;}
#kitMode .kit-btn{font-family:inherit;font-weight:600;font-size:var(--fs-13);border-radius:12px;padding:12px;cursor:pointer;min-height:44px;flex:1;border:1px solid var(--line);background:#fff;color:var(--mocha);}
#kitMode .kit-btn.btn-gold{border:none;}
#kitMode .kit-ghost{background:var(--sand);border:none;flex:0 0 auto;padding:12px 16px;}
#kitMode .kit-add{border:none;background:var(--sand);border-radius:10px;padding:9px 11px;min-height:40px;font-size:var(--fs-13);font-weight:600;color:var(--mocha);cursor:pointer;font-family:inherit;white-space:nowrap;}
#kitMode .kit-rescan{display:block;margin-top:10px;font-size:var(--fs-13);}
#kitMode .kit-cta{background:linear-gradient(135deg,#2C1E12,#43301d);color:var(--cream);border-radius:20px;padding:17px;margin-top:6px;box-shadow:var(--shadow);}
#kitMode .kit-cta b{font-family:'Fraunces',serif;font-size:var(--fs-16);font-weight:600;display:block;margin-bottom:5px;}
#kitMode .kit-cta p{font-size:var(--fs-13);opacity:.85;line-height:1.5;margin-bottom:13px;}
#kitMode .kit-cta .btn-gold{width:100%;}
.cov-enc{font-size:var(--fs-12);color:var(--mocha);margin-top:6px;}

/* ── Fiche scan : accordéon ingrédients (replié par défaut) ── */
.ingr-acc{padding:6px 16px;}
.ingr-tog{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:none;border:none;cursor:pointer;font:inherit;padding:12px 0;text-align:left;min-height:48px;}
.ingr-tog-l{font-size:var(--fs-11);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mocha);}
.ingr-chev{color:var(--mocha);font-size:var(--fs-13);flex:0 0 auto;}
.ingr-box{display:none;padding-bottom:6px;}
.ingr-acc.open .ingr-box{display:block;}

/* FIX : la fiche résultat vit dans #scan (.dark) → la règle .dark .link colorait
   les liens/boutons secondaires en crème (illisibles sur le fond clair de la fiche).
   On rétablit un texte foncé pour la fiche (spécificité .sheet .panel > .dark .link). */
.sheet .panel .link, .sheet .panel .nd-more{color:var(--mocha);}
.sheet .panel .pinbtn{color:var(--espresso);}
.sheet .panel .ingr-tog-l, .sheet .panel .ingr-chev{color:var(--mocha);}

/* ════════ LOT EXPÉRIENCE APPLE v1 ════════ */
/* 1) Transition d'écran : fondu + léger glissement (le « feel » premium au changement d'onglet) */

.screen.screen-in{animation:screenIn .34s cubic-bezier(.2,.8,.2,1);}
@media (prefers-reduced-motion: reduce){ .screen.screen-in{animation:none;} }

/* 2) Barre dorée sur l'onglet actif de la sidebar (lisibilité desktop au coup d'œil) */
.sb-item.on{position:relative;}
.sb-item.on::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--gold);}
.sb-item.on svg{color:var(--gold-deep);stroke:var(--gold-deep);}

/* 3) WEB : colonne plus présente, écran Scan en carte claire, états souris ── */
@media(min-width:880px){
  /* colonne plus large : on ne flotte plus dans le vide (720 → 860) */
  .content,.coachscroll,.appbar,.chat-head,.homehead,.sugg,.inbar{max-width:860px;}
  #account .content{max-width:600px;}

  /* l'écran Scan cesse d'être un mur brun plein écran → carte claire centrée */
  #scan{background:linear-gradient(180deg,var(--sand),var(--sand-2));}
  #scan::before{display:none;}
  #scan .pbody{max-width:520px;margin:auto;padding:40px 38px;background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);}
  #scan .topbar .eyebrow{color:var(--mocha);}
  #scan .q-title{color:var(--espresso);}
  #scan .sub{color:var(--ink-soft);}
  #scan .scanframe{background:var(--sand);border:1px dashed var(--gold-soft);box-shadow:inset 0 0 30px rgba(33,19,9,.06);}
  #scan .scanframe .frame-lbl{color:var(--mocha);}
  #scan .scanframe .ghost svg{stroke:var(--gold);}
  #scan .scan-paste-link{color:var(--mocha);}
  /* ORDI : le scan a besoin de l'appareil photo → on masque toute l'UI caméra et on montre le QR « fini sur ton téléphone » */
  #scan #scanFrameWrap,#scan #scanCtaBtn,#scan #scanHint,#scan #scanQuota,#scan .q-title,#scan #scanMore,#scan .scan-paste-link,#scan #inciInput,#scan .sub{display:none!important;}
  #scan #scanDesktop{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;width:100%;}
  #scan #scanDesktop #scanQR{flex:0 0 auto;border-radius:12px;background:#fff;padding:8px;box-shadow:inset 0 0 0 1px var(--line);margin-top:4px;}

  /* vraie sensation desktop : curseur + survol souris (pas que :active tactile) */
  .btn,.btn-gold,.opt,.step,.prod2,.shelf-item,.cov-add,.pinbtn,.ingr-tog,.sl-row,.cta{cursor:pointer;}
  .btn-gold{transition:filter .15s ease,transform .15s var(--ease-out);}
  .btn-gold:hover{filter:brightness(1.04);transform:translateY(-1px);}
  .prod2:hover,.step:hover,.shelf-item:hover,.opt:hover{background:rgba(122,79,53,.05);}
  .cov-add:hover{filter:brightness(1.05);}
}

/* ════════ SCAN PREMIUM — écran d'accueil du scan + bouton (Apple, animé, propre) ════════ */
/* le bouton : icône code-barres, profondeur, respiration douce + reflet qui passe */
.scan-cta{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:10px;font-size:var(--fs-16);padding:17px 22px;border-radius:20px;
  box-shadow:0 16px 34px -12px rgba(122,79,53,.7), inset 0 1px 0 rgba(255,255,255,.3);
  animation:ctaBreath 3s ease-in-out infinite;}
.scan-cta .cta-ic{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;flex:0 0 auto;}
.scan-cta::after{content:"";position:absolute;top:-25%;bottom:-25%;left:-65%;width:42%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-18deg);
  animation:ctaShine 5s ease-in-out infinite;pointer-events:none;}
@keyframes ctaBreath{0%,100%{box-shadow:0 16px 34px -12px rgba(122,79,53,.7), 0 0 0 0 rgba(217,178,126,0)}
  50%{box-shadow:0 18px 38px -12px rgba(122,79,53,.82), 0 0 0 7px rgba(217,178,126,.13)}}
@keyframes ctaShine{0%{left:-65%}55%,100%{left:140%}}

/* le cadre : halo doré qui respire derrière, coins qui « se posent », flacon qui flotte */
.scanframe::before{content:"";position:absolute;inset:-26px;border-radius:34px;z-index:-1;
  background:radial-gradient(circle at 50% 50%, rgba(217,178,126,.20), transparent 68%);
  animation:frameGlow 4.2s ease-in-out infinite;}
.scanframe .tick{animation:tickLock .55s cubic-bezier(.2,.9,.3,1.2) both;}
.scanframe .tlk{animation-delay:.22s;} .scanframe .trk{animation-delay:.30s;}
.scanframe .blk{animation-delay:.38s;} .scanframe .brk{animation-delay:.46s;}
.scanframe .ghost{animation:ghostFloat 3.6s ease-in-out infinite;}
@keyframes frameGlow{0%,100%{opacity:.45;transform:scale(1)}50%{opacity:.85;transform:scale(1.05)}}
@keyframes tickLock{from{opacity:0;transform:scale(.45)}to{opacity:1;transform:scale(1)}}
@keyframes ghostFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}

@media (prefers-reduced-motion: reduce){
  .scan-cta,.scan-cta::after,.scanframe::before,.scanframe .tick,.scanframe .ghost{animation:none!important;}
}

/* ════════ PRÉ-RÉCAP « Voici tes cheveux » ════════ */
#recap .content{padding:max(54px,calc(env(safe-area-inset-top,0px) + 30px)) 24px 36px;}
.rc-eyebrow{font-size:var(--fs-11);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold);font-weight:600;}
.rc-title{font-family:'Fraunces',serif;font-size:30px;line-height:1.12;color:var(--espresso);margin:8px 0 8px;}
.rc-lead{font-size:var(--fs-15);line-height:1.55;color:var(--ink-soft);margin:0 0 20px;max-width:34ch;}
.rc-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:16px 16px;margin-bottom:14px;box-shadow:0 6px 20px rgba(33,19,9,.05);animation:riseSm .5s both;}
.rc-k{font-size:var(--fs-11);letter-spacing:.1em;text-transform:uppercase;color:var(--mocha);font-weight:700;margin-bottom:8px;}
.rc-big{font-family:'Fraunces',serif;font-size:var(--fs-22);color:var(--espresso);line-height:1.15;}
.rc-big2{font-family:'Fraunces',serif;font-size:var(--fs-18);color:var(--espresso);}
.rc-sub{font-size:var(--fs-13);color:var(--ink-soft);margin:6px 0 0;}
.rc-reconcile{background:linear-gradient(135deg,rgba(217,178,126,.16),rgba(174,122,53,.07));border-color:rgba(182,130,63,.34);}
.rc-recon-p{font-size:var(--fs-14);line-height:1.5;color:var(--ink);margin:0 0 8px;}
.rc-reconcile .nd-more{display:inline-block;}
.rc-pil{display:flex;flex-direction:column;gap:1px;padding:9px 0;border-bottom:1px solid rgba(108,72,42,.08);}
.rc-pil:last-child{border-bottom:none;}
.rc-pil b{font-size:var(--fs-14);color:var(--espresso);}
.rc-pil span{font-size:var(--fs-14);color:var(--ink-soft);line-height:1.4;}
.rc-step{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid rgba(108,72,42,.08);}
.rc-step:last-child{border-bottom:none;}
.rc-step b{font-size:var(--fs-14);color:var(--espresso);}
.rc-no{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:linear-gradient(160deg,var(--espresso),#46291699);color:var(--cream);font-family:'Fraunces',serif;font-size:var(--fs-13);display:grid;place-items:center;}
.rc-locked{opacity:.62;}
.rc-locked b{color:var(--mocha);}
.rc-lock{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:rgba(182,130,63,.14);display:grid;place-items:center;font-size:var(--fs-13);}
.rc-cta{margin:8px 0 0;}

/* ════════ PHOTO sur ORDINATEUR : la photo se prend sur le téléphone (QR en avant) ════════ */
#photoDesktop{display:none;}
#scanDesktop{display:none;} /* mobile : caché ; ≥880px la règle #scan #scanDesktop le montre (voir bloc scan desktop) */
@media(min-width:880px){
  #photo .shutter{display:none;}                 /* pas de "déclencheur caméra" sur ordi */
  #photoDesktop{display:flex;flex-direction:column;align-items:center;width:100%;max-width:420px;margin:auto;}
  .pd-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;width:100%;
    background:var(--card);border:1px solid var(--line);border-radius:24px;padding:34px 30px 26px;box-shadow:0 24px 50px -26px rgba(58,35,18,.5);}
  .pd-emoji{font-size:34px;line-height:1;}
  .pd-title{font-family:'Fraunces',serif;font-weight:400;font-size:var(--fs-22);line-height:1.15;color:var(--espresso);margin:0;}
  .pd-desk-sub{font-size:var(--fs-13);line-height:1.5;color:var(--ink-soft);margin:0;max-width:34ch;}
  .pd-card #photoQR{flex:0 0 auto;border-radius:12px;background:#fff;padding:8px;box-shadow:inset 0 0 0 1px var(--line);margin-top:4px;}
  .pd-phone-link{font-size:var(--fs-13);color:var(--mocha);text-decoration:underline;text-underline-offset:2px;}
  .pd-actions{display:flex;flex-direction:column;gap:8px;margin-top:10px;width:100%;}
  .pd-import-link,.pd-skip{background:none;border:0;cursor:pointer;font:inherit;color:var(--ink-soft);font-size:var(--fs-13);text-decoration:underline;text-underline-offset:2px;padding:4px;}
  .pd-skip{color:var(--ink-faint);}
}

/* ════════ V2 — Toast de confirmation + bandeau hors-ligne ════════ */
#toastHost{position:fixed;left:0;right:0;bottom:calc(86px + env(safe-area-inset-bottom,0px));z-index:60;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;padding:0 18px;}
@media(min-width:880px){ #toastHost{bottom:30px;} }
.toast{background:rgba(28,18,10,.96);color:var(--cream);font-size:var(--fs-14);font-weight:500;padding:12px 18px;border-radius:14px;box-shadow:0 14px 34px -12px rgba(0,0,0,.6);max-width:340px;text-align:center;border:1px solid rgba(217,178,126,.25);animation:toastIn .28s cubic-bezier(.2,.9,.3,1.1) both;}
.toast b{color:var(--gold-soft);}
@keyframes toastIn{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}
.toast.out{animation:toastOut .3s ease forwards;}
@keyframes toastOut{to{opacity:0;transform:translateY(8px)}}
@media (prefers-reduced-motion: reduce){ .toast{animation:none;} .toast.out{animation:none;opacity:0;} }

#offlineBar{display:none;position:fixed;top:0;left:0;right:0;z-index:70;background:linear-gradient(180deg,#3a2614,#241509);color:var(--cream);font-size:var(--fs-13);text-align:center;padding:calc(env(safe-area-inset-top,0px) + 8px) 16px 8px;line-height:1.4;box-shadow:0 6px 18px -8px rgba(0,0,0,.5);}
body.is-offline #offlineBar{display:block;animation:fade .3s both;}

/* ════════ Démo web-animation-design — entrée douce du geste « Fait ✓ » ════════ */
/* Le bouton crème (état « fait aujourd'hui ») se pose en douceur au lieu de surgir. */
/* CSS only — aucune modif JS. Le mouvement réduit est déjà géré globalement (règle *{animation:none}). */
.gj-done.btn-cream{animation:gjDoneIn .18s cubic-bezier(.165,.84,.44,1) both;}
@keyframes gjDoneIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){ .gj-done.btn-cream{animation:none;} }

/* ════════ Naya — bulle qui se pose plus vite (web-animation-design : ~200ms) ════════ */
/* Avant : 450ms (scriptée) / 550ms (live) = trop mou. On resserre la DURÉE seulement. */
/* Override additif à spécificité égale → ne touche ni positions, ni couleurs, ni nayaGlow. */
/* Le mouvement réduit reste géré par les règles existantes (lignes 32 + 902). */
.bub{transition-duration:.2s;}
.bub.her.live{transition-duration:.22s;}

/* ============================================================
   SIGNATURES KROWN — prénom-identité par texture.
   Reveal héros au diagnostic, repère ⓘ, carte profil.
   ============================================================ */
/* repère discret « ⓘ » (cible tactile 44px, mobile-first, pas de hover) */
.sig-info{
  flex:0 0 auto; width:44px; height:44px; min-width:44px;
  display:inline-flex; align-items:center; justify-content:center;
  border:none; background:none; cursor:pointer;
  color:var(--gold); font-size:var(--fs-16); line-height:1; padding:0;
  border-radius:50%; -webkit-tap-highlight-color:transparent;
}
.sig-info:active{ transform:scale(.92); }

/* reveal héros (en tête du résultat) — le pic émotionnel */
.sig-reveal{ text-align:center; margin:4px 0 14px; }
.sig-reveal .sig-lead{
  display:block; font-size:var(--fs-13); letter-spacing:var(--track-kicker); text-transform:uppercase;
  color:var(--ink-soft); font-weight:600; margin-bottom:2px;
}
.sig-reveal .sig-name{
  font-family:Fraunces,serif; font-weight:600;
  font-size:clamp(34px,11vw,46px); line-height:1.04; color:var(--espresso);
  font-optical-sizing:auto;
}
.sig-reveal .sig-clear{
  margin:6px 0 0; font-size:var(--fs-14); color:var(--espresso); font-weight:500;
}
.sig-reveal .sig-sense{
  margin:3px 0 0; font-family:Fraunces,serif; font-style:italic;
  font-size:var(--fs-14); color:var(--gold);
}
/* entrée douce au diagnostic */
@keyframes sigRevealIn{ from{ opacity:0; transform:translateY(10px) scale(.985); } to{ opacity:1; transform:none; } }
.sig-reveal.sig-reveal-in{ animation:sigRevealIn .6s cubic-bezier(.22,1,.36,1) both; }
@media (prefers-reduced-motion:reduce){ .sig-reveal.sig-reveal-in{ animation:none; } }

/* carte profil (onglet « Mes cheveux ») + ligne compte */
.sig-profile-card .sig-profile-row,
.sig-acct-row{ display:flex; align-items:center; gap:8px; }
.sig-profile-card .sig-profile-line{
  flex:1; font-family:Fraunces,serif; font-size:var(--fs-18); color:var(--espresso); font-weight:600;
}
.sig-profile-card{ display:flex; }
/* feuille d'info : la ligne de sens */
.sheet-p.sig-sense{ font-family:Fraunces,serif; font-style:italic; color:var(--gold); }

/* ============================================================================
   PASSE DESIGN PREMIUM — ACCUEIL UNIQUEMENT (scopé #result)
   Direction « afro premium chaleureux » : cartes craftées, titres éditoriaux
   Fraunces, accent terracotta parcimonieux, respiration plus généreuse.
   Aucun autre écran n'est touché (tout est préfixé #result).
   ============================================================================ */

/* — Cartes de l'accueil : surface craftée (dégradé chaud + filet défini +
     ombre en couches + highlight interne haut). Plus de profondeur, jamais plate. */
#result .card{
  background:
    linear-gradient(180deg, #FCF8F0 0%, var(--card) 58%, #F7EFE2 100%);
  border:1px solid rgba(108,72,42,.16);
  border-radius:22px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.7) inset,          /* highlight haut, lisse */
    0 22px 44px -30px rgba(58,35,18,.34),         /* ombre portée douce */
    0 3px 10px -6px rgba(58,35,18,.16);           /* contact rapproché */
  margin-bottom:26px;
}
/* filet terracotta très fin en tête de carte — signal chaleur, jamais criard */
#result .home-zone .card{position:relative;}
#result .home-zone > .content > .card::before,
#result .home-zone .card.ingr-card::before,
#result .home-zone .card#parkLib::before{
  content:"";position:absolute;left:20px;right:20px;top:0;height:2px;border-radius:0 0 2px 2px;
  background:linear-gradient(90deg, transparent, rgba(192,87,59,.5), rgba(182,130,63,.4), transparent);
  opacity:.85;
}

/* — Titres de carte de l'accueil : Fraunces, ton éditorial chaud (fin du caps sans-serif plat) */
#result .home-zone .gk{
  font-family:'Fraunces',serif;
  font-weight:480;
  font-size:var(--fs-13);
  letter-spacing:.02em;
  text-transform:none;
  color:var(--mocha);
}
/* le « gk » sur fond sombre (carte geste du jour) garde son or clair */
#result .gjour .gk{
  font-family:'Fraunces',serif;font-weight:480;text-transform:none;letter-spacing:.02em;
  font-size:var(--fs-13);color:var(--gold-soft);
}

/* — Kicker : raffiné (un peu plus aéré, ton mocha plus assumé) */
#result .home-zone .kicker{
  letter-spacing:var(--track-kicker-lg);
  color:var(--mocha);
  font-weight:600;
}

/* — En-têtes de zone : éditorial, avec un trait terracotta fin à la place du petit point timide */
#result .zone-head{
  font-family:'Instrument Sans',sans-serif;
  font-weight:600;
  font-size:var(--fs-11);
  letter-spacing:var(--track-kicker-lg);
  color:var(--terra);
  gap:11px;
  margin:26px 2px 14px;
}
#result .zone-head::before{
  width:22px;height:2px;border-radius:2px;
  background:linear-gradient(90deg, var(--terra), var(--gold));
  opacity:.9;
}
#result .home-zone:first-child .zone-head{margin-top:10px;}

/* — Héros greeting : un cran plus éditorial sur la photo (hiérarchie + chaleur) */
#result .ed-hero .hh-hi{
  font-weight:380;
  font-size:35px;
  line-height:1.0;
  letter-spacing:-.018em;
}
#result .ed-hero .hh-sub{
  margin-top:9px;
  font-size:var(--fs-14);
  letter-spacing:.005em;
}

/* — Respiration : rythme un peu plus généreux entre les blocs de contenu de l'accueil */
#result .home-zone > .content{padding-top:10px;}

/* Carte « parking » héritée de l'épuration 04/07 : ses deux accordéons sont display:none →
   la carte est VIDE et n'affichait qu'un trait blanc en bas de l'onglet Produits. On la masque. */
#parkLib{display:none;}

/* Desktop (≥880px) : le filet de tête de carte suit le re-cadrage 2 colonnes (cartes sans padding latéral) */
@media (min-width:880px){
  #result .home-flow .card::before{left:0;right:0;}
  /* les filets décoratifs des titres ne s'étirent plus sur toute la largeur (« traits qui bouffent ») :
     ils deviennent de courts accents éditoriaux */
  #result .zone-head::after{content:"";flex:0 0 auto;width:38px;height:2px;border-radius:2px;
    background:linear-gradient(90deg,var(--terra),rgba(217,178,126,0));opacity:.7;}
  #result .pdj-secl::after{flex:0 0 auto;width:38px;}
  /* la ligne « aujourd'hui » de la semaine : plus un cadre vide étiré, mais une surbrillance douce remplie */
  #result .ws-day.today{border-color:transparent;box-shadow:none;background:rgba(217,178,126,.12);}
  /* barres verticales dorées « qui bouffent sur les mots » tout à gauche de l'Accueil (citation + blocs humeur/Naya) : retirées sur ordi */
  #result .phrase-jour{border-left:0;padding-left:0;}
  #result .phrase-jour::before{left:-4px;}
  #result .nz{border-left:0;padding-left:0;}
}

/* ============ TASK-024A — MES CHEVEUX, COMPOSITION AVANT CONTAINERS ============
   La galerie et les décisions restent des objets. Les faits, chapitres et jalons
   redeviennent un flux éditorial : proximité + filets + respiration suffisent. */
#progres #courbeHost,
#progres #washHistHost,
#progres #jalonsHost{
  margin:0;
}
#progres #courbeHost .facts-card,
#progres #washHistHost .card,
#progres #jalonsHost .card{
  margin:0;
  padding:28px 2px;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}
#progres #courbeHost .facts-card,
#progres #jalonsHost .card{
  border-top:1px solid var(--hair);
}
#progres #courbeHost .pgc-title,
#progres #washHistHost .pgc-title,
#progres #jalonsHost .pgc-title{
  margin-bottom:16px;
  font-family:'Fraunces',serif;
  font-size:var(--fs-20);
  font-weight:500;
  line-height:1.2;
  text-wrap:balance;
}
#progres #courbeHost .fact-row{
  padding:13px 0;
}
#progres #courbeHost .fact-row:first-child{
  padding-top:0;
}
#progres #courbeHost .facts-check{
  margin-top:2px;
  padding:18px 0 0;
  border-top:1px solid var(--hair);
}
#progres #jalonsHost .jln-strip{
  padding:2px 0 0;
}
#progres #histoireHost .hist-attend{
  margin:0;
  padding:26px 2px;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  border-bottom:1px solid var(--hair);
}
#progres #histoireHost .hist-chap{
  margin:0;
  padding:26px 2px;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  border-bottom:1px solid var(--hair);
}
#progres #histoireHost .hist-chap.closed{
  padding:18px 2px;
  background:transparent;
  border:0;
  border-bottom:1px solid var(--hair);
  border-radius:0;
  box-shadow:none;
}
#progres #histoireHost .hist-naya,
#progres #histoireHost .hist-mot,
#progres #histoireHost .hist-conseil{
  margin-right:0;
  margin-left:0;
}
@media (min-width:880px){
  #progres #courbeHost .facts-card,
  #progres #washHistHost .card,
  #progres #jalonsHost .card,
  #progres #histoireHost .hist-attend,
  #progres #histoireHost .hist-chap{
    max-width:65ch;
  }
}

/* ============================================================================
   PASSE DESIGN PREMIUM v3 — ACCUEIL « excellence » (scopé #result)
   Cible : maquette /tmp/krown-mockup-home-v2.html, validée par le fondateur.
   Profondeur en couches + Fraunces éditorial + carte d'action mocha→espresso +
   carte signature centrée + hero éditorial + animation d'entrée en cascade.
   Tout est préfixé #result. Aucun autre écran n'est touché. Logique JS intacte.
   ============================================================================ */

/* — Cartes : surface plus craftée + ombre 3 couches plus profonde (proche maquette) — */
#result .card{
  background:linear-gradient(168deg, #FDFAF4 0%, var(--card) 46%, #F6ECDC 100%);
  border:1px solid rgba(108,72,42,.14);
  border-radius:24px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.78) inset,                 /* highlight interne haut */
    0 2px 6px -2px rgba(58,35,18,.16),                    /* contact rapproché */
    0 26px 54px -32px rgba(58,35,18,.46);                 /* portée profonde */
  padding:21px;
}
/* filet terracotta→or en tête — un peu plus présent, toujours raffiné */
#result .home-zone > .content > .card::before,
#result .home-zone .card.ingr-card::before,
#result .home-zone .card#parkLib::before{
  left:21px; right:21px; height:2px;
  background:linear-gradient(90deg, transparent, rgba(192,87,59,.55), rgba(182,130,63,.45), transparent);
  opacity:.9;
}

/* — Titres de carte : Fraunces, casse normale, calés sur la maquette — */
#result .home-zone .gk,
#result .check-card .gk{ font-size:var(--fs-13); font-weight:480; letter-spacing:.02em; }
/* titre éditorial de carte (h3 dans gjour / check) déjà Fraunces ; on affine */
#result .check-card h3{ font-family:'Fraunces',serif; font-weight:400; letter-spacing:-.01em; }

/* — En-têtes de zone : terracotta + filet, calibré maquette (un peu plus aéré) — */
#result .zone-head{ font-size:var(--fs-11); letter-spacing:var(--track-kicker-lg); font-weight:700; color:var(--terra-deep); margin:28px 3px 13px; }
#result .zone-head::before{ width:18px; }
#result .zone-head::after{ content:""; flex:1; height:1px; margin-left:11px;
  background:linear-gradient(90deg, rgba(192,87,59,.4), transparent); }

/* — Hero greeting : éditorial, filet doré fin sous le prénom — */
#result .ed-hero .hh-hi{ font-weight:380; font-size:37px; line-height:.99; letter-spacing:-.02em; position:relative; }
#result .ed-hero .hh-hi::after{
  content:""; display:block; width:38px; height:1px; margin-top:11px;
  background:linear-gradient(90deg, var(--gold-soft), transparent);
}
#result .ed-hero .hh-sub{ margin-top:10px; font-size:var(--fs-14); }

/* ============================ CARTE D'ACTION (geste du jour) ============================
   Sur l'accueil, le geste vit dans #routineDaily → .rd-geste .gjour. On le traite comme la
   carte « act » de la maquette : dégradé chaleureux mocha→espresso (fin de la photo de fond),
   accent or, halo doux, geste cochable mis en valeur. */
#result .rd-geste .gjour{
  background:linear-gradient(162deg, #7C5238 0%, #553421 48%, #211309 100%);
  border:1px solid rgba(255,255,255,.05);
  border-radius:24px; padding:22px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.07) inset,
    0 30px 62px -30px rgba(20,11,5,.85);
}
/* halo doré doux en haut à droite (comme .act::after de la maquette) */
#result .rd-geste .gjour::after{
  content:""; position:absolute; top:-42%; right:-18%; width:210px; height:210px; border-radius:50%;
  background:radial-gradient(circle, rgba(220,182,128,.18), transparent 70%); pointer-events:none; z-index:0;
}
/* NB : les couches décoratives (.gj-photo/.gj-bloom/.shine) restent en absolute — sinon la photo perd sa hauteur et le halo tombe dans le flux (vide brun) */
#result .rd-geste .gjour > *:not(.gj-photo):not(.gj-bloom):not(.shine){ position:relative; z-index:1; }
#result .rd-geste .gjour .gk{ color:var(--gold-soft); font-family:'Fraunces',serif; font-weight:480; text-transform:none; letter-spacing:.02em; font-size:var(--fs-13); }
#result .rd-geste .gjour h3{ font-family:'Fraunces',serif; font-weight:400; color:#FCF5E9; font-size:var(--fs-22); line-height:1.18; letter-spacing:-.01em; }
#result .rd-geste .gjour p{ color:rgba(252,245,233,.82); }
#result .rd-geste .gjour .wx{ background:rgba(244,230,210,.09); border-color:rgba(220,182,128,.3); }

/* le bouton « Je l'ai fait » — désormais DANS la carte du geste (la boucle est collée) : coche d'action mise en valeur */
#result .rd-geste .gjour .gj-done{
  width:100%; margin-top:16px; border-radius:16px; font-weight:600; letter-spacing:.005em;
}
/* dans le pied de carte (v8 point du jour) : pill compacte à côté du sous-texte — le rond de check a disparu */
#result .rd-geste .gjour .gj-foot .gj-done{
  width:auto; margin-top:0; flex:0 0 auto; padding:13px 20px; border-radius:999px; font-size:var(--fs-14);
}

/* ============================ LE POINT DU JOUR (accueil v8 · Task 3) ============================
   Ligne cycle en tête de #routineDaily + variantes repos (fierté) et wash day inconnu (question).
   Vocabulaire copié de la maquette contrat accueil-v8-point-du-jour.html (classes préfixées .pdj-). */
.pdj-secl{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--ink-faint);font-weight:600;margin:0 0 14px;display:flex;align-items:center;gap:12px;}
.pdj-secl::after{content:"";flex:1;height:1px;background:var(--hair);}
.pdj-cycle{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.pdj-cycle .pdj-lbl{font-size:var(--fs-13);font-weight:600;color:var(--ink);}
.pdj-cycle .pdj-lbl b{color:var(--gold-deep);}
.pdj-track{display:flex;align-items:center;gap:4px;flex:1;justify-content:flex-end;}
.pdj-track i{width:5px;height:5px;border-radius:50%;background:var(--hair);}
.pdj-track i.past{background:rgba(182,130,63,.4);}
.pdj-track i.now{width:7px;height:7px;background:var(--gold);}
.pdj-track i.wash{width:8px;height:8px;background:transparent;border:1.5px solid var(--gold-deep);}
.pdj-adjust{display:flex;align-items:center;gap:7px;margin:-4px 0 16px;}
.pdj-adjust button{border:0;background:none;font-family:inherit;font-size:var(--fs-12);color:var(--ink-faint);padding:2px 0;cursor:pointer;transition:color .18s ease;}
.pdj-adjust button:hover{color:var(--gold-deep);}
.pdj-adjust .dot{width:3px;height:3px;border-radius:50%;background:var(--hair);}
/* ligne scan discrète (moments produits) */
.pdj-scan{display:flex;width:100%;align-items:center;gap:9px;margin-top:14px;padding:6px 4px;border:0;background:none;font-family:inherit;text-align:left;font-size:var(--fs-13);color:var(--ink-soft);cursor:pointer;}
.pdj-scan svg{width:15px;height:15px;stroke:var(--gold-deep);fill:none;stroke-width:2;stroke-linecap:round;flex:0 0 auto;}
.pdj-scan .go{margin-left:auto;color:var(--gold-deep);font-weight:600;white-space:nowrap;}
.pdj-wash-anytime{display:flex;width:100%;align-items:center;gap:10px;margin-top:14px;padding:12px 4px 2px;border:0;border-top:1px solid var(--hair);background:none;color:var(--ink-soft);font-family:inherit;text-align:left;cursor:pointer;}
.pdj-wash-anytime>svg{width:19px;height:19px;flex:0 0 auto;fill:none;stroke:var(--gold-deep);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.pdj-wash-anytime span:not(.go){display:block;min-width:0;}
.pdj-wash-anytime b{display:block;color:var(--espresso);font-size:var(--fs-13);font-weight:600;}
.pdj-wash-anytime small{display:block;margin-top:2px;color:var(--ink-faint);font-size:var(--fs-11);line-height:1.4;}
.pdj-wash-anytime .go{margin-left:auto;color:var(--gold-deep);font-size:var(--fs-16);}
.pdj-wash-anytime:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px;border-radius:var(--radius-field);}
.pdj-observe{padding:20px 0 4px;border-top:1px solid var(--hair);}
.pdj-observe .pwp-t{max-width:24ch;color:var(--espresso);}
.pdj-observe .pwp-b{max-width:58ch;color:var(--ink-soft);}
.pdj-observe-undo{min-height:44px;margin-top:8px;padding:8px 0;border:0;background:transparent;color:var(--gold-deep);font:600 var(--fs-12) 'Instrument Sans',sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer;}
.pdj-observe-undo:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;}
.geste-adapt-opt{display:flex;width:100%;min-height:64px;align-items:center;gap:12px;margin-top:9px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-field);background:var(--card);color:var(--ink);font-family:inherit;text-align:left;cursor:pointer;transition:background var(--d-fast),border-color var(--d-fast),transform var(--d-fast) var(--ease-out);}
.geste-adapt-opt>span:first-child{min-width:0;flex:1;}.geste-adapt-opt b{display:block;font-size:var(--fs-14);font-weight:600;}.geste-adapt-opt small{display:block;margin-top:3px;color:var(--ink-soft);font-size:var(--fs-11);line-height:1.4;}.geste-adapt-opt .go{color:var(--gold-deep);font-size:var(--fs-16);}.geste-adapt-opt:hover{border-color:var(--gold-deep);background:var(--cream);}.geste-adapt-opt:active{transform:scale(.985);}.geste-adapt-opt:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;}
/* variante 2 — jour de repos : la fierté */
.pdj-repos-hi{font-family:'Fraunces',serif;font-weight:400;font-size:var(--fs-22);line-height:1.22;letter-spacing:-.015em;color:var(--ink);margin:2px 0 18px;max-width:95%;text-wrap:balance;}
.pdj-fierte{position:relative;border-radius:24px;overflow:hidden;background:var(--card);box-shadow:var(--shadow);}
.pdj-fierte-c{padding:18px;}
.pdj-fierte-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold-deep);font-weight:600;}
.pdj-fierte-t{font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-18);line-height:1.15;color:var(--ink);margin-top:9px;letter-spacing:-.015em;text-wrap:balance;}
.pdj-fierte-b{font-size:var(--fs-14);line-height:1.55;color:var(--ink-soft);margin-top:9px;}
.pdj-fierte-sign{display:flex;align-items:center;gap:8px;margin-top:13px;}
.pdj-fierte-sign img{width:26px;height:26px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1.5px rgba(182,130,63,.4);}
.pdj-fierte-sign span{font-size:var(--fs-12);color:var(--ink-faint);}
.pdj-fierte-sign b{font-family:'Fraunces',serif;font-style:italic;color:var(--gold-deep);font-weight:400;}
/* variante 3 — wash day inconnu : on demande, on n'affirme pas */
.pdj-ask{position:relative;border-radius:24px;background:var(--card);box-shadow:var(--shadow);padding:20px 18px 18px;overflow:hidden;}
.pdj-ask-foil{position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-soft) 40%,var(--gold) 58%,transparent);}
.pdj-ask-sign{display:flex;align-items:center;gap:9px;}
.pdj-ask-sign img{width:30px;height:30px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1.5px rgba(182,130,63,.4);}
.pdj-ask-sign span{font-size:var(--fs-12);color:var(--ink-faint);}
.pdj-ask-sign b{font-family:'Fraunces',serif;font-style:italic;color:var(--gold-deep);font-weight:400;}
.pdj-ask-q{font-family:'Fraunces',serif;font-weight:400;font-size:var(--fs-22);line-height:1.15;letter-spacing:-.015em;color:var(--ink);margin-top:13px;text-wrap:balance;}
.pdj-ask-note{font-size:var(--fs-13);color:var(--ink-soft);margin-top:8px;line-height:1.5;}
.pdj-ask-opts{display:flex;flex-direction:column;gap:9px;margin-top:16px;}
.pdj-ask-opts button{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;border-radius:16px;
  border:1px solid rgba(182,130,63,.4);background:rgba(255,252,246,.6);color:var(--ink);font-family:inherit;font-size:var(--fs-14);font-weight:500;text-align:left;cursor:pointer;
  transition:background .18s ease,border-color .18s ease;}
.pdj-ask-opts button small{display:block;font-size:var(--fs-12);font-weight:400;color:var(--ink-faint);margin-top:2px;}
.pdj-ask-opts button:hover{background:var(--cream);border-color:var(--gold);}
.pdj-ask-opts .chev{color:var(--gold-deep);font-size:var(--fs-15);}
/* desktop ≈1200 : mêmes proportions que la maquette */
@media(min-width:880px){
  .pdj-repos-hi{font-size:26px;}
  .pdj-ask-q{font-size:25px;}
  .pdj-ask-opts{flex-direction:row;}
  .pdj-ask-opts button{flex:1;flex-direction:column;align-items:flex-start;gap:4px;}
  .pdj-ask-opts .chev{display:none;}
}
@media (prefers-reduced-motion:reduce){
  .pdj-adjust button,.pdj-ask-opts button,.pdj-scan,.pdj-wash-anytime,.geste-adapt-opt{transition:none;}
}
/* « Au quotidien · tes gestes d'or » — toggle replié, INLINE dans la carte sombre du geste (texte clair sur fond foncé) */
#result .rd-geste .gjour .gd-inline{
  margin-top:14px; padding-top:13px; border-top:1px solid rgba(246,232,213,.16);
}
#result .rd-geste .gjour .gd-inline .kicker{ color:var(--gold-soft); font-size:var(--fs-12); font-weight:600; letter-spacing:.02em; }
#result .rd-geste .gjour .gd-inline .gd-chev{ color:rgba(246,232,213,.6); }
#result .rd-geste .gjour .gd-body{ color:rgba(246,232,213,.9); }
#result .rd-geste .gjour .gd-body .go-row{ display:flex; gap:10px; align-items:flex-start; margin-top:11px; }
#result .rd-geste .gjour .gd-body .go-ic{ flex:0 0 auto; font-size:var(--fs-16); line-height:1.3; }
#result .rd-geste .gjour .gd-body .go-row b{ display:block; font-size:var(--fs-13); color:#FCF5E9; }
#result .rd-geste .gjour .gd-body .go-row span{ font-size:var(--fs-12); color:rgba(246,232,213,.74); line-height:1.45; }
#result .rd-geste .gjour .gd-body .rafraichir{ font-size:var(--fs-12); color:rgba(246,232,213,.74); margin-top:12px; border-top:1px solid rgba(246,232,213,.12); padding-top:11px; }

/* ===== NUTRITION « Le savais-tu ? » — SEUL bonus restant en bas d'Aujourd'hui.
   Allégée en carte CLAIRE premium (le geste sombre reste l'unique héros ; la nutrition est un bonus doux, pas une 2e carte lourde). */
#result #nutriHost .gjour-nutri{
  background:linear-gradient(160deg,#FBF4E8 0%,#F3EAD9 100%);
  border:1px solid rgba(150,196,140,.28);
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset, 0 16px 34px -22px rgba(70,52,28,.30);
  color:var(--espresso);
}
#result #nutriHost .gjour-nutri::after{ display:none; }
#result #nutriHost .gjour-nutri .shine{ display:none; }
#result #nutriHost .gjour-nutri .wx{ background:rgba(150,196,140,.16); border-color:rgba(150,196,140,.34); color:#3f5a39; }
#result #nutriHost .gjour-nutri .wx svg{ stroke:#5a7a4f; }
#result #nutriHost .gjour-nutri .gk{ color:#7a8a5f; }
#result #nutriHost .gjour-nutri h3{ color:var(--espresso); }
#result #nutriHost .gjour-nutri p{ color:var(--ink-soft); }
#result #nutriHost .gjour-nutri .whybtn{ color:#6f8a5a; }
#result #nutriHost .gjour-nutri .why{ color:var(--ink-soft); border-top-color:rgba(70,52,28,.14); }
#result #nutriHost .gjour-nutri .nutri-med{ color:var(--ink-soft); opacity:.72; border-top-color:rgba(70,52,28,.12); }
/* petite anim de validation quand on coche (la carte repasse en btn-cream après) */
@keyframes gjPop{ 0%{ transform:scale(1); } 40%{ transform:scale(.965); } 100%{ transform:scale(1); } }
@media (prefers-reduced-motion:no-preference){
  #result .gj-done:active{ animation:gjPop .26s var(--ease-out); }
}

/* ============================ CARTE SIGNATURE ============================
   #sigRevealHost → .sig-reveal : centrée, élégante, comme la maquette
   (petite couronne, prénom grand Fraunces, type en clair, sens en italique, filet fin). */
#result .sig-reveal{
  text-align:center;
  background:linear-gradient(168deg, #FDFAF4 0%, var(--card) 46%, #F6ECDC 100%);
  border:1px solid rgba(108,72,42,.14); border-radius:24px;
  box-shadow:0 1px 0 rgba(255,255,255,.78) inset, 0 2px 6px -2px rgba(58,35,18,.14), 0 24px 50px -34px rgba(58,35,18,.42);
  padding:26px 22px 24px; margin:6px 0 16px; position:relative;
}
/* petite couronne en tête */
#result .sig-reveal::before{
  content:""; display:block; width:26px; height:18px; margin:0 auto 9px;
  background:var(--gold);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 18l1.6-9 4.4 4 3-6 3 6 4.4-4L21 18z'/%3E%3Crect x='3' y='18' width='18' height='2.4' fill='black'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 18l1.6-9 4.4 4 3-6 3 6 4.4-4L21 18z'/%3E%3Crect x='3' y='18' width='18' height='2.4' fill='black'/%3E%3C/svg%3E") center/contain no-repeat;
}
#result .sig-reveal .sig-lead{ font-size:var(--fs-11); letter-spacing:.32em; text-transform:uppercase; color:var(--mocha); font-weight:700; }
#result .sig-reveal .sig-name{ font-family:'Fraunces',serif; font-weight:400; font-size:clamp(38px,12vw,46px); line-height:1.02; color:var(--espresso); letter-spacing:-.01em; margin:5px 0 7px; }
#result .sig-reveal .sig-clear{ font-size:var(--fs-13); color:var(--ink-soft); font-weight:500; letter-spacing:.01em; }
#result .sig-reveal .sig-sense{ font-family:'Fraunces',serif; font-style:italic; font-weight:360; font-size:var(--fs-16); color:var(--terra-deep); margin-top:11px; }
/* filet fin en pied de la signature */
#result .sig-reveal::after{
  content:""; display:block; width:34px; height:1px; margin:15px auto 0;
  background:linear-gradient(90deg, transparent, var(--gold-soft), transparent);
}

/* ============================ MICRO-INTERACTIONS ============================
   Feedback tactile premium au tap sur les surfaces cliquables de l'accueil. */
@media (prefers-reduced-motion:no-preference){
  #result .card[role="button"]:active,
  #result .ac-stat:active,
  #result .week-pills:active,
  #result .gj-prod:active,
  #result .cal-next:active,
  #result .hh-scan:active,
  #result .av:active,
  #result .donebtn:active,
  #result .washgo:active{
    transform:scale(.972);
    transition:transform .12s var(--ease-out);
  }
}

/* ============================ ANIMATION D'ENTRÉE EN CASCADE ============================
   À l'affichage de l'accueil, les zones/cartes apparaissent en cascade douce.
   Déclenchée par la classe .home-enter posée sur .home-flow (cf. go('result')).
   Volontairement désarmée quand la révélation du diagnostic (rv-hide) joue, pour ne pas
   doubler les deux chorégraphies. */
@media (prefers-reduced-motion:no-preference){
  /* Les 4 enfants directs de .home-flow remontent en cascade.
     DOM order: (1) zone1·Aujourd'hui  (2) #glimpseHost  (3) zone2·Cette semaine  (4) #conseilsHost
     nth-child cible les enfants DIRECTS de .home-flow (pas de wrapper intermédiaire). */
  #result .home-flow.home-enter > *{
    opacity:0; transform:translateY(16px);
    animation:homeRise .62s var(--ease-out) both;
  }
  #result .home-flow.home-enter > *:nth-child(1){ animation-delay:.04s; } /* zone1 Aujourd'hui */
  #result .home-flow.home-enter > *:nth-child(2){ animation-delay:.12s; } /* #glimpseHost */
  #result .home-flow.home-enter > *:nth-child(3){ animation-delay:.20s; } /* zone2 Cette semaine */
  #result .home-flow.home-enter > *:nth-child(4){ animation-delay:.28s; } /* #conseilsHost */
  /* à l'intérieur de zone1, les cartes montent en sous-cascade */
  #result .home-flow.home-enter > .home-zone:nth-child(1) > .content,
  #result .home-flow.home-enter > .home-zone:nth-child(1) > .zone-head{
    opacity:0; transform:translateY(12px); animation:homeRise .6s var(--ease-out) both;
  }
  #result .home-flow.home-enter > .home-zone:nth-child(1) > .zone-head{ animation-delay:.02s; }
  #result .home-flow.home-enter > .home-zone:nth-child(1) > .content:nth-of-type(1){ animation-delay:.10s; }
  #result .home-flow.home-enter > .home-zone:nth-child(1) > .content:nth-of-type(2){ animation-delay:.16s; }
  #result .home-flow.home-enter > .home-zone:nth-child(1) > .content:nth-of-type(3){ animation-delay:.22s; }
}
@keyframes homeRise{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){
  #result .home-flow.home-enter > *,
  #result .home-flow.home-enter > .home-zone > .content,
  #result .home-flow.home-enter > .home-zone > .zone-head{ opacity:1; transform:none; animation:none; }
}

/* Desktop (≥880px) : filets de tête de carte recalés (cartes sans padding latéral en 2 colonnes) */
@media (min-width:880px){
  #result .home-zone > .content > .card::before{ left:0; right:0; }
}

/* ============================================================
   #produits — territoire « Mes produits » (refonte archi 4 onglets)
   Style premium scopé : carte d'action signature sombre + biblio
   ============================================================ */
#produits .content{max-width:560px;}
/* 3 .content empilés : seul le dernier absorbe l'espace libre — sinon le flex:1 générique crée des vides géants entre les sections sur grand écran */
#produits > .content{flex:0 0 auto;}
#produits > .content:last-of-type{flex:1 0 auto;}
/* ACTION HÉROS · Scanner un produit (carte sombre signature, esprit « geste du jour ») */
.prod-scan-hero{display:flex;align-items:center;gap:14px;width:100%;text-align:left;cursor:pointer;
  padding:16px 16px 16px 15px;border-radius:var(--radius-card);border:1px solid rgba(192,87,59,.32);
  background:linear-gradient(150deg,#2A1812 0%,#3A2016 48%,#5A2A1B 100%);
  box-shadow:0 12px 30px -14px rgba(33,19,9,.55),0 2px 6px -2px rgba(33,19,9,.35);
  transition:transform .16s var(--ease-out),box-shadow .2s ease;}
.prod-scan-hero:active{transform:scale(.985);}
.prod-scan-hero:hover{box-shadow:0 16px 38px -14px rgba(33,19,9,.6),0 3px 8px -2px rgba(33,19,9,.4);}
.psh-ic{flex:0 0 auto;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;
  background:linear-gradient(150deg,var(--terra-soft),var(--terra));box-shadow:0 6px 16px -6px rgba(192,87,59,.7);}
.psh-ic svg{width:23px;height:23px;fill:none;stroke:#FBF5EC;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.psh-mid{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0;}
.psh-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold-soft);font-weight:600;}
.psh-t{font-family:'Fraunces',serif;font-weight:440;font-size:var(--fs-20);color:#FBF5EC;line-height:1.08;}
.psh-d{font-size:var(--fs-12);line-height:1.4;color:rgba(251,245,236,.72);}
.psh-go{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  background:rgba(217,178,126,.18);color:var(--gold-soft);}
.psh-go svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
/* MA LISTE DE COURSES sur fond clair : on relit le .sl-card en tons espresso/cream */
#produits .sl-card{background:var(--cream,#FBF5EC);border:1px solid rgba(122,79,53,.16);
  box-shadow:0 8px 22px -16px rgba(33,19,9,.4);max-width:none;}
#produits .sl-h{color:var(--gold);}
#produits .sl-row{border-top-color:rgba(122,79,53,.12);}
#produits .sl-nom{color:var(--espresso);}
#produits .sl-empty{color:var(--mocha);}
#produits .sl-x{color:rgba(122,79,53,.5);}

/* ============================================================================
   PASSE DESIGN PREMIUM — DÉROULÉ SUR LES ÉCRANS RESTANTS
   Même langage « afro premium chaleureux » que #result / #produits :
   surface craftée (dégradé chaud + filet terracotta→or + ombre en couches),
   titres éditoriaux Fraunces, en-têtes terracotta, micro-interactions au tap.
   STRICTEMENT scopé par écran (#coach, #progres, #account, #scan) — n'altère
   jamais #result / #produits déjà finis. Anime respecte prefers-reduced-motion.
   ============================================================================ */

/* ===========================  1 · #coach (Naya)  =========================== */
/* En-tête : surface chaude + filet terracotta→or en pied (signe la zone) */
#coach .chat-head{
  background:linear-gradient(180deg, rgba(253,250,244,.92) 0%, rgba(251,245,236,.82) 100%);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(108,72,42,.14);position:relative;
}
#coach .chat-head::after{
  content:"";position:absolute;left:22px;right:22px;bottom:-1px;height:2px;border-radius:2px 2px 0 0;
  background:linear-gradient(90deg, transparent, rgba(192,87,59,.5), rgba(182,130,63,.4), transparent);opacity:.85;
}
#coach .chat-head .nm{font-family:'Fraunces',serif;font-weight:440;letter-spacing:-.012em;}
/* Bulles : profondeur douce, plus craftées (sans casser leur logique .her/.me) */
#coach .bub.her{
  background:linear-gradient(176deg, #FFFCF6 0%, var(--card) 62%, #F8F0E3 100%);
  border:1px solid rgba(182,130,63,.2);
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset, 0 12px 26px -18px rgba(58,35,18,.5);
  border-radius:22px;border-bottom-left-radius:8px;
}
#coach .bub.me{
  background:linear-gradient(158deg, #875738 0%, #5A3522 52%, var(--espresso) 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset, 0 14px 28px -16px rgba(33,19,9,.66);
  border-radius:22px;border-bottom-right-radius:8px;
}
/* Chips de suggestion : matière cohérente, ombre douce, tap premium */
#coach .sugg button{
  background:linear-gradient(176deg, #FFFCF6, var(--card));
  border:1px solid rgba(182,130,63,.32);
  box-shadow:0 1px 0 rgba(255,255,255,.55) inset, 0 6px 16px -11px rgba(58,35,18,.5);
  letter-spacing:.005em;
}
/* Zone de saisie : surface chaude + filet terracotta→or en tête */
#coach .inbar{
  background:linear-gradient(180deg, rgba(251,245,236,.8) 0%, rgba(246,236,220,.9) 100%);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-top:1px solid rgba(108,72,42,.16);position:relative;
}
#coach .inbar::before{
  content:"";position:absolute;left:16px;right:16px;top:-1px;height:2px;border-radius:0 0 2px 2px;
  background:linear-gradient(90deg, transparent, rgba(192,87,59,.42), rgba(182,130,63,.34), transparent);opacity:.8;
}
#coach .inbar textarea{
  background:#FFFCF6;border:1px solid rgba(108,72,42,.2);
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset, 0 4px 12px -10px rgba(58,35,18,.4);
}
#coach .inbar textarea:focus{border-color:var(--gold-soft);box-shadow:0 0 0 3px rgba(217,178,126,.18);}
/* bouton 💛 : matière de carte au lieu du blanc plat */
#coach .inbar .hlth-trig{
  background:linear-gradient(176deg, #FFFCF6, var(--card));
  border:1px solid rgba(182,130,63,.3);
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset, 0 5px 13px -10px rgba(58,35,18,.45);
}
/* le bouton ↑ d'envoi garde son or chaud — on profond. un peu son ombre */
#coach .inbar .send{box-shadow:0 1px 0 rgba(255,255,255,.18) inset, 0 9px 20px -9px rgba(182,130,63,.8);}
/* indicateur "Naya écrit" cohérent avec les bulles her */
#coach .typing{
  background:linear-gradient(176deg, #FFFCF6, var(--card));
  border:1px solid rgba(182,130,63,.2);
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset, 0 12px 26px -18px rgba(58,35,18,.5);
}
@media (prefers-reduced-motion:no-preference){
  #coach .sugg button:active,#coach .inbar .hlth-trig:active{transform:scale(.94);transition:transform .12s var(--ease-out);}
}

/* ====================  2 · #progres (Mes cheveux)  ====================
   ARCHI : le PROGRÈS en héros, le profil en en-tête calme.
   Ordre visuel via flex-order (HTML & IDs intacts) :
   1 signature (en-tête calme) · 2 photos avant/après (HÉROS) · 3 jalons ·
   4 historique wash days · 5 longueur/combat · 6 journal · 7 re-diag ·
   8 couronne (dégonflée, en pied administratif). */
/* Passe Lovi×KROWN 13/07 : l'ordre visuel = l'ordre du DOM (le flex-order est mort avec la restructuration). */
#progres .content{display:flex;flex-direction:column;}

/* Cartes du progrès : surface craftée + ombre en couches + filet terracotta→or */
#progres .content > .card,
#progres #washHistHost .card,
#progres #jalonsHost .card{
  background:linear-gradient(168deg, #FDFAF4 0%, var(--card) 46%, #F6ECDC 100%);
  border:1px solid rgba(108,72,42,.14);
  border-radius:24px;
  box-shadow:0 1px 0 rgba(255,255,255,.78) inset, 0 2px 6px -2px rgba(58,35,18,.16), 0 26px 54px -32px rgba(58,35,18,.46);
  position:relative;
}
#progres .content > .card::before{
  content:"";position:absolute;left:21px;right:21px;top:0;height:2px;border-radius:0 0 2px 2px;
  background:linear-gradient(90deg, transparent, rgba(192,87,59,.55), rgba(182,130,63,.45), transparent);opacity:.9;
}
#progres .content > .card.prog-empty::before{display:none;}
#progres .kicker{letter-spacing:var(--track-kicker-lg);color:var(--mocha);font-weight:600;}

/* HÉROS — la carte avant/après : cadre plus crafté, légende Fraunces */
#progres .content > .card:has(#ba)::before{background:linear-gradient(90deg, transparent, rgba(192,87,59,.7), rgba(182,130,63,.5), transparent);}
#progres .ba{border:1px solid rgba(108,72,42,.2);box-shadow:0 1px 0 rgba(255,255,255,.5) inset, 0 14px 30px -18px rgba(58,35,18,.5);}

/* EN-TÊTE CALME — la carte signature : posée, centrée discret, accent profil */
#progres #sigProfileHost .sig-profile-card{
  background:linear-gradient(168deg, #FDFAF4 0%, var(--card) 50%, #F6ECDC 100%);
  border:1px solid rgba(108,72,42,.14);border-radius:22px;
  box-shadow:0 1px 0 rgba(255,255,255,.72) inset, 0 16px 38px -28px rgba(58,35,18,.4);
}

/* COURONNE DÉGONFLÉE — devient un filet administratif discret en pied (héros = progrès) */
#progres #crownHost{opacity:.92;}
#progres #crownHost > *{
  border-radius:20px !important;
}

/* RE-DIAG — action claire mais calme (bouton cream existant, juste recentré dans le flux) */
#progres .rediag-btn{box-shadow:0 1px 0 rgba(255,255,255,.6) inset, 0 10px 24px -16px rgba(58,35,18,.4);}

/* Journal : boutons d'humeur cohérents (matière + tap) */
#progres .jbtn{
  background:linear-gradient(176deg, #FFFCF6, var(--card));
  border:1px solid rgba(108,72,42,.16);
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset, 0 5px 13px -11px rgba(58,35,18,.4);
}
@media (prefers-reduced-motion:no-preference){
  #progres .jbtn:active,#progres .shot.add .im:active{transform:scale(.96);transition:transform .12s var(--ease-out);}
}

/* =====================  3 · #account (Mon compte)  ===================== */
/* En-têtes de zone : terracotta + filet (cohérent avec les zone-head de l'accueil) */
#account .acct-zone{
  color:var(--terra);font-weight:700;letter-spacing:var(--track-kicker-lg);
}
#account .acct-zone::before{
  width:18px;height:2px;border-radius:2px;
  background:linear-gradient(90deg, var(--terra), var(--gold));opacity:.9;
}
#account .acct-zone--quiet{color:var(--mocha);opacity:.75;}
#account .acct-zone--quiet::before{background:linear-gradient(90deg, var(--mocha), var(--gold-soft));opacity:.55;}
#account .acct-sec{color:var(--mocha);letter-spacing:var(--track-kicker-lg);}

/* Avatar / en-tête profil : soigné, halo doré déjà là — on raffine l'ombre */
#account .acct-av{
  box-shadow:0 14px 30px -12px rgba(74,44,22,.6), 0 0 0 3px var(--card), 0 0 0 4.5px var(--gold-soft), 0 1px 0 rgba(255,255,255,.3) inset;
}
#account .acct-name{font-family:'Fraunces',serif;font-weight:400;letter-spacing:-.01em;}

/* Cartes de réglage : surface craftée + ombre en couches + filet terracotta→or */
#account .acct-card{
  background:linear-gradient(168deg, #FDFAF4 0%, var(--card) 48%, #F6ECDC 100%);
  border:1px solid rgba(108,72,42,.14);border-radius:22px;
  box-shadow:0 1px 0 rgba(255,255,255,.74) inset, 0 2px 6px -2px rgba(58,35,18,.14), 0 22px 46px -32px rgba(58,35,18,.42);
  position:relative;
}
#account .acct-card::before{
  content:"";position:absolute;left:18px;right:18px;top:0;height:2px;border-radius:0 0 2px 2px;
  background:linear-gradient(90deg, transparent, rgba(192,87,59,.45), rgba(182,130,63,.36), transparent);opacity:.85;
}
#account .set-row b,#account .acct-lang-row .sl b{color:var(--espresso);}
#account .set-row{border-bottom-color:rgba(108,72,42,.1);}

/* Lignes de réglage : tap premium */
@media (prefers-reduced-motion:no-preference){
  #account .set-row:active{transform:scale(.992);transition:transform .12s var(--ease-out);}
}

/* Carte abonnement Pro : on profond. l'ombre (matière cohérente avec la carte d'action) */
#account .plan-teaser{
  background:linear-gradient(150deg, #7C5238 0%, #553421 50%, var(--espresso) 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset, 0 22px 46px -28px rgba(20,11,5,.7);
  border:1px solid rgba(255,255,255,.05);border-radius:18px;
}
#account .plan-teaser .pt-k{font-family:'Fraunces',serif;font-weight:480;text-transform:none;letter-spacing:.02em;font-size:var(--fs-13);}

/* Signature dans le compte : ligne soignée */
#account .sig-acct-row b{font-family:'Fraunces',serif;font-weight:440;letter-spacing:-.005em;color:var(--espresso);}

/* ========================  4 · #scan (le scanner)  ========================
   On garde l'écran sombre/focalisé MAIS plus crafté : cadre plus profond,
   accents terracotta→or cohérents, typo éditoriale, CTA doré assumé.
   Le flux scanner (scanPrimary, liveScanStart, scanframe) reste intact. */
/* halo de fond : ajout d'un soupçon terracotta chaud sous le cadre */
#scan::before{
  background:
    radial-gradient(60% 30% at 50% 64%, rgba(192,87,59,.1), transparent 60%),
    radial-gradient(70% 46% at 50% 40%, rgba(217,178,126,.18), transparent 62%);
}
/* en-tête éclair : couronne discrète sous l'eyebrow */
#scan .topbar .eyebrow{color:var(--gold-soft);font-weight:600;}
/* titre + sous-titre éditoriaux */
#scan .pbody .q-title{font-family:'Fraunces',serif;font-weight:400;letter-spacing:-.01em;}
/* cadre de scan : plus profond + ticks et laser plus présents (focalise l'œil) */
#scan .scanframe{
  background:radial-gradient(120% 120% at 50% 0%, rgba(246,232,213,.12), rgba(33,19,9,.26));
  box-shadow:inset 0 0 72px rgba(33,19,9,.6), 0 1px 0 rgba(217,178,126,.12) inset, 0 26px 54px -24px rgba(0,0,0,.66);
  border:1px solid rgba(217,178,126,.14);
}
#scan .scanframe .frame-lbl{color:rgba(217,178,126,.72);letter-spacing:var(--track-kicker);}
#scan .scanframe .tick{box-shadow:0 0 12px rgba(217,178,126,.5);}
/* CTA doré : ombre plus riche, geste signature */
#scan .scan-cta.btn-gold{box-shadow:0 1px 0 rgba(255,255,255,.18) inset, 0 16px 38px -14px rgba(182,130,63,.75);}
/* liens secondaires : lisibles mais discrets, soulignés or */
#scan .scan-paste-link{color:rgba(246,232,213,.88);text-decoration-color:rgba(217,178,126,.55);}
#scan .scan-paste-link:hover{color:var(--cream);}
/* zone "coller la liste" : champ crafté cohérent dans le sombre */
#scan .inci-input{
  background:rgba(255,255,255,.05);border:1px solid rgba(217,178,126,.24);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
#scan .inci-input:focus{border-color:var(--gold-soft);box-shadow:0 0 0 3px rgba(217,178,126,.14);}

@media (prefers-reduced-motion:no-preference){
  #scan .scan-paste-link:active{transform:scale(.97);transition:transform .12s var(--ease-out);}
}

/* ALIGNEMENT — unifier le retrait horizontal des cartes de l'accueil (fin du micro-décalage 45/46/47px) */
#result .home-flow .card,
#result .home-flow .gjour,
#result .home-flow #checkHost > *,
#result .home-flow #nutriHost > * { padding-left: 20px; padding-right: 20px; }

/* ============================================================
   ÉCRAN « TA COURONNE » — overlay momentum plein écran (#crownMode)
   Naya en héros (vidéo boucle), stats, barre palier, badge. Palette afro chaude. */
#crownMode{position:fixed;inset:0;z-index:10001;display:none;flex-direction:column;
  padding:14px 20px calc(28px + env(safe-area-inset-bottom));
  background:radial-gradient(140% 90% at 50% 0%,#FDF8F0 0%,var(--cream) 50%,#EFDDC6 100%);
  color:var(--ink);overflow-y:auto;-webkit-overflow-scrolling:touch;}
#crownMode .cm-top{display:flex;justify-content:flex-end;}
#crownMode .cm-x{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.6);border:1px solid var(--line);
  color:var(--mocha);font-size:var(--fs-16);line-height:1;cursor:pointer;}
/* HÉROS */
#crownMode .cm-hero{text-align:center;padding:4px 4px 6px;}
#crownMode .cm-avwrap{position:relative;width:168px;height:168px;margin:6px auto 0;}
#crownMode .cm-glow{position:absolute;inset:-16px;background:radial-gradient(circle,rgba(217,178,126,.5),transparent 64%);filter:blur(7px);
  animation:cmGlow 3.4s ease-in-out infinite;}
#crownMode .cm-ring{position:absolute;inset:0;border-radius:50%;padding:5px;
  background:linear-gradient(140deg,var(--gold-soft),var(--terra-soft),var(--gold));
  box-shadow:0 22px 46px -18px rgba(122,79,53,.6);}
#crownMode .cm-ring .cm-vid,#crownMode .cm-ring img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 28%;
  display:block;border:3px solid #FCF5E9;background:var(--sand);}
#crownMode .cm-crownbadge{position:absolute;top:-14px;left:50%;transform:translateX(-50%) rotate(-6deg);font-size:34px;
  filter:drop-shadow(0 5px 9px rgba(122,79,53,.5));}
#crownMode .cm-spark{position:absolute;color:var(--gold);font-size:var(--fs-15);animation:cmTw 2.4s ease-in-out infinite;}
#crownMode .cm-sp1{left:2px;top:26px;} #crownMode .cm-sp2{right:0;top:40px;font-size:var(--fs-12);animation-delay:.7s;}
#crownMode .cm-sp3{right:18px;bottom:6px;font-size:var(--fs-11);animation-delay:1.3s;}
@keyframes cmTw{0%,100%{opacity:.3;transform:scale(.85)}50%{opacity:1;transform:scale(1.12)}}
@keyframes cmGlow{0%,100%{opacity:.7}50%{opacity:1}}
#crownMode .cm-kicker{font-size:var(--fs-11);letter-spacing:.3em;text-transform:uppercase;color:var(--terra-deep);font-weight:700;margin-top:16px;}
#crownMode .cm-title{font-family:'Fraunces',serif;font-weight:400;font-size:32px;line-height:1.06;color:var(--espresso);margin:7px 0 10px;letter-spacing:-.01em;}
#crownMode .cm-bubble{display:inline-block;max-width:310px;text-align:left;
  background:linear-gradient(168deg,#FDFAF4,#F6ECDC);border:1px solid var(--line);border-radius:18px;border-top-left-radius:6px;
  padding:13px 16px;font-size:var(--fs-14);line-height:1.5;color:var(--ink);box-shadow:0 14px 30px -22px rgba(58,35,18,.45);}
#crownMode .cm-bubble .cm-who{font-size:var(--fs-11);letter-spacing:.06em;text-transform:uppercase;color:var(--terra-deep);font-weight:700;margin-bottom:4px;}
/* FEED */
#crownMode .cm-feed{max-width:380px;width:100%;margin:18px auto 0;}
#crownMode .cm-stats{display:flex;gap:12px;margin-bottom:14px;}
#crownMode .cm-stat{flex:1;text-align:center;background:linear-gradient(168deg,#FDFAF4,#F6ECDC);border:1px solid var(--line);border-radius:20px;
  padding:16px 12px;box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 14px 30px -22px rgba(58,35,18,.45);}
#crownMode .cm-stat b{display:block;font-family:'Fraunces',serif;font-weight:430;font-size:28px;color:var(--espresso);line-height:1;}
#crownMode .cm-stat span{font-size:var(--fs-11);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-soft);font-weight:600;}
#crownMode .cm-card{position:relative;background:linear-gradient(168deg,#FDFAF4,var(--card) 55%,#F6ECDC);border:1px solid var(--line);
  border-radius:22px;padding:18px 20px;margin-bottom:13px;box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 18px 40px -28px rgba(58,35,18,.5);}
#crownMode .cm-card::before{content:"";position:absolute;top:0;left:20px;right:20px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--terra),var(--gold-soft));opacity:.85;}
#crownMode .cm-ck{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--mocha);font-weight:700;}
#crownMode .cm-prog-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:8px 0 11px;}
#crownMode .cm-prog-row b{font-family:'Fraunces',serif;font-weight:430;font-size:var(--fs-20);color:var(--espresso);line-height:1.1;}
#crownMode .cm-prog-row span{font-size:var(--fs-13);color:var(--ink-soft);white-space:nowrap;}
#crownMode .cm-bar{height:11px;border-radius:99px;background:var(--sand);overflow:hidden;box-shadow:inset 0 1px 2px rgba(58,35,18,.18);}
#crownMode .cm-bar i{display:block;height:100%;width:0;border-radius:99px;
  background:linear-gradient(90deg,var(--terra-soft),var(--terra) 60%,var(--gold-soft));transition:width 1.1s cubic-bezier(.2,.8,.2,1);}
#crownMode .cm-prog-foot{font-size:var(--fs-13);color:var(--ink-soft);margin-top:9px;line-height:1.45;}
#crownMode .cm-prog-foot b{color:var(--terra-deep);}
#crownMode .cm-badge{display:flex;align-items:center;gap:13px;}
#crownMode .cm-bic{flex:0 0 auto;width:48px;height:48px;border-radius:15px;font-size:24px;
  background:linear-gradient(140deg,var(--gold-soft),var(--gold));display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 22px -10px rgba(122,79,53,.6);}
#crownMode .cm-btx{flex:1;} #crownMode .cm-btx b{display:block;font-size:var(--fs-15);color:var(--espresso);font-family:'Fraunces',serif;font-weight:480;}
#crownMode .cm-btx span{font-size:var(--fs-13);color:var(--ink-soft);}
#crownMode .cm-chk{flex:0 0 auto;width:26px;height:26px;border-radius:50%;font-size:var(--fs-14);
  background:linear-gradient(140deg,var(--terra-soft),var(--terra));color:#fff;display:flex;align-items:center;justify-content:center;}
#crownMode .cm-cta{display:block;width:100%;text-align:center;padding:17px;border-radius:17px;border:none;cursor:pointer;
  font-family:inherit;font-size:var(--fs-16);font-weight:700;color:#3a2410;background:linear-gradient(135deg,var(--gold-soft),var(--gold));
  box-shadow:0 18px 34px -14px rgba(122,79,53,.8);margin-top:4px;}
#crownMode .cm-cta:active{transform:translateY(1px);}
/* cascade d'apparition légère */
@keyframes cmRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
#crownMode .cm-rise{opacity:0;animation:cmRise .6s cubic-bezier(.2,.8,.2,1) both;}
@media (prefers-reduced-motion: reduce){
  #crownMode .cm-glow,#crownMode .cm-spark{animation:none;}
  #crownMode .cm-bar i{transition:none;}
  #crownMode .cm-rise{animation:none;opacity:1;}
}

/* =====================================================================
   ÉCRAN « TA ROUTINE » — overlay plein écran (#routineMode)
   La routine de base de Tatiana, par type : checklist + à-éviter + liens + Naya.
   Palette afro chaude (mêmes variables que #crownMode). */
#routineMode{position:fixed;inset:0;z-index:10001;display:none;
  padding:14px 20px calc(28px + env(safe-area-inset-bottom));
  background:radial-gradient(140% 90% at 50% 0%,#FDF8F0 0%,var(--cream) 50%,#EFDDC6 100%);
  color:var(--ink);overflow-y:auto;-webkit-overflow-scrolling:touch;}
#routineMode .rm-top{display:flex;align-items:center;gap:12px;width:100%;max-width:420px;margin:0 auto;padding:2px 0 4px;}
#routineMode .rm-x{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.6);border:1px solid var(--line);
  color:var(--mocha);font-size:var(--fs-16);cursor:pointer;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
#routineMode .rm-title{font-family:'Fraunces',serif;font-weight:440;font-size:24px;color:var(--espresso);}
#routineMode .rm-top-copy{min-width:0;}
#routineMode .rm-purpose{margin:1px 0 0;font-size:var(--fs-12);color:var(--ink-soft);line-height:1.3;}
/* intro */
#routineMode .rm-intro{display:flex;align-items:center;gap:14px;padding:10px 2px 4px;max-width:420px;margin:0 auto;}
#routineMode .rm-naya{flex:0 0 auto;width:64px;height:64px;border-radius:50%;padding:2.5px;
  background:linear-gradient(140deg,var(--gold-soft),var(--terra-soft));}
#routineMode .rm-naya img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 28%;border:2px solid #FCF5E9;}
#routineMode .rm-itx .rm-k{font-size:var(--fs-11);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--terra-deep);font-weight:700;}
#routineMode .rm-itx b{font-family:'Fraunces',serif;font-weight:440;font-size:var(--fs-20);color:var(--espresso);display:block;line-height:1.1;margin:2px 0;}
#routineMode .rm-itx span{font-size:var(--fs-13);color:var(--ink-soft);}
#routineMode .rm-feed{max-width:420px;width:100%;margin:0 auto;}
#routineMode .rm-sub{font-size:var(--fs-14);color:var(--ink-soft);line-height:1.45;margin:10px 2px 0;}
#routineMode .rm-washbook{position:relative;overflow:hidden;margin-top:20px;padding:20px;border-radius:var(--radius-card);background:var(--espresso);color:var(--cream);box-shadow:var(--shadow-card);}
#routineMode .rm-washbook::before{content:"";position:absolute;top:0;left:20px;right:20px;height:1px;background:var(--gold-soft);opacity:.65;}
#routineMode .rm-wash-k{font-size:var(--fs-11);font-weight:600;letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-lum);}
#routineMode .rm-wash-t{margin:8px 0 5px;font-family:'Fraunces',serif;font-size:var(--fs-22);font-weight:500;line-height:1.15;color:var(--cream);text-wrap:balance;}
#routineMode .rm-wash-p{max-width:55ch;font-size:var(--fs-13);line-height:1.5;color:rgba(246,232,213,.74);text-wrap:pretty;}
#routineMode .rm-wash-preview{margin:15px 0 0;padding:0;list-style:none;}
#routineMode .rm-wash-preview li{display:flex;gap:11px;align-items:baseline;padding:8px 0;border-top:1px solid rgba(217,178,126,.18);}
#routineMode .rm-wash-preview span{font-family:'Fraunces',serif;font-size:var(--fs-12);color:var(--gold-soft);}
#routineMode .rm-wash-preview b{font-size:var(--fs-13);font-weight:500;color:var(--cream);}
#routineMode .rm-wash-start{width:100%;min-height:48px;margin-top:14px;}
#routineMode .rm-wash-note{display:block;margin-top:9px;font-family:'Fraunces',serif;font-size:var(--fs-11);font-style:italic;line-height:1.45;color:rgba(246,232,213,.65);}
#routineMode .rm-zh{font-weight:700;font-size:var(--fs-12);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--terra-deep);
  margin:20px 2px 11px;display:flex;align-items:center;gap:9px;}
#routineMode .rm-zico{width:18px;height:18px;border-radius:50%;background:rgba(191,86,56,.12);color:var(--terra-deep);
  display:flex;align-items:center;justify-content:center;font-size:var(--fs-11);font-weight:700;flex:0 0 auto;}
/* liste étapes */
#routineMode .rm-list{background:linear-gradient(168deg,#FDFAF4,var(--card) 60%,#F6ECDC);border:1px solid var(--line);
  border-radius:22px;padding:6px 8px;box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 18px 40px -28px rgba(58,35,18,.5);}
#routineMode .rm-step{display:block;}
#routineMode .rm-step+.rm-step{border-top:1px solid var(--line);}
#routineMode .rm-step-summary{display:flex;align-items:center;gap:12px;min-height:62px;padding:10px 12px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent;}
#routineMode .rm-step-summary::-webkit-details-marker{display:none;}
#routineMode .rm-step-summary:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;border-radius:var(--radius-field);}
#routineMode .rm-step-summary:active{transform:translateY(1px);}
#routineMode .rm-step-head{flex:1;min-width:0;}
#routineMode .rm-step-head b{display:block;font-size:var(--fs-15);color:var(--espresso);font-weight:600;}
#routineMode .rm-step-chevron{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:var(--ink-soft);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--d-fast) var(--ease-out);}
#routineMode .rm-step[open] .rm-step-chevron{transform:rotate(180deg);}
#routineMode .rm-ico{flex:0 0 auto;width:38px;height:38px;border-radius:12px;
  background:linear-gradient(140deg,var(--sand),#dcc6a8);display:flex;align-items:center;justify-content:center;font-size:var(--fs-18);}
#routineMode .rm-stx{flex:1;}
#routineMode .rm-stx b{display:block;font-size:var(--fs-15);color:var(--espresso);font-weight:600;}
#routineMode .rm-stx span{font-size:var(--fs-12);color:var(--ink-soft);line-height:1.35;}
#routineMode .rm-step-detail{padding:0 16px 13px 62px;}
#routineMode .rm-step-detail>span:first-child{display:block;}
/* couture produit↔geste : ton produit nommé / trou honnête */
#routineMode .rm-stx .rm-uses{display:block;font-size:var(--fs-12);font-weight:600;color:var(--v-ok);margin-top:4px;line-height:1.3;}
#routineMode .rm-stx .rm-miss{display:inline-block;margin-top:5px;font-size:var(--fs-12);font-weight:600;color:var(--v-warn);background:rgba(154,106,31,.12);border:none;border-radius:8px;padding:5px 9px;min-height:32px;cursor:pointer;font-family:inherit;text-align:left;line-height:1.25;}
#routineMode .rm-freq{font-size:var(--fs-11);font-weight:700;letter-spacing:.03em;color:var(--terra-deep);
  background:rgba(191,86,56,.1);padding:5px 10px;border-radius:99px;white-space:nowrap;flex:0 0 auto;}
/* à éviter */
#routineMode .rm-avoid{background:linear-gradient(168deg,#FBF3EE,#F6E7DF);border:1px solid rgba(191,86,56,.2);
  border-radius:22px;padding:18px 20px;margin-top:16px;}
#routineMode .rm-avoid-h{margin:0 0 11px;}
#routineMode .rm-avoid-list{list-style:none;display:flex;flex-direction:column;gap:9px;margin:0;padding:0;}
#routineMode .rm-avoid-list li{display:flex;align-items:flex-start;gap:10px;font-size:var(--fs-14);color:var(--ink);line-height:1.4;}
#routineMode .rm-avoid-list li b{color:var(--terra-deep);}
#routineMode .rm-x.rm-avoid,#routineMode .rm-avoid-list .rm-x{flex:0 0 auto;width:20px;height:20px;border-radius:50%;
  background:rgba(191,86,56,.14);color:var(--terra-deep);display:flex;align-items:center;justify-content:center;
  font-size:var(--fs-11);font-weight:700;margin-top:1px;}
/* liens */
#routineMode .rm-links{display:flex;gap:11px;margin-top:18px;}
#routineMode .rm-lk{flex:1;background:linear-gradient(168deg,#FDFAF4,#F6ECDC);border:1px solid var(--line);border-radius:18px;
  padding:14px 8px;text-align:center;cursor:pointer;font-family:inherit;
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 12px 26px -20px rgba(58,35,18,.4);}
#routineMode .rm-lk:active{transform:translateY(1px);}
#routineMode .rm-lk-i{font-size:var(--fs-22);margin-bottom:5px;}
#routineMode .rm-lk-i svg{width:21px;height:21px;color:var(--gold-deep);}
#routineMode .rm-lk b{font-size:var(--fs-12);color:var(--espresso);font-weight:600;display:block;}
#routineMode .rm-lk span{font-size:var(--fs-10);color:var(--ink-soft);}
/* bulle Naya */
#routineMode .rm-nayaq{display:flex;gap:12px;align-items:flex-start;margin:18px 2px 0;padding:16px;border-radius:18px;
  background:rgba(217,178,126,.14);border:1px solid rgba(217,178,126,.4);}
#routineMode .rm-nayaq-av{flex:0 0 auto;width:36px;height:36px;border-radius:50%;overflow:hidden;border:2px solid var(--gold-soft);}
#routineMode .rm-nayaq-av img{width:100%;height:100%;object-fit:cover;object-position:50% 28%;}
#routineMode .rm-nayaq p{font-size:var(--fs-13);line-height:1.5;color:var(--ink);}
#routineMode .rm-nayaq p b{color:var(--terra-deep);font-family:'Fraunces',serif;font-weight:500;}
/* bouton d'accès « Ma routine · {type} » dans l'accueil (zone Cette semaine) */
.routine-entry{display:flex;align-items:center;gap:13px;width:100%;text-align:left;cursor:pointer;
  margin-top:10px;padding:13px 15px;border-radius:16px;font-family:inherit;
  background:linear-gradient(168deg,#FDFAF4,#F6ECDC);border:1px solid var(--line);
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 10px 24px -20px rgba(58,35,18,.4);}
.routine-entry:active{transform:translateY(1px);}
.routine-entry .re-ico{flex:0 0 auto;width:38px;height:38px;border-radius:12px;font-size:var(--fs-18);
  background:linear-gradient(140deg,var(--sand),#dcc6a8);display:flex;align-items:center;justify-content:center;}
.routine-entry .re-tx{flex:1;}
.routine-entry .re-tx b{display:block;font-size:var(--fs-15);color:var(--espresso);font-weight:600;}
.routine-entry .re-tx small{display:block;font-size:var(--fs-12);color:var(--ink-soft);margin-top:1px;}
.routine-entry .re-chev{flex:0 0 auto;color:var(--terra-deep);font-size:var(--fs-20);font-weight:700;}

/* ===================== BLOC 1 — WASH DAY PLUS RICHE ===================== */
/* produit conseillé sous une étape — VISIBLE (la valeur n°1) */
.wd-prods{margin:-4px 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--card);}
.wd-prods-h{font-size:var(--fs-12);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);font-weight:700;margin-bottom:8px;}
.wd-prod-row{display:flex;gap:10px;align-items:center;margin:6px 0;}
.wd-prod-row b{font-size:var(--fs-15);color:var(--ink);font-weight:600;}
.wd-prod-more{margin-top:8px;min-height:44px;background:transparent;border:none;color:var(--gold);font-family:inherit;font-size:var(--fs-14);font-weight:600;cursor:pointer;padding:6px 0;}
.wd-prod-note{display:block;font-size:var(--fs-13);color:var(--ink-soft);opacity:.85;}
.wd-prods-kit{min-height:44px;width:100%;background:transparent;border:1px dashed var(--line);border-radius:12px;color:var(--gold);font-family:inherit;font-size:var(--fs-14);font-weight:600;cursor:pointer;}
/* pose du masque + volet naturel — REPLIÉS */
.wd-pose,.wd-natural{margin:-4px 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--card);}
.wd-pose>summary,.wd-natural>summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center;color:var(--ink);}
.wd-pose-opt{display:flex;gap:10px;align-items:center;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;padding:9px 11px;margin:6px 0;background:transparent;font-family:inherit;cursor:pointer;min-height:44px;}
.wd-pose-opt.on{border-color:var(--gold);background:rgba(182,130,63,.08);}
.wd-pose-ic{font-size:var(--fs-20);}
.wd-pose-tx{display:flex;flex-direction:column;}
.wd-pose-tx b{color:var(--ink);font-size:var(--fs-15);}
.wd-pose-tx small{color:var(--ink-soft);font-size:var(--fs-13);}
.wd-nat-row{margin:8px 0;}
.wd-nat-row b{color:var(--ink);}
.wd-nat-row p{margin:2px 0 0;color:var(--ink-soft);font-size:var(--fs-14);}
.wd-nat-test{font-size:var(--fs-13);color:var(--ink-soft);margin:8px 0;}
.wd-nat-mine{display:block;font-weight:600;margin-top:6px;color:var(--ink);}
.wd-nat-input{width:100%;min-height:54px;margin-top:6px;border:1px solid var(--line);border-radius:12px;padding:10px;font-family:inherit;font-size:var(--fs-16);box-sizing:border-box;background:#fff;}
.wd-nat-fb{font-size:var(--fs-13);color:var(--gold);min-height:16px;}
/* récap fin de wash day */
.wd-used-ov{position:fixed;inset:0;background:rgba(44,30,18,.5);display:flex;align-items:flex-end;justify-content:center;z-index:9999;}
.wd-used-card{background:var(--card);border-radius:20px 20px 0 0;padding:18px;width:100%;max-width:480px;}
.wd-used-card>b{display:block;font-size:var(--fs-16);color:var(--ink);margin-bottom:10px;}
.wd-used-item{display:flex;gap:10px;align-items:center;padding:9px 0;min-height:44px;color:var(--ink);}
.wd-used-validate{margin-top:12px;width:100%;}

/* ===================== BLOC 2 — BILAN HEBDO ADAPTATIF ===================== */
.bilan-adapt{border:1px solid var(--gold);background:rgba(182,130,63,.06);}
.bilan-adapt>b{display:block;margin-bottom:4px;color:var(--ink);}
.bilan-adapt-ba{font-size:var(--fs-14);color:var(--ink-soft);margin:6px 0 10px;}
.bilan-adapt-row{display:flex;gap:10px;}
.bilan-adapt-row .btn{flex:1;min-height:44px;}
.bilan-adapt-done{color:var(--gold);font-weight:600;margin:4px 0;}

/* coiffures inline sous l'étape coiffure protectrice du wash day */
.wd-styles{margin:-4px 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--card);}
.wd-styles>summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center;color:var(--ink);}
.wd-style-row{margin:8px 0;}
.wd-style-row b{color:var(--ink);}
.wd-style-tag{display:inline-block;margin-left:6px;font-size:var(--fs-12);color:var(--gold);border:1px solid var(--line);border-radius:8px;padding:1px 6px;}
.wd-style-row p{margin:3px 0 0;color:var(--ink-soft);font-size:var(--fs-14);}
.wd-style-more{margin-top:8px;min-height:44px;background:transparent;border:none;color:var(--gold);font-family:inherit;font-size:var(--fs-14);font-weight:600;cursor:pointer;padding:6px 0;}

/* wash day — repère débutante (essentiel d'abord) */
.wd-debutante{margin:0 0 12px;padding:10px 12px;border-radius:14px;background:rgba(182,130,63,.08);border:1px solid var(--gold);}
.wd-debutante>b{display:block;color:var(--ink);margin-bottom:2px;}
.wd-debutante>p{margin:0;color:var(--ink-soft);font-size:var(--fs-14);}

/* 🅱️ gestes clés = référence calme (plus de checklist quotidienne « 0/3 ») */
.gd-ref{padding:8px 0;border-top:1px solid var(--line);}
.gd-ref:first-child{border-top:none;}
.gd-ref-when{display:inline-block;font-size:var(--fs-11);letter-spacing:.03em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:4px;}
.gd-ref-line{display:flex;gap:10px;align-items:flex-start;}
.gd-ref-line .go-ic{font-size:var(--fs-18);flex:0 0 auto;}
.gd-ref-line b{display:block;color:var(--ink);font-size:var(--fs-14);}
.gd-ref-line span{display:block;color:var(--ink-soft);font-size:var(--fs-13);margin-top:1px;}

/* 2b — tiroir « Ma semaine en détail » (C·Pop, ouverture vers le bas) */
.wk-detail{margin-top:12px;border:1px solid var(--line);border-radius:16px;background:var(--card);overflow:hidden;}
.wk-detail-head{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;background:none;border:0;cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent;}
.wk-detail-k{flex:1;text-align:left;font-size:var(--fs-15);font-weight:600;color:var(--ink);}
.wk-detail-chev{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(182,130,63,.1);}
.wk-detail-chev svg{width:14px;height:14px;color:var(--gold-deep);transition:transform .42s cubic-bezier(.32,.72,0,1);}
.wk-detail.open .wk-detail-chev svg{transform:rotate(180deg);}
.wk-detail-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .42s cubic-bezier(.32,.72,0,1);}
.wk-detail-body > div{overflow:hidden;}
.wk-detail.open .wk-detail-body{grid-template-rows:1fr;}
.wk-detail-body > div{padding:2px 14px 14px;}
.wk-detail-body > div > *{max-width:100%;box-sizing:border-box;}
.wk-detail-body .cal-card,.wk-detail-body .protect,.wk-detail-body .routine-entry,.wk-detail-body .donebtn,.wk-detail-body .washgo,.wk-detail-body .card{margin-left:0;margin-right:0;width:100%;}
.wk-detail-body .cal-list{min-width:0;}
.wk-detail-body .cal-list > *{flex-wrap:wrap;}
/* 2c — bandeau « tes cheveux changent » (carte claire, photos avant/après) */
/* 2e-3 — bandeau « tes cheveux changent » DÉ-BOXÉ : plus de carte, photos nues sur le crème */
.glimpse{display:flex;align-items:center;gap:16px;width:100%;text-align:left;padding:6px 2px;border:0;background:transparent;box-shadow:none;cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent;}

/* ===================================================================
   V7-1 — COUVERTURE PHOTO MOBILE (< 880px) : photo plein cadre 296px,
   greeting cream par-dessus, contrôles glass. Masqué par le bloc desktop ci-dessous sur grand écran.
   =================================================================== */
@media (max-width:879px){
  #result .ed-hero{height:256px;min-height:256px;background:var(--espresso);overflow:hidden;border-radius:0 0 30px 30px;margin:0 0 6px;padding:0;box-shadow:0 24px 46px -26px rgba(28,16,7,.6);}
  #result .ed-hero::before{display:none !important;}
  #result .ed-hero .ed-slides{display:block;}
  #result .ed-hero .ed-hero-veil{display:block;background:linear-gradient(180deg,rgba(18,10,3,.5) 0%,rgba(18,10,3,0) 24%,rgba(18,10,3,.12) 50%,rgba(18,10,3,.8) 100%);}
  #result .ed-hero .ed-hero-top{position:absolute;top:0;left:0;right:0;padding:18px 20px 0;margin-bottom:0;border-bottom:0;z-index:2;}
  #result .ed-hero .ed-hero-top .ed-hero-logo{color:#FFF7EA;font-family:'Fraunces',serif;font-weight:600;font-size:var(--fs-15);letter-spacing:.05em;text-shadow:0 1px 8px rgba(0,0,0,.45);}
  #result .ed-hero .ed-hero-top .ed-hero-logo svg{filter:drop-shadow(0 1px 5px rgba(0,0,0,.45));}
  #result .ed-hero .hh-actions .hh-scan,#result .ed-hero .hh-actions .av{color:#FFF7EA;background:rgba(28,16,7,.30);backdrop-filter:blur(6px);border:1px solid rgba(255,247,234,.32);}
  #result .ed-hero .hh-actions .hh-scan svg{stroke:#FFF7EA;}
  #result .ed-hero .ed-hero-txt{position:absolute;left:0;right:0;bottom:0;top:auto;padding:0 20px 18px;display:block;z-index:2;}
  #result .ed-hero .hh-hi{color:#FFF7EA !important;text-shadow:0 2px 14px rgba(0,0,0,.45);}
  #result .ed-hero .hh-sub{color:rgba(246,232,213,.92) !important;text-shadow:0 1px 6px rgba(0,0,0,.4);}
  #result .ed-hero .hh-sub #greetSub{color:rgba(246,232,213,.92);}
  #result .ed-hero .hh-sub .hh-tier{color:var(--gold-soft);}
  #result .ed-hero .hh-sub .hh-tier svg{stroke:var(--gold-soft);}
  #result .ed-hero .ed-naya{display:none;}
}

/* ===================================================================
   V7-1 — COUVERTURE CINÉMATIQUE DESKTOP (≥ 880px) : bandeau 404px,
   photo plein cadre, double dégradé, greeting Fraunces 54px en bas-gauche,
   contrôles glass en haut-droite. Portée depuis accueil-v7-DESKTOP.html.
   =================================================================== */
@media (min-width:880px){
  #result .ed-hero{height:404px;min-height:404px;background:var(--espresso);overflow:hidden;border-radius:0 0 30px 30px;margin:0 0 10px;padding:0;box-shadow:0 24px 46px -26px rgba(28,16,7,.6);position:relative;}
  #result .ed-hero::before{display:none !important;}
  #result .ed-hero .ed-slides{display:block;}
  #result .ed-hero .ed-hero-veil{display:block;position:absolute;inset:0;background:linear-gradient(110deg,rgba(20,11,4,.72) 0%,rgba(20,11,4,.25) 38%,rgba(20,11,4,0) 62%),linear-gradient(180deg,transparent 55%,rgba(28,16,7,.55) 100%);z-index:1;pointer-events:none;}
  /* Photo plein cadre */
  #result .ed-hero .ed-slides,#result .ed-hero .ed-slide{position:absolute;inset:0;width:100%;height:100%;margin:0;}
  #result .ed-hero .ed-slide{object-fit:cover;object-position:56% 28%;}
  /* Contrôles glass en haut-droite */
  #result .ed-hero .ed-hero-top{position:absolute;top:0;right:0;left:auto;z-index:2;display:flex;gap:11px;padding:22px 30px 0;margin-bottom:0;border-bottom:0;justify-content:flex-end;align-items:center;max-width:none;width:auto;margin-left:0;margin-right:0;}
  #result .ed-hero .ed-hero-top .ed-hero-logo{display:none;}
  #result .ed-hero .ed-hero-top .hh-actions{display:flex;gap:11px;}
  #result .ed-hero .ed-hero-top .hh-actions button,#result .ed-hero .ed-hero-top .hh-actions .av{height:38px;min-width:38px;border-radius:999px;border:1px solid rgba(255,247,234,.34);background:rgba(28,16,7,.3);backdrop-filter:blur(7px);color:#FFF7EA;font-size:var(--fs-13);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0 12px;}
  #result .ed-hero .hh-actions .hh-scan svg{stroke:#FFF7EA;}
  #result .ed-hero .hh-actions .lang{display:none;}
  /* Greeting calé en bas-gauche, jamais recentré */
  #result .ed-hero .ed-hero-txt{position:absolute;left:0;bottom:0;right:auto;top:auto;z-index:2;padding:0 44px 36px;max-width:680px;display:block;margin:0;width:auto;}
  #result .ed-hero .hh-hi{font-family:'Fraunces',serif;font-weight:300;font-optical-sizing:auto;font-size:54px;line-height:.98;letter-spacing:-.025em;color:#FFF7EA !important;margin-top:0;text-shadow:0 2px 20px rgba(0,0,0,.45);}
  #result .ed-hero .hh-sub{color:rgba(255,247,234,.92) !important;text-shadow:0 1px 6px rgba(0,0,0,.5);font-size:var(--fs-14);font-weight:500;display:inline-flex;align-items:center;gap:8px;margin-top:16px;}
  #result .ed-hero .hh-sub #greetSub{color:rgba(255,247,234,.92);}
  #result .ed-hero .hh-sub .hh-tier{color:var(--gold-soft);}
  #result .ed-hero .hh-sub .hh-tier svg{stroke:var(--gold-soft);}
  #result .ed-hero .ed-naya{display:none;}
  #result .ed-hero .ed-greet{display:block;}
}

/* ===================================================================
   V8 — TA TRANSFORMATION (Task 4 accueil-qui-vend) : le bloc qui vend.
   3 cases Jour 1 → Aujourd'hui → Jour 30 🔒.
   Vocabulaire copié de la maquette contrat accueil-v8-transformation.html
   (classes .tf-, enfants .when/.go/.d comme la maquette).
   =================================================================== */
#progres #glimpseHost .tf-lbl{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--ink-faint);font-weight:600;margin:0 0 14px;display:flex;align-items:center;gap:12px;}
#progres #glimpseHost .tf-lbl::after{content:"";flex:1;height:1px;background:var(--hair);}
#progres #glimpseHost .tf{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;}
/* ordi : sans borne, chaque case 3/5 s'étire à ~240×400px (3 pavés géants) — on garde l'échelle du mobile */
@media (min-width:880px){ #progres #glimpseHost .tf{max-width:540px;} }
#progres #glimpseHost .tf-slot{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:3/5;box-shadow:0 14px 30px -16px rgba(58,35,18,.4);font-family:inherit;}
#progres #glimpseHost .tf-cap{position:absolute;top:0;left:0;right:0;z-index:2;padding:10px 11px;font-size:var(--fs-10);font-weight:600;letter-spacing:var(--track-kicker);text-transform:uppercase;text-align:left;}
/* case photo réelle */
#progres #glimpseHost .tf-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.05);}
#progres #glimpseHost .tf-photo .tf-cap{color:#FFF7EA;background:linear-gradient(rgba(28,16,7,.55),transparent);padding-bottom:22px;}
#progres #glimpseHost .tf-photo .when{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:18px 11px 9px;font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-12);color:#FFF7EA;background:linear-gradient(transparent,rgba(28,16,7,.6));}
/* case invitation (jour 1 sans photo) */
#progres #glimpseHost .tf-invite{background:var(--card);border:1px dashed rgba(182,130,63,.4);box-shadow:none;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 12px 14px;gap:8px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
#progres #glimpseHost .tf-invite .tf-cap{color:var(--gold-deep);}
#progres #glimpseHost .tf-invite>svg{width:26px;height:26px;stroke:var(--gold);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
#progres #glimpseHost .tf-invite b{font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-14);line-height:1.25;color:var(--ink);letter-spacing:-.01em;text-wrap:balance;}
#progres #glimpseHost .tf-invite span{font-size:var(--fs-11);color:var(--ink-faint);font-style:italic;}
/* case vide élégante (aujourd'hui, à venir) */
#progres #glimpseHost .tf-empty{background:rgba(255,252,246,.55);box-shadow:inset 0 0 0 1px var(--hair);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;}
#progres #glimpseHost .tf-empty .tf-cap{color:var(--ink-faint);}
#progres #glimpseHost .tf-empty .d{width:5px;height:5px;border-radius:50%;background:rgba(182,130,63,.4);}
#progres #glimpseHost .tf-empty span{font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-12);color:var(--ink-faint);}
/* case jour 30 verrouillée — désirable, or discret (jamais de rouge) */
#progres #glimpseHost .tf-lock{background:radial-gradient(150% 130% at 80% -10%,#3c2616,var(--espresso));cursor:pointer;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;padding:34px 12px 12px;border:0;-webkit-tap-highlight-color:transparent;}
#progres #glimpseHost .tf-lock::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-soft) 40%,var(--gold) 58%,transparent);}
#progres #glimpseHost .tf-lock .tf-cap{color:var(--gold-soft);display:flex;align-items:center;gap:6px;}
#progres #glimpseHost .tf-lock .tf-cap svg{width:11px;height:11px;stroke:var(--gold-soft);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto;}
#progres #glimpseHost .tf-lock-t{position:relative;z-index:1;font-family:'Fraunces',serif;font-weight:400;font-size:var(--fs-13);line-height:1.3;color:var(--cream);letter-spacing:-.01em;text-align:left;text-wrap:balance;}
#progres #glimpseHost .tf-lock-t b{color:var(--gold-soft);font-weight:500;}
#progres #glimpseHost .tf-lock .go{position:relative;z-index:1;margin-top:8px;font-size:var(--fs-11);font-weight:600;color:var(--gold-soft);letter-spacing:.06em;text-align:left;}
/* ligne sous les cases */
#progres #glimpseHost .tf-line{display:block;width:100%;margin:13px 0 0;padding:0 2px;border:0;background:none;text-align:left;font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-14);line-height:1.45;color:var(--gold-deep);}
#progres #glimpseHost button.tf-line{cursor:pointer;-webkit-tap-highlight-color:transparent;}
/* desktop (grille sémantique ≥880px) : la colonne droite de l'app fait ~386px (≈ mobile),
   on garde donc le gabarit mobile — seule la respiration augmente (la maquette scale-up
   supposait une colonne large ; ici elle ferait déborder la promesse hors de sa case). */
@media (min-width:880px){
  #progres #glimpseHost .tf{gap:11px;}
  #progres #glimpseHost .tf-slot{border-radius:20px;}
}

/* ===================================================================
   V8 — LA FICHE PRO (Task 5 accueil-qui-vend) : LA porte Pro unique.
   Rendue dans la feuille générique #gsheet (openGsheet), verrou doux :
   de l'or, pas de rouge. Vocabulaire copié de la maquette contrat
   accueil-v8-fiche-pro.html (classes .fp-).
   =================================================================== */
#gsheetBody .fp{position:relative;}
#gsheetBody .fp-foil{height:1px;background:linear-gradient(90deg,transparent,var(--gold-soft) 40%,var(--gold) 58%,transparent);margin:-6px 0 14px;}
#gsheetBody .fp-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold-deep);font-weight:600;display:flex;align-items:center;gap:10px;}
#gsheetBody .fp-k::after{content:"";flex:1;height:1px;background:var(--hair);}
#gsheetBody .fp-t{font-family:'Fraunces',serif;font-weight:400;font-size:24px;line-height:1.12;letter-spacing:-.02em;color:var(--ink);margin-top:12px;text-wrap:balance;}
#gsheetBody .fp-t b{font-weight:500;color:var(--gold-deep);}
#gsheetBody .fp-sub{font-size:var(--fs-13);color:var(--ink-soft);margin-top:7px;line-height:1.5;}
#gsheetBody .fp-list{margin-top:16px;display:flex;flex-direction:column;}
#gsheetBody .fp-li{display:flex;align-items:flex-start;gap:11px;padding:8px 0;font-size:var(--fs-14);line-height:1.45;color:var(--ink);}
#gsheetBody .fp-li + .fp-li{border-top:1px solid var(--hair);}
#gsheetBody .fp-li svg{width:15px;height:15px;flex:0 0 auto;margin-top:2px;stroke:var(--gold);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
#gsheetBody .fp-li b{font-weight:600;}
#gsheetBody .fp-caution{display:flex;align-items:center;gap:11px;margin-top:16px;padding:13px 14px;border-radius:16px;background:linear-gradient(120deg,rgba(182,130,63,.12),rgba(182,130,63,.03));border:1px solid rgba(182,130,63,.4);}
#gsheetBody .fp-caution .t-face{width:38px;height:38px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:radial-gradient(120% 120% at 30% 25%,#3c2616,var(--espresso));box-shadow:0 0 0 1.5px rgba(182,130,63,.4);font-family:'Fraunces',serif;font-size:var(--fs-16);color:var(--gold-soft);}
#gsheetBody .fp-caution p{font-size:var(--fs-13);line-height:1.45;color:var(--ink-soft);margin:0;}
#gsheetBody .fp-caution b{color:var(--ink);font-weight:600;}
#gsheetBody .fp-prix{margin-top:14px;font-size:var(--fs-13);color:var(--ink-soft);display:flex;align-items:baseline;gap:7px;}
#gsheetBody .fp-prix b{font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-15);color:var(--ink);}
#gsheetBody .fp-cta{margin-top:14px;}
#gsheetBody .fp-mail{width:100%;padding:14px 16px;border-radius:16px;border:1px solid rgba(182,130,63,.4);background:rgba(255,252,246,.7);font-size:var(--fs-14);font-family:inherit;color:var(--ink);outline:none;transition:border-color .18s ease;}
#gsheetBody .fp-mail::placeholder{color:var(--ink-faint);}
#gsheetBody .fp-mail:focus{border-color:var(--gold);}
#gsheetBody .fp-btn{width:100%;margin-top:9px;padding:15px 10px;border:0;border-radius:16px;background:linear-gradient(160deg,#D9B27E,#8A5F2E);color:#FFF7EA;font-size:var(--fs-14);font-weight:600;letter-spacing:.01em;font-family:inherit;cursor:pointer;box-shadow:0 14px 28px -14px rgba(138,95,46,.65);transition:filter .18s ease;}
#gsheetBody .fp-btn:hover{filter:brightness(1.05);}
#gsheetBody .fp-btn[disabled]{opacity:.6;cursor:default;}
#gsheetBody .fp-nospam{margin-top:9px;text-align:center;font-size:var(--fs-11);color:var(--ink-faint);font-style:italic;}
#gsheetBody .fp-msg{margin-top:9px;font-size:var(--fs-12);line-height:1.45;color:var(--terra-deep,#9C422B);}
/* état merci — signé Naya */
#gsheetBody .fp-merci{text-align:center;padding:24px 6px 14px;}
#gsheetBody .fp-merci .fp-foil{margin:-30px 0 28px;}
#gsheetBody .fp-merci img{width:64px;height:64px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px rgba(182,130,63,.4);}
#gsheetBody .fp-merci-t{font-family:'Fraunces',serif;font-weight:400;font-size:var(--fs-22);line-height:1.15;letter-spacing:-.02em;color:var(--ink);margin-top:16px;text-wrap:balance;}
#gsheetBody .fp-merci-b{font-size:var(--fs-14);color:var(--ink-soft);margin-top:9px;line-height:1.55;max-width:300px;margin-left:auto;margin-right:auto;}
#gsheetBody .fp-merci-sign{margin-top:14px;font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-13);color:var(--gold-deep);}
/* desktop : les feuilles du bas deviennent des modales centrées — fini le bandeau
   pleine largeur qui recouvrait même le rail latéral (ex. « Le scan en 3 gestes »). */
@media (min-width:880px){
  #gsheet,#diagSheet,#scanSheet{align-items:center;justify-content:center;padding:24px;}
  #gsheet .panel,#diagSheet .panel,#scanSheet .panel{max-width:560px;border-radius:28px;}
  #gsheet .grip,#diagSheet .grip{display:none;} /* pas de poignée de glissement en modale desktop */
  #gsheetBody .fp-foil{margin-top:0;}
}

/* ===================================================================
   V7-5 — PILIER APPRENDRE : carrousel « Le savais-tu ? »
   Mobile (< 880px) = swipe horizontal scroll-snap.
   Desktop (≥ 880px) = pile verticale.
   Classes scoped conseils-* pour ne pas entrer en conflit avec les
   .tip/.tips existants dans la section scan.
   =================================================================== */
#result #conseilsHost{padding:0 0 4px;}
#result #conseilsHost .conseils-header{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--ink-faint);font-weight:700;margin:0 0 14px;display:flex;align-items:center;gap:12px;padding:0 24px;/* l'hôte est full-bleed pour le carrousel : sans ce padding le kicker colle au bord de l'écran */}
#result #conseilsHost .conseils-header::after{content:"";flex:1;height:1px;background:var(--line,rgba(90,60,30,.12));}
#result #conseilsHost .conseils-tips{display:flex;gap:13px;padding:0 20px 4px;}
#result #conseilsHost .conseils-tips::-webkit-scrollbar{display:none;}
#result #conseilsHost .conseils-tip{flex:1 1 auto;width:100%;padding:15px 0 13px;border-top:1px solid var(--hair);background:transparent;position:relative;overflow:hidden;box-sizing:border-box;}
#result #conseilsHost .conseils-tip::before{content:none;}
#result #conseilsHost .conseils-cat{font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-deep);font-weight:600;}
#result #conseilsHost .conseils-tip p{margin:9px 0 0;font-family:'Fraunces',serif;font-size:var(--fs-14);line-height:1.5;word-wrap:break-word;overflow-wrap:break-word;}
#result #conseilsHost .conseils-src{font-size:var(--fs-11);color:var(--ink-faint);font-style:italic;margin-top:10px;}
#result #conseilsHost .conseils-school-link{display:block;min-height:44px;margin:8px 24px 0 auto;padding:8px 0;border:0;background:none;color:var(--gold-deep);font:600 var(--fs-12) 'Instrument Sans',sans-serif;cursor:pointer;}
#result #conseilsHost .conseils-school-link:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;}

@media (min-width:880px){
  /* bande pleine largeur → les conseils s'alignent en rangée (2-3 cartes) plutôt qu'empilés */
  #result #conseilsHost .conseils-tips{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:13px;padding:0;}
  #result #conseilsHost .conseils-tip{flex:0 0 auto;width:100%;}
  #result #conseilsHost .conseils-header{padding:0;}
}

/* ═══════════ LE PROGRAMME 30 JOURS — JOUR 0 (cérémonie + revue) — maquette programme-jour0-ceremonie.html ═══════════ */
.prog0{position:fixed;inset:0;z-index:120;background:rgba(28,16,7,.45);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  display:flex;align-items:flex-end;justify-content:center;overflow-y:auto;padding:22px 0 0;}
.prog0[hidden]{display:none;}
.prog0-card{position:relative;width:100%;max-width:480px;margin-top:auto;border-radius:26px 26px 0 0;padding:26px 20px 30px;
  background:radial-gradient(140% 60% at 50% -8%,rgba(217,178,126,.28),transparent 55%),linear-gradient(180deg,#FBF3E6,#F1E2CC);
  box-shadow:0 -18px 60px -20px rgba(28,16,7,.6);}
@media(min-width:760px){ .prog0{align-items:center;padding:22px 0;} .prog0-card{border-radius:26px;margin:auto;} }
.prog0-in .prog0-card{animation:prog0Up .4s cubic-bezier(.22,1,.36,1) both;}
@keyframes prog0Up{from{transform:translateY(26px);opacity:0;}to{transform:none;opacity:1;}}
@media(prefers-reduced-motion:reduce){ .prog0-in .prog0-card{animation:none;} }
.prog0-x{position:absolute;top:12px;right:14px;width:32px;height:32px;border-radius:50%;border:none;background:rgba(108,72,42,.1);
  color:var(--ink-soft);font-size:var(--fs-18);line-height:1;cursor:pointer;}
.prog0-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold);font-weight:700;text-align:center;}
.prog0-t{font-family:Fraunces,serif;font-weight:340;font-size:27px;line-height:1.12;color:var(--espresso);text-align:center;margin:10px 0 4px;}
.prog0-recap{margin:16px 0 0;padding:13px 15px;border-left:2px solid var(--gold-soft);}
.prog0-recap-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--ink-faint);font-weight:700;margin-bottom:7px;}
.prog0-recap p{font-size:var(--fs-14);line-height:1.55;color:var(--ink-soft);}
.prog0-naya{display:flex;align-items:center;gap:8px;margin-top:9px;font-size:var(--fs-12);color:var(--gold-deep);}
.prog0-naya i{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#C99A6B,#6B4226);flex:none;}
.prog0-obj{margin:14px 0 0;text-align:center;}
.prog0-obj-k{font-family:Fraunces,serif;font-style:italic;font-size:var(--fs-15);color:var(--gold-deep);}
.prog0-obj-v{font-family:Fraunces,serif;font-size:var(--fs-20);font-weight:420;color:var(--espresso);margin-top:2px;}
.prog0-plan{margin:16px 0 0;background:var(--card,#FBF5EC);border-radius:18px;padding:15px 13px;
  box-shadow:0 1px 2px rgba(50,30,12,.07),0 14px 34px -20px rgba(50,30,12,.45);}
.prog0-plan-t{font-family:Fraunces,serif;font-style:italic;font-size:var(--fs-16);color:var(--espresso);text-align:center;margin-bottom:11px;}
.prog0-jour{display:grid;grid-template-columns:62px 1fr;gap:9px;align-items:center;position:relative;}
.prog0-jour+.prog0-jour{margin-top:7px;}
.prog0-pill{font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;font-weight:700;text-align:center;color:#fff;
  padding:5px 2px;border-radius:999px;background:#C99A6B;}
.prog0-jour:nth-child(odd) .prog0-pill{background:#EFD9BE;color:var(--gold-deep);}
.prog0-jour.wash .prog0-pill,.prog0-jour:nth-child(7) .prog0-pill{background:#8A5A34;color:#fff;}
.prog0-mn{font-size:var(--fs-12);color:var(--ink-soft);line-height:1.35;}
.prog0-mn span{display:inline-block;background:rgba(217,178,126,.14);border:1px solid rgba(182,130,63,.18);border-radius:8px;padding:3px 8px;}
.prog0-jour.wash .prog0-mn span.anchor{background:var(--espresso);color:var(--cream);border-color:var(--espresso);font-weight:600;}
.prog0-jour.dim .prog0-mn span{background:transparent;border:none;padding:0;font-family:Fraunces,serif;font-style:italic;color:var(--gold-deep);}
.prog0-jour.lock .prog0-mn span{filter:blur(3.5px);user-select:none;pointer-events:none;}
.prog0-jour.lock::after{content:"🔒";position:absolute;right:2px;top:50%;transform:translateY(-50%);font-size:var(--fs-11);}
.prog0-unlock{display:block;width:100%;margin-top:12px;border:none;border-radius:999px;padding:11px;cursor:pointer;
  background:var(--espresso);color:var(--gold-soft);font-size:var(--fs-13);font-weight:700;font-family:inherit;}
.prog0-plan-note{font-size:var(--fs-11);color:var(--ink-faint);text-align:center;margin-top:9px;line-height:1.5;}
.prog0-frise{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:16px 0 0;}
.prog0-pal{background:var(--card,#FBF5EC);border-radius:14px;padding:10px 7px;text-align:center;border:1px solid var(--hair,rgba(108,72,42,.13));box-shadow:0 1px 2px rgba(50,30,12,.05);}
.prog0-pal b{display:block;font-family:Fraunces,serif;font-size:var(--fs-16);color:var(--espresso);}
.prog0-pal span{display:block;font-size:var(--fs-10);line-height:1.35;color:var(--ink-soft);margin-top:3px;}
.prog0-pal small{display:block;font-size:var(--fs-10);color:var(--ink-faint);margin-top:3px;}
.prog0-pal.fait{border-color:var(--gold-soft);background:linear-gradient(180deg,#FBF5EC,#F7EBD7);}
.prog0-pal.fait b{color:var(--gold-deep);}
.prog0-pal.fait b::after{content:" ✦";color:var(--gold);font-size:var(--fs-10);}
.prog0-position{text-align:center;font-family:Fraunces,serif;font-style:italic;font-size:var(--fs-15);color:var(--gold-deep);margin-top:12px;}
.prog0-pro{display:block;width:100%;text-align:left;margin:14px 0 0;background:linear-gradient(135deg,#241505,#3A2410);cursor:pointer;
  border:none;border-radius:16px;padding:14px 15px;color:var(--cream);position:relative;overflow:hidden;font-family:inherit;}
.prog0-pro::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 110% -10%,rgba(217,178,126,.28),transparent 60%);}
.prog0-pro b{display:block;font-family:Fraunces,serif;font-weight:420;font-size:var(--fs-15);line-height:1.3;position:relative;}
.prog0-pro span{display:block;font-size:var(--fs-12);color:rgba(246,232,213,.75);margin-top:4px;line-height:1.5;position:relative;}
.prog0-pro em{display:inline-block;font-style:normal;font-size:var(--fs-12);color:var(--gold-soft);font-weight:600;margin-top:7px;position:relative;}
.prog0-cta{width:100%;margin-top:14px;box-shadow:0 10px 24px -12px rgba(138,95,46,.55);}
.prog0-skip{display:block;margin:10px auto 0;background:none;border:none;font-size:var(--fs-12);color:var(--ink-faint);cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;font-family:inherit;}
/* le compteur du programme dans la couverture (maquette programme-accueil-compteur-soir.html) */
.prog-wrap{display:flex;flex-direction:column;gap:5px;align-items:flex-start;margin-top:7px;}
.prog-count{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(217,178,126,.4);cursor:pointer;
  background:rgba(246,232,213,.12);border-radius:999px;padding:5px 12px;color:var(--cream);font-size:var(--fs-12);font-weight:700;letter-spacing:.06em;font-family:inherit;}
.prog-bar{width:128px;height:3px;border-radius:999px;background:rgba(246,232,213,.22);overflow:hidden;}
.prog-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--gold-soft),var(--gold));transition:width .5s cubic-bezier(.22,1,.36,1);}
@media(prefers-reduced-motion:reduce){ .prog-bar i{transition:none;} }
/* LE SOIR (maquette accueil-compteur-soir) : UNE carte accent brun chaud — le fond de page reste crème */
.pdj-soir{margin:10px 0 14px;background:linear-gradient(160deg,#57432B,#4A3822);border-radius:18px;padding:16px;color:var(--cream);
  position:relative;overflow:hidden;box-shadow:0 2px 4px rgba(50,30,12,.12),0 18px 40px -22px rgba(28,16,7,.55);}
.pdj-soir::after{content:"";position:absolute;inset:0;background:radial-gradient(110% 80% at 100% 0%,rgba(217,178,126,.2),transparent 55%);pointer-events:none;}
.pdj-soir>*{position:relative;}
.pdj-soir-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold-soft);font-weight:700;margin-bottom:7px;}
.pdj-soir b{display:block;font-family:Fraunces,serif;font-weight:400;font-size:var(--fs-18);line-height:1.25;}
.pdj-soir-done{color:var(--gold-soft);}
.pdj-soir-b,.pdj-soir-demain{display:block;font-size:var(--fs-13);line-height:1.55;color:rgba(246,232,213,.85);margin-top:6px;}
.pdj-soir-tat{display:flex;align-items:center;gap:7px;margin-top:9px;font-size:var(--fs-11);color:var(--gold-soft);}
.pdj-soir-tat i{width:17px;height:17px;border-radius:50%;background:var(--gold);display:grid;place-items:center;color:#241708;font-weight:800;font-style:normal;font-size:var(--fs-10);flex:none;}
.pdj-soir-btn{width:100%;margin-top:12px;box-shadow:0 8px 20px -10px rgba(138,95,46,.5);}
.pdj-soir-naya{display:block;background:none;border:none;font-size:var(--fs-12);color:var(--gold-soft);cursor:pointer;font-family:inherit;
  text-decoration:underline;text-underline-offset:3px;margin:9px auto 0;}
/* LE MATIN — « Ce matin, j'ai… » */
.matin-card{margin:10px 0 14px;}
.matin-chips{margin-top:10px;}
.matin-chips .op-chip.on{background:var(--espresso);color:var(--cream);border-color:var(--espresso);font-weight:600;}
.matin-libre{width:100%;margin-top:10px;border:1px dashed rgba(182,130,63,.35);background:transparent;border-radius:12px;
  padding:10px 12px;font-size:var(--fs-14);color:var(--ink);font-family:inherit;box-sizing:border-box;}
.matin-ok{width:100%;margin-top:10px;}

/* TASK-010 — une seule déclaration facultative nourrit carnet, Naya et suivi. */
.daily-check{padding:18px;border-radius:var(--radius-card);background:var(--cream-bright);box-shadow:var(--shadow-soft);}
.pgc-title--icon{display:flex;align-items:center;gap:9px;}.pgc-title--icon svg{width:20px;height:20px;fill:none;stroke:var(--gold-deep);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.daily-k{font-size:var(--fs-10);font-weight:600;letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-deep);}
.daily-title{margin:7px 0 5px;font-family:'Fraunces',serif;font-size:var(--fs-20);font-weight:500;line-height:1.2;color:var(--espresso);text-wrap:balance;}
.daily-hint,.daily-journal-empty{font-size:var(--fs-13);line-height:1.45;color:var(--ink-soft);}
.daily-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;}
.daily-choice{min-height:48px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-field);background:var(--card);color:var(--espresso);font:500 var(--fs-12) 'Instrument Sans',sans-serif;text-align:left;cursor:pointer;}
.daily-choice.on{border-color:var(--gold-deep);background:var(--cream);box-shadow:inset 0 0 0 1px var(--gold-deep);}
.daily-label{display:block;margin-top:14px;font-size:var(--fs-12);font-weight:600;color:var(--espresso);}
.daily-free{box-sizing:border-box;width:100%;min-height:76px;margin-top:7px;padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius-field);background:var(--card);color:var(--espresso);font:400 var(--fs-13) 'Instrument Sans',sans-serif;line-height:1.45;resize:vertical;}
.daily-actions,.daily-confirm{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:13px;}
.daily-cancel,.daily-edit,.daily-open{min-height:44px;border:0;background:none;color:var(--gold-deep);font:600 var(--fs-12) 'Instrument Sans',sans-serif;cursor:pointer;}
.daily-next{flex:1;max-width:270px;min-height:48px;}
.daily-recap,.daily-advice{margin:12px 0 0;font-family:'Fraunces',serif;font-size:var(--fs-15);line-height:1.45;color:var(--espresso);text-wrap:pretty;}
.daily-saved{position:relative;margin-top:10px;padding:13px 92px 13px 0;border-top:1px solid var(--hair);}
.daily-saved b{font-size:var(--fs-13);color:var(--espresso);}.daily-saved p{margin-top:3px;font-size:var(--fs-12);line-height:1.4;color:var(--ink-soft);}
.daily-saved .daily-edit{position:absolute;top:7px;right:0;}.daily-saved--compact{margin:0;padding-left:15px;border-top:0;border-left:2px solid var(--gold-soft);}
.daily-open{margin-top:6px;}.daily-choice:focus-visible,.daily-free:focus-visible,.daily-cancel:focus-visible,.daily-edit:focus-visible,.daily-open:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;}
@media(max-width:340px){.daily-choices{grid-template-columns:1fr;}}
/* LA PHRASE DU JOUR — citation réelle sourcée (D-P9), filet doré éditorial + guillemet orné */
.phrase-jour{margin:16px 20px 0;padding:12px 16px;border-left:2px solid var(--gold-soft);position:relative;}
.phrase-jour::before{content:"“";position:absolute;left:-2px;top:-14px;font-family:Fraunces,serif;font-size:44px;color:rgba(182,130,63,.22);}
.phrase-jour-q{display:block;font-family:Fraunces,serif;font-style:italic;font-weight:380;font-size:var(--fs-15);line-height:1.45;color:var(--espresso);}
.phrase-jour-a{display:block;font-size:var(--fs-11);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-deep);font-weight:700;margin-top:6px;}
@media(min-width:880px){ #phraseJour .phrase-jour{max-width:560px;} }
/* LE PALIER J7/J30 (maquette programme-palier-j7.html) */
.j7-card{border:1px solid rgba(182,130,63,.25);}
.j7-photos{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
.j7-photos img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:14px;}
.j7-photo-cta{aspect-ratio:3/4;border-radius:14px;border:1.5px dashed rgba(182,130,63,.5);background:repeating-linear-gradient(45deg,#EFE2CD,#EFE2CD 8px,#F6EDDD 8px,#F6EDDD 16px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;font-family:inherit;}
.j7-photo-cta b{font-size:var(--fs-13);color:var(--gold-deep);}
.j7-photo-cta span{font-size:var(--fs-11);color:var(--ink-faint);}
.j7-q{font-family:Fraunces,serif;font-style:italic;font-size:var(--fs-16);color:var(--espresso);margin:14px 0 9px;}
.j7-branches{flex-direction:column;align-items:stretch;}
.j7-branches .op-chip{text-align:left;}
.j7-rep{margin-top:12px;background:linear-gradient(160deg,#57432B,#4A3822);border-radius:16px;padding:14px;color:rgba(246,232,213,.92);font-size:var(--fs-13);line-height:1.55;}
.j7-rep b{color:var(--gold-soft);font-family:Fraunces,serif;font-weight:420;display:block;margin-bottom:5px;font-size:var(--fs-15);}
.j7-constat{margin-top:12px;padding:12px 14px;border-left:2px solid var(--gold-soft);font-size:var(--fs-13);line-height:1.6;color:var(--ink-soft);}
.j7-pro{display:block;width:100%;text-align:left;margin-top:12px;background:none;border:1px dashed rgba(182,130,63,.5);border-radius:14px;padding:12px 14px;cursor:pointer;font-family:inherit;}
.j7-pro b{display:block;font-size:var(--fs-13);color:var(--espresso);line-height:1.4;}
.j7-pro em{font-style:normal;font-size:var(--fs-12);color:var(--gold-deep);font-weight:700;}
/* ÉCHÉANCES (D-P12) */
.echeances{margin:2px 0 12px;}
.ech-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--ink-faint);font-weight:700;display:flex;align-items:center;gap:12px;margin-bottom:8px;}
.ech-k::after{content:"";flex:1;height:1px;background:var(--hair,rgba(108,72,42,.13));}
.ech-l{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px dashed rgba(108,72,42,.13);font-size:var(--fs-13);color:var(--ink-soft);}
.ech-l b{color:var(--espresso);font-weight:600;}
.ech-l .when{margin-left:auto;font-size:var(--fs-12);color:var(--gold-deep);font-weight:700;white-space:nowrap;}
.ech-l .defer{background:none;border:none;font-size:var(--fs-11);color:var(--ink-faint);cursor:pointer;font-family:inherit;
  text-decoration:underline;text-underline-offset:3px;padding:0 0 0 8px;white-space:nowrap;}
/* SOS (D-P13) */
.sos-line{display:flex;align-items:center;gap:8px;background:none;border:none;font-size:var(--fs-13);color:var(--ink-faint);width:100%;
  text-align:left;padding:8px 0 14px;cursor:pointer;font-family:inherit;}
.sos-line b{color:var(--ink-soft);font-weight:600;}
.sos-line span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sos-line em{font-style:normal;color:var(--gold-deep);}
.sos-dermato{font-size:var(--fs-12);color:var(--ink-soft);background:rgba(150,98,31,.08);border-left:2px solid var(--warn);border-radius:0 10px 10px 0;padding:10px 12px;margin-bottom:10px;line-height:1.5;}
/* CARTE D'IDENTITÉ (D-P14, maquette programme-mescheveux-carte-identite.html) */
.cid{margin:0 0 14px;background:linear-gradient(150deg,#241505,#3A2410 78%);border-radius:20px;padding:18px 17px;color:var(--cream);
  position:relative;overflow:hidden;box-shadow:0 2px 4px rgba(50,30,12,.12),0 20px 44px -24px rgba(28,16,7,.65),inset 0 0 0 1px rgba(217,178,126,.18);}
.cid::after{content:"";position:absolute;inset:0;background:radial-gradient(130% 90% at 115% -15%,rgba(217,178,126,.3),transparent 58%);pointer-events:none;}
.cid>*{position:relative;}
.cid-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold-soft);font-weight:700;display:flex;align-items:center;gap:10px;}
.cid-k::after{content:"";flex:1;height:1px;background:rgba(217,178,126,.25);}
.cid-sig{font-family:Fraunces,serif;font-weight:360;font-size:var(--fs-22);margin-top:10px;}
.cid-sig small{font-size:var(--fs-13);color:rgba(246,232,213,.7);font-family:'Instrument Sans',sans-serif;font-weight:400;}
.cid-couronne{margin-top:3px;font-size:var(--fs-13);color:rgba(246,232,213,.72);font-family:'Instrument Sans',sans-serif;font-weight:400;letter-spacing:.01em;}
.cid-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:13px;}
.cid-cell{background:rgba(246,232,213,.07);border:1px solid rgba(217,178,126,.22);border-radius:12px;padding:9px 6px;text-align:center;display:flex;flex-direction:column;justify-content:flex-end;} /* C15 : le kicker peut faire 2 lignes (« porosité estimée ») — les valeurs restent alignées en pied */
.cid-cell b{display:block;font-size:var(--fs-12);color:var(--cream);line-height:1.3;}
.cid-cell span{display:block;flex:1 0 auto;font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:rgba(217,178,126,.85);font-weight:700;margin-bottom:3px;}
.cid-combats{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;align-items:center;}
.cid-combats i{font-style:normal;font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:rgba(217,178,126,.85);font-weight:700;margin-right:2px;}
.cid-combats span{font-size:var(--fs-11);background:rgba(217,178,126,.16);border-radius:999px;padding:4px 10px;color:var(--cream);}
.cid-combats span.n1{background:var(--gold);color:#241505;font-weight:700;}
.cid-diag{display:block;width:100%;margin-top:13px;background:none;border:1px solid rgba(217,178,126,.4);border-radius:999px;cursor:pointer;
  padding:10px;color:var(--gold-soft);font-size:var(--fs-13);font-weight:700;font-family:inherit;}
.cid-note{font-size:var(--fs-10);color:rgba(246,232,213,.45);text-align:center;margin-top:9px;letter-spacing:.08em;}
@media(max-width:340px){
  .cid-grid{grid-template-columns:1fr 1fr;}
  .cid-cell:last-child{grid-column:1/-1;}
}
/* ═══════════ LA VITRINE DU PLACARD (maquette v6 « appétit ») ═══════════ */
#placardHost{margin:4px 0 16px;}
.naya-point{margin:10px 0 0;background:linear-gradient(150deg,#241505,#3A2410 80%);border-radius:20px;padding:16px;
  position:relative;overflow:hidden;color:var(--cream);
  box-shadow:0 2px 4px rgba(50,30,12,.12),0 20px 44px -24px rgba(28,16,7,.65),inset 0 0 0 1px rgba(217,178,126,.18);}
.naya-point::after{content:"";position:absolute;inset:0;background:radial-gradient(130% 90% at 115% -15%,rgba(217,178,126,.3),transparent 58%);pointer-events:none;}
.naya-point>*{position:relative;}
.np-k{display:flex;align-items:center;gap:8px;font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold-soft);font-weight:700;}
.np-k i{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#C99A6B,#6B4226);font-style:normal;flex:none;}
.np-chips{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;}
.np-chips span{font-size:var(--fs-10);font-weight:700;border-radius:999px;padding:4px 9px;background:rgba(246,232,213,.1);color:rgba(246,232,213,.8);}
.np-chips .c-ok{background:rgba(126,160,102,.25);color:#B9D3A4;}
.np-chips .c-warn{background:rgba(198,146,72,.25);color:#EBC788;}
.np-chips .c-no{background:rgba(190,102,76,.25);color:#EFAF97;}
.np-t{font-family:Fraunces,serif;font-size:var(--fs-16);font-weight:400;color:#FFF7EA;margin-top:9px;line-height:1.4;}
.np-t b{color:var(--gold-soft);}
.np-jauge{display:flex;gap:4px;margin-top:11px;}
.np-jauge i{flex:1;height:5px;border-radius:999px;background:linear-gradient(90deg,var(--gold-soft),var(--gold));font-style:normal;}
.np-jauge i.miss{background:repeating-linear-gradient(45deg,rgba(235,199,136,.5),rgba(235,199,136,.5) 3px,rgba(235,199,136,.18) 3px,rgba(235,199,136,.18) 6px);}
.np-jlbl{display:flex;justify-content:space-between;font-size:var(--fs-11);color:rgba(246,232,213,.55);margin-top:6px;}
.np-jlbl em{font-style:normal;color:var(--gold-soft);font-weight:700;}
.np-cta{display:inline-block;margin-top:12px;background:linear-gradient(135deg,var(--gold),var(--gold-deep));border:none;cursor:pointer;
  font-size:var(--fs-13);color:#FFF7EA;font-weight:700;border-radius:999px;padding:10px 16px;font-family:inherit;box-shadow:0 8px 18px -8px rgba(138,95,46,.6);}
.seq-h{margin-top:20px;}
.seq-h b{display:block;font-family:Fraunces,serif;font-style:italic;font-weight:430;font-size:var(--fs-16);color:var(--espresso);}
.seq-h span{display:block;font-size:var(--fs-10);color:var(--ink-faint);font-weight:700;letter-spacing:var(--track-kicker);text-transform:uppercase;margin-top:3px;}
.plc-seq{margin-top:10px;position:relative;background:var(--card);border-radius:16px;padding:6px 12px;
  box-shadow:0 1px 2px rgba(50,30,12,.06),0 10px 26px -18px rgba(50,30,12,.38);}
.plc-seq::before{content:"";position:absolute;left:25px;top:18px;bottom:18px;width:2px;border-radius:2px;background:linear-gradient(180deg,var(--gold-soft),rgba(182,130,63,.18));}
.plc-step{display:flex;align-items:center;gap:11px;padding:9px 0;position:relative;}
.plc-step+.plc-step{border-top:1px dashed rgba(108,72,42,.1);}
.plc-num{width:27px;height:27px;border-radius:50%;background:var(--card);border:1.5px solid var(--gold-soft);color:var(--gold-deep);
  display:grid;place-items:center;font-family:Fraunces,serif;font-size:var(--fs-13);font-weight:600;flex:none;position:relative;z-index:1;}
.plc-step.manque .plc-num{border-style:dashed;color:var(--ink-faint);}
.plc-mini{width:26px;height:36px;flex:none;}
.plc-mini svg{width:100%;height:100%;filter:drop-shadow(0 2px 2px rgba(60,36,14,.15));}
.plc-tx{flex:1;min-width:0;}
.plc-tx b{display:block;font-size:var(--fs-13);color:var(--espresso);}
.plc-tx span{display:block;font-size:var(--fs-11);color:var(--ink-soft);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.plc-step.manque .plc-tx span{color:var(--warn);font-weight:600;white-space:normal;}
.plc-fin{flex:none;width:64px;text-align:right;}
.plc-ok{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:rgba(79,107,62,.14);font-size:var(--fs-10);color:var(--ok);font-weight:800;}
.plc-go{font-size:var(--fs-11);color:var(--gold-deep);font-weight:700;background:none;border:none;white-space:nowrap;padding:0;cursor:pointer;font-family:inherit;}
.etagere{margin-top:16px;}
.et-h{display:flex;align-items:baseline;gap:8px;}
.et-h b{font-family:Fraunces,serif;font-style:italic;font-weight:430;font-size:var(--fs-16);color:var(--espresso);}
.et-h .n{font-size:var(--fs-10);color:var(--ink-faint);font-weight:700;}
.et-plus{margin-left:auto;width:24px;height:24px;border-radius:50%;border:1px dashed rgba(182,130,63,.5);background:none;cursor:pointer;
  color:var(--gold-deep);font-size:var(--fs-13);line-height:1;display:grid;place-items:center;font-family:inherit;}
.rayon{position:relative;display:flex;align-items:flex-end;gap:18px;padding:10px 8px 0;min-height:118px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;}
.rayon::-webkit-scrollbar{display:none;}
.rayon::after{content:"";position:absolute;left:2px;right:2px;bottom:0;height:6px;border-radius:3px;
  background:linear-gradient(180deg,#EAD3A6,#C29A5F 55%,#96703C);box-shadow:0 9px 18px -7px rgba(80,50,20,.5),inset 0 1.5px 0 rgba(255,247,234,.6);}
.flacon{position:relative;width:86px;text-align:center;background:none;border:none;padding-bottom:13px;flex:none;scroll-snap-align:start;cursor:pointer;font-family:inherit;}
.flacon::before{content:"";position:absolute;left:50%;top:2px;transform:translateX(-50%);width:70px;height:70px;border-radius:50%;
  background:radial-gradient(circle,rgba(233,190,120,.38),rgba(233,190,120,0) 68%);}
.flacon::after{content:"";position:absolute;left:50%;bottom:10px;transform:translateX(-50%);width:40px;height:6px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(60,36,14,.26),transparent 70%);}
.fl-svg{display:block;width:56px;height:72px;margin:0 auto;position:relative;}
.fl-svg svg{width:100%;height:100%;filter:drop-shadow(0 8px 7px rgba(60,36,14,.26));}
.flacon.vide .fl-svg svg{filter:none;}
.flacon .nom{display:block;font-size:var(--fs-10);line-height:1.3;color:var(--espresso);font-weight:600;margin-top:6px;min-height:24px;position:relative;}
.flacon.vide .nom{color:var(--ink-faint);font-weight:500;}
.flacon .v{position:absolute;top:-2px;right:8px;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;z-index:2;
  font-size:var(--fs-10);color:#FFF7EA;font-weight:800;box-shadow:0 0 0 2px #F7ECDA,0 2px 4px rgba(50,30,12,.25);}
.flacon .v.ok{background:var(--ok);} .flacon .v.warn{background:var(--warn);} .flacon .v.no{background:var(--no);}
/* étagère VIDE = rangée fine (décision v82 : la structure reste visible dès J1 — mais 8 grands blocs vides
   mangeaient 2/3 de l'écran ; navigateurs sans :has() → retombent sur l'étagère haute, rien ne casse) */
.etagere:has(> .rayon > .flacon.vide:only-child){margin-top:10px;}
.rayon:has(> .flacon.vide:only-child){min-height:0;align-items:center;padding:2px 8px 8px;}
.flacon.vide:only-child{display:flex;align-items:center;gap:10px;width:auto;padding-bottom:6px;text-align:left;}
.flacon.vide:only-child::before,.flacon.vide:only-child::after{display:none;}
.flacon.vide:only-child .fl-svg{width:26px;height:34px;margin:0;flex:none;}
.flacon.vide:only-child .nom{margin-top:0;min-height:0;font-size:var(--fs-11);}
/* fiche produit (tap) */
.fi-top{display:flex;gap:14px;align-items:center;}
.fi-visu{width:80px;height:100px;flex:none;display:grid;place-items:center;border-radius:16px;
  background:radial-gradient(circle at 50% 42%,rgba(233,190,120,.5),rgba(233,190,120,.08) 75%);}
.fi-visu svg{width:54px;height:70px;filter:drop-shadow(0 7px 7px rgba(60,36,14,.28));}
.fi-id{min-width:0;}
.fi-id em{display:block;font-style:normal;font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--ink-faint);font-weight:700;}
.fi-id b{display:block;font-family:Fraunces,serif;font-weight:420;font-size:var(--fs-18);color:var(--espresso);margin-top:2px;line-height:1.15;}
.fi-verdict{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:var(--fs-11);font-weight:800;border-radius:999px;padding:5px 11px;}
.fi-verdict.ok{background:rgba(79,107,62,.12);color:var(--ok);}
.fi-verdict.warn{background:rgba(150,98,31,.12);color:var(--warn);}
.fi-verdict.no{background:rgba(150,66,44,.12);color:var(--no);}
.fi-pour{font-size:var(--fs-11);color:var(--ink-faint);margin-top:5px;}
.fi-routine{margin-top:14px;background:linear-gradient(150deg,#241505,#3A2410);border-radius:14px;padding:13px 14px;color:var(--cream);position:relative;overflow:hidden;}
.fi-routine::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 110% -10%,rgba(217,178,126,.25),transparent 60%);}
.fi-routine>*{position:relative;}
.fi-krow{display:flex;align-items:center;gap:8px;}
.fi-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold-soft);font-weight:700;}
.fi-badge{margin-left:auto;flex:none;font-size:var(--fs-11);font-weight:800;color:#241505;background:linear-gradient(135deg,#E8C893,var(--gold));border-radius:999px;padding:4px 9px;white-space:nowrap;}
.fi-routine b{display:block;font-family:Fraunces,serif;font-weight:420;font-size:var(--fs-14);margin-top:6px;}
.fi-routine span{display:block;font-size:var(--fs-12);color:rgba(246,232,213,.75);margin-top:3px;}
.fi-note{margin-top:12px;font-size:var(--fs-13);color:var(--ink-soft);line-height:1.5;padding:10px 12px;border-left:2px solid var(--gold-soft);}
.fi-acts{margin-top:14px;}
.ech-l.ech-tap b{cursor:pointer;text-decoration:underline;text-decoration-color:rgba(182,130,63,.35);text-underline-offset:3px;}
/* ═══ CETTE SEMAINE — style WORKBOOK Tatiana (capture Kevin) ═══ */
.week-strip{display:flex;flex-direction:column;gap:7px;}
.ws-day.ws2{display:grid;grid-template-columns:64px 1fr;gap:10px;align-items:center;background:none;border:none;text-align:left;
  padding:2px 0;cursor:pointer;font-family:inherit;transform:none;}
.ws-day.ws2:active{transform:scale(.99);}
.ws2-pill{font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;font-weight:700;text-align:center;color:#fff;
  padding:6px 2px;border-radius:999px;background:#C99A6B;}
.ws-day.ws2:nth-child(odd) .ws2-pill{background:#EFD9BE;color:var(--gold-deep);}
.ws-day.ws2.wash .ws2-pill{background:#8A5A34;color:#fff;}
.ws-day.ws2.today .ws2-pill{box-shadow:0 0 0 2px rgba(182,130,63,.45);}
.ws2-mn{font-size:var(--fs-12);color:var(--ink-soft);line-height:1.35;min-width:0;}
.ws2-chip{display:inline-block;background:rgba(217,178,126,.14);border:1px solid rgba(182,130,63,.18);border-radius:8px;padding:4px 9px;}
.ws2-chip.ws2-geste{color:var(--gold-deep);text-decoration:underline;text-underline-offset:2px;background:transparent;border-color:transparent;}
.ws2-libre{display:inline-block;border:1px dashed rgba(182,130,63,.3);border-radius:8px;padding:4px 9px;color:var(--ink-faint);}
.ws2-libre.ws2-bilan{border-style:solid;border-color:rgba(182,130,63,.28);background:rgba(217,178,126,.1);color:var(--gold-deep);} /* dimanche = rendez-vous bilan, un cran plus présent */
.ws2-anchor{display:inline-flex;align-items:center;gap:4px;background:var(--espresso);color:var(--cream);border-radius:8px;
  padding:5px 10px;font-weight:600;font-size:var(--fs-12);}
.ws2-anchor .ws-pin{margin:0;font-size:var(--fs-12);}
/* prog0 : défilement BLINDÉ (iOS coupait le haut avec flex-end + overflow) */
.prog0{display:block;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0;}
.prog0-card{margin:max(18px,4vh) auto 0;border-radius:26px 26px 0 0;}
@media(min-width:760px){ .prog0-card{border-radius:26px;margin:40px auto;} }
.hs-lead{margin:16px 0 8px;padding:12px 15px;border-left:2px solid var(--gold-soft);}
.hs-lead .nd-tip{margin-top:4px;}

/* ════════ CHANTIER B — Caméra live plein écran (getUserMedia → pipeline existant) ════════ */
#photo{position:absolute;inset:0;overflow:hidden;}
#camFeed{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#140d07;z-index:0;transform:scaleX(-1);} /* miroir : caméra frontale, cadrage selfie naturel */
.cam-scrim{position:absolute;left:0;right:0;z-index:1;pointer-events:none;}
.cam-scrim-top{top:0;height:158px;background:linear-gradient(180deg,rgba(20,13,7,.74),rgba(20,13,7,0));}
.cam-scrim-bot{bottom:0;height:48%;background:linear-gradient(0deg,rgba(20,13,7,.92) 12%,rgba(20,13,7,.56) 46%,rgba(20,13,7,0));}
/* EN-TÊTE STRUCTURÉ : ligne (retour · « Étape N sur 3 ») + barre de progression 3 segments */
.cam-topbar{position:absolute;top:0;left:0;right:0;z-index:6;display:block;
  padding:max(46px,calc(env(safe-area-inset-top,0px) + 14px)) 18px 0;}
.cam-hd-row{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.cam-hd-sp{width:44px;flex:0 0 auto;}
.cam-topbar .eyebrow{letter-spacing:var(--track-kicker);color:var(--cream-bright);text-shadow:0 1px 8px rgba(0,0,0,.6);}
.cam-prog{display:flex;gap:5px;margin:13px 0 0;}
.cam-prog i{flex:1;height:3px;border-radius:3px;background:rgba(246,232,213,.26);transition:background .3s ease;}
.cam-prog i.done{background:rgba(246,232,213,.6);}
.cam-prog i.on{background:var(--gold-lum);}
#photo .pbody{justify-content:flex-end;z-index:5;padding-left:12px;padding-right:12px;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 16px);}
#photo .photo-privacy{color:rgba(246,232,213,.78)!important;opacity:.9!important;}
/* en direct : on épure — le panneau structuré porte titre+consigne ; tips détaillés + privacy reviennent hors direct */
#photo.cam-live .tips,#photo.cam-live .photo-privacy{display:none;}

/* ── PANNEAU BAS STRUCTURÉ (verre sombre) : étiquette · titre · consigne · référence · déclencheur ── */
.cam-panel{width:100%;max-width:420px;margin:0 auto;background:rgba(28,17,8,.82);backdrop-filter:blur(16px);
  border:1px solid rgba(217,178,126,.2);border-radius:24px;padding:16px 16px 18px;
  box-shadow:0 20px 44px -18px rgba(0,0,0,.6);text-align:left;}
.cam-panel-info{display:flex;align-items:flex-start;gap:14px;}
.cam-panel-tx{flex:1;min-width:0;}
.cam-panel-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-lum);font-weight:700;}
.cam-panel-t{font-family:'Fraunces',serif;font-weight:400;font-size:var(--fs-22);line-height:1.1;color:var(--cream-bright);margin:4px 0 3px;}
.cam-panel-s{font-size:var(--fs-13);line-height:1.4;color:rgba(246,232,213,.86);margin:0;}
.cam-panel-ref{flex:0 0 auto;width:60px;text-align:center;}
.cam-panel-ref[hidden]{display:none;}
.cam-panel-ref-im{width:60px;height:72px;border-radius:11px;background-size:cover;background-position:50% 50%;box-shadow:0 0 0 1px rgba(246,232,213,.28);}
.cam-panel-ref-lb{margin-top:5px;font-size:var(--fs-11);letter-spacing:.08em;text-transform:uppercase;color:rgba(246,232,213,.7);font-weight:600;line-height:1.2;}
.cam-panel-div{height:1px;background:rgba(246,232,213,.12);margin:15px 0 13px;}
.cam-panel-ctrl{display:flex;align-items:center;justify-content:space-between;gap:14px;}
.cam-panel-hint{flex:1;min-width:0;font-size:var(--fs-12);line-height:1.35;color:rgba(246,232,213,.78);text-align:left;}
.cam-panel-ctrl .shutter{width:62px;height:62px;flex:0 0 auto;margin:0;border-width:4px;}

@media(min-width:880px){
  #camFeed,.cam-scrim{display:none;}                 /* ordi : pas de caméra live → écran téléphone/QR (#photoDesktop) */
  #photo{overflow-y:auto;}
  .cam-topbar{display:none;}                          /* écran ordi dédié, autoportant : pas d'en-tête de capture */
  #photo .pbody{justify-content:center;}
  #photo .cam-panel,.cam-status,.cam-sub,#photo .tips,#photo .photo-privacy{display:none;}  /* ordi : pas de capture live → panneau/coaching masqués */
}

/* ── Task 2 : écran conseils + privacy (avant la caméra) ── */
/* écran conseils : contenu CENTRÉ verticalement, respiration généreuse (retour terrain : « trop en bas ») */
.cam-tips{position:absolute;inset:0;z-index:20;display:none;flex-direction:column;justify-content:center;
  background:linear-gradient(168deg,var(--caramel) 0%,var(--mocha) 46%,var(--espresso) 100%);
  color:var(--cream-bright);padding:calc(env(safe-area-inset-top,0px) + 24px) 24px calc(env(safe-area-inset-bottom,0px) + 24px);
  overflow-y:auto;}
.cam-tips.show{display:flex;}
.cam-tips-in{width:100%;max-width:420px;margin:auto;}
.cam-tips .eyebrow{color:var(--gold-soft);margin:0;}
.cam-tips-h{font-family:'Fraunces',serif;font-weight:300;font-size:27px;line-height:1.15;letter-spacing:-.02em;color:var(--cream-bright);margin:12px 0 30px;}
.cam-tips-list{display:flex;flex-direction:column;gap:20px;}
.cam-tip{display:flex;gap:14px;align-items:center;text-align:left;}
.cam-tip-ic{flex:0 0 auto;width:44px;height:44px;border-radius:14px;background:rgba(246,232,213,.1);border:1px solid rgba(217,178,126,.3);display:flex;align-items:center;justify-content:center;}
.cam-tip-ic svg{width:22px;height:22px;stroke:var(--gold-soft);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.cam-tip-tx{font-size:var(--fs-14);line-height:1.4;}
.cam-tip-tx b{font-weight:600;display:block;}
.cam-tip-tx small{color:rgba(246,232,213,.66);font-size:var(--fs-12);}
.cam-tips-priv{display:inline-flex;align-items:center;gap:8px;margin:22px 0 20px;font-size:var(--fs-12);color:rgba(246,232,213,.92);}   /* a11y : contraste ≥4.5:1 sur le fond brun */
.cam-tips-priv svg{width:13px;height:13px;stroke:var(--gold-soft);fill:none;stroke-width:2;flex:0 0 auto;}
.cam-tips-cta{width:100%;min-height:48px;}

/* ── Task 6 : SECOURS caméra refusée / indisponible (jamais de cul-de-sac → galerie) ── */
.cam-fallback{position:absolute;inset:0;z-index:24;display:none;flex-direction:column;justify-content:center;align-items:center;text-align:center;
  background:linear-gradient(168deg,var(--caramel) 0%,var(--mocha) 46%,var(--espresso) 100%);
  color:var(--cream-bright);padding:0 28px calc(env(safe-area-inset-bottom,0px) + 30px);}
.cam-fallback.show{display:flex;}
.cam-fallback-in{width:100%;max-width:400px;margin:0 auto;}
.cam-fallback-ic{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:18px;margin:0 auto 18px;background:rgba(246,232,213,.1);border:1px solid rgba(217,178,126,.34);}
.cam-fallback-ic svg{width:30px;height:30px;stroke:var(--gold-soft);fill:none;stroke-linecap:round;stroke-linejoin:round;}
.cam-fallback-h{font-family:'Fraunces',serif;font-weight:300;font-size:25px;line-height:1.16;letter-spacing:-.01em;color:var(--cream-bright);margin:0 0 12px;}
.cam-fallback-p{font-size:var(--fs-14);line-height:1.5;color:rgba(246,232,213,.92);margin:0 auto 24px;max-width:32ch;}   /* a11y : contraste ≥4.5:1 */
.cam-fallback-cta{width:100%;min-height:48px;}

/* ── Task 3 : pastille de coaching live (couleur TOUJOURS doublée d'une icône + d'un texte) ── */
.cam-status{position:relative;z-index:5;display:inline-flex;align-items:center;gap:8px;margin:0 auto;padding:9px 16px;
  border-radius:999px;font-size:var(--fs-13);font-weight:600;color:var(--cream-bright);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-shadow:0 1px 6px rgba(0,0,0,.5);}
.cam-status-ic{display:inline-flex;flex:0 0 auto;}
.cam-status-ic svg{width:14px;height:14px;display:block;}
.cam-status.neutral{background:rgba(33,19,9,.54);border:1px solid rgba(217,178,126,.34);}
.cam-status.neutral .cam-status-ic svg{stroke:rgba(246,232,213,.82);}
.cam-status.warn{background:rgba(33,19,9,.62);border:1px solid rgba(217,153,59,.72);}   /* ambre chaleureux, jamais rouge */
.cam-status.warn .cam-status-ic svg{stroke:#E7B45A;}
.cam-status.ok{background:rgba(33,19,9,.64);border:1px solid var(--gold-soft);}
.cam-status.ok .cam-status-ic svg{stroke:var(--gold-soft);}
.cam-sub{position:relative;z-index:5;font-size:var(--fs-12);color:rgba(246,232,213,.88);margin:9px auto 4px;max-width:26ch;line-height:1.5;text-align:center;text-shadow:0 1px 6px rgba(0,0,0,.5);min-height:16px;}
/* le coaching live n'a de sens qu'avec le flux caméra : masqué hors cam-live */
#photo:not(.cam-live) .cam-status,#photo:not(.cam-live) .cam-sub{display:none;}

/* ── CADRE DE VISÉE SOBRE : fin cadre arrondi + repères crème neutres (pas de clip-art) ──
   étape portrait (auto) : suit la tête et passe à l'OR + ✓ au verrouillage ; étapes manuelles : cadre neutre fixe. */
.reticle{position:absolute;z-index:4;pointer-events:none;border:1.5px solid rgba(246,232,213,.46);border-radius:16px;
  transition:left .28s ease,top .28s ease,width .28s ease,height .28s ease,border-color .25s ease,box-shadow .25s ease;}
#photo:not(.cam-live) .reticle{display:none;}                 /* pas de flux → pas de cadre */
.reticle .cn{position:absolute;width:16px;height:16px;border:2px solid var(--cream-bright);transition:border-color .25s ease;}
.reticle .tl{top:-1px;left:-1px;border-right:0;border-bottom:0;border-radius:6px 0 0 0;}
.reticle .tr{top:-1px;right:-1px;border-left:0;border-bottom:0;border-radius:0 6px 0 0;}
.reticle .bl{bottom:-1px;left:-1px;border-right:0;border-top:0;border-radius:0 0 0 6px;}
.reticle .br{bottom:-1px;right:-1px;border-left:0;border-top:0;border-radius:0 0 6px 0;}
.reticle .check{position:absolute;top:8px;right:8px;transform:scale(.4);opacity:0;transition:transform .22s var(--ease-out),opacity .22s ease;
  width:22px;height:22px;border-radius:50%;background:var(--gold-lum);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.4);}
.reticle .check svg{width:13px;height:13px;stroke:var(--espresso);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
/* état RECHERCHE : cadre neutre fixe (aucune box de détection) — aussi l'état des étapes manuelles */
.reticle.search{top:16%;left:14%;right:14%;bottom:36%;width:auto;height:auto;}
/* état AJUSTE : accroché à la box (position/dimension inline), cadre légèrement plus net */
.reticle.adjust{border-color:rgba(246,232,213,.6);}
/* état VERROUILLÉ (portrait seulement) : or + glow + ✓ */
.reticle.lock{border-color:var(--gold-lum);box-shadow:0 0 0 1px var(--gold-lum),0 0 26px rgba(235,201,138,.32);}
.reticle.lock .cn{border-color:var(--gold-lum);}
.reticle.lock .check{transform:scale(1);opacity:1;}

/* ── Task 4 : déclencheur EXPLICITE (mouvement réduit / timeout sans verrouillage) ── */
.cam-take{display:none;margin:14px auto 0;min-height:44px;padding:12px 22px;border:0;border-radius:999px;cursor:pointer;
  font-family:inherit;font-size:var(--fs-14);font-weight:600;color:var(--espresso);
  background:linear-gradient(180deg,#fbf0df,var(--cream));box-shadow:0 10px 26px -10px rgba(0,0,0,.5);}
.cam-take.show{display:inline-block;}
@media(min-width:880px){ .reticle,.cam-take{display:none!important;} }   /* ordi : import + QR, pas de détection live */

/* ── Task 5 : REVUE « garde-la ou reprends » (le cliché candidat par-dessus le flux, avant de committer) ── */
.cam-review{position:absolute;inset:0;z-index:22;display:none;flex-direction:column;justify-content:flex-end;}
.cam-review.show{display:flex;}
.cam-review-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1);z-index:0;} /* miroir : identique au cadrage selfie qu'elle vient de voir */
.cam-review .cam-scrim-bot{z-index:1;height:58%;}
.cam-review-dock{position:relative;z-index:2;width:100%;max-width:420px;margin:0 auto;text-align:center;
  padding:0 28px calc(env(safe-area-inset-bottom,0px) + 34px);}
.cam-review-h{font-family:'Fraunces',serif;font-weight:400;font-size:27px;line-height:1.08;color:var(--cream-bright);margin:0 0 5px;text-shadow:0 2px 18px rgba(0,0,0,.5);}
.cam-review-h em{font-style:italic;color:var(--gold-soft);}
.cam-review-sub{font-size:var(--fs-12);color:rgba(246,232,213,.86);margin:0 auto 18px;max-width:26ch;line-height:1.5;text-shadow:0 1px 6px rgba(0,0,0,.5);}
.cam-review-keep{width:100%;}
.cam-review-ghost{width:100%;margin-top:10px;min-height:44px;padding:14px;border-radius:15px;cursor:pointer;
  background:rgba(246,232,213,.1);border:1.5px solid rgba(246,232,213,.4);color:var(--cream-bright);
  font-family:inherit;font-size:var(--fs-14);font-weight:500;}

/* ============ FICHES « Comment faire exactement » ============ */
#gsheetBody .fiche-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker-lg);text-transform:uppercase;color:var(--gold-deep);font-weight:700;display:flex;align-items:center;gap:9px;}
#gsheetBody .fiche-k::after{content:"";flex:1;height:1px;background:var(--hair);}
#gsheetBody .fiche-t{font-family:'Fraunces',serif;font-weight:400;font-size:26px;line-height:1.1;letter-spacing:-.01em;color:var(--espresso);margin:11px 0 0;}
#gsheetBody .fiche-meta{display:flex;gap:8px;margin:13px 0 2px;flex-wrap:wrap;}
#gsheetBody .fiche-chip{font-size:var(--fs-12);color:var(--mocha);background:rgba(217,178,126,.16);border:1px solid rgba(182,130,63,.22);border-radius:20px;padding:5px 11px;font-weight:500;}
#gsheetBody .fiche-intro{font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-15);line-height:1.5;color:var(--ink-soft);margin:14px 0 4px;}
#gsheetBody .fiche-steps{margin:18px 0 4px;display:flex;flex-direction:column;gap:14px;}
#gsheetBody .fiche-step{display:flex;gap:13px;align-items:flex-start;}
#gsheetBody .fiche-num{flex:0 0 auto;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(150deg,var(--gold-lum),var(--gold));color:#fff;font-family:'Fraunces',serif;font-size:var(--fs-14);font-weight:500;box-shadow:0 3px 8px -3px rgba(138,95,46,.6);margin-top:1px;}
#gsheetBody .fiche-stx{font-size:var(--fs-14);line-height:1.5;color:var(--ink);}
#gsheetBody .fiche-stx b{color:var(--espresso);font-weight:600;}
#gsheetBody .fiche-box{border-radius:15px;padding:13px 15px;margin-top:16px;}
#gsheetBody .fiche-bk{display:block;font-size:var(--fs-11);letter-spacing:var(--track-kicker);text-transform:uppercase;font-weight:700;margin-bottom:6px;}
#gsheetBody .fiche-box p{font-size:var(--fs-14);line-height:1.5;}
#gsheetBody .fiche-mains{background:rgba(217,178,126,.12);border:1px solid rgba(182,130,63,.2);}
#gsheetBody .fiche-mains .fiche-bk{color:var(--gold-deep);} #gsheetBody .fiche-mains p{color:var(--ink);}
#gsheetBody .fiche-err{background:rgba(192,87,59,.08);border-left:3px solid var(--terra);border-radius:0 12px 12px 0;}
#gsheetBody .fiche-err .fiche-bk{color:var(--terra-deep);} #gsheetBody .fiche-err p{color:var(--ink);}
#gsheetBody .fiche-win{background:rgba(67,107,57,.09);border-left:3px solid var(--v-ok);border-radius:0 12px 12px 0;}
#gsheetBody .fiche-win .fiche-bk{color:var(--v-ok);} #gsheetBody .fiche-win p{color:var(--ink);}
#gsheetBody .fiche-dose{background:rgba(182,130,63,.10);border:1px solid rgba(182,130,63,.28);border-left:3px solid var(--gold-deep);border-radius:0 12px 12px 0;}
#gsheetBody .fiche-dose .fiche-bk{color:var(--gold-deep);} #gsheetBody .fiche-dose p{color:var(--ink);font-weight:500;}

/* ===== WASH DAY FLOW (js/washday-flow.js) — plein écran : checklist → séance guidée → débrief ===== */
#washdayFlow{position:fixed;inset:0;z-index:1200;background:linear-gradient(180deg,#ece0cd,#e5d7c1);overflow-y:auto;display:none;-webkit-overflow-scrolling:touch;}
/* Une fiche ouverte depuis la séance doit recouvrir le plein écran Wash Day, puis rendre
   l'étape intacte à sa fermeture. Le marqueur est retiré par closeGsheet(). */
#gsheet.wdf-fiche{position:fixed;z-index:1400;}
.wdf-page{max-width:440px;margin:0 auto;padding:14px 20px 44px;}
.wdf-bar{display:flex;align-items:center;gap:10px;padding:6px 0 10px;}
.wdf-x{width:34px;height:34px;border-radius:50%;border:1px solid rgba(138,94,43,.16);background:rgba(255,255,255,.5);color:#6d5c48;font-size:var(--fs-15);cursor:pointer;}
.wdf-bar-t{font-family:Georgia,serif;font-size:var(--fs-15);color:#3a2c1d;}
.wdf-kick{font-size:var(--fs-11);letter-spacing:2px;color:#8a5e2b;margin-top:6px;}
.wdf-h1{font-family:Georgia,serif;font-size:24px;font-weight:600;color:#3a2c1d;margin:8px 0 6px;line-height:1.15;}
.wdf-lede{font-size:var(--fs-14);line-height:1.5;color:#6d5c48;}
.wdf-mode{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px;}
.wdf-mode-b{min-height:64px;padding:11px;border:1px solid var(--line);border-radius:var(--radius-field);background:var(--card);color:var(--ink-soft);font-family:inherit;text-align:left;cursor:pointer;}
.wdf-mode-b b,.wdf-mode-b span{display:block;}.wdf-mode-b b{font-size:var(--fs-13);color:var(--espresso);}.wdf-mode-b span{margin-top:2px;font-size:var(--fs-11);}
.wdf-mode-b.on{border-color:var(--gold-deep);background:rgba(217,178,126,.18);box-shadow:inset 0 0 0 1px var(--gold-deep);}
.wdf-prog{display:flex;align-items:center;gap:10px;margin:16px 0 6px;}
.wdf-prog-bar{flex:1;height:6px;background:rgba(138,94,43,.14);border-radius:6px;overflow:hidden;}
.wdf-prog-fill{display:block;height:100%;width:0;background:linear-gradient(90deg,#d9b27e,#b6823f);border-radius:6px;transition:width .25s;}
.wdf-prog-lab{font-size:var(--fs-12);color:#8a5e2b;font-weight:600;}
.wdf-sec{font-size:var(--fs-11);letter-spacing:2px;color:#9c8a72;margin:20px 2px 10px;}
.wdf-item{display:flex;align-items:center;gap:13px;background:#fbf6ee;border:1px solid rgba(138,94,43,.16);border-radius:16px;padding:14px;margin-bottom:10px;cursor:pointer;transition:background .2s,border-color .2s;}
.wdf-item.on{background:linear-gradient(180deg,#f3f7ef,#eaf2e4);border-color:rgba(76,122,63,.3);}
.wdf-item-tx{flex:1;min-width:0;}
.wdf-item-tx b{font-size:var(--fs-15);display:block;color:#3a2c1d;}
.wdf-item-tx span{font-size:var(--fs-12);color:#6d5c48;}
.wdf-optlbl{color:#8a5e2b;font-weight:600;}
.wdf-check{width:24px;height:24px;border-radius:50%;border:2px solid #b6823f;flex:none;display:flex;align-items:center;justify-content:center;color:transparent;font-size:var(--fs-13);font-weight:800;}
.wdf-item.on .wdf-check{background:#4c7a3f;border-color:#4c7a3f;color:#fff;}
.wdf-cta{display:block;width:100%;border:none;border-radius:16px;padding:16px;margin-top:20px;font-size:var(--fs-15);font-weight:700;font-family:Georgia,serif;background:linear-gradient(180deg,#e6c98f,#cf9f57);color:#3a2711;cursor:pointer;box-shadow:0 10px 24px rgba(182,130,63,.3);}
.wdf-foot{text-align:center;font-size:var(--fs-12);color:#9c8a72;margin-top:12px;font-style:italic;}
.wdf-stephead{margin:6px 0 16px;}
.wdf-stepn{font-size:var(--fs-12);color:#8a5e2b;font-weight:600;}
.wdf-seg{display:flex;gap:4px;margin-top:8px;}
.wdf-seg i{flex:1;height:5px;border-radius:4px;background:rgba(138,94,43,.16);}
.wdf-seg i.on{background:#b6823f;}
.wdf-step{background:#fbf6ee;border:1px solid rgba(138,94,43,.16);border-radius:22px;padding:20px;box-shadow:0 10px 26px rgba(120,85,45,.1);}
.wdf-step-t{font-family:Georgia,serif;font-size:var(--fs-22);color:#3a2c1d;margin-bottom:10px;}
.wdf-step-d{font-size:var(--fs-14);line-height:1.55;color:#3a2c1d;margin-bottom:14px;}
.wdf-dose{background:rgba(182,130,63,.1);border:1px solid rgba(182,130,63,.28);border-left:3px solid #8a5e2b;border-radius:0 12px 12px 0;padding:11px 14px;margin-bottom:12px;}
.wdf-dose-k{font-size:var(--fs-10);letter-spacing:1px;color:#8a5e2b;}
.wdf-dose p{font-size:var(--fs-13);line-height:1.5;font-weight:500;margin-top:2px;color:#3a2c1d;}
.wdf-link{display:inline-block;background:none;border:none;color:#8a5e2b;font-size:var(--fs-13);font-weight:600;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:3px;}
.wdf-products{margin:12px 0;padding:11px 13px;border-radius:var(--radius-field);background:rgba(110,139,91,.1);}
.wdf-products-k{margin-bottom:5px;font-size:var(--fs-10);font-weight:600;letter-spacing:var(--track-kicker);color:var(--sage-deep);}
.wdf-products b{display:block;font-size:var(--fs-12);font-weight:600;color:var(--espresso);}
.wdf-timer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:12px 13px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);}
.wdf-timer-v{font-family:'Fraunces',serif;font-size:var(--fs-22);font-variant-numeric:tabular-nums;color:var(--espresso);}
.wdf-timer-b,.wdf-video-b{min-height:44px;border:1px solid var(--line);border-radius:var(--radius-field);background:var(--card);padding:10px 13px;color:var(--gold-deep);font-family:inherit;font-size:var(--fs-12);font-weight:600;cursor:pointer;}
.wdf-video-b{width:100%;margin:4px 0 10px;}
.wdf-video{position:fixed;inset:0;z-index:1300;display:grid;place-items:end center;padding:18px;background:rgba(33,19,9,.7);}
.wdf-video-p{position:relative;width:min(100%,440px);max-height:92vh;overflow:auto;padding:20px;border-radius:var(--radius-card);background:var(--cream-bright);box-shadow:var(--shadow-card);}
.wdf-video-x{position:absolute;top:12px;right:12px;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--espresso);font-family:inherit;cursor:pointer;}
.wdf-video-k{padding-right:48px;font-size:var(--fs-10);font-weight:600;letter-spacing:var(--track-kicker);color:var(--gold-deep);}
.wdf-video-t{margin:8px 48px 13px 0;font-family:'Fraunces',serif;font-size:var(--fs-20);color:var(--espresso);}
.wdf-video-el{display:block;width:100%;max-height:62vh;border-radius:var(--radius-field);background:var(--espresso);}
.wdf-video-err,.wdf-video-resume,.wdf-transcript p{font-size:var(--fs-12);line-height:1.5;color:var(--ink-soft);}
.wdf-video-resume{margin-top:10px;font-style:italic;}.wdf-transcript{margin-top:12px;}.wdf-transcript summary{min-height:44px;color:var(--gold-deep);font-size:var(--fs-13);font-weight:600;cursor:pointer;}
.wdf-video-err{margin:12px 0;padding:12px;border-radius:var(--radius-field);background:var(--card);}
.wdf-mode-b:focus-visible,.wdf-timer-b:focus-visible,.wdf-video-b:focus-visible,.wdf-video-x:focus-visible,#routineMode .rm-wash-start:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;}
@media(min-width:880px){.wdf-page{max-width:720px;}.wdf-video{place-items:center;}}
.wdf-cta-row{display:flex;gap:10px;margin-top:16px;}
.wdf-done{flex:1;border:none;border-radius:14px;padding:16px;font-size:var(--fs-15);font-weight:700;font-family:Georgia,serif;background:linear-gradient(180deg,#e6c98f,#cf9f57);color:#3a2711;cursor:pointer;box-shadow:0 8px 18px rgba(182,130,63,.28);}
.wdf-skip{flex:0 0 auto;border:1px solid rgba(138,94,43,.16);background:transparent;border-radius:14px;padding:16px;font-size:var(--fs-13);color:#9c8a72;cursor:pointer;}
.wdf-celebr{text-align:center;margin:8px 0 16px;}
.wdf-crown{font-size:34px;}
.wdf-h2{font-family:Georgia,serif;font-size:var(--fs-22);color:#3a2c1d;margin:6px 0 2px;}
.wdf-celebr p{font-size:var(--fs-13);color:#6d5c48;}
.wdf-q{background:#fbf6ee;border:1px solid rgba(138,94,43,.16);border-radius:18px;padding:16px;margin-bottom:12px;}
.wdf-q-l{font-size:var(--fs-14);font-weight:600;color:#3a2c1d;margin-bottom:10px;}
.wdf-opts{display:flex;gap:8px;}
.wdf-opt{flex:1;text-align:center;border:1px solid rgba(138,94,43,.16);background:#f7f0e4;border-radius:12px;padding:12px 6px;font-size:var(--fs-13);color:#6d5c48;cursor:pointer;}
.wdf-opt.sel{background:linear-gradient(180deg,#f0e7d3,#e4d3b0);border-color:#b6823f;color:#3a2c1d;font-weight:600;}
.wdf-auto{font-size:var(--fs-13);color:#6d5c48;line-height:1.5;}
.wdf-auto b{color:#3a2c1d;}
.wdf-naya{display:flex;gap:11px;background:linear-gradient(160deg,#3a2717,#241608);color:#f2e7d6;border-radius:18px;padding:16px;margin:6px 0 14px;}
.wdf-naya-av{width:34px;height:34px;border-radius:50%;flex:none;background:radial-gradient(circle at 35% 30%,#c98f52,#7a4f24);}
.wdf-naya-who{font-size:var(--fs-10);letter-spacing:1px;color:#e6c98f;display:block;margin-bottom:3px;}
.wdf-naya p{font-size:var(--fs-13);line-height:1.55;}
@media (prefers-reduced-motion:reduce){.wdf-prog-fill{transition:none;}}
#gsheetBody .fiche-pick{margin:20px 0 4px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px 15px 15px;}
#gsheetBody .fiche-pick-q{font-family:'Fraunces',serif;font-size:var(--fs-16);color:var(--espresso);font-weight:500;margin-bottom:3px;}
#gsheetBody .fiche-pick-h{font-size:var(--fs-12);color:var(--ink-faint);margin-bottom:12px;}
#gsheetBody .fiche-opts{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
#gsheetBody .fiche-opt{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;background:var(--sand);border:1.5px solid transparent;border-radius:14px;padding:13px 8px;cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s;}
#gsheetBody .fiche-opt-ic{font-size:24px;line-height:1;}
#gsheetBody .fiche-opt-lb{font-size:var(--fs-12);color:var(--ink);font-weight:500;line-height:1.25;}
#gsheetBody .fiche-opt.on{border-color:var(--gold);background:rgba(217,178,126,.18);}
#gsheetBody .fiche-pick-tip{margin-top:12px;font-size:var(--fs-14);line-height:1.5;color:var(--ink);background:rgba(217,178,126,.13);border-left:3px solid var(--gold);border-radius:0 12px 12px 0;padding:11px 13px;display:none;}
#gsheetBody .fiche-pick-tip.show{display:block;}
#gsheetBody .fiche-pick-tip b{color:var(--gold-deep);}
#gsheetBody .fiche-pick-photo{margin-top:9px;font-size:var(--fs-11);color:var(--ink-faint);font-style:italic;text-align:center;}
#gsheetBody .fiche-sign{display:flex;align-items:center;gap:9px;margin-top:20px;padding-top:14px;border-top:1px solid var(--line);}
#gsheetBody .fiche-av{width:26px;height:26px;border-radius:50%;background:linear-gradient(150deg,#8a5a34,#5a3a20);display:grid;place-items:center;color:var(--cream);font-family:'Fraunces',serif;font-size:var(--fs-13);}
#gsheetBody .fiche-sign span{font-size:var(--fs-12);color:var(--ink-soft);} #gsheetBody .fiche-sign i{color:var(--gold-deep);font-style:italic;}
#gsheetBody .fiche-cta{margin-top:18px;width:100%;}
.fiche-link{background:none;border:0;font-family:inherit;font-size:var(--fs-13);font-weight:600;color:var(--gold-deep);cursor:pointer;padding:6px 0;display:inline-flex;align-items:center;gap:4px;text-decoration:underline;text-underline-offset:2px;}

/* ============ MON HISTOIRE (T2) — le fil de l'onglet Mes cheveux ============ */
.hist-attend{margin:6px 0 4px;}
.hist-kick{font-size:var(--fs-11);letter-spacing:var(--track-kicker);text-transform:uppercase;font-weight:600;color:var(--gold-deep);display:flex;align-items:center;gap:12px;}
.hist-kick::after{content:"";flex:1;height:1px;background:var(--hair);}
.hist-kick--fil{color:var(--ink-faint);margin-top:22px;}
.hist-attend p{font-family:'Fraunces',serif;font-size:var(--fs-16);line-height:1.5;color:var(--espresso);margin-top:9px;text-wrap:balance;}
.hist-chap{padding:15px 0 4px;}
.hist-chap.closed{border-top:1px solid var(--hair);opacity:.74;padding-bottom:10px;}
.hist-head{display:flex;align-items:baseline;justify-content:space-between;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.hist-head b{font-family:'Fraunces',serif;font-weight:430;font-size:var(--fs-20);color:var(--espresso);}
.hist-chap.closed .hist-head b{font-size:var(--fs-16);}
.hist-acc{display:block;font-size:var(--fs-12);color:var(--ink-soft);margin-top:2px;}
.hist-chev{color:var(--gold-deep);font-size:var(--fs-12);flex:none;margin-left:10px;}
.hist-body{padding-top:4px;}
.hist-photo{margin-top:12px;height:170px;border-radius:16px;background:linear-gradient(135deg,#5A4326,#2E2012);background-size:cover;background-position:center;position:relative;box-shadow:var(--shadow-sm);}
.hist-phtag{position:absolute;left:12px;bottom:10px;color:#F0E4D0;font-size:var(--fs-10);background:rgba(0,0,0,.28);padding:4px 10px;border-radius:20px;backdrop-filter:blur(4px);}
.hist-photo--ghost{border:1.5px dashed rgba(138,94,43,.35);background:rgba(255,252,246,.5);box-shadow:none;display:grid;place-items:center;}
.hist-photo-cta{max-width:250px;}
.hist-naya{margin-top:13px;border-left:2px solid var(--gold-soft);padding-left:14px;}
.hist-who{display:block;font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-deep);font-weight:600;margin-bottom:4px;}
.hist-naya p{font-family:'Fraunces',serif;font-size:var(--fs-15);line-height:1.45;color:var(--espresso);}
.hist-mot{margin-top:11px;font-size:var(--fs-13);font-style:italic;color:var(--ink-soft);}
.hist-mot b{font-style:normal;color:var(--gold-deep);font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;margin-right:8px;font-weight:600;}
.hist-add{display:block;width:100%;margin-top:11px;font-family:inherit;font-size:var(--fs-12);color:var(--gold-deep);text-align:center;padding:10px;border:1px dashed rgba(138,94,43,.32);border-radius:12px;background:none;cursor:pointer;}
.hist-mot-form{display:flex;gap:8px;margin-top:10px;}
.hist-mot-form input{flex:1;font-family:inherit;font-size:var(--fs-14);padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);}
.hist-mot-ok{flex:none;padding:11px 16px;}
.hist-conseil{margin-top:12px;display:flex;gap:10px;align-items:baseline;font-size:var(--fs-12);color:var(--ink-soft);border-top:1px solid var(--hair);padding-top:11px;line-height:1.5;}
.hist-conseil .hist-lab{color:var(--gold-deep);font-size:var(--fs-10);letter-spacing:var(--track-kicker);font-weight:600;flex:none;text-transform:uppercase;}

/* MON HISTOIRE (T2) : fantôme « même angle » sur le flux caméra + bouton partage */
#camGhost{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35;pointer-events:none;z-index:2;}
.hist-share{display:inline-flex;align-items:center;gap:7px;margin-top:12px;font-family:inherit;font-size:var(--fs-12);color:var(--gold-deep);background:none;border:none;cursor:pointer;padding:6px 0;}
.hist-share::before{content:"↥";font-size:var(--fs-14);}

/* ==================================================================================
   LOVI × KROWN — passe visuelle « Mes cheveux » (13/07, maquette approuvée par Kevin :
   docs/superpowers/designs/maquette-mescheveux-lovi-v2.html)
   La brique : chaque sujet vit dans UNE carte claire posée sur le crème — titres
   courts DANS les cartes, états visuels plutôt que paragraphes, encarts imbriqués.
   En FIN de fichier exprès : ce bloc doit gagner sur le « restyle premium » (~l.1530).
   ================================================================================== */

/* --- titres de carte : Instrument Sans 600, DANS la carte (fini les sections flottantes) --- */
#progres .pgc-title{font-family:'Instrument Sans',sans-serif;font-weight:600;font-size:var(--fs-16);color:var(--espresso);letter-spacing:0;text-transform:none;margin:0 0 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;}

/* --- la carte Lovi : claire, nette, une ombre douce — plus de filet terracotta ni de dégradé --- */
#progres .content > .card,
#progres #washHistHost .card,
#progres #jalonsHost .card{
  background:var(--cream-bright);
  border:1px solid rgba(108,72,42,.08);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow-soft);
}
#progres .content > .card::before{display:none;}
#progres .content > .card{margin-bottom:12px;}

/* --- carte d'identité : sombre (signature KROWN), COMPACTE --- */
#progres .cid{margin:0 0 12px;padding:17px 16px;}
.cid-top{display:flex;align-items:center;gap:12px;}
.cid-crown{flex:0 0 auto;width:42px;height:42px;border-radius:50%;background:rgba(235,201,138,.14);display:grid;place-items:center;color:var(--gold-lum);}
.cid-crown svg{width:22px;height:22px;}
.cid-tt{min-width:0;}
#progres .cid-sig{margin-top:0;font-size:var(--fs-20);color:var(--gold-lum);}
#progres .cid-couronne{margin-top:2px;}
#progres .cid-grid{margin-top:14px;}
.cid-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;}
.cid-combat-n1{font-size:var(--fs-12);font-weight:600;background:var(--gold-lum);color:#241505;border-radius:999px;padding:6px 12px;white-space:nowrap;}
#progres .cid-diag{display:inline-block;width:auto;margin:0;padding:6px 0;background:none;border:0;border-radius:0;
  font-family:inherit;font-size:var(--fs-13);font-weight:500;color:var(--gold-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;}

/* --- « L'état de tes cheveux » : lignes analysées + la semaine en barre (façon Lovi) --- */
#progres .pg-etat .ac-status{flex-direction:column;gap:0;margin:0;}
#progres .pg-etat .ac-stat{flex:0 0 auto;background:none;border:0;box-shadow:none;border-radius:0;padding:11px 0;min-height:0;align-items:center;}
#progres .pg-etat .ac-stat + .ac-stat{border-top:1px solid var(--hair);}
#progres .pg-etat .ac-stat::before{display:none;}
#progres .pg-etat .ac-stat-ic{width:40px;height:40px;border-radius:50%;}
#progres .pg-etat .ac-stat-v{font-family:'Instrument Sans',sans-serif;font-weight:600;font-size:var(--fs-14);}
#progres .pg-etat .ac-stat-k{color:var(--gold-deep);}
#progres .week-pills--prog{margin:0;padding-top:13px;border-top:1px solid var(--hair);gap:4px;}
#progres .week-pills--prog .wp{flex:1 1 0;width:auto;height:7px;border-radius:99px;background:var(--sand);}
#progres .week-pills--prog .wp.on{background:linear-gradient(90deg,var(--gold),var(--gold-lum));}
#progres .week-pills--prog .wp.today{box-shadow:0 0 0 1.5px rgba(217,178,126,.5);}
#progres .week-pills--prog .wp-lbl{flex:0 0 auto;margin-left:8px;font-weight:600;color:var(--gold-deep);font-size:var(--fs-12);}

/* --- MON HISTOIRE : « Ce qui t'attend » (icône + titre) et chapitres = cartes --- */
#histoireHost .hist-attend{margin:0 0 12px;background:var(--cream-bright);border:1px solid rgba(108,72,42,.08);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);padding:16px;display:flex;gap:12px;align-items:flex-start;}
.hist-attend-ic{flex:0 0 auto;width:40px;height:40px;border-radius:50%;background:rgba(182,130,63,.13);display:grid;place-items:center;color:var(--gold-deep);}
.hist-attend-ic svg{width:19px;height:19px;}
.hist-attend-tx{min-width:0;}
#histoireHost .hist-attend .hist-kick{font-family:'Instrument Sans',sans-serif;font-weight:600;font-size:var(--fs-15);color:var(--espresso);letter-spacing:0;text-transform:none;}
#histoireHost .hist-attend .hist-kick::after{display:none;}
#histoireHost .hist-attend p{font-family:'Instrument Sans',sans-serif;font-size:var(--fs-14);line-height:1.45;color:var(--ink-soft);margin-top:4px;}
#histoireHost .hist-chap{background:var(--cream-bright);border:1px solid rgba(108,72,42,.08);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);padding:16px;margin-bottom:12px;}
#histoireHost .hist-chap.closed{border-top:1px solid rgba(108,72,42,.08);opacity:1;padding:15px 16px;}
#histoireHost .hist-chap.closed .hist-head b{font-family:'Instrument Sans',sans-serif;font-weight:600;font-size:var(--fs-15);}
#histoireHost .hist-chap.closed .hist-acc{color:var(--ink-faint);}
#histoireHost .hist-head b{font-size:var(--fs-20);}
/* la photo du mois : un polaroïd (cadre blanc + légère rotation) */
#histoireHost .hist-photo{margin-top:13px;height:190px;border-radius:10px;border:8px solid #fff;border-bottom-width:26px;box-shadow:var(--shadow-soft);transform:rotate(-.6deg);}
#histoireHost .hist-photo--ghost{border:1.5px dashed rgba(138,94,43,.35);transform:none;box-shadow:none;}
#histoireHost .hist-phtag{position:absolute;left:10px;bottom:-22px;font-size:var(--fs-10);color:var(--ink-faint);}
/* la voix de Naya, le mot perso et le conseil : encarts imbriqués clairs */
#histoireHost .hist-naya{margin-top:16px;border-left:0;padding:13px 14px;background:var(--card);border-radius:var(--radius-field);}
#histoireHost .hist-naya p{font-family:'Instrument Sans',sans-serif;font-size:var(--fs-14);line-height:1.5;color:var(--ink);}
#histoireHost .hist-mot{margin-top:10px;padding:12px 14px;background:var(--card);border-radius:var(--radius-field);}
#histoireHost .hist-mot b{display:block;margin-bottom:3px;}
#histoireHost .hist-conseil{margin-top:10px;padding:13px 14px;background:var(--card);border-radius:var(--radius-field);border-top:0;display:block;font-size:var(--fs-13);}
#histoireHost .hist-conseil .hist-lab{display:block;margin-bottom:3px;}
#histoireHost .hist-add{margin-top:10px;}

/* --- « Ta transformation » : le host devient une carte, 2 photos côte à côte + verrou Jour 30 dessous --- */
#progres #glimpseHost{background:var(--cream-bright);border:1px solid rgba(108,72,42,.08);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);padding:16px;margin-bottom:12px;}
#progres #glimpseHost .tf-lbl{font-family:'Instrument Sans',sans-serif;font-weight:600;font-size:var(--fs-16);color:var(--espresso);letter-spacing:0;text-transform:none;margin:0 0 12px;}
#progres #glimpseHost .tf-lbl::after{display:none;}
#progres #glimpseHost .tf{grid-template-columns:1fr 1fr;gap:10px;}
#progres #glimpseHost .tf-slot{aspect-ratio:4/5;border-radius:14px;box-shadow:none;}
#progres #glimpseHost .tf-lock{position:relative;display:block;width:100%;margin-top:12px;padding:14px;text-align:left;border:1px solid rgba(182,130,63,.25);border-radius:var(--radius-field);cursor:pointer;-webkit-tap-highlight-color:transparent;
  background:linear-gradient(135deg,rgba(182,130,63,.12),rgba(235,201,138,.18));}
#progres #glimpseHost .tf-lock::before{display:none;}
#progres #glimpseHost .tf-lock-row{display:flex;align-items:flex-start;gap:12px;}
#progres #glimpseHost .tf-lock-ic{flex:0 0 auto;width:36px;height:36px;border-radius:50%;background:var(--gold-lum);display:grid;place-items:center;}
#progres #glimpseHost .tf-lock-ic svg{width:16px;height:16px;stroke:#241505;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
#progres #glimpseHost .tf-lock-t{font-family:'Instrument Sans',sans-serif;letter-spacing:0;min-width:0;}
#progres #glimpseHost .tf-lock-t b{display:block;font-weight:600;font-size:var(--fs-14);color:var(--espresso);line-height:1.3;}
#progres #glimpseHost .tf-lock-t span{display:block;font-size:var(--fs-12);color:var(--ink-soft);margin-top:2px;line-height:1.4;}
#progres #glimpseHost .tf-lock .go{display:block;margin-top:12px;text-align:center;background:linear-gradient(135deg,var(--gold),var(--gold-deep));color:#fff;font-weight:600;font-size:var(--fs-14);letter-spacing:0;border-radius:999px;padding:12px;box-shadow:0 6px 18px rgba(138,95,46,.3);}
#progres #glimpseHost .tf-line{font-size:var(--fs-12);margin-top:11px;color:var(--ink-faint);font-family:'Instrument Sans',sans-serif;font-style:normal;}
#progres #glimpseHost .tf-lock.tf-beta{background:transparent;border-color:var(--hair);cursor:default;padding:13px 14px;}
#progres #glimpseHost .tf-lock.tf-beta .tf-lock-t{color:var(--ink-soft);}
#progres #glimpseHost .tf-lock.tf-beta .tf-lock-t b{color:var(--ink);}

/* --- coiffure : rangée compacte (le conseil perso vit DANS l'accordéon via #hsLead) --- */
#progres .hs-card{background:var(--cream-bright);border:1px solid rgba(108,72,42,.08);box-shadow:var(--shadow-soft);margin-bottom:12px;}
#progres .hs-head .hs-ico{border-radius:50%;background:rgba(122,79,53,.1);border:0;}
#progres .hs-head .hs-t{font-family:'Instrument Sans',sans-serif;font-weight:600;font-size:var(--fs-15);}
#progres .hs-head .hs-k{color:var(--gold-deep);}
#progres #hsLead .hs-lead{margin:0 0 12px;}
#progres #hsLead .nd-tip{font-size:var(--fs-13);color:var(--ink-soft);line-height:1.5;}

/* --- re-diagnostic : action calme sous les jalons --- */
#progres .rediag-wrap{padding:0 0 12px;}

/* --- ordi : les cartes ne s'étirent pas bêtement --- */
@media (min-width:880px){
  #progres #glimpseHost .tf,
  #progres #glimpseHost .tf-lock,
  #progres #glimpseHost .tf-line{max-width:540px;}
  #histoireHost .hist-photo{max-width:440px;}
}

/* ============ T3 — LA LETTRE DU DIMANCHE · v3 « papeterie de maison » (13/07, retours Kevin :
   niveau magazine, pas de containers). La lettre = du PAPIER : fond crème lumineux encadré
   d'un filet or, en-tête maison, prose à lettrine, almanach 7 jours entre filets, listes
   éditoriales, UNE carte (la correspondance de Tatiana, tappable), P.S. en liens texte,
   signature. Exécution douce façon Lovi : un seul accent, hiérarchie limpide. ============ */

/* --- écran 1 : les puces (interactives → elles ont le droit d'être des puces) --- */
.lt-q{display:flex;gap:12px;align-items:flex-start;margin:4px 0 16px;}
.lt-av{width:44px;height:44px;border-radius:50%;flex:0 0 auto;background:linear-gradient(135deg,var(--caramel),var(--mocha));display:grid;place-items:center;font-size:20px;}
.lt-qt{font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-20);line-height:1.25;color:var(--espresso);}
.lt-qs{font-size:var(--fs-13);color:var(--ink-faint);margin-top:4px;}
.lt-chips{display:flex;flex-wrap:wrap;gap:9px;}
.lt-chip{font-family:inherit;font-size:var(--fs-14);font-weight:500;color:var(--ink-soft);background:var(--cream-bright);
  border:1px solid rgba(108,72,42,.14);border-radius:999px;padding:11px 16px;min-height:44px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.lt-chip.on{background:linear-gradient(135deg,var(--gold),var(--gold-deep));color:#fff;border-color:transparent;font-weight:600;}
.lt-go{width:100%;margin-top:18px;}
.lt-skip{display:block;width:100%;text-align:center;font-family:inherit;font-size:var(--fs-13);font-weight:500;color:var(--ink-faint);background:none;border:0;padding:12px;margin-top:4px;cursor:pointer;}

/* --- le papier : pleine feuille, filet or en cadre, lumière douce en haut --- */
.lt-paper{position:relative;margin:-6px -24px -30px;padding:34px 26px 36px;}
#gsheet .panel:has(.lt-paper){background:linear-gradient(180deg,#FFFCF4 0%,var(--cream-bright) 38%);}
#gsheet .panel:has(.lt-paper) .grip{background:rgba(182,130,63,.35);}
.lt-paper::before{content:"";position:absolute;inset:6px 10px 10px;border:1px solid rgba(182,130,63,.3);border-radius:14px;
  border-top:2.5px solid transparent;
  background:linear-gradient(90deg,rgba(217,178,126,.0),var(--gold-lum) 18%,var(--gold) 50%,var(--gold-lum) 82%,rgba(217,178,126,.0)) top/100% 2.5px no-repeat border-box;
  box-shadow:inset 0 0 0 3px #FFFCF4, inset 0 0 0 4px rgba(182,130,63,.14);pointer-events:none;}
.lt-paper::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .33 0 0 0 0 .2 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");}
.lt-paper>*{position:relative;z-index:1;}

/* --- l'entrée en scène : fondu monté doux, respecte reduced-motion --- */
.lt-in{animation:ltIn .5s var(--ease-out) both;}
@keyframes ltIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.lt-in{animation:none;}}

/* --- en-tête maison --- */
.lt-mast{text-align:center;padding:4px 0 2px;}
.lt-mono{width:34px;height:34px;margin:0 auto 10px;color:var(--gold);}
.lt-mono svg{width:100%;height:100%;display:block;}
.lt-house{font-size:var(--fs-10);letter-spacing:.34em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;text-indent:.34em;text-shadow:0 1px 0 rgba(255,255,255,.6);}
.lt-datefr{font-family:'Fraunces',serif;font-style:italic;font-weight:430;font-size:27px;color:var(--espresso);margin-top:9px;letter-spacing:-.01em;}
.lt-issue{font-size:var(--fs-10);letter-spacing:var(--track-kicker);color:var(--ink-faint);font-weight:600;margin-top:4px;}
.lt-orn{display:flex;align-items:center;gap:10px;margin:16px 8px 0;}
.lt-orn i{flex:1;height:1px;background:var(--hair);}
.lt-orn-d{font-style:normal;font-size:7px;color:var(--gold);}

/* --- la lettre : salutation + prose à lettrine --- */
.lt-lede{padding:24px 4px 8px;}
.lt-salut{font-family:'Fraunces',serif;font-style:italic;font-weight:430;font-size:var(--fs-20);color:var(--espresso);margin-bottom:10px;}
.lt-p{font-family:'Fraunces',serif;font-weight:380;font-size:var(--fs-15);line-height:1.68;color:var(--ink);margin:0 0 12px;text-wrap:pretty;}
.lt-p--cap::first-letter{font-family:'Fraunces',serif;font-weight:500;font-size:44px;line-height:.82;float:left;color:var(--gold-deep);padding:5px 8px 0 0;}
.lt-p--calm{margin-top:18px;color:var(--ink-soft);}

/* --- l'almanach : 7 médaillons entre deux filets --- */
.lt-alm{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:16px 0 13px;margin:12px 0 22px;}
.lt-sem{display:flex;justify-content:center;gap:12px;}
.lt-day{text-align:center;}
.lt-day i{display:none;}
.lt-day b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;
  font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-12);color:rgba(107,87,66,.55);
  box-shadow:inset 0 0 0 1px rgba(182,130,63,.3);}
.lt-day.on b{background:linear-gradient(160deg,var(--gold),var(--gold-deep));box-shadow:none;color:#FFF7EA;}
.lt-alm-cap{text-align:center;font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--ink-faint);font-weight:600;margin-top:10px;font-variant-numeric:tabular-nums;}

/* --- ce qui a compté : deux colonnes éditoriales, items en Fraunces italique --- */
.lt-compte{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;padding:2px 4px 10px;}
.lt-col{min-width:0;}
.lt-colh{font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;font-weight:600;padding-bottom:7px;margin-bottom:7px;position:relative;}
.lt-colh::after{content:"";position:absolute;left:0;bottom:0;width:26px;height:1.5px;background:currentColor;opacity:.5;}
.lt-colh--up{color:var(--sage-deep);}
.lt-colh--down{color:var(--terra);}
.lt-item{font-family:'Fraunces',serif;font-style:italic;font-weight:400;font-size:var(--fs-14);color:var(--espresso);padding:4px 0;}
.lt-item::before{content:"· ";color:var(--gold);font-style:normal;font-weight:600;}
@media (max-width:340px){.lt-compte{grid-template-columns:1fr;}}

/* --- la correspondance de Tatiana : LA seule carte — papier à en-tête, double filet --- */
.lt-adlead{text-align:center;font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-14);color:var(--ink-soft);margin:18px 0 14px;}
.lt-nest{background:#FFFDF8;border:1px solid rgba(182,130,63,.4);outline:1px solid rgba(182,130,63,.16);outline-offset:3px;
  border-radius:10px;padding:16px 16px 14px;margin:0 6px 6px;}
.lt-stamp{text-align:center;font-size:var(--fs-11);letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep);font-weight:700;margin-bottom:10px;}
.lt-np{font-family:'Fraunces',serif;font-weight:400;font-size:var(--fs-14);line-height:1.55;color:var(--ink);}
.lt-ba{margin-top:11px;padding-top:10px;border-top:1px dashed rgba(182,130,63,.3);}
.lt-ba s{display:block;font-size:var(--fs-12);color:var(--ink-faint);text-decoration:line-through;text-decoration-color:rgba(192,87,59,.5);}
.lt-ba b{display:block;font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-15);color:var(--espresso);margin-top:3px;line-height:1.4;}
.lt-arow{display:flex;align-items:center;gap:14px;margin-top:14px;}
.lt-ok{flex:1;font-family:inherit;text-align:center;background:linear-gradient(170deg,var(--gold) 0%,var(--gold-deep) 130%);color:#FFF9EE;font-size:var(--fs-14);font-weight:600;letter-spacing:.01em;border:0;border-radius:999px;padding:12px;min-height:44px;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 8px 20px -6px rgba(138,95,46,.45);}
.lt-keep{flex:0 0 auto;font-family:inherit;background:none;border:0;font-size:var(--fs-13);font-weight:500;color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(108,72,42,.35);padding:12px 6px;min-height:44px;cursor:pointer;}
.lt-done{font-size:var(--fs-13);color:var(--gold-deep);font-weight:500;text-align:center;width:100%;padding:2px 0;}

/* --- P.S. + signature --- */
.lt-ps{border-top:1px solid var(--hair);margin-top:20px;padding-top:14px;}
.lt-psq{display:block;font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-14);color:var(--espresso);margin-bottom:6px;}
.lt-pslinks{font-size:var(--fs-13);color:var(--ink-faint);line-height:2.1;}
.lt-fblink{font-family:inherit;background:none;border:0;padding:8px 2px;font-size:var(--fs-13);font-weight:500;color:var(--gold-deep);
  text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.lt-sign{text-align:right;margin-top:18px;padding-right:6px;}
.lt-signname{font-family:'Fraunces',serif;font-style:italic;font-weight:500;font-size:33px;letter-spacing:-.01em;transform:rotate(-2.5deg);transform-origin:right bottom;
  background:linear-gradient(104deg,var(--gold-deep) 8%,var(--gold) 34%,var(--gold-lum) 52%,var(--gold) 68%,var(--gold-deep) 94%);
  -webkit-background-clip:text;background-clip:text;color:transparent;}
.lt-signrole{font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--ink-faint);font-weight:600;margin-top:2px;}
.lt-close{display:block;margin:26px auto 0;font-family:inherit;background:linear-gradient(170deg,var(--gold) 0%,var(--gold-deep) 130%);color:#FFF9EE;
  font-size:var(--fs-14);font-weight:600;letter-spacing:.01em;border:0;border-radius:999px;padding:13px 32px;min-height:44px;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 8px 20px -6px rgba(138,95,46,.45);}

/* --- le sceau de la maison : cire dorée frappée du monogramme, sous la signature --- */
.lt-seal{width:58px;height:58px;margin:12px 4px 0 auto;display:grid;place-items:center;color:rgba(58,35,18,.62);
  border-radius:47% 53% 51% 49%/52% 48% 53% 47%;
  background:radial-gradient(circle at 34% 28%,var(--gold-lum) 0%,var(--gold-soft) 26%,var(--gold) 58%,var(--gold-deep) 100%);
  box-shadow:inset 0 2px 4px rgba(255,247,234,.55), inset 0 -3px 6px rgba(58,35,18,.28), 0 4px 10px -3px rgba(58,35,18,.35);
  transform:rotate(-6deg);
  animation:ltSeal .5s var(--spring) both;}
.lt-seal svg{width:26px;height:26px;filter:drop-shadow(0 1px 0 rgba(255,247,234,.4));}
@keyframes ltSeal{from{opacity:0;transform:rotate(-14deg) scale(1.55);}to{opacity:1;transform:rotate(-6deg) scale(1);}}
@media (prefers-reduced-motion:reduce){.lt-seal{animation:none;}}

/* --- la marque, en pied de lettre --- */
.lt-brand{text-align:center;margin-top:26px;font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-14);
  letter-spacing:.14em;color:var(--espresso);text-indent:.14em;}
.lt-brand span{color:var(--gold);}

/* ============ C1a — TES PREMIERS PAS (greffe Lovi First Steps, maquette accueil v4, 14/07)
   Liste éditoriale posée sur le fond — pas de containers. Disparaît quand les 3 pas sont faits. ============ */
.pp{padding:20px 20px 6px;}
.pp-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;}
.pp-t{font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-20);color:var(--espresso);letter-spacing:-.01em;}
.pp-t i{font-style:italic;color:var(--gold-deep);}
.pp-n{font-size:var(--fs-11);font-weight:600;letter-spacing:.14em;color:var(--gold-deep);text-transform:uppercase;font-variant-numeric:tabular-nums;}
.pp-row{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--hair);cursor:pointer;-webkit-tap-highlight-color:transparent;min-height:44px;}
.pp-row:last-child{border-bottom:0;}
.pp-row.done{cursor:default;}
.pp-med{width:30px;height:30px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;
  box-shadow:inset 0 0 0 1.4px rgba(182,130,63,.4);color:var(--gold-deep);font-size:12px;}
.pp-med svg{width:13px;height:13px;}
.pp-row.done .pp-med{background:linear-gradient(160deg,var(--gold),var(--gold-deep));box-shadow:none;color:#FFF7EA;}
.pp-tx{flex:1;font-size:var(--fs-14);font-weight:500;color:var(--espresso);}
.pp-row.done .pp-tx{color:var(--ink-faint);text-decoration:line-through;text-decoration-color:rgba(182,130,63,.4);}
.pp-go{font-size:var(--fs-12);font-weight:500;color:var(--gold-deep);white-space:nowrap;}
@media (min-width:880px){ .pp{max-width:560px;} }

/* ============ C1b — TON PLAN DU JOUR (cœur Today Lovi, maquette v4, 14/07)
   Rangées éditoriales cochables SANS punition — coche = carnet nourri, série intouchée. ============ */
.pj{padding:18px 20px 6px;}
.pj-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--hair);cursor:pointer;-webkit-tap-highlight-color:transparent;min-height:44px;}
.pj-row:last-of-type{border-bottom:0;}
.pj-row.calme{cursor:default;}
.pj-ic{width:34px;height:34px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;color:var(--gold-deep);
  box-shadow:inset 0 0 0 1.4px rgba(182,130,63,.35);}
.pj-ic svg{width:15px;height:15px;}
.pj-row.done .pj-ic{background:linear-gradient(160deg,var(--gold),var(--gold-deep));box-shadow:none;color:#FFF7EA;}
.pj-row.calme .pj-ic{color:var(--ink-faint);box-shadow:inset 0 0 0 1.4px var(--hair);}
.pj-tx{flex:1;min-width:0;}
.pj-t{display:block;font-size:var(--fs-14);font-weight:500;color:var(--espresso);}
.pj-row.done .pj-t{color:var(--ink-faint);}
.pj-s{display:block;font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-12);color:var(--ink-faint);margin-top:1px;}
.pj-note{font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-11);color:var(--ink-faint);padding-top:9px;line-height:1.5;}
@media (min-width:880px){ .pj{max-width:560px;} }

/* ============ C1c — COUVERTURE COMPACTÉE + FILAMENT DU PROGRAMME (maquette v4, 14/07) ============ */
.cov-fil{position:absolute;left:0;right:0;bottom:0;height:2.5px;background:rgba(246,232,213,.14);z-index:3;}
.cov-fil i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold-deep),var(--gold-lum));box-shadow:0 0 8px rgba(235,201,138,.7);}

/* ============ C1d — ABSORPTION DE L'ACCUEIL (14/07, validé Kevin) : les étiquettes de zones
   disparaissent (la maquette v4 n'en a pas — un écran, une hiérarchie), le plan du jour porte
   le wash day (tap → flux guidé) et le « Comment › » du soir ouvre la fiche nuit. ============ */
#result .zone-head{display:none;}
.pj-chev{color:var(--gold-deep);font-size:var(--fs-16);flex:0 0 auto;padding-left:4px;}
.pj-how{flex:0 0 auto;font-family:inherit;background:none;border:0;font-size:var(--fs-12);font-weight:500;color:var(--gold-deep);
  text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(138,95,46,.35);padding:12px 2px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
#result .sos-line svg{stroke:var(--terra);}

/* C1d-bis — la question wash day repliée quand le palier a la parole (un seul demandeur à la fois) */
.pdj-slim{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;
  font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-14);color:var(--mocha);
  background:none;border:0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  padding:12px 2px;margin:4px 0 8px;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.pdj-slim em{font-style:normal;color:var(--gold-deep);font-size:var(--fs-16);}

/* ============ C7 — LES RELANCES DE NAYA (greffe Lovi, 14/07) : 3 questions cliquables sous la dernière réponse ============ */
.rl-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:7px;margin:-4px 0 6px;padding-left:12px;opacity:0;transform:translateY(6px);transition:opacity var(--d-base) var(--ease-out),transform var(--d-base) var(--ease-out);}
.rl-wrap.in{opacity:1;transform:none;}
.rl-label{font-size:var(--fs-10);font-weight:600;letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--ink-soft);padding:2px 2px 0;}
.rl-chip{font-family:inherit;font-size:var(--fs-13);font-weight:500;color:var(--gold-deep);background:var(--cream-bright);
  border:1px solid var(--gold-soft);border-radius:4px 16px 16px 16px;padding:10px 14px;min-height:44px;max-width:88%;
  text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.rl-chip:active{transform:scale(.97);}
@media (prefers-reduced-motion:reduce){.rl-wrap{transition:none;}}

/* ============ WASH DAY — retours Kevin 14/07 : étape optionnelle affichée + « +5 min » sur le chrono ============ */
.wm-opt{font-size:var(--fs-10);font-weight:600;letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-lum);
  background:rgba(235,201,138,.14);border:1px solid rgba(235,201,138,.3);border-radius:999px;padding:5px 11px;display:inline-block;margin-bottom:8px;}
.wm-more{display:block;margin:12px auto 0;font-family:inherit;font-size:var(--fs-13);font-weight:500;color:var(--gold-lum);
  background:none;border:1px solid rgba(235,201,138,.35);border-radius:999px;padding:10px 18px;min-height:44px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.wm-more:active{transform:scale(.97);}
.wdf-optlbl{font-size:var(--fs-10);font-weight:600;letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-deep);margin-bottom:6px;}

/* MVP — TON CAP : projection visible sans transformer chaque jour en devoir. */
#result.light{background-color:var(--sand);} /* fond de sécurité : jamais le body sombre dans les espaces de la grille */
#result #planJourHost{padding:0 20px;margin-top:16px;}
#result .cap-card{max-width:560px;margin:0;padding:18px;border-radius:var(--radius-card);background:var(--espresso);color:var(--cream);box-shadow:var(--shadow-card);}
#result .cap-k{font-size:var(--fs-11);font-weight:600;letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-lum);}
#result .cap-title{margin:7px 0 16px;font-family:'Fraunces',serif;font-size:var(--fs-20);font-weight:500;line-height:1.2;color:var(--cream);text-wrap:balance;}
#result .cap-path{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
#result .cap-path::before{content:"";position:absolute;top:11px;left:16%;right:16%;height:1px;background:rgba(235,201,138,.32);}
#result .cap-step{position:relative;min-width:0;text-align:center;color:rgba(246,232,213,.68);}
#result .cap-med{position:relative;z-index:1;display:grid;width:24px;height:24px;margin:0 auto 7px;place-items:center;border:4px solid var(--espresso);border-radius:50%;background:var(--gold-deep);box-shadow:0 0 0 1px rgba(235,201,138,.48);color:var(--cream);}
#result .cap-med svg{width:11px;height:11px;}
#result .cap-step.active .cap-med{background:var(--gold-lum);color:var(--espresso);}
#result .cap-step b{display:block;overflow:hidden;font-size:var(--fs-11);font-weight:600;color:var(--cream);text-overflow:ellipsis;white-space:nowrap;}
#result .cap-step small{display:block;margin-top:2px;font-size:var(--fs-11);color:rgba(246,232,213,.68);}
#result .cap-note{margin:14px 0 0;font-family:'Fraunces',serif;font-size:var(--fs-11);font-style:italic;line-height:1.45;color:rgba(246,232,213,.68);}
#result .cap-card.cap-flow{margin-top:22px;padding:0 0 24px;border:0;border-radius:0;background:transparent;color:var(--ink);box-shadow:none;}
#result .cap-flow .cap-k{color:var(--gold-deep);}
#result .cap-flow .cap-title{max-width:21ch;color:var(--espresso);}
#result .cap-flow .cap-path::before{background:var(--hair);}
#result .cap-flow .cap-med{border-color:var(--sand);background:var(--gold-soft);box-shadow:0 0 0 1px var(--hair);color:var(--espresso);}
#result .cap-flow .cap-step.active .cap-med{background:var(--espresso);color:var(--cream);box-shadow:0 0 0 2px var(--gold-soft);}
#result .cap-flow .cap-step b{color:var(--ink);}
#result .cap-flow .cap-step small,#result .cap-flow .cap-note{color:var(--ink-faint);}
@media (min-width:880px){#result #planJourHost{grid-column:2;grid-row:1;padding:0;margin-top:0;align-self:start;}}

/* MVP — scène prioritaire wash day : le rituel remplace tout geste générique. */
#result .pdj-wash-priority{position:relative;overflow:hidden;padding:20px 18px;border:1px solid rgba(108,72,42,.08);border-radius:var(--radius-card);background:var(--cream-bright);box-shadow:var(--shadow-card);}
#result .pdj-wash-priority::before{content:"";position:absolute;top:0;left:20px;right:20px;height:2px;background:linear-gradient(90deg,transparent,var(--gold-lum),transparent);}
#result .pwp-k{font-size:var(--fs-11);font-weight:600;letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-deep);}
#result .pwp-t{margin:7px 0 6px;font-family:'Fraunces',serif;font-size:var(--fs-22);font-weight:500;line-height:1.2;color:var(--espresso);text-wrap:balance;}
#result .pwp-b{font-size:var(--fs-14);line-height:1.5;color:var(--ink-soft);}
#result .pwp-steps{margin-top:13px;border-top:1px solid var(--hair);}
#result .pwp-step{display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid var(--hair);}
#result .pwp-step i{font-family:'Fraunces',serif;font-size:var(--fs-15);font-style:normal;color:var(--gold-deep);}
#result .pwp-step b{font-size:var(--fs-13);font-weight:600;color:var(--espresso);}
#result .pwp-step span{font-size:var(--fs-11);color:var(--ink-faint);}
#result .pwp-go{width:100%;min-height:48px;margin-top:15px;}
#result .pwp-rescue{display:block;min-height:44px;margin:4px auto 0;padding:8px 6px;border:0;background:none;color:var(--gold-deep);font:600 var(--fs-12) 'Instrument Sans',sans-serif;cursor:pointer;}
#result .pwp-rescue:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;}
#result .pwp-note{margin:10px 0 0;font-family:'Fraunces',serif;font-size:var(--fs-12);font-style:italic;line-height:1.45;color:var(--ink-soft);}

/* ============ C8-α — ONBOARDING : Naya pose, sections Hers, les pourquoi, Tatiana présentée (14/07) ============ */
.onb-asks{display:flex;align-items:center;gap:9px;padding:8px 20px 0;}
.onb-asks img{width:26px;height:26px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1.5px rgba(182,130,63,.35);}
.onb-asks span{font-size:var(--fs-11);color:rgba(246,232,213,.55);}
.onb-asks b{color:rgba(246,232,213,.85);font-weight:600;}
.onb-asks i{font-style:italic;font-family:'Fraunces',serif;color:var(--gold-lum);}
.onb-chap{font-variant-numeric:tabular-nums;}
#onb .q-why{font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-12);color:rgba(246,232,213,.72);margin:-2px 0 12px;line-height:1.5;}
.onb-tatiana{display:flex;gap:11px;align-items:center;margin-top:12px;padding:12px 14px;background:rgba(246,232,213,.08);
  border:1px solid rgba(235,201,138,.28);border-radius:var(--radius-field);}
.ot-av{width:38px;height:38px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;
  background:linear-gradient(135deg,#8a5a36,#5e3d24);color:var(--gold-lum);font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-16);
  box-shadow:0 0 0 1.5px rgba(182,130,63,.35);}
.ot-tx{font-size:var(--fs-12);line-height:1.5;color:rgba(246,232,213,.75);}
.ot-tx b{color:var(--gold-lum);font-weight:600;}

/* ============ C8-β — LES ÉCRANS INTERCALÉS DE L'ONBOARDING (réassurance · ce qui t'attend), 14/07 ============ */
.obi{position:absolute;inset:0;z-index:40;display:flex;align-items:flex-end;
  background:linear-gradient(12deg,#1d1006 30%,#4a3018 100%);animation:obiIn .45s var(--ease-out) both;}
@keyframes obiIn{from{opacity:0;}to{opacity:1;}}
@media (prefers-reduced-motion:reduce){.obi{animation:none;}}
.obi-in{width:100%;padding:28px 24px 30px;}
.obi-k{font-size:var(--fs-10);letter-spacing:.24em;text-transform:uppercase;color:var(--gold-lum);font-weight:600;}
.obi-t{font-family:'Fraunces',serif;font-optical-sizing:auto;font-weight:430;font-size:30px;line-height:1.12;color:var(--cream);margin-top:10px;letter-spacing:-.015em;}
.obi-t i{font-style:italic;color:var(--gold-lum);}
.obi-nums{display:flex;gap:12px;margin-top:22px;}
.obi-cell{flex:1;text-align:center;padding:14px 4px;border-top:1px solid rgba(235,201,138,.25);border-bottom:1px solid rgba(235,201,138,.25);}
.obi-cell b{display:block;font-family:'Fraunces',serif;font-weight:500;font-size:27px;color:var(--gold-lum);font-variant-numeric:tabular-nums;}
.obi-cell span{display:block;font-size:var(--fs-10);color:rgba(246,232,213,.65);margin-top:4px;line-height:1.35;}
.obi-quote{font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-15);line-height:1.55;color:var(--cream);text-align:center;margin-top:20px;padding:0 6px;}
.obi-src{font-size:var(--fs-10);letter-spacing:.14em;text-transform:uppercase;color:rgba(246,232,213,.55);text-align:center;margin-top:7px;font-weight:600;}
.obi-steps{margin-top:20px;background:rgba(246,232,213,.07);border:1px solid rgba(235,201,138,.2);border-radius:var(--radius-field);padding:14px 15px;}
.obi-step{display:flex;gap:11px;align-items:baseline;padding:6px 0;font-size:var(--fs-13);line-height:1.5;color:rgba(246,232,213,.8);}
.obi-step>b{font-family:'Fraunces',serif;font-style:italic;font-weight:500;color:var(--gold-lum);}
.obi-st{color:var(--cream);font-weight:600;}
.obi-note{font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-12);color:rgba(246,232,213,.6);text-align:center;margin-top:16px;line-height:1.5;}
.obi-go{width:100%;margin-top:20px;}

/* ============ C8-γ — LE VOILE DE FABRICATION + LE VERDICT À TAGS (cérémonie du programme, 14/07) ============ */
.p0fab{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;justify-content:center;padding:34px 30px;
  background:linear-gradient(170deg,#241505 10%,#3A2410 90%);border-radius:inherit;transition:opacity .45s var(--ease-out);}
.p0fab.out{opacity:0;pointer-events:none;}
.p0fab-t{font-family:'Fraunces',serif;font-optical-sizing:auto;font-weight:430;font-size:26px;line-height:1.2;color:var(--cream);letter-spacing:-.015em;margin-bottom:24px;text-align:center;}
.p0fab-t i{font-style:italic;color:var(--gold-lum);}
.p0fab-row{display:flex;align-items:center;gap:12px;padding:9px 0;}
.p0fab-med{width:26px;height:26px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-size:11px;
  box-shadow:inset 0 0 0 1.4px rgba(235,201,138,.3);color:transparent;}
.p0fab-row.done .p0fab-med{background:linear-gradient(160deg,var(--gold),var(--gold-deep));box-shadow:none;color:#FFF7EA;}
.p0fab-tx{font-size:var(--fs-13);color:rgba(246,232,213,.5);line-height:1.4;transition:color .3s;}
.p0fab-row.done .p0fab-tx{color:var(--cream);}
.p0fab-bar{height:3px;border-radius:99px;background:rgba(246,232,213,.12);margin-top:22px;overflow:hidden;}
.p0fab-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold-deep),var(--gold-lum));transition:width .5s var(--ease-out);}
.prog0-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px;}
.p0tag{font-size:var(--fs-12);font-weight:500;border-radius:999px;padding:7px 12px;background:rgba(182,130,63,.08);color:var(--espresso);border:1px solid rgba(182,130,63,.3);}
.p0tag.n1{background:var(--gold-lum);color:#241505;font-weight:600;border-color:transparent;}

/* ============ PASSE EMIL KOWALSKI (14/07) — micro-interactions des écrans C8 + accueil ============ */
/* l'interstice entre en cascade (écran rare → le délice est permis), sort vite et doucement */
.obi.out{opacity:0;transition:opacity .18s var(--ease-out);pointer-events:none;}
.obi-in>*{opacity:0;transform:translateY(8px);animation:obiUp .3s var(--ease-out) forwards;}
.obi-in>*:nth-child(1){animation-delay:.05s}
.obi-in>*:nth-child(2){animation-delay:.1s}
.obi-in>*:nth-child(3){animation-delay:.16s}
.obi-in>*:nth-child(4){animation-delay:.22s}
.obi-in>*:nth-child(5){animation-delay:.28s}
@keyframes obiUp{to{opacity:1;transform:none;}}
/* la coche de fabrication naît, elle n'apparaît pas de nulle part */
.p0fab-row.done .p0fab-med{animation:medPop .22s var(--ease-out);}
@keyframes medPop{from{transform:scale(.6);}to{transform:scale(1);}}
/* tout ce qui se presse répond sous le doigt */
.pj-row:not(.calme):active,.pp-row:not(.done):active,.fs-row:not(.done):active{background:rgba(182,130,63,.07);transition:background .15s ease;}
.pdj-slim:active{background:rgba(182,130,63,.06);}
.pj-row,.pp-row,.fs-row,.pdj-slim{transition:background .15s ease;}
@media (prefers-reduced-motion:reduce){
  .obi-in>*{animation:none;opacity:1;transform:none;}
  .p0fab-row.done .p0fab-med{animation:none;}
}

/* ============ AUDIT EMIL — corrections haute-fréquence (14/07) ============ */
/* la nav répond au doigt : l'élément le plus tapé de l'app (jamais de scale sur le texte, juste l'icône) */
.nav button svg{transition:transform .1s var(--ease-out);}
.nav button:active svg{transform:scale(.9);}
/* la coche des options du quiz NAÎT (jamais depuis rien) — le quiz est rare, le délice est permis */
.opt[aria-pressed="true"] .mk,.opt.on .mk,.opt.sel .mk{animation:mkPop .2s var(--ease-out);}
@keyframes mkPop{from{transform:scale(.6);}to{transform:scale(1);}}
/* le filament du programme s'allume en douceur (exception width documentée : barres de progression) */
.cov-fil i{transition:width .6s var(--ease-out);}
@media (prefers-reduced-motion:reduce){
  .nav button svg{transition:none;}
  .opt .mk{animation:none !important;}
  .cov-fil i{transition:none;}
}

/* ============ C13 — LE DIAGNOSTIC PERSONNEL (daté · tes forces · ton objectif), 14/07 ============ */
.diag-date{font-size:var(--fs-10);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;text-align:center;margin:2px 0 10px;}
.diag-c13k{font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--sage-deep);font-weight:600;margin:16px 0 4px;}
.diag-force{display:flex;gap:12px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--hair);}
.diag-force:last-of-type{border-bottom:0;}
.diag-force-ic{width:32px;height:32px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;background:rgba(110,139,91,.13);color:var(--sage-deep);}
.diag-force-ic svg{width:15px;height:15px;}
.diag-force-tx b{display:block;font-size:var(--fs-13);font-weight:600;color:var(--espresso);}
.diag-force-tx span{display:block;font-size:var(--fs-12);line-height:1.45;color:var(--ink-soft);margin-top:1px;}
.diag-goal{margin-top:12px;padding:12px 13px;background:var(--cream-bright);border:1px solid rgba(182,130,63,.22);border-radius:var(--radius-field);display:flex;gap:11px;align-items:center;}
.diag-goal-ic{width:30px;height:30px;border-radius:50%;background:var(--gold-lum);display:grid;place-items:center;flex:0 0 auto;}
.diag-goal-ic svg{width:14px;height:14px;}
.diag-goal-tx{font-size:var(--fs-12);line-height:1.45;color:var(--ink-soft);}
.diag-goal-tx b{color:var(--espresso);font-weight:600;}

/* ============ C4 — LE VERDICT SIGNÉ (méthode Tatiana + indépendance), 14/07 ============ */
.scan-methode{margin:14px 0 0;background:var(--cream-bright);border:1px solid rgba(182,130,63,.25);border-radius:var(--radius-field);padding:13px 14px;}
.sm-h{display:flex;gap:11px;align-items:center;}
.sm-av{width:38px;height:38px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;
  background:linear-gradient(135deg,#8a5a36,#5e3d24);color:var(--gold-lum);font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-16);
  box-shadow:0 0 0 1.5px rgba(182,130,63,.35);}
.sm-tt b{display:block;font-size:var(--fs-13);font-weight:600;color:var(--espresso);}
.sm-tt span{display:block;font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-11);color:var(--ink-faint);margin-top:1px;line-height:1.4;}
.sm-sign{margin-top:6px;text-align:right;font-family:'Fraunces',serif;font-style:italic;font-weight:500;font-size:var(--fs-18);
  background:linear-gradient(104deg,var(--gold-deep) 8%,var(--gold) 40%,var(--gold-lum) 55%,var(--gold) 70%,var(--gold-deep) 94%);
  -webkit-background-clip:text;background-clip:text;color:transparent;transform:rotate(-2deg);transform-origin:right bottom;}
.scan-indep{margin:10px 0 0;text-align:center;font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-11);color:var(--ink-soft);line-height:1.5;}
.scan-indep b{font-style:normal;font-family:'Instrument Sans',sans-serif;color:var(--espresso);font-weight:600;}

/* C4 v2 — le colophon ferme la fiche : filet d'ouverture, respiration, plus rien ne pend */
.scan-methode{margin-top:18px;border-top:1px solid var(--hair);border-radius:0;border-left:0;border-right:0;border-bottom:0;background:none;padding:14px 2px 0;}
.scan-indep{margin:8px 0 4px;}

/* ============ C13 v2 — LE DIAGNOSTIC PREMIUM (retours Kevin 14/07 soir) ============ */
/* les métriques : plus de boîtes — une bande éditoriale entre filets, valeurs en Fraunces */
#diagSheet .metrics{display:flex;gap:0;margin:14px 0 4px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:12px 0;}
#diagSheet .metric{flex:1;background:none;border:0;box-shadow:none;border-radius:0;padding:2px 8px;text-align:center;position:relative;}
#diagSheet .metric+.metric{border-left:1px solid var(--hair);}
#diagSheet .metric .src{position:static;display:inline-block;font-size:var(--fs-11);letter-spacing:.18em;text-transform:uppercase;font-weight:700;background:none;box-shadow:none;padding:0;margin-bottom:3px;}
#diagSheet .metric .src.obs{color:var(--sage-deep);}
#diagSheet .metric .src.est{color:var(--ink-faint);}
#diagSheet .metric .v{font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-20);color:var(--espresso);letter-spacing:-.01em;}
#diagSheet .metric .l{font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--ink-faint);font-weight:600;margin-top:2px;}
#diagSheet .metric .m-more{display:block;font-size:var(--fs-11);color:var(--gold-deep);font-weight:500;margin-top:5px;}
/* la vignette texture devient un médaillon cerclé d'or (comme la maquette validée) */
#diagSheet .profcard-thumb{width:74px;height:74px;border-radius:50%;overflow:hidden;
  box-shadow:0 0 0 2.5px var(--cream-bright), 0 0 0 4px rgba(182,130,63,.4), 0 8px 20px -8px rgba(60,38,20,.35);}
/* gestes d'or : icônes au trait dans des pastilles rondes */
.gestes-or .go-ic--svg{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(182,130,63,.12);color:var(--gold-deep);flex:0 0 auto;}
.gestes-or .go-ic--svg svg{width:16px;height:16px;}
.gestes-or .go-ic--dot{color:var(--gold);font-weight:700;}

/* ============ C5 — L'ONGLET PRODUITS « MAISON DE BEAUTÉ » (maquette v2 validée, 14/07) ============ */
.pm-intro{margin:12px 0 18px;}
.pm-intro-k{font-size:var(--fs-11);font-weight:600;letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-deep);}
.pm-intro-t{max-width:14ch;margin:7px 0 6px;font-family:'Fraunces',serif;font-size:28px;font-weight:500;line-height:1.08;color:var(--espresso);text-wrap:balance;}
.pm-intro-p{max-width:42ch;font-size:var(--fs-14);line-height:1.5;color:var(--ink-soft);text-wrap:pretty;}
.pm-places{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px;}
.pm-place{display:flex;min-height:64px;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--hair);border-radius:var(--radius-field);background:var(--cream-bright);color:var(--ink);font-family:inherit;text-align:left;box-shadow:var(--shadow-soft);cursor:pointer;transition:transform var(--d-fast) var(--ease-out);}
.pm-place>svg{width:20px;height:20px;flex:0 0 auto;color:var(--gold-deep);}
.pm-place span,.pm-place b,.pm-place small{display:block;}
.pm-place b{font-size:var(--fs-13);}.pm-place small{margin-top:3px;color:var(--ink-faint);font-size:var(--fs-11);line-height:1.25;}
.pm-place:focus-visible,.pm-liste-back:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;}.pm-place:active{transform:scale(.98);}
.pm-star{position:relative;border-radius:18px;overflow:hidden;margin-bottom:18px;cursor:pointer;-webkit-tap-highlight-color:transparent;
  background:radial-gradient(120% 100% at 20% 0%,#E8CFA4 0%,#C9986C 55%,#9c6b3f 100%);box-shadow:0 14px 34px -14px rgba(90,58,28,.55);}
.pm-star-k{position:absolute;top:11px;left:13px;max-width:68%;font-size:var(--fs-11);font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#FFF7EA;
  background:rgba(33,19,9,.4);backdrop-filter:blur(4px);border-radius:999px;padding:5px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:3;}
.pm-heart{position:absolute;top:8px;right:8px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,247,234,.92);color:var(--mocha);
  display:grid;place-items:center;cursor:pointer;z-index:3;box-shadow:0 4px 10px rgba(60,38,20,.22);-webkit-tap-highlight-color:transparent;transition:transform .14s var(--ease-out);}
.pm-heart svg{width:14px;height:14px;}
.pm-heart.on{color:var(--terra);}
.pm-heart.on svg{fill:currentColor;}
.pm-heart:active{transform:scale(.9);}
.pm-star-stage{height:150px;display:grid;place-items:center;position:relative;}
.pm-prod{width:66px;height:100px;border-radius:11px;position:relative;z-index:2;display:block;}
.pm-prod::before{content:"";position:absolute;top:-11px;left:50%;transform:translateX(-50%);width:26px;height:13px;border-radius:5px 5px 0 0;background:#1d1006;}
.pm-prod::after{content:"";position:absolute;left:12%;right:12%;top:33%;height:27%;background:rgba(246,232,213,.88);border-radius:3px;}
.pm-prod--sm{width:50px;height:76px;border-radius:9px;}
.pm-prod--sm::before{width:20px;height:10px;top:-8px;}
.pm-star-sh{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);width:100px;height:14px;border-radius:50%;background:rgba(33,19,9,.3);filter:blur(7px);}
.pm-star-foot{background:rgba(28,16,7,.55);backdrop-filter:blur(8px);padding:11px 13px;display:flex;align-items:center;gap:12px;}
.pm-star-tx{flex:1;min-width:0;}
.pm-marque{display:block;font-size:var(--fs-11);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);}
.pm-star-foot .pm-marque{color:rgba(246,232,213,.6);}
.pm-star-nom{display:block;font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-15);color:#FFF7EA;margin-top:1px;}
.pm-star-why{display:block;font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-10);color:rgba(246,232,213,.72);margin-top:2px;}
.pm-star-prix{font-size:var(--fs-15);font-weight:600;color:var(--gold-lum);white-space:nowrap;}
.pm-sec-t{font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-18);color:var(--espresso);letter-spacing:-.01em;margin-top:6px;}
.pm-sec-t i{font-style:italic;color:var(--gold-deep);}
.pm-sec-s{font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-11);color:var(--ink-faint);margin:2px 0 10px;}
.pm-caro{display:flex;gap:11px;overflow-x:auto;margin:0 -18px 6px;padding:2px 18px 6px;scrollbar-width:none;}
.pm-caro::-webkit-scrollbar{display:none;}
.pm-tuile{flex:0 0 124px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.pm-tuile-im{position:relative;height:124px;border-radius:14px;display:grid;place-items:center;box-shadow:var(--shadow-soft);}
.pm-tuile-im .pm-heart{width:44px;height:44px;top:4px;right:4px;}
.pm-tuile-im .pm-heart svg{width:12px;height:12px;}
.pm-badge{position:absolute;top:7px;left:7px;font-size:var(--fs-11);font-weight:600;background:var(--cream-bright);color:var(--sage-deep);border-radius:999px;padding:3px 7px;box-shadow:var(--shadow-soft);z-index:3;}
.pm-badge::before{content:"✓ ";}
.pm-sh{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);width:60px;height:9px;border-radius:50%;background:rgba(60,38,20,.28);filter:blur(5px);}
.pm-tuile .pm-marque{margin-top:8px;}
.pm-nom{display:block;font-size:var(--fs-12);font-weight:500;color:var(--espresso);line-height:1.3;margin-top:1px;}
.pm-prix{font-size:var(--fs-12);font-weight:600;color:var(--gold-deep);margin-top:3px;}
.pm-row{display:flex;align-items:center;gap:12px;padding:10px 2px;border-bottom:1px solid var(--hair);cursor:pointer;-webkit-tap-highlight-color:transparent;min-height:44px;}
.pm-row:last-of-type{border-bottom:0;margin-bottom:14px;}
.pm-row-im{width:36px;height:46px;border-radius:8px;flex:0 0 auto;box-shadow:var(--shadow-soft);}
.pm-product-photo{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 8px rgba(33,19,9,.2));}
.pm-product-photo--star{position:relative;z-index:2;width:128px;height:128px;}
.pm-product-photo--tile{position:relative;z-index:2;width:92px;height:106px;}
.pm-row-im--photo{overflow:hidden;background:var(--cream-bright);}
.pm-row-im--photo .pm-product-photo{padding:3px;box-sizing:border-box;filter:none;}
.plc-product-photo,.shelf-product-photo{display:block;width:100%;height:100%;object-fit:contain;}
.plc-product-photo{max-width:34px;max-height:40px;margin:auto;filter:drop-shadow(0 3px 3px rgba(33,19,9,.18));}
.shelf-product-photo{filter:drop-shadow(0 5px 5px rgba(33,19,9,.18));}
.pm-row-tx{flex:1;min-width:0;}
.pm-row-badge{font-style:normal;font-size:var(--fs-11);font-weight:600;color:var(--sage-deep);}
.pm-chev{color:var(--gold-deep);}
.pm-placard-back,.pm-liste-back{display:none;min-height:44px;margin:0 0 12px;padding:8px 0;border:0;background:none;color:var(--gold-deep);font:600 var(--fs-13) 'Instrument Sans',sans-serif;cursor:pointer;}
#produits:not(.placard-focus) #placardHost{display:none;}
#produits:not(.liste-focus) #shortlistHost{display:none!important;}
#produits.placard-focus #produitsMaisonHost,#produits.placard-focus #shortlistHost,#produits.liste-focus #produitsMaisonHost,#produits.liste-focus #placardHost{display:none!important;}
#produits.placard-focus .pm-placard-back{display:block;}
#produits.liste-focus #shortlistHost{display:block!important;margin-top:0!important;}
#produits.liste-focus .pm-liste-back{display:block;}
#produits.placard-focus .content,#produits.liste-focus .content{padding-top:10px;}
.pm-placard-back:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;}
.pm-scan-help{margin:22px 0 8px;padding-top:15px;border-top:1px solid var(--hair);font-size:var(--fs-12);line-height:1.5;color:var(--ink-soft);}.pm-scan-help b{color:var(--ink);}
@media (min-width:880px){ #produitsMaisonHost{max-width:760px;} #produits.placard-focus .content,#produits.liste-focus .content{max-width:760px;} }
@media (prefers-reduced-motion:reduce){.pm-place{transition:none;}}

/* ============ C6 — L'ÉCOLE DE LA COURONNE (vitrine des fiches, zéro doublon — 14/07) ============ */
.conseils-ecole{cursor:pointer;-webkit-tap-highlight-color:transparent;background:linear-gradient(160deg,#2A1A0C,#211309);}
.conseils-ecole .conseils-cat{color:var(--gold-lum);}
.conseils-ecole p{color:var(--cream);}
.conseils-ecole .ec-go{color:var(--gold-soft);font-weight:600;}
.ec-mast{text-align:center;padding:4px 0 2px;}
.ec-k{font-size:var(--fs-10);letter-spacing:.26em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;}
.ec-t{font-family:'Fraunces',serif;font-optical-sizing:auto;font-weight:430;font-size:26px;color:var(--espresso);margin-top:8px;letter-spacing:-.015em;}
.ec-t i{font-style:italic;color:var(--gold-deep);}
.ec-s{font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-12);color:var(--ink-soft);margin-top:6px;line-height:1.5;}
.ec-orn{display:flex;align-items:center;gap:10px;margin:14px 10px 4px;}
.ec-orn i{flex:1;height:1px;background:var(--hair);}
.ec-orn b{font-size:7px;color:var(--gold);}
.ec-sec{font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-deep);font-weight:600;margin:18px 0 6px;}
.ec-101{border-bottom:1px solid var(--hair);}
.ec-101:last-of-type{border-bottom:0;}
.ec-101-h{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:none;border:0;
  font-family:inherit;padding:12px 2px;min-height:44px;cursor:pointer;-webkit-tap-highlight-color:transparent;text-align:left;}
.ec-101-h b{font-size:var(--fs-14);font-weight:600;color:var(--espresso);}
.ec-chev{color:var(--gold-deep);font-size:var(--fs-13);flex:0 0 auto;}
.ec-101-x{display:none;font-size:var(--fs-13);line-height:1.55;color:var(--ink-soft);padding:0 2px 13px;}
.ec-101.open .ec-101-x{display:block;}
.ec-guide{display:flex;align-items:center;gap:13px;width:100%;background:none;border:0;border-bottom:1px solid var(--hair);
  font-family:inherit;padding:11px 2px;min-height:52px;cursor:pointer;-webkit-tap-highlight-color:transparent;text-align:left;transition:background .15s ease;}
.ec-guide:active{background:rgba(182,130,63,.07);}
.ec-med{width:36px;height:36px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;background:rgba(182,130,63,.12);color:var(--gold-deep);}
.ec-med svg{width:16px;height:16px;}
.ec-guide-tx{flex:1;min-width:0;}
.ec-guide-tx b{display:block;font-size:var(--fs-14);font-weight:600;color:var(--espresso);}
.ec-guide-tx span{display:block;font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-11);color:var(--ink-faint);margin-top:1px;}
.ec-foot{text-align:center;font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-11);color:var(--ink-faint);padding:16px 10px 6px;line-height:1.5;}

/* ==================== C10 · LES LETTRES JALONS (maquette validée 15/07) ====================
   La papeterie .lt-* existante + 4 greffes actées : la ligne « nº · min de lecture » (Fabulous),
   le polaroïd épinglé et la pastille d'étape (Lovi), le constat en lignes de faits. */
.lt-meta{display:flex;justify-content:center;gap:8px;font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--ink-faint);font-weight:600;margin-top:4px;}
.lt-meta b{color:var(--gold-deep);font-weight:600;}
.lt-pola{width:196px;margin:20px auto 6px;background:#FFFDF8;padding:9px 9px 30px;position:relative;
  border:1px solid rgba(108,72,42,.12);border-radius:3px;transform:rotate(-2.2deg);
  box-shadow:0 10px 24px -10px rgba(58,35,18,.35), 0 2px 5px rgba(58,35,18,.12);}
.lt-pola img,.lt-pola .ph{display:block;width:100%;height:176px;object-fit:cover;border-radius:2px;background:linear-gradient(150deg,var(--caramel),var(--mocha));}
.lt-pola .ph{display:grid;place-items:center;color:rgba(255,247,234,.85);font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-13);}
.lt-pola-cap{position:absolute;left:0;right:0;bottom:7px;text-align:center;font-family:'Fraunces',serif;font-style:italic;font-size:12.5px;color:var(--ink-soft);}
.lt-clip{position:absolute;top:-13px;left:50%;transform:translateX(-50%) rotate(4deg);width:22px;height:34px;color:rgba(138,95,46,.75);}
.lt-clip svg{width:100%;height:100%;}
.lt-etape{display:flex;justify-content:center;margin:10px 0 4px;}
.lt-etape span{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-12);font-weight:600;color:var(--sage-deep);
  background:rgba(110,139,91,.12);border-radius:999px;padding:7px 14px;}
.lt-etape i svg{width:13px;height:13px;display:block;}
.lt-constat{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:14px 4px;margin:16px 0;}
.lt-constat-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-deep);font-weight:600;margin-bottom:8px;}
.lt-constat-l{font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-14);color:var(--espresso);padding:3px 0;line-height:1.55;}
/* la mécanique du J7 vit DANS la lettre : ses éléments respirent sur le papier */
.lt-paper .j7-q{font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-15);color:var(--espresso);margin:14px 0 10px;}
.lt-paper .j7-photo-cta{margin:8px auto 4px;display:block;width:196px;height:auto;min-height:96px;padding:18px 14px;
  border:1.5px dashed rgba(182,130,63,.45);border-radius:12px;background:rgba(255,253,248,.7);cursor:pointer;font-family:inherit;}
.lt-paper .j7-photo-cta b{display:block;font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-14);color:var(--gold-deep);}
.lt-paper .j7-photo-cta span{display:block;font-size:var(--fs-12);color:var(--ink-faint);margin-top:4px;}
/* le halo d'arrivée sur « Ma liste » (bug 15/07 : le regard partait sur la barre scan) */
.sl-flash{animation:slFlash 1.4s var(--ease-out) both;}
@keyframes slFlash{0%{box-shadow:0 0 0 3px rgba(182,130,63,.55);}100%{box-shadow:0 0 0 3px rgba(182,130,63,0);}}
@media (prefers-reduced-motion:reduce){.sl-flash{animation:none;}}

/* ==================== C-VOYAGE · LA BANDE DES 30 JOURS (maquette v3 validée 15/07) ====================
   Mécanisme Lovi (day-strip qui PILOTE la page), différences assumées : jamais de cadenas,
   jamais de reproche, données 100 % moteurs (programme, krownNextWash, carnet, jalons). */
.voyage{background:var(--cream);padding:14px 0 4px;border-bottom:1px solid var(--hair);}
.voy-head{display:flex;align-items:baseline;justify-content:space-between;padding:0 20px 10px;}
.voy-k{font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-deep);font-weight:600;}
.voy-n{font-family:inherit;background:none;border:0;font-size:var(--fs-12);color:var(--ink-faint);font-weight:500;cursor:pointer;padding:4px 0;min-height:auto;}
.voy-rail{display:flex;gap:14px;overflow-x:auto;padding:2px 20px 14px;scrollbar-width:none;align-items:flex-start;scroll-behavior:smooth;}
.voy-rail::-webkit-scrollbar{display:none;}
.voy-day{flex:0 0 auto;text-align:center;width:38px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.voy-dot{width:34px;height:34px;margin:0 auto;border-radius:50%;display:grid;place-items:center;
  font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-13);color:var(--ink-faint);
  box-shadow:inset 0 0 0 1.5px rgba(182,130,63,.28);background:transparent;transition:transform .15s var(--ease-out);}
.voy-day:active .voy-dot{transform:scale(.94);}
.voy-day figcaption{font-size:var(--fs-11);color:var(--ink-faint);margin-top:5px;font-weight:600;letter-spacing:.04em;min-height:12px;}

/* TASK-020 — les contrôles tactiles gardent leur dessin compact, jamais leur zone d'action. */
.step-info,.prod-x,.prod-grip,.sig-info,.cmp-banner-x{min-width:44px;min-height:44px;}
.shot.add .im{min-width:44px;min-height:44px;}
.voy-day.fait .voy-dot{background:rgba(182,130,63,.16);box-shadow:none;color:var(--gold-deep);}
.voy-day.fait .voy-dot svg{width:15px;height:15px;}
.voy-day.passe .voy-dot{box-shadow:inset 0 0 0 1.5px rgba(108,72,42,.14);color:rgba(107,87,66,.4);}
.voy-day.now .voy-dot{width:44px;height:44px;background:linear-gradient(160deg,var(--gold),var(--gold-deep));
  color:#FFF7EA;font-size:var(--fs-15);box-shadow:0 6px 16px -6px rgba(138,95,46,.55);}
.voy-day.now{width:48px;}
.voy-day.now figcaption{color:var(--gold-deep);}
.voy-day.now.sel .voy-dot svg{width:18px;height:18px;color:#FFF7EA;}
.voy-day.jalon .voy-dot{box-shadow:inset 0 0 0 1.5px rgba(182,130,63,.55);color:var(--gold-deep);}
.voy-day.jalon .voy-dot svg{width:16px;height:16px;}
.voy-day.jalon.fait .voy-dot{background:rgba(182,130,63,.16);box-shadow:none;}
.voy-day.jalon figcaption{color:var(--gold-deep);}
.voy-day.evt .voy-dot{box-shadow:inset 0 0 0 1.5px rgba(182,130,63,.4);color:var(--gold-deep);}
.voy-day.evt .voy-dot svg{width:16px;height:16px;}
.voy-day.evt figcaption{color:var(--ink-soft);}
.voy-day.washd .voy-dot{background:rgba(110,139,91,.14);box-shadow:none;color:var(--sage-deep);}
.voy-day.washd figcaption{color:var(--sage-deep);font-weight:700;}
.voy-day.washd.now .voy-dot,.voy-day.washd.sel .voy-dot{background:linear-gradient(160deg,var(--sage-deep),#3d5433);color:#FFF7EA;}
.voy-path{height:3px;border-radius:99px;background:rgba(182,130,63,.15);margin:0 20px 12px;overflow:hidden;}
.voy-path i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-lum));border-radius:99px;transition:width .4s var(--ease-out);}
/* le panneau du jour sélectionné (futur = aperçu · passé = récap carnet) */
.voy-jr{padding:4px 20px 14px;}
.voy-jr-date{font-size:var(--fs-10);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--gold-deep);font-weight:600;margin:6px 0 2px;}
.voy-jr-item{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid var(--hair);}
.voy-jr-check{width:30px;height:30px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;box-shadow:inset 0 0 0 1.8px rgba(182,130,63,.4);color:transparent;}
.voy-jr-item.done .voy-jr-check{background:linear-gradient(160deg,var(--gold),var(--gold-deep));box-shadow:none;color:#FFF7EA;}
.voy-jr-check svg{width:15px;height:15px;}
.voy-jr-tx b{display:block;font-size:var(--fs-14);font-weight:600;color:var(--espresso);}
.voy-jr-tx span{display:block;font-size:var(--fs-12);color:var(--ink-faint);margin-top:1px;}
.voy-jr-item em{margin-left:auto;font-style:normal;font-size:var(--fs-12);color:var(--gold-deep);font-weight:600;white-space:nowrap;}
.voy-jr-mood{display:flex;align-items:center;gap:10px;padding:13px 0 3px;}
.voy-jr-mood i{width:34px;height:34px;border-radius:50%;background:var(--cream-bright);box-shadow:inset 0 0 0 1px rgba(182,130,63,.3);display:grid;place-items:center;font-style:normal;font-size:16px;flex:0 0 auto;}
.voy-jr-mood span{font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-13);color:var(--ink-soft);}
.voy-jr-note{font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-12);color:var(--ink-faint);padding:10px 0 2px;line-height:1.55;}
.voy-back{display:block;margin:12px auto 0;font-family:inherit;background:none;border:0;font-size:var(--fs-13);font-weight:600;color:var(--gold-deep);cursor:pointer;padding:8px 12px;min-height:44px;}
@media (prefers-reduced-motion:reduce){.voy-rail{scroll-behavior:auto;}.voy-dot{transition:none;}}

/* TASK-024A — garde finale : une frise temporelle reste un flux, pas une carte. */
#progres #jalonsHost > .card{
  margin:0;
  padding:28px 2px;
  background:transparent;
  border:0;
  border-top:1px solid var(--hair);
  border-radius:0;
  box-shadow:none;
}

/* TASK-024A — haut de « Mes cheveux » : un objet dense, puis des faits ouverts. */
#progres .content > .card.pg-etat{
  margin:0;
  padding:26px 2px;
  background:transparent;
  border:0;
  border-bottom:1px solid var(--hair);
  border-radius:0;
  box-shadow:none;
}
#progres .pg-etat .pgc-title{
  margin-bottom:12px;
  font-family:'Fraunces',serif;
  font-size:var(--fs-20);
  font-weight:500;
  line-height:1.2;
  text-wrap:balance;
}
#progres .pg-etat .ac-stat{
  padding-right:2px;
  padding-left:2px;
}

/* Une projection se lit : seul son verrou/action conserve une surface contenue. */
#progres #glimpseHost{
  margin:0;
  padding:28px 2px;
  background:transparent;
  border:0;
  border-top:1px solid var(--hair);
  border-radius:0;
  box-shadow:none;
}
#progres #glimpseHost .tf-lbl{
  font-family:'Fraunces',serif;
  font-size:var(--fs-20);
  font-weight:500;
}

/* La voix et la conclusion appartiennent au chapitre, sans cartes imbriquées. */
#progres #histoireHost .hist-naya{
  padding:14px 0 0 14px;
  background:transparent;
  border-left:2px solid var(--gold-soft);
  border-radius:0;
}
#progres #histoireHost .hist-mot{
  padding:12px 0 0;
  background:transparent;
  border-radius:0;
}
#progres #histoireHost .hist-conseil{
  padding:14px 0 0;
  background:transparent;
  border-top:1px solid var(--hair);
  border-radius:0;
}
#progres #courbeHost .facts-empty-actions .btn:only-child{
  flex:none;
  width:min(100%,280px);
  min-height:48px;
}
