/* ==========================================================================
   CORNER — Feuille de style de l'application (refonte 28/09/2026)
   --------------------------------------------------------------------------
   Direction visuelle : calquée sur le langage de reakly.com, demandé
   explicitement par David ("fais vraiment comme Reakly") :
     - noir & blanc (encre #111110 / papier #FFFFFF / papier-2 #F4F3EF),
       quelques touches de couleur uniquement sur de petites tuiles d'icône,
       des points et des tendances (vert = hausse, rouge = baisse) ;
     - Schibsted Grotesk (titres, boutons), Inter (texte), Instrument Serif
       italique (mot d'accent dans un titre), JetBrains Mono (surtitres,
       chiffres secondaires, étiquettes) ;
     - "scènes" grises arrondies qui contiennent des cartes blanches ;
     - boutons pilules noirs avec ombre portée longue et douce.
   Remplace entièrement l'ancien bloc <style> "@layer legacy" d'index.html.
   Non encapsulé dans une couche : gagne sur css/tokens.css (couche tokens).
   Toutes les couleurs viennent des tokens (css/tokens.css).
   ========================================================================== */

:root{
  --ink: var(--foreground);
  --ink-soft: var(--muted-foreground);
  --ink-faint: var(--subtle-foreground);
  --paper: var(--background);
  --paper-2: var(--stone-100);
  --paper-3: var(--stone-200);
  --line: var(--border);
  --line-soft: #EEEDE7;
  --night: var(--night-950);
  --on-night: var(--stone-100);
  --on-night-soft: rgb(244 243 239 / 0.62);
  --on-night-line: rgb(244 243 239 / 0.12);
  --up: var(--sage-500);
  --down: var(--clay-600);

  /* Anciens noms encore lus par des styles inline dans le JS */
  --bg: var(--background);
  --surface: var(--card);
  --surface-2: var(--stone-100);
  --paper-dim: var(--stone-700);
  --faint: var(--subtle-foreground);
  --line-strong: var(--border-strong);
  --ember: var(--destructive);
  --mint: var(--sage-500);
  --on-accent: var(--primary-foreground);
  --dom-sport: var(--domain-sport);
  --dom-argent: var(--domain-money);
  --dom-mindset: var(--domain-mindset);
  --dom-creatif: var(--domain-creative);
  --dom-carriere: var(--domain-career);
  --dom-autre: var(--domain-other);
  --display: var(--font-display);
  --body: var(--font-sans);
  --mono: var(--font-mono);
  --serif: var(--font-serif);
  --safe-b: env(safe-area-inset-bottom, 0px);
  --safe-t: env(safe-area-inset-top, 0px);

  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 22px;
  --r-xl: 30px;
  --gutter: 16px;
  --sidebar-w: 248px;
}

/* ---------------------------------------------------------------- base */
*,*::before,*::after{box-sizing:border-box;}
html{color-scheme:light;-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-size:15px;line-height:1.5;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overscroll-behavior-y:none;
}
img,svg{max-width:100%;}
[hidden]{display:none!important;}
button,input,textarea,select{font:inherit;color:inherit;}
button{-webkit-tap-highlight-color:transparent;}
a{color:inherit;}
p{margin:0;}
.ic{display:inline-flex;line-height:0;}
.ic svg{width:1em;height:1em;display:block;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px;}
::selection{background:var(--ink);color:var(--paper);}
.serif{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0;}
.mono{font-family:var(--mono);}
.bg-decor{display:none;}

/* ------------------------------------------------------------- typography */
.eyebrow,.hero-eyebrow{
  display:block;font-family:var(--mono);font-weight:400;font-size:11.5px;line-height:1.4;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px;
}
h1{
  font-family:var(--display);font-weight:720;font-size:30px;line-height:1.08;
  letter-spacing:-0.02em;margin:0 0 6px;color:var(--ink);
}
h1 span{font-family:var(--display);font-weight:600;letter-spacing:-0.01em;}
h2{
  font-family:var(--display);font-weight:650;font-size:15.5px;line-height:1.3;
  letter-spacing:-0.005em;margin:0;color:var(--ink);
}
h3{font-family:var(--display);font-weight:650;font-size:15px;margin:0;}
.sub{color:var(--ink-soft);font-size:14.5px;line-height:1.5;margin:0 0 4px;max-width:46ch;}
.insight{font-size:14px;color:var(--ink-soft);}
.corner-line{color:var(--ink-soft);font-size:13px;}
.empty{color:var(--ink-soft);font-size:13.5px;}
.empty-cta{padding:28px 8px;text-align:center;}
.empty-cta p{margin-bottom:16px;}

/* ------------------------------------------------------------- app shell */
.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;}
#views{flex:1;width:100%;max-width:640px;margin:0 auto;padding:calc(72px + var(--safe-t)) var(--gutter) calc(112px + var(--safe-b));}
.view{animation:c-fade .35s var(--ease-out);}
@keyframes c-fade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

.topbar{
  position:fixed;top:0;left:0;right:0;z-index:40;
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:calc(12px + var(--safe-t)) var(--gutter) 10px;
  background:rgb(255 255 255 / 0.86);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
}
.topbar-left{display:flex;align-items:center;gap:10px;}
.topbar-right{display:flex;align-items:center;gap:8px;}
.brand{display:inline-flex;align-items:center;gap:8px;font-family:var(--display);font-weight:720;font-size:19px;letter-spacing:-0.02em;color:var(--ink);text-decoration:none;}
.brand-mark{width:22px;height:22px;flex-shrink:0;color:var(--ink);}
.brand-mark svg{width:100%;height:100%;display:block;}
.icon-btn{
  width:40px;height:40px;border-radius:999px;border:1px solid var(--line);background:var(--paper);
  color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;
  transition:background var(--duration-fast) var(--ease-standard);
}
.icon-btn:hover{background:var(--paper-2);}
.icon-btn .ic svg{width:18px;height:18px;}
.topbar-avatar{
  width:40px;height:40px;border-radius:999px;border:none;background:var(--ink);color:var(--paper);
  font-family:var(--display);font-weight:650;font-size:13px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
}
.bell-btn{position:relative;}
.bell-dot{position:absolute;top:8px;right:9px;width:7px;height:7px;border-radius:50%;background:var(--down);border:1.5px solid var(--paper);}

/* ---- navigation : barre flottante (mobile) / barre latérale (desktop) */
.tabbar{
  position:fixed;z-index:60;left:12px;right:12px;bottom:calc(10px + var(--safe-b));
  max-width:520px;margin:0 auto;
  display:flex;justify-content:space-between;gap:2px;padding:6px;
  background:rgb(255 255 255 / 0.9);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
  border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow-lg);
}
.sidebar-brand,.nav-group,.sidebar-foot{display:none;}
.tab{
  flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  height:52px;border:none;border-radius:999px;background:transparent;color:var(--ink-soft);
  font-family:var(--body);font-size:10.5px;font-weight:500;letter-spacing:0;cursor:pointer;padding:0 4px;
  transition:background var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard);
}
.tab .tab-ic{font-size:19px;}
.tab:hover{color:var(--ink);}
.tab.active{background:var(--ink);color:var(--paper);}
.tab.active .tab-ic{color:var(--paper);}

/* ---- bandeau mode démo */
.demo-bar{
  position:sticky;top:0;z-index:70;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:calc(8px + var(--safe-t)) var(--gutter) 8px;background:var(--ink);color:var(--on-night);
}
.demo-bar-text{font-size:12.5px;line-height:1.35;color:var(--on-night-soft);}
.demo-bar-text b{color:var(--on-night);font-weight:600;}
.demo-bar-long{}
@media (max-width:479px){ .demo-bar-long{display:none;} }
.demo-bar-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--sage-400);margin-right:7px;vertical-align:1px;}
.demo-bar button{
  flex-shrink:0;border:none;border-radius:999px;background:var(--paper);color:var(--ink);
  font-family:var(--display);font-weight:650;font-size:13px;padding:9px 14px;cursor:pointer;white-space:nowrap;
}
.demo-bar .demo-quit{background:transparent;color:var(--on-night-soft);padding:9px 6px;font-family:var(--body);font-weight:500;}
body.is-demo .topbar{top:52px;}

