@import url('https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@700;800;900&family=Space+Grotesk:wght@400;500;600;700&display=swap');

/* =====================================================================
   L'Émotion v3 : interface pensée pour un vrai téléphone
   Base 16 px, zones tactiles de 48 px minimum, un bouton principal orange par écran.
   ===================================================================== */
:root{
  color-scheme:dark;
  --bg:#0b0b0a;--surface:#161714;--surface-2:#1e201b;--line:#2c2e27;--line-2:#3a3c34;
  --white:#f3ebdd;--muted:#aba99f;--dim:#8d8b82;
  --orange:#ff5a1f;--orange-bright:#ff7a45;--green:#c6f300;--ink:#160a05;
  --display:'Big Shoulders Display','Barlow Condensed',Impact,sans-serif;
  --body:'Space Grotesk','DM Sans',Arial,sans-serif;
  --r-card:22px;--r-inner:14px;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--white);font:400 calc(16px*var(--t,1))/1.45 var(--body);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent}
a{color:inherit}
h1,h2,h3,h4,p,blockquote,ul,ol{margin:0}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--green);outline-offset:2px}

/* ---------- Cadre de l'app ---------- */
body{display:flex;justify-content:center;background:radial-gradient(1200px 600px at 50% -10%,#1d130c 0,transparent 60%),var(--bg)}
.app{position:relative;display:flex;flex-direction:column;width:100%;max-width:520px;height:100dvh;background:var(--bg);overflow:hidden}
@media(min-width:700px){.app{height:min(960px,100dvh - 32px);margin:16px 0;border:1px solid var(--line);border-radius:36px;box-shadow:0 40px 120px #000a}}
.app-header{flex:none;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + 14px) 20px 6px}
.app-brand{display:block;width:44px;height:44px;border-radius:50%;overflow:hidden}
.emotion-logo{display:block;width:44px;height:44px;object-fit:cover;object-position:left center}
.avatar-button{width:48px;height:48px;padding:0;border:2px solid var(--line-2);border-radius:50%;background:var(--surface);overflow:hidden}
.avatar-button img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.avatar-initials{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:var(--orange);color:var(--ink);font:800 calc(22px*var(--t,1))/1 var(--display)}
.avatar-initials.small{font-size:calc(20px*var(--t,1))}
.scroll-content{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:8px 20px 28px;scrollbar-width:none;overscroll-behavior:contain}
.scroll-content::-webkit-scrollbar{display:none}
.app-screen{display:block;animation:none}
.app-screen[hidden]{display:none!important}
.app-screen.enter{animation:screen-in .28s cubic-bezier(.2,.7,.2,1)}
@keyframes screen-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.app-screen>*+*{margin-top:20px}

/* ---------- Barre du bas ---------- */
.bottom-nav{flex:none;display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:8px 8px max(10px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#101110ee;backdrop-filter:blur(14px)}
.bottom-nav[hidden]{display:none!important}
.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:60px;padding:6px 2px;border:0;border-radius:14px;background:none;color:var(--dim);font:600 calc(14px*var(--t,1))/1 var(--body)}
.nav-item svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-item.active{color:var(--orange-bright);background:#ff5a1f1c}
.nav-item.active svg{stroke:var(--orange)}

/* ---------- Typographie ---------- */
.eyebrow{color:var(--muted);font:700 calc(14px*var(--t,1))/1.2 var(--body);letter-spacing:.12em;text-transform:uppercase}
.screen-title{padding-top:6px}
.screen-title h1,h1.hello{font:900 clamp(44px,13vw,60px)/.92 var(--display);text-transform:uppercase;letter-spacing:.005em}
.screen-title .eyebrow{margin-bottom:8px}
.screen-intro{margin-top:8px;color:var(--muted);font-size:calc(16px*var(--t,1))}
h1.hello span{color:var(--orange)}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.section-heading h2,.section-heading h3{font:800 calc(24px*var(--t,1))/1 var(--display);text-transform:uppercase;letter-spacing:.01em}
.text-link{min-height:44px;padding:0 4px;border:0;background:none;color:var(--orange-bright);font:600 calc(15px*var(--t,1)) var(--body)}
.field-caption{color:var(--muted);font-size:calc(14px*var(--t,1));font-weight:600}
.tag-today{padding:6px 10px;border:1px solid #6a3a24;border-radius:8px;color:#ffa17c;font:700 calc(14px*var(--t,1))/1 var(--body);letter-spacing:.08em}
.nutrition-note,.food-hint,.scan-note{color:var(--dim);font-size:calc(14px*var(--t,1));line-height:1.5}

/* ---------- Boutons ---------- */
.cta,.save-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:58px;padding:0 20px;border:0;border-radius:16px;background:var(--orange);color:var(--ink);font:700 calc(18px*var(--t,1)) var(--body);box-shadow:0 10px 30px -10px #ff5a1f99}
.cta svg{width:22px;height:22px;fill:var(--ink)}
.cta:active,.save-button:active{transform:scale(.98)}
.save-button:disabled{background:#2c2b27;color:#8d8b82;box-shadow:none;cursor:default}
.secondary-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;padding:0 18px;border:1.5px solid var(--line-2);border-radius:14px;background:transparent;color:var(--white);font:600 calc(16px*var(--t,1)) var(--body)}
.tool-button{flex:1;min-height:48px;padding:0 14px;border:1.5px solid var(--line-2);border-radius:14px;background:var(--surface);color:var(--white);font:600 calc(15px*var(--t,1)) var(--body)}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.seg-btn{min-height:46px;border:0;border-radius:12px;background:none;color:var(--muted);font:600 calc(15px*var(--t,1)) var(--body)}
.seg-btn.active{background:var(--orange);color:var(--ink)}
.chip{flex:none;min-height:44px;padding:0 16px;border:1.5px solid var(--line-2);border-radius:999px;background:var(--surface);color:var(--white);font:500 calc(15px*var(--t,1)) var(--body)}
.chip.active{border-color:var(--orange);background:var(--orange);color:var(--ink);font-weight:700}

/* ---------- Champs ---------- */
label{display:grid;gap:8px;color:#d6d3c8;font-size:calc(15px*var(--t,1));font-weight:500}
input,textarea,select{width:100%;min-height:54px;padding:12px 16px;border:1.5px solid var(--line-2);border-radius:14px;background:#0f100e;color:var(--white);font-size:calc(16px*var(--t,1))}
input::placeholder,textarea::placeholder{color:#6f6d65}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--orange)}
input[type=checkbox]{width:auto;min-height:0}
input[type=range]{padding:0;min-height:32px;accent-color:var(--orange)}
.auth-form,.profile-goal,.settings-form,.invite-form,.editor-card{display:grid;gap:16px;padding:18px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.auth-error{color:#ffb497;font-size:calc(15px*var(--t,1))}
.auth-toggle,.auth-reset{display:block;width:100%;min-height:50px;border:0;background:none;color:var(--white);font:600 calc(16px*var(--t,1)) var(--body);text-align:center}
.auth-reset{color:var(--orange-bright)}
.setup-admin-help{color:var(--dim);font-size:calc(14px*var(--t,1));line-height:1.5;text-align:center}
.save-status{color:var(--muted);font-size:calc(14px*var(--t,1));line-height:1.4}
.save-status[data-kind=pending]{color:#ffb497}.save-status[data-kind=ok]{color:var(--green)}.save-status[data-kind=error]{color:#ff9d8a}

/* ---------- Accueil ---------- */
.home-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-top:6px}
.home-top .eyebrow{margin-bottom:8px}
.streak-chip{display:flex;align-items:center;gap:6px;flex:none;padding:8px 14px;border:1px solid #4a3426;border-radius:999px;background:#2a1a10}
.streak-chip strong{font:900 calc(24px*var(--t,1))/1 var(--display);color:var(--orange-bright)}
.streak-chip small{color:var(--muted);font-size:calc(14px*var(--t,1))}
.week-strip{display:flex;justify-content:space-between;padding:14px 14px 12px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.week-day{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--dim);font-size:calc(14px*var(--t,1));font-weight:700}
.week-day i{display:grid;place-items:center;width:34px;height:34px;border:1.5px solid var(--line-2);border-radius:50%;background:var(--surface-2);color:var(--green);font-style:normal;font-size:calc(16px*var(--t,1))}
.week-day.done{color:var(--white)}
.week-day.done i{border-color:var(--green);background:#232a0c}
.week-day.today{color:var(--orange-bright)}
.week-day.today i{border-color:var(--orange);background:var(--orange)}
.workout-card{position:relative;height:230px;overflow:hidden;border:1px solid var(--line-2);border-radius:var(--r-card);background:var(--surface-2);cursor:pointer}
.workout-card.is-rest{cursor:default}
.workout-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:saturate(.9) brightness(.75)}
.photo-shade{position:absolute;inset:0;background:linear-gradient(0deg,#0b0b0af2 4%,#0b0b0a66 50%,#0b0b0a22)}
.level-pill{position:absolute;top:16px;left:16px;padding:7px 12px;border-radius:999px;background:#0b0b0acc;color:var(--white);font:700 calc(14px*var(--t,1))/1 var(--body);letter-spacing:.08em;text-transform:uppercase;backdrop-filter:blur(6px)}
.workout-info{position:absolute;left:18px;right:18px;bottom:20px}
.workout-info h3{font:900 clamp(32px,9.5vw,42px)/.95 var(--display);text-transform:uppercase}
.workout-info p{margin-top:6px;color:#d6d3c8;font-size:calc(16px*var(--t,1))}
.workout-progress{position:absolute;left:0;right:0;bottom:0;height:5px;background:#ffffff26}
.workout-progress span{display:block;height:100%;background:var(--orange)}
.today-section .cta{margin-top:14px}
.workout-card.is-rest+.cta{display:none}
.week-card{padding:18px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.week-body{display:flex;align-items:center;gap:18px}
.ring{position:relative;display:grid;place-items:center;flex:none;width:118px;height:118px;border-radius:50%;background:conic-gradient(var(--orange) 0 0%,#34352e 0 100%)}
.ring:before{content:"";position:absolute;inset:11px;border-radius:50%;background:var(--surface)}
.ring>div{position:relative;display:flex;flex-direction:column;align-items:center}
.ring strong{font:900 calc(32px*var(--t,1))/1 var(--display)}
.ring small{margin-top:3px;color:var(--muted);font-size:calc(14px*var(--t,1))}
.week-stats{display:grid;gap:12px;flex:1;min-width:0}
.stat-item{display:grid;gap:3px}
.stat-value{font:900 calc(28px*var(--t,1))/1 var(--display)}
.stat-value span{margin-left:3px;color:var(--muted);font:600 calc(15px*var(--t,1)) var(--body)}
.stat-item p{color:var(--muted);font-size:calc(14px*var(--t,1))}
.mini-bars{display:flex;gap:4px;margin-top:4px}
.mini-bars i{flex:1;height:6px;border-radius:6px;background:#34352e}
.mini-bars i.filled{background:var(--orange)}
.stat-line{height:6px;overflow:hidden;border-radius:6px;background:#34352e;margin-top:4px}
.stat-line span{display:block;height:100%;border-radius:6px;background:var(--orange)}
.trend-up{color:var(--green);font-size:calc(14px*var(--t,1));font-weight:600}
.week-stats .stat-item:nth-child(n+2){display:none}
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.quick-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:96px;padding:10px 4px;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--white);text-decoration:none}
.qi{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#ff5a1f22}
.qi svg{width:26px;height:26px;fill:none;stroke:var(--orange-bright);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.quick-item strong{font-size:calc(14px*var(--t,1));font-weight:600}

/* ---------- Mot du coach (accueil, progrès) ---------- */
.coach-card{position:relative;display:flex;overflow:hidden;border:1px solid #4a3a2c;border-radius:var(--r-card);background:linear-gradient(110deg,#251c15,#161714 70%)}
.coach-card-photo{width:112px;flex:none;object-fit:cover;object-position:center 20%}
.coach-card-body{display:flex;flex:1;flex-direction:column;justify-content:center;gap:8px;padding:16px}
.coach-card-body p{color:var(--orange-bright);font:700 calc(14px*var(--t,1))/1 var(--body);letter-spacing:.12em}
.coach-card blockquote{font:700 calc(22px*var(--t,1))/1.08 var(--display);letter-spacing:.01em}
.coach-card.slim .coach-card-photo{width:92px}
.coach-card.slim blockquote{font-size:calc(19px*var(--t,1))}
.coach-tip{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.coach-avatar{width:52px;height:52px;flex:none;padding:2px;border:1.5px solid #6a5a48;border-radius:50%}
.coach-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center 20%}
.tip-text p{color:var(--orange-bright);font:700 calc(14px*var(--t,1))/1 var(--body);letter-spacing:.1em}
.tip-text span{display:block;margin-top:6px;color:#d6d3c8;font-size:calc(15px*var(--t,1));line-height:1.4}
.inline-wa{color:var(--orange-bright);font-weight:700}

/* ---------- Programme ---------- */
.program-summary{display:flex;align-items:center;padding:16px 20px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.program-summary>div:not(.summary-rule){flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}
.program-summary strong{font:900 calc(40px*var(--t,1))/1 var(--display)}
.program-summary strong span{color:var(--muted);font-size:calc(24px*var(--t,1))}
.program-summary small{color:var(--muted);font-size:calc(14px*var(--t,1))}
.summary-rule{width:1px;align-self:stretch;background:var(--line-2)}
.program-tools{display:flex;gap:10px}
.program-list{display:grid;gap:12px}
.program-card{position:relative;display:flex;align-items:center;gap:14px;min-height:84px;padding:12px 16px 12px 12px;border:1.5px solid var(--line);border-radius:20px;background:var(--surface);cursor:pointer}
.program-card.current{border-color:var(--orange);background:linear-gradient(105deg,#2b1c13,#161714)}
.program-card.completed{opacity:.8}
.program-card.late{border-color:#6a3a2a}
.program-day{display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:60px;flex:none;border-radius:14px;background:var(--surface-2)}
.program-day span{color:var(--muted);font:700 calc(14px*var(--t,1))/1 var(--body);letter-spacing:.08em}
.program-day strong{font:900 calc(30px*var(--t,1))/1 var(--display)}
.program-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}
.program-copy strong{font-size:calc(17px*var(--t,1));font-weight:700;line-height:1.2}
.program-copy span{color:var(--muted);font-size:calc(14px*var(--t,1))}
.program-state{flex:none;color:var(--muted);font:700 calc(14px*var(--t,1))/1 var(--body);letter-spacing:.08em}
.program-card.completed .program-state{color:var(--green)}
.program-state.late{color:#ffa17c}
.program-action{flex:none;padding:10px 18px;border-radius:12px;background:var(--orange);color:var(--ink);font:700 calc(15px*var(--t,1))/1 var(--body)}

/* ---------- Progrès ---------- */
.progress-hero{display:flex;align-items:center;gap:18px;padding:20px;border:1px solid var(--line-2);border-radius:var(--r-card);background:radial-gradient(circle at 15% 50%,#3a2113,transparent 55%),var(--surface)}
.progress-ring{position:relative;display:grid;place-items:center;flex:none;width:132px;height:132px;border-radius:50%;background:conic-gradient(var(--orange) 0 0%,#34352e 0 100%)}
.progress-ring:before{content:"";position:absolute;inset:12px;border-radius:50%;background:#161412}
.progress-ring>div{position:relative;display:flex;flex-direction:column;align-items:center}
.progress-ring strong{font:900 calc(40px*var(--t,1))/1 var(--display)}
.progress-ring strong span{font-size:calc(22px*var(--t,1));color:var(--orange-bright)}
.progress-ring small{margin-top:3px;color:var(--muted);font-size:calc(14px*var(--t,1));text-align:center}
.progress-copy{display:flex;flex-direction:column;gap:6px}
.progress-copy span{color:var(--orange-bright);font:700 calc(14px*var(--t,1))/1 var(--body);letter-spacing:.1em}
.progress-copy strong{font:900 calc(32px*var(--t,1))/.98 var(--display);text-transform:uppercase}
.progress-copy small{color:var(--muted);font-size:calc(15px*var(--t,1))}
.chart-card{position:relative;padding:18px 16px 14px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.chart-y{float:left;display:flex;flex-direction:column;justify-content:space-between;height:150px;margin-right:8px;color:var(--dim);font-size:calc(14px*var(--t,1))}
.chart-main{position:relative;margin-left:30px;height:150px}
.chart-grid{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between}
.chart-grid i{display:block;height:1px;background:var(--line)}
.chart-bars{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:space-around;gap:8px}
.chart-bars>div{position:relative;flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.chart-bars span{display:block;width:70%;max-width:30px;height:var(--bar,0%);border-radius:8px 8px 4px 4px;background:#5b5b52}
.chart-bars span.bar-active{background:var(--orange)}
.chart-bars small{position:absolute;bottom:-24px;color:var(--dim);font-size:calc(14px*var(--t,1));font-weight:600}
.chart-legend{display:flex;align-items:center;gap:8px;margin-top:38px;color:var(--muted);font-size:calc(14px*var(--t,1))}
.chart-legend span{width:10px;height:10px;border-radius:50%;background:var(--orange)}
.chart-legend strong{margin-left:auto;color:var(--white);font-size:calc(14px*var(--t,1))}
.progress-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.progress-metrics article{display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.progress-metrics strong{font:900 calc(36px*var(--t,1))/1 var(--display)}
.progress-metrics small{color:var(--muted);font-size:calc(14px*var(--t,1))}
.metric-icon{color:var(--orange-bright);font-size:calc(20px*var(--t,1))}
.milestone{position:relative;display:flex;align-items:center;gap:14px;padding:16px 16px 20px;overflow:hidden;border:1px solid #5a4a30;border-radius:18px;background:#201e17}
.milestone-mark{color:var(--orange-bright);font-size:calc(26px*var(--t,1))}
.milestone strong{display:block;font-size:calc(17px*var(--t,1))}
.milestone small{color:var(--muted);font-size:calc(14px*var(--t,1))}
.milestone-count{margin-left:auto;color:var(--green);font:900 calc(22px*var(--t,1)) var(--display)}
.milestone-progress{position:absolute;left:0;right:0;bottom:0;height:5px;background:#4a4738}
.milestone-progress span{display:block;height:100%;background:var(--green)}
.history-list{display:grid;gap:10px}
.history-row{display:flex;align-items:center;gap:14px;min-height:68px;padding:10px 14px 10px 10px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.history-day{display:flex;flex-direction:column;align-items:center;justify-content:center;width:50px;height:48px;border-radius:12px;background:var(--surface-2)}
.history-day span{color:var(--muted);font:700 calc(14px*var(--t,1))/1 var(--body);letter-spacing:.08em}
.history-day strong{font:900 calc(24px*var(--t,1))/1 var(--display)}
.history-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.history-copy strong{font-size:calc(16px*var(--t,1))}
.history-copy span{color:var(--muted);font-size:calc(14px*var(--t,1))}
.history-row .program-state{color:var(--green)}
.admin-empty{padding:14px;color:var(--muted);font-size:calc(15px*var(--t,1));line-height:1.5}

/* ---------- Nutrition (planning) ---------- */
.meal-day-switch{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.meal-day{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:62px;height:70px;border:1.5px solid var(--line-2);border-radius:16px;background:var(--surface);color:var(--muted);font:700 calc(14px*var(--t,1))/1 var(--body)}
.meal-day strong{font:900 calc(26px*var(--t,1))/1 var(--display);color:var(--white)}
.meal-day.active{border-color:var(--orange);background:var(--orange);color:var(--ink)}
.meal-day.active strong{color:var(--ink)}
.meal-summary{display:grid;gap:4px;margin-top:14px;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.meal-summary span{color:var(--orange-bright);font:700 calc(14px*var(--t,1))/1 var(--body);letter-spacing:.1em}
.meal-summary strong{font-size:calc(18px*var(--t,1))}
.meal-summary small{color:var(--muted);font-size:calc(14px*var(--t,1))}
.meal-list{display:grid;gap:10px;margin-top:14px}
.meal-card{display:flex;align-items:center;gap:14px;min-height:76px;padding:12px 14px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.meal-time{display:flex;flex-direction:column;gap:3px;width:62px;flex:none;font:900 calc(22px*var(--t,1))/1 var(--display)}
.meal-time span{color:var(--muted);font:700 calc(14px*var(--t,1))/1 var(--body);letter-spacing:.08em}
.meal-detail{flex:1;min-width:0}
.meal-detail strong{font-size:calc(16px*var(--t,1))}
.meal-detail p{margin-top:3px;color:var(--muted);font-size:calc(14px*var(--t,1));line-height:1.35}
.meal-check{display:grid;place-items:center;width:48px;height:48px;flex:none;border:1.5px solid var(--line-2);border-radius:50%;background:var(--surface-2);color:var(--dim);font-size:calc(20px*var(--t,1))}
.meal-check.checked{border-color:var(--green);background:#232a0c;color:var(--green)}
.meal-edit-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;margin-top:12px;border:1.5px solid var(--line-2);border-radius:14px;background:transparent;font:600 calc(16px*var(--t,1)) var(--body)}

/* ---------- Mon compte ---------- */
.profile-card{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--line-2);border-radius:var(--r-card);background:var(--surface)}
.profile-photo{position:relative;width:76px;height:76px;flex:none;padding:3px;border:2px solid #8a6a52;border-radius:50%;background:none}
.profile-photo img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.photo-badge{position:absolute;right:-4px;bottom:-4px;width:28px;height:28px;display:grid;place-items:center;border:3px solid var(--surface);border-radius:50%;background:var(--green)}
.photo-badge svg{width:14px;height:14px;fill:none;stroke:#10130a;stroke-width:2;stroke-linejoin:round}
.profile-main{display:flex;min-width:0;flex:1;flex-direction:column;gap:4px}
.profile-main>strong{font-size:calc(19px*var(--t,1));font-weight:700;overflow-wrap:anywhere}
.profile-main>span,.profile-location{color:#cfcdc3;font-size:calc(14px*var(--t,1));overflow-wrap:anywhere}
.profile-location span:first-child{color:var(--orange-bright)}
.profile-edit{display:grid;place-items:center;width:48px;height:48px;flex:none;border:1.5px solid var(--line-2);border-radius:50%;background:var(--surface-2);color:var(--orange-bright);font-size:calc(20px*var(--t,1))}
.goal-heading{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font:700 calc(14px*var(--t,1))/1 var(--body);letter-spacing:.08em}
.profile-role{color:#ffa07c!important;font-size:calc(14px*var(--t,1))!important}
.profile-section-heading{margin-top:8px}
.profile-links{overflow:hidden;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.profile-links button,.profile-links a.profile-link-a{display:flex;align-items:center;gap:14px;width:100%;min-height:68px;padding:10px 16px;border:0;border-top:1px solid var(--line);background:none;color:var(--white);text-align:left;text-decoration:none}
.profile-links>:first-child{border-top:0!important}
.profile-link-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:12px;background:#ff5a1f22;color:var(--orange-bright);font-size:calc(18px*var(--t,1))}
.profile-links button>span:nth-child(2),.profile-links a.profile-link-a>span:nth-child(2){display:flex;flex:1;flex-direction:column;gap:3px}
.profile-links strong{font-size:calc(16px*var(--t,1));font-weight:600}
.profile-links small{color:var(--muted);font-size:calc(14px*var(--t,1))}
.profile-links i{color:var(--dim);font-size:calc(22px*var(--t,1));font-style:normal}
.logout-button{width:100%;min-height:54px;border:1.5px solid #5a4338;border-radius:14px;background:#211915;color:#f2b39b;font:600 calc(16px*var(--t,1)) var(--body)}
.profile-footer{margin-top:8px;color:var(--dim);text-align:center;font-size:calc(14px*var(--t,1));letter-spacing:.1em}

/* ---------- Rappels, admin, éditeurs ---------- */
.reminder-settings{display:grid;gap:4px;padding:6px 16px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.reminder-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:72px}
.reminder-row span{display:flex;flex-direction:column;gap:3px}
.reminder-row strong{font-size:calc(16px*var(--t,1))}
.reminder-row small{color:var(--muted);font-size:calc(14px*var(--t,1))}
.reminder-row input[type=checkbox]{width:28px;height:28px;accent-color:var(--orange)}
.reminder-time{display:flex;align-items:center;justify-content:space-between}
.reminder-days-label{color:var(--muted);font:700 calc(14px*var(--t,1))/1 var(--body);letter-spacing:.08em}
.reminder-days{display:flex;gap:8px;padding-bottom:12px}
.reminder-days label{display:block}
.reminder-days input{position:absolute;opacity:0;width:0;min-height:0}
.reminder-days span{display:grid;place-items:center;width:44px;height:44px;border:1.5px solid var(--line-2);border-radius:50%;font-weight:700}
.reminder-days input:checked+span{border-color:var(--orange);background:var(--orange);color:var(--ink)}
.admin-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.admin-stats article{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.admin-stats strong{font:900 calc(40px*var(--t,1))/1 var(--display)}
.admin-stats small{color:var(--muted);font-size:calc(14px*var(--t,1))}
.member-list{display:grid;gap:10px}
.member-row{display:flex;align-items:center;gap:14px;width:100%;min-height:68px;padding:10px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);text-align:left}
.member-row.selected{border-color:var(--orange)}
.member-avatar{width:44px;height:44px;flex:none;overflow:hidden;border-radius:50%;background:var(--surface-2)}
.member-avatar img{width:100%;height:100%;object-fit:cover}
.member-row strong{display:block;font-size:calc(16px*var(--t,1))}
.member-row small{color:var(--muted);font-size:calc(14px*var(--t,1))}
.member-row i{margin-left:auto;color:var(--dim);font-size:calc(22px*var(--t,1));font-style:normal}
.admin-selected{padding:12px 14px;border:1px solid var(--line-2);border-radius:14px;color:var(--muted);font-size:calc(14px*var(--t,1))}
.admin-actions{display:grid;gap:10px}
.admin-actions button{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 16px;border:1px solid var(--line);border-radius:16px;background:var(--surface);text-align:left}
.admin-actions button span{display:flex;flex:1;flex-direction:column;gap:2px}
.admin-actions strong{font-size:calc(16px*var(--t,1))}
.admin-actions small{color:var(--muted);font-size:calc(14px*var(--t,1))}
.admin-actions i{color:var(--dim);font-size:calc(22px*var(--t,1));font-style:normal}
.admin-notice{color:var(--dim);font-size:calc(14px*var(--t,1));line-height:1.5}
.editor-list{display:grid;gap:14px}
.editor-card-heading{display:flex;justify-content:space-between;color:var(--muted);font:700 calc(14px*var(--t,1))/1 var(--body);letter-spacing:.08em}
.invite-form .auth-error{margin:0}

/* ---------- Téléphone étroit ---------- */
@media(max-width:380px){
  .scroll-content{padding-left:16px;padding-right:16px}
  .quick{gap:8px}.quick-item strong{font-size:calc(14px*var(--t,1))}
  .week-body{flex-direction:column;align-items:flex-start}
}
@media(prefers-reduced-motion:reduce){.app-screen.enter{animation:none}}

/* ---------- Finitions ---------- */
.app-screen>*+*{margin-top:20px!important}
.screen-title h2{font:900 clamp(44px,13vw,60px)/.92 var(--display);text-transform:uppercase}
.screen-title h1 span,.screen-title h2 span{color:var(--orange)}
.setup-admin-help{display:none!important}
.week-day i{flex:none;line-height:1}
.week-day.today i{width:34px;height:34px}
.week-stats .stat-item:nth-child(1){display:none}
.week-stats .stat-item:nth-child(n+2){display:grid}
.program-state{font-size:calc(14px*var(--t,1));letter-spacing:.04em}
.program-copy span{overflow-wrap:anywhere}
.progress-ring{width:140px;height:140px}
.progress-ring small{max-width:84px;font-size:calc(14px*var(--t,1));line-height:1.2}
.progress-hero{gap:16px;padding:18px}
.food-quick{margin-left:0;margin-right:-20px;padding-left:0}
.scan-note{font-size:calc(14px*var(--t,1))}
.scan-button{margin:0}
.seg+.scan-button{margin-top:0}

/* ---------- Fenêtres (fiche séance, panneaux) : règles de base ---------- */
dialog.workout-dialog{width:min(440px,calc(100% - 20px));max-height:min(92dvh,840px);padding:0;border:1px solid var(--line-2);border-radius:26px;background:#141512;color:var(--white);box-shadow:0 30px 90px #000c;overflow:auto;scrollbar-width:none}
dialog.workout-dialog::-webkit-scrollbar{display:none}
dialog.workout-dialog::backdrop,dialog.panel::backdrop{background:#050605c9;backdrop-filter:blur(5px)}
.dialog-close{position:absolute;top:12px;right:12px;z-index:3;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid var(--line-2);border-radius:50%;background:#14140fcc;color:var(--white);font-size:calc(28px*var(--t,1));line-height:1;backdrop-filter:blur(6px)}
.dialog-meta{display:flex;flex-wrap:wrap;gap:8px}
.dialog-meta span{padding:9px 14px;border:1px solid var(--line-2);border-radius:999px;color:#d6d3c8;font-size:calc(14px*var(--t,1));font-weight:600}
.dialog-start{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:58px;border:0;border-radius:16px;background:var(--orange);color:var(--ink);font:700 calc(18px*var(--t,1)) var(--body);box-shadow:0 10px 30px -10px #ff5a1f99}
.sheet-photo{height:220px}
.sheet-when{padding:7px 12px;font-size:calc(14px*var(--t,1))}
.sheet-body{padding:6px 22px 24px}
.sheet-body h2{font-size:calc(40px*var(--t,1))}
.sheet-exos li{min-height:72px}
.sheet-exos img{width:52px;height:52px}
.sheet-exo-name strong{font-size:calc(16px*var(--t,1))}
.sheet-exo-name small{font-size:calc(14px*var(--t,1))}
.sheet-exo-amount{font-size:calc(22px*var(--t,1))}
.sheet-cue{font-size:calc(15px*var(--t,1))}
dialog.panel{padding:24px}
dialog.panel h2{font-size:calc(34px*var(--t,1))}
.sheet-body .dialog-start{position:sticky;bottom:14px;margin-bottom:14px;box-shadow:0 12px 30px -8px #000,0 10px 30px -10px #ff5a1f99}
.sheet-body{padding-bottom:0}

/* Vrai logo L'Émotion (mégaphone + lettrage) dans l'en-tête */
.app-brand{width:auto;height:52px;border-radius:0;overflow:visible}
.emotion-logo{width:auto;height:52px;border-radius:0;object-fit:contain;object-position:left center}

/* ===== Interactions et 3D ===== */
/* Anneaux : la valeur arrive de fx.js dans --p, ce qui permet de les animer */
.ring{background:conic-gradient(var(--orange) 0 calc(var(--p,0)*1%),#34352e calc(var(--p,0)*1%) 100%)}
.progress-ring{background:conic-gradient(var(--orange) 0 calc(var(--p,0)*1%),#34352e calc(var(--p,0)*1%) 100%)}

/* Retour au toucher */
button,.quick-item,.program-card,.coach-card,.profile-links a{transition:transform .14s ease,background-color .2s,border-color .2s,box-shadow .2s}
button:active:not(:disabled),.quick-item:active,.program-card:active,.profile-links a:active{transform:scale(.97)}

/* Les blocs d'un écran arrivent l'un après l'autre */
.app-screen.enter{animation:none}
.app-screen.enter>*{animation:rise .55s cubic-bezier(.2,.7,.2,1) both}
.app-screen.enter>*:nth-child(2){animation-delay:.05s}.app-screen.enter>*:nth-child(3){animation-delay:.1s}
.app-screen.enter>*:nth-child(4){animation-delay:.15s}.app-screen.enter>*:nth-child(5){animation-delay:.2s}
.app-screen.enter>*:nth-child(6){animation-delay:.25s}.app-screen.enter>*:nth-child(n+7){animation-delay:.3s}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* Carte de séance 3D : s'incline, la photo bouge en profondeur, un reflet suit le doigt */
.today-section{perspective:1100px}
.workout-card{transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s;touch-action:pan-y;will-change:transform;box-shadow:0 22px 40px -26px #000}
.workout-card.tilting{transition:transform .08s linear;box-shadow:0 30px 50px -24px #000}
.workout-photo{transform:translate3d(calc(var(--tx,0)*-12px),calc(var(--ty,0)*-8px),0) scale(1.12);transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.workout-card.tilting .workout-photo{transition:transform .08s linear}
.workout-info,.level-pill{transform:translate3d(calc(var(--tx,0)*6px),calc(var(--ty,0)*4px),0);transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.workout-card.tilting .workout-info,.workout-card.tilting .level-pill{transition:transform .08s linear}
.glare{position:absolute;inset:0;pointer-events:none;opacity:var(--glare,0);transition:opacity .3s;mix-blend-mode:soft-light;background:radial-gradient(circle at calc(50% + var(--tx,0)*45%) calc(50% + var(--ty,0)*45%),#ffffff55,transparent 55%)}

/* Chronomètre 3D du repos */
.chrono3d{display:grid;place-items:center;width:280px;height:280px;max-width:100%;margin:0 auto;touch-action:none}
.chrono3d canvas{width:100%!important;height:100%!important;filter:drop-shadow(0 26px 28px #000b)}
.runner-stage.has-chrono #runner-big{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.runner-stage.has-chrono .rest-bar{display:none}
.runner-stage:not(.has-chrono) .chrono3d{display:none}

/* Corps humain interactif (bibliothèque d'exercices) */
.exo-mode{margin:12px 0 4px}
.bodymap{margin-top:10px}
.bm-figs{display:flex;gap:10px}
.bm-fig{position:relative;flex:1;aspect-ratio:200/362;overflow:hidden;border-radius:16px;background:#fff;touch-action:manipulation}
.bm-fig>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.bm-fig svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.bm-fig svg path{pointer-events:all;cursor:pointer;opacity:.2!important;fill:#ff5a1f!important;stroke:transparent;stroke-width:9px;transition:opacity .15s}
.bm-fig svg.hot path{opacity:.95!important}
.bm-cap{margin-top:6px;color:var(--muted);font-size:calc(14px*var(--t,1));text-align:center}
.bm-label{min-height:34px;margin-top:10px;color:var(--orange-bright);font:900 calc(26px*var(--t,1))/1.1 var(--display);text-align:center;text-transform:uppercase}
.bm-hint{margin-top:4px;color:var(--muted);font-size:calc(14px*var(--t,1));text-align:center}

@media(prefers-reduced-motion:reduce){
  .app-screen.enter>*{animation:none}
  .workout-card,.workout-photo,.workout-info,.level-pill{transition:none}
}
.bm-figs>div{flex:1;min-width:0}
.bm-fig{width:100%}

/* Planning : l'heure et son libellé (MATIN, COLLATION…) ne doivent jamais déborder sur le texte */
.meal-time{width:96px;flex:none}
.meal-time span{white-space:nowrap;font-size:calc(14px*var(--t,1))}
.meal-card{gap:12px}

/* ===== Idées de repas ===== */
.seg-btn{font-size:calc(14px*var(--t,1));padding:0 4px}
.diet{display:flex;gap:8px;margin-bottom:12px}
.diet-btn{flex:1;min-height:48px;border:1.5px solid var(--line-2);border-radius:14px;background:var(--surface);color:var(--muted);font:600 calc(15px*var(--t,1)) var(--body)}
.diet-btn.active{border-color:var(--green);background:#232a0c;color:var(--green)}
#ideas-goals{margin-bottom:6px}
.ideas-grid{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.idea-card{display:flex;flex-direction:column;width:100%;height:100%;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--surface);text-align:left}
.idea-photo{position:relative;display:grid;place-items:center;aspect-ratio:1/1;background:linear-gradient(135deg,#2a1d15,#161714)}
.idea-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.idea-emoji{font-size:calc(54px*var(--t,1))}
.idea-badge{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#0b0b0acc;backdrop-filter:blur(6px);font-size:calc(16px*var(--t,1))}
.idea-body{display:flex;flex-direction:column;gap:5px;padding:12px 12px 14px}
.idea-body strong{font-size:calc(15px*var(--t,1));line-height:1.2;font-weight:700}
.idea-body small{color:var(--orange-bright);font-size:calc(14px*var(--t,1));font-weight:600}
.recipe .sheet-photo{height:260px}
.recipe-emoji{display:grid;place-items:center;width:100%;height:100%;font-size:calc(90px*var(--t,1));background:linear-gradient(135deg,#2a1d15,#161714)}
.recipe-macros{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0 4px}
.recipe-h{margin:20px 0 10px;font:800 calc(24px*var(--t,1))/1 var(--display);text-transform:uppercase}
.recipe-ing{list-style:none;margin:0;padding:0;display:grid;gap:2px;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.recipe-ing li{display:flex;align-items:center;gap:12px;min-height:50px;padding:6px 14px;background:var(--surface)}
.recipe-ing li+li{border-top:1px solid var(--line)}
.ri-e{font-size:calc(22px*var(--t,1))}.ri-l{flex:1;font-size:calc(16px*var(--t,1))}.recipe-ing strong{color:var(--green);font:800 calc(20px*var(--t,1)) var(--display)}
.recipe-steps{margin:0;padding-left:22px;display:grid;gap:10px;color:#d6d3c8;font-size:calc(16px*var(--t,1));line-height:1.5}
.recipe-steps li::marker{color:var(--orange-bright);font-weight:700}
.recipe .scan-note{margin-top:14px}
@media(max-width:360px){.ideas-grid{grid-template-columns:1fr}}

/* ---------- Message de confirmation (toast) : au-dessus de tout, jamais dans la mise en page ---------- */
.toast{position:fixed;z-index:80;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 96px);width:max-content;max-width:min(92vw,420px);padding:14px 20px;border:1px solid #5a5a4e;border-radius:16px;background:#23241e;color:#f4f2e8;font:600 calc(15px*var(--t,1))/1.35 var(--body);text-align:center;box-shadow:0 14px 40px #000a;opacity:0;pointer-events:none;transform:translate(-50%,16px);transition:opacity .2s,transform .2s}
.toast.show{opacity:1;transform:translate(-50%,0)}
body.running .toast{bottom:auto;top:calc(env(safe-area-inset-top,0px) + 80px)}
.confetti{position:fixed;inset:0;z-index:90;display:none;width:100vw;height:100vh;pointer-events:none}

/* ===== Accueil enrichi ===== */
.goal-chip{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:10px 16px;border:1.5px solid #5a3a28;border-radius:16px;background:linear-gradient(105deg,#2a1b12,#161714);text-align:left}
.gc-icon{font-size:calc(22px*var(--t,1))}
.gc-text{flex:1;min-width:0;font-size:calc(16px*var(--t,1));font-weight:700;overflow-wrap:anywhere}
.gc-prog{flex:none;color:var(--orange-bright);font-size:calc(14px*var(--t,1));font-weight:600;text-align:right}
.cap-banner{position:relative;display:flex;align-items:center;gap:14px;padding:14px 12px 14px 16px;border:1.5px solid var(--green);border-radius:18px;background:linear-gradient(105deg,#2b3a0a,#161714)}
.cap-banner[hidden]{display:none}
.cap-icon{font-size:calc(34px*var(--t,1))}
.cap-copy{display:flex;flex:1;flex-direction:column;gap:2px}
.cap-copy strong{font:900 calc(24px*var(--t,1))/1 var(--display);text-transform:uppercase;color:var(--green)}
.cap-copy small{color:#d6d3c8;font-size:calc(14px*var(--t,1))}
.cap-close{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:#0b0b0a66;font-size:calc(24px*var(--t,1));color:var(--white)}
.workout-video{opacity:0;transition:opacity .6s,transform .5s cubic-bezier(.2,.7,.2,1)}
.workout-video.ready{opacity:1}
.workout-card .photo-shade{z-index:1}
.workout-card .glare,.workout-card .level-pill,.workout-card .workout-info{z-index:2}
.weather-tip{margin-top:12px;padding:12px 14px;border:1px solid #3a4a56;border-radius:14px;background:#141c22;color:#cfe0ec;font-size:calc(15px*var(--t,1));line-height:1.4}
.weather-tip[hidden]{display:none}
.next-meal[hidden]{display:none}
.nm-card{display:flex;align-items:center;gap:14px;width:100%;padding:10px 14px 10px 10px;border:1px solid var(--line);border-radius:20px;background:var(--surface);text-align:left}
.nm-photo{position:relative;display:grid;place-items:center;width:88px;height:88px;flex:none;overflow:hidden;border-radius:14px;background:linear-gradient(135deg,#2a1d15,#161714)}
.nm-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.nm-emoji{font-size:calc(38px*var(--t,1))}
.nm-body{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}
.nm-body small{color:var(--orange-bright);font:700 calc(14px*var(--t,1))/1 var(--body);letter-spacing:.08em;text-transform:uppercase}
.nm-body strong{font-size:calc(17px*var(--t,1));line-height:1.2}
.nm-meta{color:var(--muted);font-size:calc(14px*var(--t,1))}
.nm-card i{color:var(--dim);font-size:calc(24px*var(--t,1));font-style:normal}
/* Semaine fusionnée : la bande L M M J V S D vit dans la carte */
.week-card .week-strip{margin:0 0 18px;padding:0 4px 16px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none}
@media(prefers-reduced-motion:reduce){.workout-video{display:none}}
.cap-copy strong{font-size:calc(22px*var(--t,1))}
.gc-text{font-size:calc(15px*var(--t,1))}
h1.hello{font-size:clamp(40px,12vw,54px)}

/* ---------- Taille du texte réglable (myopie, confort) ---------- */
:root{--t:1.15}
html[data-text="normal"]{--t:1}
html[data-text="grand"]{--t:1.15}
html[data-text="tres-grand"]{--t:1.32}
/* La barre du bas garde des libellés lisibles sans déborder */
.nav-item{font-size:calc(14px*min(var(--t,1),1.12))}
.nav-item svg{width:30px;height:30px}
body{font-size:calc(16px*var(--t,1))}
.text-size{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ts-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:76px;padding:8px;border:1.5px solid var(--line-2);border-radius:16px;background:var(--surface);color:var(--muted)}
.ts-btn b{font:800 26px/1 var(--display);color:var(--white)}
.ts-btn[data-size="normal"] b{font-size:22px}.ts-btn[data-size="grand"] b{font-size:28px}.ts-btn[data-size="tres-grand"] b{font-size:36px}
.ts-btn span{font-size:14px;font-weight:600}
.ts-btn.active{border-color:var(--orange);background:#ff5a1f1c;color:var(--orange-bright)}

/* Ressenti de fin de séance */
.effort{margin-top:14px}
.effort p{margin-bottom:8px;color:#d6d3c8;font-size:16px;font-weight:600}
.effort-row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.effort-row button{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:72px;padding:6px 2px;border:1.5px solid #ffffff3a;border-radius:14px;background:#0b0b0acc;color:var(--white)}
.effort-row button span{font-size:26px}
.effort-row button small{font-size:13px}
.effort-row button.on{border-color:var(--orange);background:#ff5a1f33}
/* Programme : à rattraper en évidence */
.program-summary .late-cell strong{color:var(--muted)}
.program-summary .late-cell.is-late strong{color:#ffa17c}
/* Plan alimentaire avec photos */
.meal-card.has-photo{padding-left:10px}
.meal-thumb{width:76px;height:76px;flex:none;border-radius:14px;object-fit:cover}
.meal-card.tappable{cursor:pointer}
.meal-card.has-photo .meal-time{width:auto;min-width:70px}

/* ===== Police BlowBrush (Petar Acanski, libre pour usage commercial) : en petites touches ===== */
@font-face{font-family:'BlowBrush';font-weight:400;font-style:normal;font-display:swap;src:url('assets/fonts/blowbrush.woff2') format('woff2')}
:root{--brush:'BlowBrush','Big Shoulders Display',Impact,sans-serif}
h1.hello span{font-family:var(--brush);font-weight:400;font-size:calc(1.12em);letter-spacing:.01em;text-transform:none}
.cap-copy strong{font-family:var(--brush);font-weight:400;text-transform:none;letter-spacing:.01em}
.screen-title h1 span{font-family:var(--brush);font-weight:400;text-transform:none}

/* ===== Espace coach ===== */
.bottom-nav{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr}
.nav-item[data-for="coach"]{display:none}
body.is-coach .nav-item[data-for="client"]{display:none}
body.is-coach .nav-item[data-for="coach"]{display:flex}
.coach-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.kpi{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:104px;padding:12px 6px;border:1px solid var(--line);border-radius:18px;background:var(--surface);text-align:center}
.kpi strong{font:900 calc(40px*var(--t,1))/1 var(--display)}
.kpi small{color:var(--muted);font-size:calc(14px*var(--t,1));line-height:1.2}
.kpi.warn{border-color:#8a4a2a;background:#2a1a10}.kpi.warn strong{color:#ffa17c}
.member-cards{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.member-card{display:flex;align-items:center;gap:14px;width:100%;min-height:112px;padding:14px;border:2px solid var(--line);border-radius:22px;background:var(--surface);text-align:left}
.member-card.red{border-color:#a8412a;background:linear-gradient(105deg,#2e1510,#161714)}
.member-card.orange{border-color:#8a5a22;background:linear-gradient(105deg,#2b1f0e,#161714)}
.mc-avatar,.mh-avatar{display:block;flex:none;overflow:hidden;border-radius:50%;border:2px solid #6a5a48;background:#1a1a17}
.mc-avatar{width:68px;height:68px}.mh-avatar{width:84px;height:84px}
.mc-avatar img,.mh-avatar img{width:100%;height:100%;object-fit:cover}
.mc-body{display:flex;flex:1;min-width:0;flex-direction:column;align-items:flex-start;gap:4px}
.mc-name{font-size:calc(20px*var(--t,1));line-height:1.15;overflow-wrap:anywhere}
.mc-goal{color:#d6d3c8;font-size:calc(16px*var(--t,1));line-height:1.25}
.mc-last{color:var(--muted);font-size:calc(15px*var(--t,1))}
.status-badge{display:inline-flex;align-items:center;gap:4px;margin-top:2px;padding:5px 12px;border-radius:999px;font-size:calc(15px*var(--t,1));font-weight:700;background:#26271f;color:#e9e6dc}
.status-badge.red{background:#4a1d14;color:#ffb9a6}.status-badge.orange{background:#40290d;color:#ffd08a}.status-badge.green{background:#1f3010;color:#c6f300}.status-badge.new{background:#1c2a3a;color:#a9d4ff}
.mc-week{display:flex;flex-direction:column;align-items:center;gap:2px;flex:none;text-align:center}
.mc-week strong{font:900 calc(34px*var(--t,1))/1 var(--display)}
.mc-week small{color:var(--muted);font-size:calc(13px*var(--t,1));max-width:70px;line-height:1.1}
.coach-empty{padding:22px 16px;border:1.5px dashed var(--line-2);border-radius:18px;color:var(--muted);font-size:calc(16px*var(--t,1));line-height:1.5;list-style:none}
.coach-empty strong{display:block;margin-bottom:6px;color:var(--white);font-size:calc(19px*var(--t,1))}
.back-link{display:inline-flex;align-items:center;gap:6px;min-height:52px;padding:0 4px;border:0;background:none;color:var(--orange-bright);font:700 calc(17px*var(--t,1)) var(--body)}
.back-link span{font-size:28px;line-height:1}
.mem-head{display:flex;align-items:center;gap:16px}
.mh-info{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}
.mh-info strong{font:900 calc(32px*var(--t,1))/1 var(--display);text-transform:uppercase;overflow-wrap:anywhere}
.mh-info span:not(.status-badge){color:#d6d3c8;font-size:calc(16px*var(--t,1))}
.mem-tabs .seg-btn{font-size:calc(15px*min(var(--t,1),1.15));padding:0 2px}
.mem-hero{display:flex;align-items:center;gap:18px;padding:18px;border:1px solid var(--line-2);border-radius:var(--r-card);background:radial-gradient(circle at 15% 50%,#3a2113,transparent 55%),var(--surface)}
.mh-text h2{font:900 calc(28px*var(--t,1))/1 var(--display);text-transform:uppercase}
.mh-text p{margin-top:8px;color:#d6d3c8;font-size:calc(16px*var(--t,1));line-height:1.4}
.mem-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mem-stat{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.mem-stat strong{font:900 calc(32px*var(--t,1))/1.05 var(--display)}
.mem-stat small{color:var(--muted);font-size:calc(15px*var(--t,1))}
.sec-title{font:800 calc(26px*var(--t,1))/1 var(--display);text-transform:uppercase}
.sec-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.kcal-total{color:var(--green);font-weight:700;font-size:calc(17px*var(--t,1))}
.kcal-total.big{text-align:center;font:900 calc(30px*var(--t,1))/1 var(--display)}
.mem-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.mem-row,.day-row,.meal-row{display:flex;align-items:center;gap:14px;width:100%;min-height:84px;padding:12px 14px 12px 12px;border:1.5px solid var(--line);border-radius:20px;background:var(--surface);text-align:left}
.mem-row.done{opacity:.85;border-color:#3a4a1c}.mem-row.late{border-color:#8a4a2a}
.mr-day{display:flex;flex-direction:column;align-items:center;justify-content:center;width:62px;height:62px;flex:none;border-radius:16px;background:var(--surface-2)}
.mr-day small{color:var(--muted);font:700 calc(13px*var(--t,1))/1 var(--body);letter-spacing:.06em}
.mr-day strong{font:900 calc(28px*var(--t,1))/1 var(--display)}
.mr-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}
.mr-copy strong{font-size:calc(18px*var(--t,1));line-height:1.2;font-weight:700}
.mr-copy small{color:var(--muted);font-size:calc(15px*var(--t,1));line-height:1.3}
.mr-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.tag-flag,.tag-effort{padding:4px 10px;border-radius:999px;font-size:calc(14px*var(--t,1));font-weight:700}
.tag-flag{background:#40290d;color:#ffd08a}.tag-effort{background:#26271f;color:#e9e6dc}
.row-btn{flex:none;min-height:52px;padding:0 16px;border:0;border-radius:14px;background:var(--orange);color:var(--ink);font:700 calc(16px*var(--t,1)) var(--body)}
.row-btn.ghost{background:transparent;border:1.5px solid var(--line-2);color:var(--white)}
.day-row.rest{border-style:dashed;color:var(--muted)}
.day-row.rest .mr-copy strong{color:var(--muted)}
.dr-thumb{width:60px;height:60px;flex:none;border-radius:14px;object-fit:cover}
.dr-plus{display:grid;place-items:center;width:52px;height:52px;flex:none;border-radius:50%;background:#ff5a1f22;color:var(--orange-bright);font-size:26px}
.meal-row i,.tpl-card i{color:var(--dim);font-size:26px;font-style:normal}
.mw-photo{display:grid;place-items:center;width:76px;height:76px;flex:none;overflow:hidden;border-radius:16px;background:linear-gradient(135deg,#2a1d15,#161714);font-size:30px}
.mw-photo img{width:100%;height:100%;object-fit:cover}
.meal-prev{min-height:92px}
.kind-pick{display:grid;gap:10px;margin:6px 0 18px}
.kind-opt{display:flex;align-items:center;gap:14px;width:100%;min-height:84px;padding:10px 14px 10px 10px;border:2px solid var(--line-2);border-radius:18px;background:var(--surface);text-align:left}
.kind-opt.on{border-color:var(--orange);background:#ff5a1f1c}
.kind-opt img{width:64px;height:64px;flex:none;border-radius:14px;object-fit:cover}
.ko-emoji{display:grid;place-items:center;width:64px;height:64px;flex:none;font-size:34px}
.ko-copy{display:flex;flex-direction:column;gap:3px}
.ko-copy strong{font-size:calc(18px*var(--t,1))}.ko-copy small{color:var(--muted);font-size:calc(15px*var(--t,1))}
.tpl-list{display:grid;gap:10px}
.tpl-card{display:flex;align-items:center;gap:14px;width:100%;min-height:92px;padding:12px 16px;border:1.5px solid var(--line-2);border-radius:20px;background:var(--surface);text-align:left}
.tpl-emoji{font-size:36px}
.tpl-copy{display:flex;flex:1;flex-direction:column;gap:4px}
.tpl-copy strong{font-size:calc(19px*var(--t,1))}.tpl-copy small{color:var(--muted);font-size:calc(15px*var(--t,1));line-height:1.3}
.pick-grid{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
#coach-dialog .diet{margin-bottom:10px}
#coach-dialog .cat-chips{margin-bottom:6px}
#coach-dialog .secondary-button,#coach-dialog .save-button{margin-top:14px}
.profile-footer small{display:block;margin-top:6px;letter-spacing:.04em;text-transform:none}
@media(max-width:380px){.coach-kpis{gap:8px}.kpi strong{font-size:34px}.pick-grid{grid-template-columns:1fr}}
.mem-row{flex-wrap:wrap}
.mem-row .row-btn{flex:1 1 100%;margin-top:2px}

/* Bascule coach / membre */
.mode-switch{flex:none;min-height:48px;margin:0 10px 0 auto;padding:0 14px;border:1.5px solid var(--green);border-radius:999px;background:#232a0c;color:var(--green);font:700 calc(15px*min(var(--t,1),1.15)) var(--body);white-space:nowrap}
.mode-switch[hidden]{display:none}
.app-header{gap:6px}
#edit-program{display:none!important}

/* ===== Exercice chronométré ===== */
.exo-go{margin:14px 0 6px;padding:16px;border:1.5px solid #5a3a28;border-radius:20px;background:linear-gradient(105deg,#2a1b12,#161714)}
.exo-go h3{margin-bottom:12px;font:800 calc(24px*var(--t,1))/1 var(--display);text-transform:uppercase}
.dur{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}
.dur-btn{min-height:52px;border:1.5px solid var(--line-2);border-radius:14px;background:var(--surface);color:var(--muted);font:700 calc(16px*var(--t,1)) var(--body)}
.dur-btn.active{border-color:var(--orange);background:var(--orange);color:var(--ink)}
dialog.exo-timer{width:min(440px,calc(100% - 16px));max-height:96dvh;padding:0;overflow:auto}
.et-photo{position:relative;height:230px;overflow:hidden;border-radius:20px 20px 0 0;background:#fff}
.et-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .25s}
.et-photo img.on{opacity:1}
.et-emoji{display:grid;place-items:center;height:100%;font-size:80px;background:linear-gradient(135deg,#2a1d15,#161714)}
.et-body{display:flex;flex-direction:column;align-items:center;gap:14px;padding:18px 20px 22px;text-align:center}
.et-kicker{color:var(--orange-bright);font:700 calc(15px*var(--t,1)) var(--body);letter-spacing:.1em;text-transform:uppercase}
.exo-timer h2{margin:0;font:900 calc(32px*var(--t,1))/1 var(--display);text-transform:uppercase}
.et-ring{--p:0;position:relative;display:grid;place-items:center;width:210px;height:210px;border-radius:50%;background:conic-gradient(var(--orange) 0 calc(var(--p)*1%),#34352e calc(var(--p)*1%) 100%)}
.et-ring:before{content:"";position:absolute;inset:14px;border-radius:50%;background:#161714}
.et-ring>div{position:relative;display:flex;flex-direction:column;align-items:center}
.et-ring strong{font:900 calc(64px*var(--t,1))/1 var(--display);font-variant-numeric:tabular-nums}
.et-ring small{color:var(--muted);font-size:calc(15px*var(--t,1))}
.et-actions{display:grid;gap:10px;width:100%}
.et-actions .stop{min-height:54px;border-color:#6a3a2a;color:#ffb497}
.et-actions .secondary-button,.et-actions .save-button{margin:0}
.et-result{display:flex;flex-direction:column;gap:14px;width:100%}
.et-verdict{font-size:calc(17px*var(--t,1));line-height:1.4;color:#e4dccd}
.et-result .effort-row button{background:#14140fcc;color:var(--white)}
.et-result .effort-row button.on{border-color:var(--orange);background:#ff5a1f33}

dialog.exo-timer h2{margin:0}

/* ===== Idées : plein cadre, presque sans lire ===== */
.goal-icons{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:2px 0 8px}
.goal-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:84px;padding:8px 2px;border:1.5px solid var(--line-2);border-radius:18px;background:var(--surface);color:var(--muted)}
.gt-emoji{font-size:34px;line-height:1}
.gt-label{font:700 calc(14px*min(var(--t,1),1.2)) var(--body)}
.goal-tile.active{border-color:var(--orange);background:#ff5a1f22;color:var(--white)}
.ideas-grid{gap:12px}
.idea-card{position:relative;display:block;aspect-ratio:3/4;padding:0;border:0;border-radius:24px;overflow:hidden;background:linear-gradient(135deg,#2a1d15,#161714)}
.idea-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}
.idea-card:active img{transform:scale(1.04)}
.idea-emoji{position:absolute;inset:0;display:grid;place-items:center;font-size:72px}
.idea-shade{position:absolute;inset:0;background:linear-gradient(0deg,#0b0b0af2 6%,#0b0b0a99 34%,transparent 62%)}
.idea-badge{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#0b0b0acc;font-size:19px;backdrop-filter:blur(6px)}
.idea-body{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px}
.idea-body strong{font:800 calc(20px*min(var(--t,1),1.2))/1.05 var(--display);text-transform:uppercase;text-shadow:0 2px 12px #000}
.idea-chips{display:flex;flex-wrap:wrap;gap:6px}
.idea-chips span{padding:5px 10px;border-radius:999px;background:#0b0b0acc;color:#fff;font:700 calc(14px*min(var(--t,1),1.2)) var(--body);backdrop-filter:blur(6px)}
.idea-row{margin-top:16px}
.ir-head h3{font:800 calc(26px*var(--t,1))/1 var(--display);text-transform:uppercase;margin-bottom:10px}
.ir-strip{list-style:none;margin:0 -20px;padding:0 20px 6px;display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.ir-strip::-webkit-scrollbar{display:none}
.ir-strip .idea{flex:none;width:68%;max-width:290px;scroll-snap-align:start}
.ir-strip .idea-card{aspect-ratio:4/5}
#ideas-grid .idea-body strong{font-size:calc(17px*min(var(--t,1),1.2))}

.ir-strip{scroll-padding-left:20px}
/* Planning : une illustration par moment de la journée */
.meal-art{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:84px;height:84px;flex:none;border-radius:24px;background:var(--tint,#2a2a22);border:1.5px solid #ffffff14}
.ma-emoji{font-size:calc(40px*min(var(--t,1),1.15));line-height:1}
.ma-time{color:#e9e6dc;font:700 calc(14px*min(var(--t,1),1.15)) var(--body)}
.meal-card{min-height:104px;gap:14px}
.meal-card .meal-thumb{order:5}
.meal-card.has-photo{padding-left:12px}
.meal-detail strong{font-size:calc(17px*var(--t,1))}
.meal-time{display:none}

/* ===== Page Membres : se comprendre sans effort ===== */
.coach-intro{color:#e4dccd;font-size:calc(18px*var(--t,1));line-height:1.45}
.coach-intro strong{color:var(--orange-bright)}
.legend{list-style:none;margin:0;padding:12px 14px;display:grid;gap:8px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.legend li{display:flex;align-items:center;gap:10px;font-size:calc(16px*var(--t,1));font-weight:600}
.legend small{margin-left:auto;color:var(--muted);font-size:calc(14px*var(--t,1));font-weight:400;text-align:right}
.dot{width:16px;height:16px;flex:none;border-radius:50%}
.dot.red{background:#e0482e}.dot.orange{background:#f0a030}.dot.green{background:#8fd12a}
.coach-demo-bar{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1.5px solid #3a5a8a;border-radius:16px;background:#142033;color:#cfe0ff;font-size:calc(16px*var(--t,1))}
.coach-demo-bar[hidden],#coach-demo[hidden]{display:none}
.coach-demo-bar span{flex:1}
.coach-demo-bar button{min-height:48px;padding:0 16px;border:1.5px solid #5a7ab0;border-radius:12px;background:transparent;color:#fff;font:700 calc(15px*var(--t,1)) var(--body)}

/* ===== Repas en 3 étapes ===== */
.step{display:flex;align-items:center;gap:12px;margin:22px 0 12px;font:800 calc(26px*var(--t,1))/1 var(--display);text-transform:uppercase}
#food-analyze>.step:first-child{margin-top:4px}
.step .n{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:50%;background:var(--orange);color:var(--ink);font:900 calc(22px*min(var(--t,1),1.2)) var(--display)}
.food-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.food-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:92px;padding:8px 2px;border:1.5px solid var(--line-2);border-radius:18px;background:var(--surface);color:var(--white)}
.food-tile:active{background:#ff5a1f22;border-color:var(--orange)}
.ft-emoji{font-size:calc(34px*min(var(--t,1),1.15));line-height:1}
.ft-label{font:600 calc(13px*min(var(--t,1),1.15))/1.1 var(--body);text-align:center;overflow-wrap:anywhere}
.food-empty{margin:4px 2px 0}
#meal-save{margin-top:14px}
.saved-list{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:10px}
.saved-item{display:flex;gap:8px;align-items:stretch}
.saved-open{display:flex;flex:1;align-items:center;gap:14px;min-width:0;min-height:76px;padding:10px 14px;border:1.5px solid var(--line-2);border-radius:18px;background:var(--surface);text-align:left}
.sv-emojis{font-size:26px;letter-spacing:2px;max-width:120px}
.sv-copy{display:flex;flex-direction:column;gap:3px}
.sv-copy strong{font-size:calc(17px*var(--t,1))}.sv-copy small{color:var(--orange-bright);font-size:calc(15px*var(--t,1))}
.sv-del{width:52px;border:1.5px solid var(--line-2);border-radius:18px;background:var(--surface);color:var(--muted);font-size:26px}
@media(max-width:360px){.food-tiles{grid-template-columns:repeat(3,1fr)}}

.stepper input{width:76px;font-size:calc(18px*min(var(--t,1),1.15))}
.meal-item{grid-template-columns:auto minmax(0,1fr) auto auto}
@media(max-width:380px){.stepper input{width:64px}}

/* ===== Chercher ===== */
.live-field{position:relative;display:flex;align-items:center}
.live-field input{padding-left:50px;padding-right:50px;min-height:58px;border-radius:18px;font-size:calc(18px*min(var(--t,1),1.2))}
.lf-icon{position:absolute;left:16px;font-size:22px;pointer-events:none}
.lf-clear{position:absolute;right:6px;width:48px;height:48px;border:0;border-radius:50%;background:none;color:var(--muted);font-size:28px}
.mini{margin:18px 0 10px;font:800 calc(22px*var(--t,1))/1 var(--display);text-transform:uppercase}
.pop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pop-tile{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:112px;padding:12px 4px;border:1.5px solid var(--line-2);border-radius:20px;background:var(--surface);color:var(--white)}
.pt-emoji{font-size:calc(38px*min(var(--t,1),1.15));line-height:1}
.pop-tile strong{font-size:calc(16px*min(var(--t,1),1.15))}
.pop-tile small{color:var(--orange-bright);font:700 calc(14px*min(var(--t,1),1.15)) var(--body)}
.recent-row{display:flex;flex-wrap:wrap;gap:8px}
.food-item{gap:12px;padding:14px}
.fi-top{display:flex;flex-direction:column;gap:4px}
.fi-top strong{font-size:calc(17px*var(--t,1));line-height:1.25;overflow-wrap:anywhere}
.fi-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.fi-stat{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;border-radius:12px;background:#14150f}
.fi-stat strong{font:800 calc(22px*var(--t,1))/1 var(--display);color:var(--green)}
.fi-stat small{color:var(--muted);font-size:calc(13px*min(var(--t,1),1.2))}
.food-foot{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:0}
.cmp-btn.on{border-color:var(--orange);background:#ff5a1f22;color:var(--orange-bright)}
.compare-card{margin:14px 0;padding:16px;border:1.5px solid var(--orange);border-radius:22px;background:linear-gradient(105deg,#2a1b12,#161714)}
.compare-card .mini{margin-top:0}
.cmp-names{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;margin-bottom:14px;text-align:center}
.cmp-names strong{font-size:calc(16px*var(--t,1));line-height:1.2;overflow-wrap:anywhere}
.vs{padding:4px 8px;border-radius:999px;background:var(--orange);color:var(--ink);font:900 calc(14px*var(--t,1)) var(--body)}
.cmp-row{display:grid;grid-template-columns:1fr 70px 1fr;gap:8px;align-items:center;margin-bottom:12px}
.cmp-label{text-align:center;color:var(--muted);font-size:calc(14px*min(var(--t,1),1.2))}
.cmp-side strong{display:block;margin-bottom:4px;font:800 calc(20px*var(--t,1))/1 var(--display)}
.cmp-side.win strong{color:var(--green)}
.cmp-bar{height:8px;border-radius:8px;background:#34352e;overflow:hidden}
.cmp-bar i{display:block;height:100%;border-radius:8px;background:#7a786d}
.cmp-side.win .cmp-bar i{background:var(--green)}

.cmp-side.win strong{color:var(--orange-bright)}.cmp-side.win .cmp-bar i{background:var(--orange)}

/* ===== Une photo du coach sur chaque page ===== */
[data-hero]{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:250px;padding:22px 20px 20px;border-radius:28px;overflow:hidden;background-color:#161714;background-size:cover;background-repeat:no-repeat;isolation:isolate}
[data-hero]::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#0b0b0af5 6%,#0b0b0acc 32%,#0b0b0a66 58%,#0b0b0a1a 100%),linear-gradient(90deg,#0b0b0a99,transparent 70%)}
[data-hero] h1,[data-hero] h2{text-shadow:0 3px 18px #000c}
[data-hero] .eyebrow,[data-hero] .screen-intro{color:#e4dccd;text-shadow:0 2px 10px #000}
[data-hero="accroupi"]{background-image:url(assets/accroupi.webp);background-position:center 22%}
[data-hero="hero-squat"]{background-image:url(assets/hero-squat.webp);background-position:center 16%}
[data-hero="corde"]{background-image:url(assets/corde.webp);background-position:center 30%}
[data-hero="bleu-geste"]{background-image:url(assets/bleu-geste.webp);background-position:center 14%}
[data-hero="lime-pouces"]{background-image:url(assets/lime-pouces.webp);background-position:center 38%}
[data-hero="lime-bras"]{background-image:url(assets/lime-bras.webp);background-position:center 40%}
[data-hero="lime-poignees"]{background-image:url(assets/lime-poignees.webp);background-position:center 26%}
.home-top[data-hero]{flex-direction:row;align-items:flex-end;justify-content:space-between;min-height:290px;gap:12px}
.home-top[data-hero] .streak-chip{position:absolute;top:16px;right:16px;background:#0b0b0acc;backdrop-filter:blur(6px)}
.screen-title[data-hero]{padding-top:100px}
.exo-hero{height:170px;margin:-4px -4px 14px;border-radius:20px;background:#161714 url(assets/bleu-halteres.webp) center 22%/cover}
.exo-hero:after{content:"";display:block;height:100%;border-radius:20px;background:linear-gradient(0deg,#1b1c18 4%,transparent 60%)}
@media(prefers-reduced-motion:no-preference){[data-hero]{animation:heroIn .8s ease both}@keyframes heroIn{from{background-size:112%}to{background-size:cover}}}
[data-hero="lime-bras"]{background-position:center 27%}
[data-hero="lime-pouces"]{background-position:center 30%}
[data-hero="lime-bras"]::before{background:linear-gradient(0deg,#0b0b0af2 4%,#0b0b0a99 26%,#0b0b0a1a 60%),linear-gradient(90deg,#0b0b0a80,transparent 65%)}