@media (min-width:1024px){
  body.app-on{padding-left:var(--sidebar-w);}
  #views{max-width:1120px;padding:40px 40px 64px;}
  .topbar{display:none;}
  .topbar-left .brand{display:none;}
  body.is-demo .topbar{top:auto;}
  .demo-bar{padding:10px 40px;}
  .tabbar{
    left:0;top:0;bottom:0;right:auto;width:var(--sidebar-w);max-width:none;margin:0;
    flex-direction:column;justify-content:flex-start;align-items:stretch;gap:2px;
    padding:22px 14px 16px;border-radius:0;border:none;border-right:1px solid var(--line);
    background:var(--stone-50);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;
  }
  .sidebar-brand{display:flex;align-items:center;gap:8px;padding:4px 10px 22px;font-family:var(--display);font-weight:720;font-size:19px;letter-spacing:-0.02em;}
  .nav-group{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);padding:16px 12px 6px;}
  .tab{
    flex:none;flex-direction:row;justify-content:flex-start;gap:11px;height:40px;padding:0 12px;
    border-radius:12px;font-size:14px;font-weight:500;color:var(--ink-soft);border:1px solid transparent;
  }
  .tab .tab-ic{font-size:17px;}
  .tab:hover{background:var(--paper-2);color:var(--ink);}
  .tab.active{background:var(--paper);color:var(--ink);border-color:var(--line);box-shadow:var(--shadow-sm);font-weight:600;}
  .tab.active .tab-ic{color:var(--ink);}
  .sidebar-foot{display:flex;flex-direction:column;gap:4px;margin-top:auto;padding-top:14px;border-top:1px solid var(--line);}
  .sidebar-user{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;border:none;background:transparent;cursor:pointer;text-align:left;width:100%;}
  .sidebar-user:hover{background:var(--paper-2);}
  .sidebar-user-av{width:30px;height:30px;border-radius:999px;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:650;font-size:11.5px;flex-shrink:0;}
  .sidebar-user-name{font-size:13.5px;font-weight:600;line-height:1.2;}
  .sidebar-user-sub{font-size:11.5px;color:var(--ink-soft);}
  .sidebar-link{display:flex;align-items:center;gap:10px;padding:8px 12px;border:none;background:transparent;border-radius:10px;color:var(--ink-soft);font-size:13px;cursor:pointer;text-align:left;}
  .sidebar-link:hover{background:var(--paper-2);color:var(--ink);}
  .sidebar-link .ic svg{width:15px;height:15px;}
}

/* ---------------------------------------------------------- page headers */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:6px 0 18px;}
.page-head h1{margin:0;}
.page-head .sub{margin-top:6px;}

/* ------------------------------------------------ scènes & cartes (Reakly) */
/* .section = la "scène" grise arrondie qui contient des cartes blanches. */
.view .section{
  background:var(--paper-2);border:none;border-radius:var(--r-lg);
  padding:16px;margin-top:14px;
}
.view .section:first-child{margin-top:0;}
.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;min-height:28px;}
.section-head h2{display:flex;align-items:center;gap:8px;}
.section-head h2 .ic svg{width:15px;height:15px;color:var(--ink-soft);}
.round-badge,.stage-tag{
  display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:11px;font-weight:500;
  color:var(--ink-soft);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:3px 9px;white-space:nowrap;
}
.count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:20px;padding:0 7px;border-radius:999px;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:10.5px;font-weight:600;}

.panel,.plan-card,.draft-plan,.goal-limit-card,.upgrade-nudge,.coach-entry{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:var(--shadow-md);
}
.panel{padding:18px;}
.view .section.panel{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-md);padding:20px;}
.panel-dark,.plan-card.panel-dark{
  background:var(--ink);color:var(--on-night);border:none;border-radius:var(--r-lg);
  box-shadow:0 18px 38px rgb(17 17 16 / 0.22);padding:18px;
}
.plan-card{padding:16px;margin-bottom:10px;}
.stage-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);}

/* --------------------------------------------------------------- buttons */
button.action,.btn-primary{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  width:100%;min-height:52px;padding:0 24px;border:none;border-radius:999px;cursor:pointer;
  background:var(--ink);color:var(--paper);
  font-family:var(--display);font-weight:650;font-size:14.5px;letter-spacing:0;text-decoration:none;
  box-shadow:var(--shadow-cta);transition:transform var(--duration-fast) var(--ease-standard),background var(--duration-fast);
}
button.action:hover,.btn-primary:hover{background:var(--ink-700);}
button.action:active,.btn-primary:active{transform:scale(.985);}
button.action:disabled{background:var(--paper-3);color:var(--ink-faint);box-shadow:none;cursor:default;transform:none;}
button.action.ghost,.btn-ghost{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 22px;border-radius:999px;cursor:pointer;
  background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:none;
  font-family:var(--display);font-weight:650;font-size:14.5px;text-decoration:none;
}
button.action.ghost:hover,.btn-ghost:hover{background:var(--paper-2);}
button.action .ic svg,.btn-primary .ic svg,.btn-ghost .ic svg,button.action > svg,.btn-primary > svg{width:16px;height:16px;flex-shrink:0;}
.goal-cta{width:auto;margin-top:14px;min-height:46px;}
button.link{
  display:inline-flex;align-items:center;gap:5px;background:none;border:none;padding:6px 0;cursor:pointer;
  font-family:var(--body);font-size:13.5px;font-weight:600;color:var(--ink);
}
button.link:hover{text-decoration:underline;text-underline-offset:3px;}
button.link.muted{color:var(--ink-soft);font-weight:500;}
button.link .ic svg{width:13px;height:13px;}
.pill-btn{
  display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px;border-radius:999px;cursor:pointer;
  border:1px solid var(--line);background:var(--paper);color:var(--ink);font-family:var(--body);font-size:13px;font-weight:600;white-space:nowrap;
}
.pill-btn:hover{background:var(--paper-2);}
.pill-btn .ic svg{width:15px;height:15px;}
.pill-btn.dark{background:var(--ink);color:var(--paper);border-color:var(--ink);}

button.chip{
  display:inline-flex;align-items:center;gap:6px;padding:9px 15px;border-radius:999px;cursor:pointer;
  border:1px solid var(--line);background:var(--paper);color:var(--ink);font-size:13.5px;font-weight:500;
  transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast);
}
button.chip:hover{border-color:var(--border-strong);}
button.chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.chip-wrap{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}

.seg,.seg-tabs{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:999px;background:var(--paper-2);border:1px solid var(--line);}
.seg-tabs{display:flex;margin:4px 0 14px;}
.seg button,.seg-tab{
  border:none;background:transparent;border-radius:999px;padding:7px 13px;cursor:pointer;
  font-family:var(--mono);font-size:11.5px;font-weight:500;color:var(--ink-soft);flex:1;white-space:nowrap;
}
.seg button.on,.seg-tab.on{background:var(--ink);color:var(--paper);}

/* flex-wrap (30/09) : echelle passee de 1-5 a 1-10 (David), 10 boutons
   ne tiennent plus sur une seule ligne en largeur mobile — 5 par ligne. */
.mood-row{display:flex;gap:6px;flex-wrap:wrap;}
.mood-btn{
  flex:1 1 18%;min-width:38px;height:46px;border-radius:14px;border:1px solid var(--line);background:var(--paper);cursor:pointer;
  font-family:var(--mono);font-size:14px;color:var(--ink-soft);
}
.mood-btn.active{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:600;}

.toggle{width:44px;height:26px;border-radius:99px;background:var(--paper-3);border:1px solid var(--line);cursor:pointer;position:relative;flex-shrink:0;padding:0;}
.toggle::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--paper);box-shadow:var(--shadow-sm);transition:transform .2s var(--ease-standard);}
.toggle.on{background:var(--ink);border-color:var(--ink);}
.toggle.on::after{transform:translateX(18px);}

/* ----------------------------------------------------------------- forms */
.field-row{display:flex;flex-direction:column;gap:7px;margin-bottom:14px;}
.field-row:last-child{margin-bottom:0;}
label,.field-label{font-family:var(--mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);}
input[type=number],input[type=text],input[type=date],input[type=time],input[type=email],input[type=password],textarea,select{
  width:100%;background:var(--paper);border:1px solid var(--line);border-radius:14px;
  /* 16px minimum (David 03/10, "l'app est penchee et bouge" sur mobile) :
     sous 16px, iOS Safari zoome automatiquement des qu'on touche un champ
     (prenom, email, mot de passe...) et la page reste zoomee et decalee
     sur les ecrans suivants (questions), qui glissent alors au doigt. */
  color:var(--ink);font-family:var(--body);font-size:16px;padding:12px 14px;min-height:48px;
  transition:border-color var(--duration-fast),box-shadow var(--duration-fast);
}
input::placeholder,textarea::placeholder{color:var(--ink-faint);}
input[type=number]{font-family:var(--mono);}
textarea{resize:vertical;min-height:84px;line-height:1.45;}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px rgb(17 17 16 / 0.06);}
input[type=checkbox]{accent-color:var(--ink);width:17px;height:17px;}
/* afficher/masquer le mot de passe (David 05/10) */
.pw-wrap{position:relative;}
.pw-wrap input{padding-right:46px;}
.pw-toggle{
  position:absolute;right:5px;top:50%;transform:translateY(-50%);
  width:38px;height:38px;border-radius:10px;border:none;background:transparent;
  color:var(--ink-soft);display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard);
}
.pw-toggle:hover{background:var(--paper-2);color:var(--ink);}
.pw-toggle .ic svg{width:19px;height:19px;}


/* ------------------------------------------------------------- data bits */
.bar-track{height:6px;border-radius:99px;background:var(--paper-3);overflow:hidden;}
.bar-fill{height:100%;border-radius:99px;background:var(--ink);transition:width .6s var(--ease-out);}
.dom-bar-fill{background:var(--ink);}
.dom-badge{
  display:inline-flex;align-items:center;justify-content:center;border-radius:12px;flex-shrink:0;
  background:color-mix(in srgb, var(--dom-c, var(--ink-soft)) 12%, white);color:var(--dom-c, var(--ink-soft));
}
.dom-badge svg{width:50%;height:50%;}
.dom-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;font-weight:500;padding:3px 9px;border-radius:99px;background:var(--paper);border:1px solid var(--line);color:var(--ink-soft);}
.dom-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dom-c, var(--ink-soft));}
.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ink-soft);flex-shrink:0;}
.tile{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:11px;flex-shrink:0;background:var(--ink);color:var(--paper);}
.tile svg{width:17px;height:17px;}
.tile.green{background:var(--tint-green);color:var(--sage-500);}
.tile.blue{background:var(--tint-blue);color:var(--slate-400);}
.tile.violet{background:var(--tint-violet);color:var(--violet-400);}
.tile.amber{background:var(--tint-amber);color:var(--amber-700);}
.tile.rose{background:var(--tint-rose);color:var(--rose-400);}
.tile.stone{background:var(--paper-2);color:var(--ink);}
.delta{font-family:var(--mono);font-size:11.5px;font-weight:600;}
.delta.up{color:var(--up);}
.delta.down{color:var(--down);}
.delta.flat{color:var(--ink-soft);}
.delta-note{font-family:var(--mono);font-size:11px;color:var(--ink-soft);}

/* ================================================================ HOME */
.dash-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:4px 0 18px;}
.dash-title{font-size:32px;margin:0;}
.dash-sub{color:var(--ink-soft);font-size:14.5px;margin-top:6px;}
.dash-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.dash-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;}
.dash-main,.dash-side{display:flex;flex-direction:column;gap:14px;min-width:0;}
.dash-main > .section,.dash-side > .section,.dash-main > .panel-dark{margin-top:0;}

.kpi-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.kpi{background:var(--paper-2);border-radius:var(--r-lg);padding:6px;display:flex;flex-direction:column;min-width:0;}
.kpi-head{display:flex;align-items:center;gap:6px;padding:8px 8px 9px;font-size:12px;font-weight:600;color:var(--ink);min-width:0;}
.kpi-head .ic svg{width:13px;height:13px;color:var(--ink-soft);}
.kpi-head span.kpi-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.kpi-body{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px;flex:1;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow-sm);}
.kpi-val{font-family:var(--display);font-weight:720;font-size:28px;line-height:1;letter-spacing:-0.02em;}
.kpi-val small{font-size:13px;font-weight:600;color:var(--ink-soft);letter-spacing:0;margin-left:2px;}
.kpi-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:6px;margin-top:auto;}
.kpi-foot .delta-note{line-height:1.3;}
.spark{width:64px;height:24px;flex-shrink:0;}
.week-dots{display:flex;gap:4px;margin-top:auto;}
.week-dots i{width:9px;height:9px;border-radius:3px;background:var(--paper-3);display:block;}
.week-dots i.on{background:var(--ink);}
.week-dots i.today{outline:1.5px solid var(--ink);outline-offset:1px;}
@media (max-width:420px){
  .kpi-row{gap:8px;}
  .kpi-head{padding:7px 6px 8px;font-size:11px;}
  .kpi-body{padding:10px;}
  .kpi-val{font-size:24px;}
  .spark{display:none;}
}

.next-card{display:flex;align-items:center;gap:14px;width:100%;text-align:left;cursor:pointer;border:none;font:inherit;}
.next-card .next-eyebrow{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--on-night-soft);margin-bottom:4px;}
.next-card .next-title{display:block;font-family:var(--display);font-weight:650;font-size:17px;line-height:1.25;color:var(--on-night);}
.next-card .next-meta{display:block;font-size:12.5px;color:var(--on-night-soft);margin-top:3px;}
.next-card .next-go{width:40px;height:40px;border-radius:999px;background:var(--paper);color:var(--ink);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.next-card .next-go svg{width:16px;height:16px;}
.next-card .dom-badge{background:rgb(255 255 255 / 0.1);}

.chart-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:16px;box-shadow:var(--shadow-sm);}
.chart-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap;}
.chart-top .kpi-val{font-size:30px;}
.chart-legend{display:flex;gap:12px;font-family:var(--mono);font-size:11px;color:var(--ink-soft);}
.chart-legend span{display:inline-flex;align-items:center;gap:6px;}
.chart-legend i{width:8px;height:8px;border-radius:2px;display:inline-block;}
.bars{display:flex;align-items:flex-end;gap:6px;height:150px;border-bottom:1px dashed var(--line);position:relative;padding-top:6px;}
.bars::before{content:"";position:absolute;left:0;right:0;top:40%;border-top:1px dashed var(--line-soft);}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-end;height:100%;min-width:0;position:relative;z-index:1;}
.bar-col b{display:block;border-radius:8px 8px 3px 3px;background:var(--paper-3);min-height:3px;transition:height .6s var(--ease-out);}
.bar-col.today b{background:var(--ink);}
.bar-col.empty b{background:var(--line-soft);}
.bar-labels{display:flex;gap:6px;margin-top:8px;}
.bar-labels span{flex:1;text-align:center;font-family:var(--mono);font-size:10.5px;color:var(--ink-soft);min-width:0;overflow:hidden;white-space:nowrap;}
.bar-labels span.today{color:var(--ink);font-weight:600;}
.chart-empty{font-size:13px;color:var(--ink-soft);padding:6px 0 2px;}

.goal-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.goal-card{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;cursor:pointer;
  display:flex;flex-direction:column;gap:8px;min-width:0;box-shadow:var(--shadow-sm);text-align:left;font:inherit;color:inherit;
  transition:transform var(--duration-fast),box-shadow var(--duration-base);
}
.goal-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);}
.goal-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.goal-card-pct{font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--ink);}
.goal-card-title{font-family:var(--display);font-weight:650;font-size:14.5px;line-height:1.28;}
.goal-card-meta{font-family:var(--mono);font-size:11px;color:var(--ink-soft);}

.todo{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);overflow:hidden;}
.todo-row{
  display:flex;align-items:center;gap:12px;padding:12px 14px;border-top:1px solid var(--line-soft);cursor:pointer;
  width:100%;background:none;border-left:none;border-right:none;border-bottom:none;text-align:left;font:inherit;color:inherit;
}
.todo-row:first-child{border-top:none;}
.todo-row:hover{background:var(--stone-50);}
.todo-check{width:22px;height:22px;border-radius:999px;border:1.5px solid var(--border-strong);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:transparent;}
.todo-check svg{width:12px;height:12px;}
.todo-row:hover .todo-check{border-color:var(--ink);color:var(--ink-faint);}
.todo-body{flex:1;min-width:0;}
.todo-title{font-size:14px;font-weight:600;line-height:1.3;}
.todo-meta{font-size:12px;color:var(--ink-soft);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.todo-meta .todo-src{color:var(--slate-400);font-weight:600;}
.todo-tag{font-family:var(--mono);font-size:10.5px;color:var(--ink-soft);flex-shrink:0;border:1px solid var(--line);border-radius:999px;padding:2px 8px;}
.todo-tag.late{color:var(--down);border-color:color-mix(in srgb, var(--down) 30%, white);background:color-mix(in srgb, var(--down) 6%, white);}
.todo-empty{padding:18px 14px;font-size:13.5px;color:var(--ink-soft);display:flex;align-items:center;gap:10px;}
.todo-foot{display:flex;flex-direction:column;gap:6px;margin-top:12px;}

.week-meta{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);}
.week-meta-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-top:1px solid var(--line-soft);font-size:13.5px;}
.week-meta-row:first-child{border-top:none;}
.week-meta-row span{color:var(--ink-soft);display:flex;align-items:center;gap:8px;}
.week-meta-row b{font-family:var(--display);font-weight:650;font-size:15px;}
.highlight{margin-top:12px;padding:12px 14px;background:var(--paper);border:1px solid var(--line);border-radius:14px;cursor:pointer;}
.highlight-label{font-size:13.5px;font-weight:600;}
.highlight-detail{font-size:12.5px;color:var(--ink-soft);margin-top:2px;}

.ask-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:14px;}
.ask-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.ask-name{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13.5px;}
.ask-badge{font-family:var(--mono);font-size:10.5px;color:var(--ink-soft);}
.ask-box{display:flex;align-items:center;gap:10px;width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 12px 12px 14px;background:var(--stone-50);cursor:pointer;text-align:left;font:inherit;color:var(--ink-soft);font-size:13.5px;}
.ask-box:hover{border-color:var(--border-strong);}
.ask-box > span:first-child{flex:1;}
.ask-box .ask-send{width:30px;height:30px;border-radius:999px;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ask-box .ask-send svg{width:14px;height:14px;}
.ask-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.ask-chips span{font-family:var(--mono);font-size:10.5px;color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:3px 9px;}

@media (min-width:1024px){
  .dash-title{font-size:38px;}
  .dash-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start;}
  .goal-cards{grid-template-columns:repeat(3,minmax(0,1fr));}
  .bars{height:190px;gap:10px;}
  .bar-labels{gap:10px;}
}

/* ----------------------------------------- régression (bandeau discret) */
.regress-card{display:flex;align-items:flex-start;gap:12px;background:var(--paper);border:1px solid color-mix(in srgb, var(--down) 25%, var(--line));border-radius:var(--r-md);padding:14px;box-shadow:var(--shadow-sm);}
.regress-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--tint-rose);color:var(--down);flex-shrink:0;}
.regress-icon svg{width:16px;height:16px;}
.regress-title{font-weight:650;font-family:var(--display);font-size:14.5px;}
.regress-sub{color:var(--ink-soft);font-size:12.5px;margin-top:2px;}

/* ======================================================= LISTES GÉNÉRIQUES */
/* Rangées : dans une scène grise elles deviennent des cartes blanches. */
.focus-list,.plan-list,.action-list,.round-full-list,.list{list-style:none;margin:0;padding:0;}
.focus-item{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--line);cursor:pointer;}
.focus-list li:first-child{border-top:none;}
.focus-num{font-family:var(--mono);font-size:12px;color:var(--ink-soft);width:24px;flex-shrink:0;}
.focus-body{flex:1;min-width:0;}
.focus-title{font-size:14px;font-weight:600;}
.focus-meta{font-size:12px;color:var(--ink-soft);margin-top:2px;}
.focus-tag{font-family:var(--mono);font-size:10.5px;color:var(--ink-soft);flex-shrink:0;}
.focus-tag.late{color:var(--down);}

.round-full{margin-top:6px;}
.round-group-label{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin:16px 0 8px;}
.round-group-label:first-child{margin-top:6px;}
.round-full-list{background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.round-full-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-top:1px solid var(--line-soft);flex-wrap:wrap;}
.round-full-list li:first-child{border-top:none;}
.round-check{width:22px;height:22px;flex-shrink:0;border:1.5px solid var(--border-strong);border-radius:999px;display:flex;align-items:center;justify-content:center;color:var(--ink-faint);cursor:pointer;}
.round-check svg{width:12px;height:12px;}
.round-check:hover{border-color:var(--ink);color:var(--ink);}
.replan-row{display:flex;gap:6px;flex-wrap:wrap;width:100%;padding-left:34px;}
.replan-row button.chip{padding:5px 10px;font-size:11.5px;}

.list{max-height:260px;overflow-y:auto;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:0 14px;}
.list li{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;padding:11px 0;border-top:1px solid var(--line-soft);}
.list li:first-child{border-top:none;}
.li-date{font-family:var(--mono);font-size:12px;color:var(--ink-soft);white-space:nowrap;}
.li-body{color:var(--ink);flex:1;text-align:right;}

/* ---- objectifs (liste) */
.goal-row{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;margin-bottom:8px;
  cursor:pointer;box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-base);
}
.goal-row:last-child{margin-bottom:0;}
.goal-row:hover{box-shadow:var(--shadow-md);}
.goal-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px;}
.goal-head .eyebrow{margin:0;font-family:var(--display);font-size:14.5px;font-weight:650;text-transform:none;letter-spacing:-0.005em;color:var(--ink);}
.goal-head b{font-family:var(--mono);font-size:11.5px;color:var(--ink);font-weight:600;flex-shrink:0;}
.goal-fig{font-family:var(--display);font-weight:720;font-size:22px;letter-spacing:-0.02em;margin-bottom:9px;}
.goal-fig span{color:var(--ink-soft);font-size:12.5px;font-family:var(--mono);font-weight:400;letter-spacing:0;}
.goal-next{color:var(--ink-soft);font-size:12.5px;margin-top:10px;}
.goal-next b{color:var(--ink);font-weight:600;}
.goal-meta-line{color:var(--ink-soft);font-size:11.5px;font-family:var(--mono);margin-top:4px;}
.goal-week-line{color:var(--ink-soft);font-size:12.5px;margin-top:10px;}
.goal-done-tag{font-size:12px;color:var(--up);margin-top:8px;font-weight:600;}
.goal-paused-tag{font-size:12px;color:var(--ink-soft);margin-top:8px;}
.goal-late-tag{font-size:12px;color:var(--down);margin-top:8px;}
.goal-type-badge{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);}
.primary-star{color:var(--amber-500);}
.primary-star svg{width:12px;height:12px;}
.goal-primary-title{font-family:var(--display);font-weight:720;font-size:24px;letter-spacing:-0.02em;margin:6px 0 10px;}
.goal-primary-fig{font-family:var(--display);font-weight:720;font-size:32px;letter-spacing:-0.02em;margin-bottom:10px;}
.goal-primary-fig span{color:var(--ink-soft);font-size:15px;font-family:var(--mono);font-weight:400;}
.goal-status-actions{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:12px;}
.goal-complete-banner{text-align:center;padding:30px 10px 8px;}
.goal-complete-banner .eyebrow{color:var(--up);}
.goal-complete-fig{font-family:var(--display);font-weight:720;font-size:26px;margin:10px 0 2px;}
.goal-complete-sub{color:var(--ink-soft);font-size:13px;margin-top:6px;}
.goal-limit-card{padding:20px;text-align:center;}
.goal-limit-card p{color:var(--ink-soft);font-size:13.5px;margin:6px 0 14px;}
.archived-toggle{color:var(--ink-soft);}

/* ---- fiche objectif */
.detail-head{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.plan-list,.action-list{background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.plan-item,.action-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-top:1px solid var(--line-soft);cursor:pointer;}
.plan-list li:first-child,.action-list li:first-child{border-top:none;}
.plan-dot{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--border-strong);flex-shrink:0;margin-top:0;display:flex;align-items:center;justify-content:center;color:transparent;}
.plan-dot svg{width:11px;height:11px;}
.plan-item.done .plan-dot,.action-item.done .plan-dot{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.plan-item.done .plan-label,.action-item.done .plan-label{color:var(--ink-faint);text-decoration:line-through;}
.plan-label{font-size:14px;flex:1;line-height:1.35;}
.action-date{font-family:var(--mono);font-size:11px;color:var(--ink-soft);flex-shrink:0;}
.kv-row{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-top:1px solid var(--line);font-size:13.5px;}
.kv-row:first-child{border-top:none;}
.kv-k{color:var(--ink-soft);flex-shrink:0;}
.kv-v{color:var(--ink);text-align:right;}
.milestone-controls{display:flex;gap:1px;flex-shrink:0;}
.milestone-controls button{background:none;border:none;color:var(--ink-faint);cursor:pointer;padding:3px;display:flex;}
.milestone-controls button:hover{color:var(--ink);}
.milestone-controls button:disabled{opacity:.25;cursor:default;}
.milestone-controls .ic svg{width:15px;height:15px;}

/* ---- progression */
.prog-ring-wrap{position:relative;width:176px;height:176px;margin:12px auto 6px;}
.prog-ring-svg{width:100%;height:100%;transform:rotate(-90deg);}
.prog-ring-track{fill:none;stroke:var(--paper-3);stroke-width:10;}
.prog-ring-fill{fill:none;stroke:var(--ink);stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .6s var(--ease-out);}
.prog-ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.prog-ring-pct{font-family:var(--display);font-weight:720;font-size:36px;letter-spacing:-0.02em;}
.prog-ring-label{font-family:var(--mono);font-size:11px;color:var(--ink-soft);margin-top:2px;}
.stat-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line);}
.stat-row:first-child{border-top:none;}
.stat-icon{width:34px;height:34px;border-radius:10px;background:var(--paper);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink);flex-shrink:0;}
.stat-icon .ic svg{width:16px;height:16px;}
.stat-label{flex:1;font-size:14px;font-weight:500;}
.stat-value{font-family:var(--display);font-weight:720;font-size:17px;flex-shrink:0;}
.domain-row{display:flex;align-items:center;gap:12px;padding:10px 0;}
.domain-row-label{width:92px;font-size:13.5px;font-weight:600;flex-shrink:0;display:flex;align-items:center;gap:8px;}
.domain-row-bar{flex:1;}
.domain-row-fig{font-family:var(--mono);font-size:11.5px;color:var(--ink-soft);flex-shrink:0;text-align:right;min-width:64px;}
.prog-list{display:flex;flex-direction:column;gap:8px;}
.prog-row{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px 14px;cursor:pointer;}
.prog-row-label{font-size:14px;font-weight:600;margin-bottom:2px;}
.prog-row-detail{font-size:12.5px;color:var(--ink-soft);}

/* ---- graphique d'évolution (réutilisé par Progression) */
.evo-card{margin-top:0;}
.evo-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px;}
.evo-kpi-label{font-family:var(--mono);font-size:11px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;}
.evo-kpi-value{font-family:var(--display);font-weight:720;font-size:28px;letter-spacing:-0.02em;}
.evo-badge{display:inline-flex;align-items:center;gap:3px;font-family:var(--mono);font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:100px;border:1px solid var(--line);}
.evo-badge.up{color:var(--up);}
.evo-badge.down{color:var(--down);}
.evo-badge.flat{color:var(--ink-soft);}
.evo-svg-wrap svg{display:block;width:100%;height:auto;}
.evo-empty{font-size:13px;color:var(--ink-soft);padding:12px 0 2px;}

/* ---- meta strip / dims (écrans Sport, Argent, Mindset) */
.meta-strip{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0;}
.meta-strip span{font-family:var(--mono);font-size:11.5px;color:var(--ink-soft);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:5px 11px;}
.meta-strip b{color:var(--ink);font-weight:600;}
.dims-row{display:flex;gap:8px;}
.dim-item{flex:1;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px;text-align:left;cursor:pointer;color:inherit;}
.dim-label{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:6px;}
.dim-fig{font-family:var(--display);font-weight:720;font-size:20px;}
.keystat{margin-bottom:18px;}
.keystat-fig{font-family:var(--display);font-weight:720;font-size:44px;line-height:1;letter-spacing:-0.02em;}
.keystat-fig span{color:var(--ink-soft);font-size:18px;font-family:var(--mono);font-weight:400;letter-spacing:0;}
.keystat-meta{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11.5px;color:var(--ink-soft);margin-top:10px;}

/* ---- coach */
.coach-entry{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:14px 16px;cursor:pointer;color:var(--ink);font:inherit;}
.coach-entry > .ic{width:36px;height:36px;border-radius:11px;background:var(--tint-violet);color:var(--violet-400);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.coach-entry > .ic svg{width:17px;height:17px;}
.coach-entry-body{flex:1;}
.coach-entry-title{font-weight:650;font-family:var(--display);font-size:14.5px;}
.coach-entry-sub{color:var(--ink-soft);font-size:12.5px;margin-top:2px;}
.chat-log{display:flex;flex-direction:column;gap:16px;margin:16px 0;}
.chat-msg{max-width:88%;font-size:14.5px;line-height:1.5;}
.chat-msg.user{align-self:flex-end;background:var(--ink);color:var(--paper);padding:11px 15px;border-radius:18px 18px 4px 18px;}
.chat-msg.coach{align-self:flex-start;max-width:100%;width:100%;}
.chat-msg.coach .chat-from{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px;}
.chat-msg.coach .chat-from::before{content:"";width:16px;height:16px;border-radius:50%;flex-shrink:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%23111110'/%3E%3Cpath d='M7.6 15.6c0-4.3 2.1-8.1 5-8.1 2.4 0 3.9 2.1 3.9 4.6 0 2.7-1.8 4.5-4.1 4.5-1 0-1.8-.4-1.8-1.1' fill='none' stroke='%23FFFFFF' stroke-width='1.5' stroke-linecap='round'/%3E%3Ccircle cx='15.7' cy='8' r='1.3' fill='%237C6BD6'/%3E%3C/svg%3E");background-size:cover;}
.chat-msg.coach .chat-text{color:var(--ink);white-space:pre-line;}
.chat-typing{display:inline-flex;gap:4px;align-items:center;height:14px;}
.chat-typing span{width:6px;height:6px;border-radius:50%;background:var(--ink);opacity:.3;animation:c-typing 1.1s ease-in-out infinite;}
.chat-typing span:nth-child(2){animation-delay:.15s;}
.chat-typing span:nth-child(3){animation-delay:.3s;}
@keyframes c-typing{0%,60%,100%{opacity:.25;transform:none;}30%{opacity:.9;transform:translateY(-2px);}}
.chat-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.chat-quota-line{font-size:11.5px;color:var(--ink-soft);text-align:center;margin-top:8px;}
.chat-quota-line button.link{font-size:11.5px;margin-left:4px;}
.chat-input-row{
  display:flex;gap:8px;align-items:flex-end;position:sticky;bottom:calc(84px + var(--safe-b));
  background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:8px;box-shadow:var(--shadow-lg);margin-top:12px;
}
.chat-input-row textarea{min-height:44px;max-height:120px;border:none;box-shadow:none;background:transparent;padding:11px 8px;}
.chat-input-row textarea:focus{box-shadow:none;}
.chat-send{background:var(--ink);border:none;border-radius:999px;width:44px;height:44px;flex-shrink:0;color:var(--paper);cursor:pointer;display:flex;align-items:center;justify-content:center;}
.chat-send .ic svg{width:17px;height:17px;}
.chat-mic{background:var(--paper-2);border:1px solid var(--line);border-radius:999px;width:44px;height:44px;flex-shrink:0;color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;}
.chat-mic .ic svg{width:18px;height:18px;}
.chat-mic.listening{background:var(--down);border-color:var(--down);color:var(--paper);}
.chat-mic.listening .ic svg{animation:micPulse 1.1s ease-in-out infinite;}
.chat-mic.transcribing{background:var(--violet-400);border-color:var(--violet-400);color:#fff;pointer-events:none;}
.chat-mic.transcribing .ic svg{animation:micSpin .8s linear infinite;}
@keyframes micPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.18);}}
@keyframes micSpin{to{transform:rotate(360deg);}}
@media (min-width:1024px){ .chat-input-row{bottom:20px;} }
.draft-plan{padding:14px 16px;margin-top:10px;}
.draft-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line-soft);font-size:13px;}
.draft-row:first-child{border-top:none;}
.draft-k{color:var(--ink-soft);}
.draft-v{color:var(--ink);text-align:right;}
.draft-steps{margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft);}
.draft-step{font-size:13px;padding:4px 0;}
.draft-step b{font-family:var(--mono);color:var(--ink-soft);margin-right:8px;font-weight:500;}

/* ---- réglages / profil / premium */
.settings-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--line);}
.settings-row:first-child{border-top:none;}
.settings-label{font-size:14px;font-weight:500;}
.settings-sub{font-size:12px;color:var(--ink-soft);margin-top:2px;}
.danger-btn{color:var(--down)!important;}
.profile-head{display:flex;align-items:center;gap:14px;}
.profile-avatar{width:56px;height:56px;border-radius:999px;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:18px;font-weight:650;flex-shrink:0;}
.profile-name{font-family:var(--display);font-weight:720;font-size:20px;letter-spacing:-0.015em;}
.profile-email{color:var(--ink-soft);font-size:13px;margin-top:2px;}
.sub-card{display:flex;align-items:center;gap:14px;background:var(--ink);color:var(--on-night);border-radius:var(--r-md);padding:16px;}
.sub-card-icon{width:38px;height:38px;border-radius:11px;background:rgb(255 255 255 / 0.1);display:flex;align-items:center;justify-content:center;color:var(--amber-400);flex-shrink:0;}
.sub-card-icon .ic svg{width:18px;height:18px;}
.sub-card-body{flex:1;min-width:0;}
.sub-card-title{font-family:var(--display);font-weight:650;font-size:15px;}
.sub-card-sub{color:var(--on-night-soft);font-size:12px;margin-top:1px;}
.sub-card-cta{background:var(--paper);color:var(--ink);border:none;border-radius:999px;padding:9px 14px;font-family:var(--display);font-size:13px;font-weight:650;cursor:pointer;flex-shrink:0;white-space:nowrap;}
.profile-row{
  display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;margin-top:8px;cursor:pointer;text-align:left;font:inherit;color:inherit;
  background:var(--paper);border:1px solid var(--line);border-radius:14px;
}
.profile-row:first-child{margin-top:0;}
.profile-row:hover{border-color:var(--border-strong);}
.profile-row-icon{width:34px;height:34px;border-radius:10px;background:var(--paper-2);display:flex;align-items:center;justify-content:center;color:var(--ink);flex-shrink:0;}
.profile-row-icon .ic svg{width:16px;height:16px;}
.profile-row-label{flex:1;font-size:14px;font-weight:600;}
.profile-logout{color:var(--down);font-weight:600;font-size:14px;padding:14px 0;background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:8px;}
.guide-row{display:flex;align-items:flex-start;gap:14px;}
.guide-row-title{font-family:var(--display);font-weight:650;font-size:15px;margin-bottom:3px;}
.guide-row-desc{color:var(--ink-soft);font-size:13px;line-height:1.5;}
.plan-pick-row{display:flex;gap:10px;margin:16px 0 8px;}
.plan-pick{flex:1;text-align:left;background:var(--paper);border:1.5px solid var(--line);border-radius:16px;padding:14px 16px;cursor:pointer;font:inherit;color:inherit;}
.plan-pick.on{border-color:var(--ink);box-shadow:0 0 0 3px rgb(17 17 16 / 0.06);}
.plan-pick-name{font-family:var(--display);font-weight:650;font-size:15px;}
.plan-pick-note{color:var(--ink-soft);font-size:12px;margin-top:2px;}
.feat-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line);}
.feat-row:first-child{border-top:none;}
.feat-label{flex:1;font-size:14px;}
.feat-val{width:64px;text-align:center;font-size:12.5px;color:var(--ink-soft);flex-shrink:0;}
.feat-val.on{color:var(--ink);font-weight:650;}
.feat-head{display:flex;gap:12px;padding-bottom:8px;}
.feat-head span:first-child{flex:1;}
.feat-head span{width:64px;text-align:center;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);flex-shrink:0;}
.plan-card-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px;}
.plan-name{font-family:var(--display);font-weight:720;font-size:18px;}
.plan-badge{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;padding:3px 9px;border-radius:99px;background:var(--paper-2);color:var(--ink-soft);}
.plan-badge.on{background:var(--tint-green);color:var(--sage-700);}
.plan-meta{font-size:12.5px;color:var(--ink-soft);margin-top:4px;}
.plan-billing-msg{font-size:12.5px;color:var(--down);margin-top:10px;}
.plan-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;}
.plan-actions button.action{width:auto;flex:1;min-width:140px;min-height:44px;font-size:13.5px;}
.upgrade-nudge{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;margin-top:10px;}
.upgrade-nudge span{font-size:12.5px;color:var(--ink-soft);}
.upgrade-nudge button.link{white-space:nowrap;}

/* ---- assistant de création d'objectif */
.gw-head{display:flex;align-items:center;gap:10px;margin-bottom:18px;}
.gw-dots{display:flex;gap:5px;flex:1;}
.gw-dots span{height:4px;flex:1;background:var(--paper-3);border-radius:99px;}
.gw-dots span.done{background:var(--ink);}
.gw-cancel{color:var(--ink-soft);font-size:13px;background:none;border:none;cursor:pointer;}
.gw-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;}
.gw-title{font-family:var(--display);font-weight:720;font-size:23px;line-height:1.15;letter-spacing:-0.02em;margin:0 0 16px;}
.gw-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;}
.gw-foot button.action{width:auto;}
.gw-skip{color:var(--ink-soft);}
.gw-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.gw-type-btn{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:14px;text-align:left;color:var(--ink);cursor:pointer;font:inherit;display:flex;flex-direction:column;align-items:flex-start;gap:2px;}
.gw-type-btn:hover{border-color:var(--border-strong);}
.gw-type-btn.on{border-color:var(--ink);box-shadow:0 0 0 3px rgb(17 17 16 / 0.07);}
.gw-type-btn b{display:block;font-family:var(--display);font-size:15px;font-weight:650;}
.gw-type-btn span{font-size:12px;color:var(--ink-soft);line-height:1.35;}
.gw-item-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line);font-size:14px;}
.gw-item-row:first-child{border-top:none;}
.gw-item-row span{flex:1;}
.gw-item-row button{background:none;border:none;color:var(--ink-faint);cursor:pointer;padding:2px;display:flex;}
.gw-add-row{display:flex;gap:8px;margin-top:10px;}
.gw-add-row input{flex:1;}
.gw-add-row button{flex-shrink:0;width:auto!important;min-height:48px;}
.gw-recap-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid var(--line);font-size:13.5px;}
.gw-recap-row:first-child{border-top:none;}

/* ---- insight card */
.insight-card{display:flex;align-items:flex-start;gap:12px;}
.insight-card > .ic{width:32px;height:32px;border-radius:10px;background:var(--tint-amber);color:var(--amber-700);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.insight-card > .ic svg{width:15px;height:15px;}
.insight-card-body{flex:1;}

/* ---- toast */
.app-toast{
  position:fixed;left:16px;right:16px;bottom:calc(92px + var(--safe-b));z-index:300;max-width:420px;margin:0 auto;
  background:var(--ink);color:var(--on-night);border-radius:18px;padding:14px 18px;box-shadow:var(--shadow-lg);
  animation:c-toast .3s var(--ease-out);
}
@keyframes c-toast{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.app-toast-title{font-family:var(--display);font-weight:650;font-size:15px;margin-bottom:2px;}
.app-toast-body{font-size:13px;color:var(--on-night-soft);}
@media (min-width:1024px){ .app-toast{bottom:28px;left:calc(var(--sidebar-w) + 16px);} }

/* ====================================================== ÉCRANS PLEIN CADRE
   (inscription, questions, analyse, résultat, paiement) */
.onboarding-overlay,.auth-overlay{
  position:fixed;inset:0;z-index:110;background:var(--paper);overflow-y:auto;
  display:flex;flex-direction:column;
  /* Mobile (03/10) : l'ecran ne doit ni glisser de cote, ni entrainer la
     page d'accueil restee dessous quand on fait defiler les questions. */
  overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
}
html:has(.onboarding-overlay:not([hidden])),html:has(.auth-overlay:not([hidden])),
html:has(.onboarding-overlay:not([hidden])) body,html:has(.auth-overlay:not([hidden])) body{overflow:hidden;}
.flow-top{
  position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:calc(14px + var(--safe-t)) var(--gutter) 12px;background:rgb(255 255 255 / 0.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
}
.flow-progress{flex:1;max-width:260px;height:4px;border-radius:99px;background:var(--paper-3);overflow:hidden;}
.flow-progress i{display:block;height:100%;background:var(--ink);border-radius:99px;transition:width .4s var(--ease-out);}
.flow-skip{background:none;border:none;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--ink-soft);padding:8px 0;}
.flow-skip:hover{color:var(--ink);}
.flow-body{flex:1;width:100%;max-width:560px;margin:0 auto;padding:clamp(20px,7vh,72px) var(--gutter) 24px;display:flex;flex-direction:column;justify-content:flex-start;gap:18px;}
.flow-body.top{justify-content:flex-start;padding-top:28px;}
.flow-step-no{font-family:var(--mono);font-size:12px;color:var(--ink-soft);}
.flow-title{font-family:var(--display);font-weight:720;font-size:32px;line-height:1.06;letter-spacing:-0.02em;margin:0;}
.flow-title .serif{font-size:1.08em;}
.flow-sub{color:var(--ink-soft);font-size:15px;line-height:1.5;margin:0;max-width:44ch;}
.flow-foot{
  position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;
  width:100%;max-width:560px;margin:0 auto;padding:12px var(--gutter) calc(16px + var(--safe-b));background:linear-gradient(to top, var(--paper) 70%, rgb(255 255 255 / 0));
}
.flow-foot button.action{width:auto;min-width:160px;}
.flow-back{background:none;border:none;cursor:pointer;font-size:14px;font-weight:600;color:var(--ink-soft);padding:10px 4px;display:inline-flex;align-items:center;gap:6px;}
.flow-back:hover{color:var(--ink);}
.flow-back .ic svg{width:14px;height:14px;}
.opt-grid{display:grid;grid-template-columns:1fr;gap:8px;}
@media (min-width:480px){ .opt-grid.two{grid-template-columns:1fr 1fr;} }
.opt{
  display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border-radius:16px;cursor:pointer;text-align:left;font:inherit;color:inherit;
  background:var(--paper);border:1px solid var(--line);transition:border-color var(--duration-fast),box-shadow var(--duration-fast);
}
.opt:hover{border-color:var(--border-strong);}
.opt.on{border-color:var(--ink);box-shadow:0 0 0 3px rgb(17 17 16 / 0.07);}
.opt-body{flex:1;min-width:0;}
.opt-title{font-family:var(--display);font-weight:650;font-size:15px;line-height:1.25;}
.opt-sub{font-size:12.5px;color:var(--ink-soft);margin-top:1px;}
.opt-check{width:22px;height:22px;border-radius:999px;border:1.5px solid var(--border-strong);display:flex;align-items:center;justify-content:center;color:transparent;flex-shrink:0;}
.opt-check svg{width:12px;height:12px;}
.opt.on .opt-check{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.flow-stage{background:var(--paper-2);border-radius:var(--r-lg);padding:14px;}

/* écran d'inscription / connexion */
.auth-wrap{flex:1;display:grid;grid-template-columns:1fr;min-height:100%;}
.auth-main{display:flex;flex-direction:column;padding:calc(16px + var(--safe-t)) var(--gutter) calc(24px + var(--safe-b));}
.auth-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:auto;padding-bottom:24px;}
.auth-card{width:100%;max-width:420px;margin:0 auto auto;display:flex;flex-direction:column;gap:16px;}
.auth-card h1{font-size:32px;}
.auth-aside{display:none;}
.auth-error{background:color-mix(in srgb, var(--down) 7%, white);border:1px solid color-mix(in srgb, var(--down) 25%, white);color:var(--down);border-radius:12px;padding:10px 12px;font-size:13px;}
.auth-switch{color:var(--ink-soft);font-size:13.5px;text-align:center;}
.auth-switch button{background:none;border:none;color:var(--ink);font-weight:650;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px;}
.auth-consent{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--ink-soft);margin:2px 0 6px;text-transform:none;letter-spacing:0;font-family:var(--body);}
.auth-consent input{margin-top:2px;flex-shrink:0;}
.auth-consent a{color:var(--ink);}
.auth-note{font-family:var(--mono);font-size:11px;color:var(--ink-soft);text-align:center;letter-spacing:.02em;}
@media (min-width:960px){
  .auth-wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .auth-main{padding:28px 48px;}
  .auth-aside{display:flex;flex-direction:column;justify-content:center;gap:18px;background:var(--paper-2);padding:48px;margin:12px;border-radius:var(--r-xl);}
  .auth-aside-title{font-family:var(--display);font-weight:720;font-size:30px;line-height:1.1;letter-spacing:-0.02em;max-width:18ch;}
}

/* écran d'analyse du profil */
.analyzing-spinner{width:36px;height:36px;border-radius:50%;border:3px solid var(--paper-3);border-top-color:var(--ink);animation:c-spin .9s linear infinite;}
@keyframes c-spin{to{transform:rotate(360deg);}}
.analysis-list{display:flex;flex-direction:column;gap:8px;}
.analysis-item{display:flex;gap:12px;align-items:flex-start;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:var(--shadow-sm);}
.analysis-k{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:3px;}
.analysis-v{font-size:14px;line-height:1.45;}
.analysis-v b{font-weight:650;}

/* anciens écrans de flux (résultat / paiement) */
.ob-step{display:none;flex:1;flex-direction:column;justify-content:center;gap:18px;width:100%;max-width:560px;margin:0 auto;padding:calc(28px + var(--safe-t)) var(--gutter) calc(28px + var(--safe-b));}
.ob-step.active{display:flex;}
.ob-eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);}
.ob-title{font-family:var(--display);font-weight:720;font-size:32px;line-height:1.06;letter-spacing:-0.02em;}
.ob-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:10px;}
.ob-foot button.action{width:auto;}
.onboarding-overlay .section{background:var(--paper-2);border-radius:var(--r-lg);padding:14px;}
.onboarding-overlay .feat-row{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-top:6px;}
.onboarding-overlay .feat-row:first-child{margin-top:0;}

/* ---- écran d'accueil hérité (plus utilisé, gardé masqué) */
.hero-landing{display:none!important;}

/* ---- barres de défilement */
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-thumb{background:var(--paper-3);border-radius:99px;}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0ms!important;transition-duration:0ms!important;}
}

/* ---- micro-animations du tableau de bord (28/09) */
.view.anim-in .dash-head,.view.anim-in .kpi,.view.anim-in .dash-main > *,.view.anim-in .dash-side > *{animation:c-rise .6s var(--ease-out) both;}
.view.anim-in .kpi:nth-child(2){animation-delay:.06s;}
.view.anim-in .kpi:nth-child(3){animation-delay:.12s;}
.view.anim-in .dash-main > :nth-child(2){animation-delay:.12s;}
.view.anim-in .dash-main > :nth-child(3){animation-delay:.2s;}
.view.anim-in .dash-main > :nth-child(4){animation-delay:.28s;}
.view.anim-in .dash-side > :nth-child(1){animation-delay:.16s;}
.view.anim-in .dash-side > :nth-child(2){animation-delay:.24s;}
.view.anim-in .dash-side > :nth-child(3){animation-delay:.32s;}
@keyframes c-rise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.view.anim-in .bar-col b{animation:c-bar .8s var(--ease-out) both;animation-delay:calc(.25s + var(--n,0) * 45ms);transform-origin:bottom;}
@keyframes c-bar{from{transform:scaleY(0);}to{transform:scaleY(1);}}
.view.anim-in .spark path{stroke-dasharray:120;stroke-dashoffset:120;animation:c-draw 1.2s var(--ease-out) .4s forwards;}
@keyframes c-draw{to{stroke-dashoffset:0;}}
.view.anim-in .week-dots i{animation:c-pop .4s var(--ease-out) both;}
.view.anim-in .week-dots i:nth-child(2){animation-delay:.05s}.view.anim-in .week-dots i:nth-child(3){animation-delay:.1s}.view.anim-in .week-dots i:nth-child(4){animation-delay:.15s}.view.anim-in .week-dots i:nth-child(5){animation-delay:.2s}.view.anim-in .week-dots i:nth-child(6){animation-delay:.25s}.view.anim-in .week-dots i:nth-child(7){animation-delay:.3s}
@keyframes c-pop{from{transform:scale(0);}to{transform:none;}}
.todo-title{background-image:linear-gradient(currentColor,currentColor);background-size:0 1.5px;background-repeat:no-repeat;background-position:0 55%;transition:background-size .35s var(--ease-out),color .3s;}
.todo-row.checking .todo-check{animation:c-check .38s var(--ease-out) forwards;}
.todo-row.checking .todo-title{background-size:100% 1.5px;color:var(--ink-faint);}
.todo-row.checking{background:var(--tint-green);}
@keyframes c-check{45%{transform:scale(.8);}100%{transform:none;background:var(--ink);border-color:var(--ink);color:var(--paper);}}
.goal-card,.todo-row,.profile-row,.goal-row,.opt,button.chip,.pill-btn{transition:transform var(--duration-base) var(--ease-standard),box-shadow var(--duration-base),background var(--duration-base),border-color var(--duration-base);}
.goal-card:active,.opt:active,button.chip:active,.pill-btn:active,.profile-row:active{transform:scale(.98);}
.next-card{transition:transform .25s var(--ease-out),box-shadow .25s;}
.next-card:hover{transform:translateY(-2px);box-shadow:0 24px 48px rgb(17 17 16 / 0.28);}
.next-card:hover .next-go{transform:translateX(2px);}
.next-go{transition:transform .25s var(--ease-out);}
.flow-body{animation:c-rise .5s var(--ease-out) both;}
.analysis-item{animation:c-rise .55s var(--ease-out) both;}
.analysis-item:nth-child(2){animation-delay:.08s}.analysis-item:nth-child(3){animation-delay:.16s}.analysis-item:nth-child(4){animation-delay:.24s}.analysis-item:nth-child(5){animation-delay:.32s}.analysis-item:nth-child(6){animation-delay:.4s}
.tab{transition:background .3s var(--ease-out),color .3s;}

/* ======================================================================
   AUJOURD'HUI — "une action a la fois" (28/09, simplification demandee
   par David). Une seule grande carte noire, une phrase de Lya, la liste
   des 3 actions du jour, 3 raccourcis. Rien d'autre.
   ====================================================================== */
.today{max-width:620px;margin:0 auto;display:flex;flex-direction:column;gap:14px;}
.today-head .dash-title{margin-top:2px;}
.lya-line{display:flex;align-items:flex-start;gap:10px;background:var(--paper-2);border-radius:16px;padding:12px 14px;font-size:14.5px;line-height:1.45;}
.lya-line b{font-family:var(--display);font-weight:650;margin-right:4px;}
.lya-dot{width:8px;height:8px;border-radius:50%;background:var(--violet-400);flex-shrink:0;margin-top:7px;box-shadow:0 0 0 4px var(--tint-violet);}
.lya-mark{display:inline-flex;flex-shrink:0;border-radius:50%;overflow:hidden;box-shadow:0 0 0 3px var(--tint-violet);}
.lya-mark svg{width:100%;height:100%;display:block;}

/* Ajout a l'ecran d'accueil (29/09) */
.pwa-card{display:flex;align-items:center;gap:12px;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:14px 12px 14px 14px;margin-bottom:16px;}
.pwa-card .tile{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.pwa-card .tile .ic svg{width:19px;height:19px;}
.pwa-card-body{flex:1;min-width:0;}
.pwa-card-t{font-family:var(--display);font-weight:650;font-size:14.5px;}
.pwa-card-s{font-size:12.5px;color:var(--ink-soft);margin-top:2px;}
.pwa-card #btnDismissPwaCard{flex-shrink:0;}
.pwa-card, .pwa-card *{cursor:default;}
.pwa-card{cursor:pointer;}
.mini-sheet-bg{position:fixed;inset:0;background:rgba(17,17,16,.45);z-index:150;display:flex;align-items:flex-end;justify-content:center;animation:msFadeIn .2s ease;}
.mini-sheet{background:var(--paper);border-radius:24px 24px 0 0;padding:22px 20px calc(28px + env(safe-area-inset-bottom));width:100%;max-width:480px;max-height:82vh;overflow:auto;animation:msSlideUp .28s var(--ease-out);}
.mini-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.mini-sheet-head h2{font-family:var(--display);font-weight:700;font-size:20px;}
.mini-steps{margin-top:16px;display:flex;flex-direction:column;gap:14px;}
.mini-step{display:flex;gap:12px;align-items:flex-start;}
.mini-step-n{width:26px;height:26px;border-radius:50%;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.mini-step b{font-family:var(--display);font-weight:600;font-size:15px;}
.mini-step .ic{display:inline-flex;vertical-align:-3px;}
.mini-step .ic svg{width:15px;height:15px;}
@media (min-width:640px){ .mini-sheet-bg{align-items:center;} .mini-sheet{border-radius:24px;} }
@keyframes msFadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes msSlideUp{from{transform:translateY(24px);opacity:.6;}to{transform:translateY(0);opacity:1;}}

/* Multi-conversations Lya (29/09) */
.chat-list{display:flex;flex-direction:column;gap:8px;}
.chat-list-row{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:14px;padding:4px;}
.chat-list-row.active{border-color:var(--violet-400);background:var(--paper-2);}
.chat-list-open{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:8px 10px;background:none;border:none;cursor:pointer;}
.chat-list-title{font-family:var(--display);font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.chat-list-sub{font-size:11.5px;color:var(--ink-soft);}
.chat-list-row [data-del-chat]{flex-shrink:0;}
.chat-list-row [data-del-chat] .ic svg{width:16px;height:16px;}
.now-card{
  background:var(--ink);color:var(--on-night);border-radius:26px;padding:22px 20px 20px;
  box-shadow:0 24px 50px rgb(17 17 16 / 0.22);display:flex;flex-direction:column;gap:10px;
  transition:transform .4s var(--ease-out),opacity .4s;
}
.now-card.leaving{transform:translateY(-10px) scale(.98);opacity:0;}
.now-top{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.now-k{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--on-night-soft);}
.now-tag{font-family:var(--mono);font-size:10.5px;color:var(--on-night);border:1px solid var(--on-night-line);border-radius:999px;padding:3px 9px;}
.now-tag.late{color:#FFB4A6;border-color:rgb(255 180 166 / .35);}
.now-title{font-family:var(--display);font-weight:720;font-size:clamp(26px,7vw,34px);line-height:1.08;letter-spacing:-0.02em;}
.now-for{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--on-night-soft);}
.now-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.now-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}
.now-done{
  flex:1;min-width:180px;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:58px;border:none;border-radius:999px;cursor:pointer;
  background:var(--paper);color:var(--ink);font-family:var(--display);font-weight:720;font-size:17px;transition:transform .15s;
}
.now-done svg{width:20px;height:20px;}
.now-done:active{transform:scale(.97);}
.now-later{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:58px;padding:0 20px;border-radius:999px;cursor:pointer;
  background:transparent;color:var(--on-night);border:1px solid rgb(244 243 239 / 0.28);font-family:var(--display);font-weight:650;font-size:15px;
}
.now-later svg{width:16px;height:16px;}
.now-later:hover{border-color:var(--on-night);}
.done-card{background:var(--sage-700);box-shadow:0 24px 50px rgb(26 122 80 / 0.28);}
.done-card .now-for,.done-card .now-k{color:rgb(255 255 255 / .75);}
.empty-card{background:var(--paper-2);color:var(--ink);box-shadow:none;}
.empty-card .now-k,.empty-card .now-for{color:var(--ink-soft);}
.empty-card .now-done{background:var(--ink);color:var(--paper);}
.day-list{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:14px 16px 8px;}
.day-list-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--display);font-weight:650;font-size:15px;}
.day-count{font-family:var(--mono);font-size:12px;color:var(--ink-soft);font-weight:500;}
.day-bar{height:6px;border-radius:99px;background:var(--paper-3);overflow:hidden;margin:10px 0 6px;}
.day-bar i{display:block;height:100%;background:var(--sage-500);border-radius:99px;transition:width .6s var(--ease-out);}
.day-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line-soft);}
.day-row:first-of-type{border-top:none;}
.day-check{width:26px;height:26px;border-radius:999px;border:1.5px solid var(--border-strong);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--mono);font-size:11px;color:var(--ink-soft);}
.day-check b{font-weight:600;}
.day-check svg{width:13px;height:13px;}
.day-row.done .day-check{background:var(--sage-500);border-color:var(--sage-500);color:#fff;}
.day-row.done .day-label{color:var(--ink-faint);text-decoration:line-through;}
.day-row.current .day-check{border-color:var(--ink);background:var(--ink);color:var(--paper);}
.day-row.current .day-label{font-weight:650;}
.day-label{flex:1;min-width:0;font-size:14.5px;line-height:1.35;}
.day-goal{font-family:var(--mono);font-size:10.5px;color:var(--ink-soft);flex-shrink:0;}
.today-links{display:grid;grid-template-columns:1fr;gap:8px;}
@media (min-width:640px){ .today-links{grid-template-columns:repeat(3,1fr);} }
.today-link{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--paper);border:1px solid var(--line);border-radius:16px;cursor:pointer;text-align:left;font:inherit;color:inherit;}
.today-link:hover{border-color:var(--border-strong);}
.today-link > span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column;}
.today-link b{font-family:var(--display);font-weight:650;font-size:14.5px;}
.today-link small{font-size:12px;color:var(--ink-soft);}
.today-link > svg{width:14px;height:14px;color:var(--ink-faint);flex-shrink:0;}
.today-link .tile{width:34px;height:34px;border-radius:10px;}
.toast-row{display:flex;align-items:center;gap:14px;}
.toast-undo{background:transparent;border:1px solid rgb(244 243 239 / .3);color:var(--on-night);border-radius:999px;padding:8px 14px;font-family:var(--display);font-weight:650;font-size:13px;cursor:pointer;flex-shrink:0;}
.view.anim-in .today > *{animation:c-rise .55s var(--ease-out) both;}
.view.anim-in .today > :nth-child(2){animation-delay:.06s}.view.anim-in .today > :nth-child(3){animation-delay:.12s}.view.anim-in .today > :nth-child(4){animation-delay:.18s}.view.anim-in .today > :nth-child(5){animation-delay:.24s}
.now-card:not(.leaving){animation:c-rise .45s var(--ease-out) both;}

/* ---- Lya : raccourcis */
.lya-quick{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 6px;}
.lya-quick button{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:10px 14px;font-size:13.5px;font-weight:500;cursor:pointer;color:var(--ink);}
.lya-quick button:hover{border-color:var(--ink);}
.lya-plan{display:flex;align-items:center;gap:12px;background:var(--paper-2);border-radius:18px;padding:14px;}
.lya-plan-body{flex:1;min-width:0;}
.lya-plan-t{font-family:var(--display);font-weight:650;font-size:15px;}
.lya-plan-s{font-size:12.5px;color:var(--ink-soft);margin-top:2px;}

/* ---- fiche objectif : details replies */
.more-box{margin-top:14px;background:var(--paper-2);border-radius:var(--r-lg);padding:4px 16px;}
.more-box > summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:14px 0;font-family:var(--display);font-weight:650;font-size:15px;}
.more-box > summary::-webkit-details-marker{display:none;}
.more-box > summary .ic svg{width:15px;height:15px;color:var(--ink-soft);}
.more-box > summary::after{content:"+";margin-left:auto;font-family:var(--mono);color:var(--ink-soft);font-size:18px;}
.more-box[open] > summary::after{content:"–";}
.more-box .section{background:transparent!important;padding:0 0 14px!important;margin-top:0!important;}
.goal-next-card{margin-top:14px;}

/* ====================================================== MOT DE PASSE OUBLIE (03/10) */
.auth-forgot{align-self:flex-end;background:none;border:none;padding:6px 0;margin-top:-6px;font-size:13.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;text-decoration:underline;text-underline-offset:3px;min-height:32px;}
.auth-forgot:hover{color:var(--ink);}
.auth-wrap.single{grid-template-columns:1fr;}

/* ====================================================== NOUVEL OBJECTIF ADAPTE AU PROJET (03/10) */
.gp-sub{margin:-2px 0 14px;}
.gp-loading{display:flex;flex-direction:column;align-items:center;gap:14px;padding:32px 0 24px;text-align:center;}
.gp-q{padding:14px 0;border-top:1px solid var(--line);}
.gp-q:first-of-type{border-top:none;padding-top:2px;}
.gp-q-text{display:flex;gap:10px;font-family:var(--display);font-weight:650;font-size:15.5px;line-height:1.3;margin-bottom:10px;}
.gp-q-no{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--ink-soft);padding-top:3px;flex-shrink:0;}
.gp-num{display:flex;align-items:center;gap:10px;max-width:240px;}
.gp-unit{font-family:var(--mono);font-size:13px;color:var(--ink-soft);}
.gp-meta{font-size:13.5px;color:var(--ink-soft);margin:-4px 0 12px;}
.gp-note{background:var(--paper-2);border-radius:14px;padding:12px 14px;font-size:13.5px;line-height:1.45;margin:0 0 12px;}
.gp-steps{margin:0 0 6px;padding-left:20px;font-size:14px;line-height:1.55;}
.gp-acts{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;}
.gp-act{display:flex;align-items:center;gap:10px;padding:10px 6px 10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--paper);}
.gp-act-no{font-family:var(--mono);font-size:12px;color:var(--ink-soft);width:14px;flex-shrink:0;}
.gp-act-t{flex:1;min-width:0;font-size:14.5px;line-height:1.35;}
.gp-act button{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--ink-soft);border-radius:10px;min-width:36px;min-height:36px;}
.gp-act button:hover{background:var(--paper-2);color:var(--ink);}
.gp-act button .ic svg{width:14px;height:14px;}

/* ====================================================== VISITE GUIDEE EN DIRECT (03/10) */
html.tour-open,html.tour-open body{overflow:hidden;}
.tour-block{position:fixed;inset:0;z-index:400;background:transparent;-webkit-tap-highlight-color:transparent;}
.tour-dim{position:fixed;inset:0;z-index:401;background:rgb(17 17 16 / 0.62);pointer-events:none;}
.tour-spot{position:fixed;z-index:401;border-radius:18px;box-shadow:0 0 0 9999px rgb(17 17 16 / 0.62);pointer-events:none;
  transition:left .3s var(--ease-out),top .3s var(--ease-out),width .3s var(--ease-out),height .3s var(--ease-out);}
.tour-spot.tap::after,.tour-spot.ok::after{content:"";position:absolute;inset:-5px;border-radius:22px;border:2px solid #fff;}
.tour-spot.tap::after{animation:tour-pulse 1.4s ease-out infinite;}
.tour-spot.ok::after{border-color:var(--mint);}
@keyframes tour-pulse{0%{opacity:1;transform:scale(1);}100%{opacity:0;transform:scale(1.07);}}
.tour-bubble{position:fixed;z-index:402;background:var(--paper);color:var(--ink);border-radius:20px;padding:14px 16px 12px;
  box-shadow:0 18px 50px rgb(0 0 0 / 0.28);max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);overflow-y:auto;}
.tour-bubble.center{left:50%;top:50%;transform:translate(-50%,-50%);width:min(380px, calc(100vw - 32px));}
.tour-top{display:flex;align-items:center;gap:12px;margin-bottom:8px;}
.tour-prog{flex:1;height:3px;border-radius:99px;background:var(--paper-3);overflow:hidden;}
.tour-prog i{display:block;height:100%;background:var(--ink);border-radius:99px;transition:width .3s var(--ease-out);}
.tour-skip{background:none;border:none;font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer;padding:6px 0;min-height:32px;}
.tour-title{font-family:var(--display);font-weight:700;font-size:18px;line-height:1.2;letter-spacing:-0.01em;margin-bottom:6px;}
.tour-text{font-size:14.5px;line-height:1.5;color:var(--ink-soft);margin:0;}
.tour-text .mini-steps{margin-top:12px;gap:10px;}
.tour-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;}
.tour-actions .action{width:auto;min-width:120px;padding:11px 18px;}
.tour-link{background:none;border:none;font-size:13.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:8px 0;min-height:40px;}
.tour-hint{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ink);}
.tour-hint svg{width:14px;height:14px;transform:rotate(-90deg);}
.guide-cta{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin:18px 0 22px;}
.guide-cta .action{width:auto;padding:12px 20px;}
@media (prefers-reduced-motion: reduce){ .tour-spot,.tour-prog i{transition:none;} .tour-spot.tap::after{animation:none;} }

/* ====================================================== CONFIRMATION "C'EST FAIT" (03/10) */
.confirm-done-label{font-family:var(--display);font-weight:650;font-size:17px;line-height:1.3;margin:2px 0 0;}
.confirm-done-actions{display:flex;gap:10px;margin-top:18px;}
.confirm-done-actions .action{flex:1;width:auto;padding:13px 14px;}
