/* L'Émotion v2 : couche de style ajoutée par-dessus style.css */

/* Retour au toucher et changement d'écran */
button,.program-card,.profile-link-a{transition:transform .14s ease,background-color .2s,border-color .2s}
button:active:not(:disabled),.program-card:active,.profile-link-a:active{transform:scale(.97)}
:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.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}}

/* Le coach prend la parole */
.coach-card{position:relative;display:flex;align-items:stretch;margin-top:14px;overflow:hidden;border:1px solid #3a352c;border-radius:14px;background:linear-gradient(110deg,#251c15,#171814 70%)}
.coach-card-photo{width:104px;flex:none;object-fit:cover;object-position:center 22%;border-right:1px solid #3a352c}
.coach-card-body{display:flex;flex:1;flex-direction:column;justify-content:center;gap:8px;padding:14px 14px 14px 13px}
.coach-card-body p{margin:0;color:var(--orange-bright);font-size:8px;font-weight:700;letter-spacing:.14em}
.coach-card blockquote{margin:0;font:600 17px/1.18 var(--display);letter-spacing:.01em;text-transform:none}
.coach-wa{align-self:flex-start;margin-top:2px;padding:8px 12px;border-radius:7px;background:var(--green);color:#10130a;font-size:10px;font-weight:700;text-decoration:none}
.coach-card.slim{margin:0 0 20px}
.coach-card.slim .coach-card-photo{width:84px}
.coach-card.slim blockquote{font-size:15px}
.inline-wa{color:var(--green);font-weight:700;text-underline-offset:2px}
.workout-card.is-rest .play-button{display:none}
.workout-card{cursor:pointer}
.workout-card.is-rest{cursor:default}
.workout-info h4{font-size:26px;line-height:.98}

/* Programme vivant */
.program-card{cursor:pointer}
.program-card.late{border-color:#6a3a2a}
.program-state.late{color:#f08a64}
.program-action{display:inline-block}
.program-card:focus-visible{outline-offset:-2px}

/* Historique */
.history{margin-top:22px}
.history-list{display:flex;flex-direction:column;gap:8px}
.history-row{display:flex;align-items:center;gap:12px;min-height:56px;padding:9px 12px;border:1px solid #2f302a;border-radius:9px;background:#171815}
.history-day{width:34px;flex:none;display:flex;flex-direction:column;align-items:center;border-right:1px solid #393a33;padding-right:10px;margin-right:2px}
.history-day span{color:#8d8d82;font-size:7px;font-weight:700;letter-spacing:.1em}
.history-day strong{font:700 19px/1 var(--display)}
.history-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}
.history-copy strong{font-size:11px;font-weight:600}
.history-copy span{color:#98988e;font-size:9px}

/* Profil : lien coach + installation */
.profile-links a.profile-link-a{display:flex;align-items:center;gap:10px;min-height:58px;padding:8px 12px;border-top:1px solid #30312b;color:inherit;text-decoration:none}
.profile-links a.profile-link-a>span:nth-child(2){display:flex;flex:1;flex-direction:column;gap:3px}
.profile-links a.profile-link-a i{color:#85857c;font-size:17px;font-style:normal}
.profile-links a.profile-link-a:first-child{border-top:0}
.profile-links button[hidden]{display:none}

/* Fiche séance */
.workout-dialog.sheet{width:min(400px,calc(100% - 24px));max-height:min(88vh,760px);padding:0;overflow:auto;border-radius:20px;scrollbar-width:none}
.workout-dialog.sheet::-webkit-scrollbar{display:none}
.workout-dialog.sheet[open]{animation:sheet-in .26s cubic-bezier(.2,.7,.2,1)}
@keyframes sheet-in{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}
.sheet-photo{position:relative;height:190px;overflow:hidden;background:#24231f}
.sheet-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:saturate(.9) brightness(.8)}
.sheet-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#1b1c18,transparent 62%);pointer-events:none}
.sheet-photo .dialog-close{z-index:2;background:#14140fcc;backdrop-filter:blur(6px)}
.sheet-when{position:absolute;z-index:2;left:18px;bottom:14px;padding:5px 8px;border-radius:4px;background:var(--orange);color:#160a05;font-size:9px;font-weight:700;letter-spacing:.1em}
.sheet-body{padding:6px 22px 22px}
.sheet-body h2{margin:6px 0 0;font:800 34px/.95 var(--display);text-transform:uppercase}
.sheet-body .dialog-meta{margin:14px 0 16px;flex-wrap:wrap}
.sheet-exos{list-style:none;margin:0;padding:0;border:1px solid #2f302a;border-radius:11px;overflow:hidden}
.sheet-exos li{display:flex;align-items:center;gap:12px;min-height:60px;padding:8px 12px 8px 8px;background:#181916}
.sheet-exos li+li{border-top:1px solid #2a2b26}
.sheet-exos img{width:44px;height:44px;flex:none;border-radius:8px;object-fit:cover}
.sheet-exo-name{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.sheet-exo-name strong{font-size:13px;font-weight:600}
.sheet-exo-name small{color:#8d8d82;font-size:10px}
.sheet-exo-amount{font:700 19px/1 var(--display);color:var(--green);letter-spacing:.02em}
.sheet-cue{margin:16px 2px 18px;color:#c5c4ba;font-size:12px;line-height:1.45;font-style:italic}
.workout-dialog.sheet .dialog-start{height:52px;font-size:15px}
.workout-dialog.sheet .dialog-start[hidden]{display:none}

/* Séance guidée */
.runner{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;background:#0b0b0a;animation:screen-in .25s ease}
.runner[hidden]{display:none}
.runner-top{position:relative;z-index:3;display:flex;align-items:center;gap:12px;padding:46px 16px 10px}
.runner-close{width:36px;height:36px;flex:none;border:1px solid #ffffff30;border-radius:50%;background:#0b0b0a99;backdrop-filter:blur(6px);font-size:24px;line-height:1;cursor:pointer}
.runner-steps{display:flex;flex:1;gap:4px}
.runner-steps span{position:relative;height:5px;flex:1;overflow:hidden;border-radius:5px;background:#ffffff26}
.runner-steps span.active{background:#ffffff40}
.runner-steps i{position:absolute;inset:0 auto 0 0;display:block;background:var(--orange);transition:width .3s}
.runner-clock{min-width:38px;text-align:right;font:700 15px/1 var(--display);letter-spacing:.04em;color:#e9e6dc}
.runner-stage{position:relative;flex:1;min-height:0;margin-top:-61px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.runner-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%;filter:saturate(.95) brightness(.78)}
.runner-shade{position:absolute;inset:0;background:linear-gradient(0deg,#0b0b0a 8%,#0b0b0acc 42%,#0b0b0a40 72%,#0b0b0a99)}
.runner-info{position:relative;padding:0 22px 14px}
.runner-set{margin:0 0 8px;color:var(--orange-bright);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.runner-name{margin:0;font:800 clamp(40px,12vw,54px)/.92 var(--display);text-transform:uppercase;letter-spacing:-.005em}
.runner-big{display:flex;align-items:baseline;gap:10px;margin:14px 0 8px;font:800 clamp(86px,26vw,118px)/.85 var(--display);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.runner-big small{font:600 15px var(--body);letter-spacing:.04em;color:#c9c7bd}
.runner-cue{margin:0;max-width:300px;color:#d6d3c8;font-size:14px;line-height:1.42}
.runner-actions{position:relative;display:flex;gap:10px;padding:8px 18px max(26px,env(safe-area-inset-bottom))}
.runner-main{flex:1;min-height:60px;border:0;border-radius:12px;background:var(--orange);color:#160a05;font:700 17px var(--body);cursor:pointer}
.runner-ghost{min-width:96px;min-height:60px;padding:0 18px;border:1px solid #ffffff3a;border-radius:12px;background:#0b0b0a99;color:var(--white);font:600 14px var(--body);cursor:pointer}
.runner-stage.rest{background:radial-gradient(circle at 50% 30%,#2a1c14,#0b0b0a 62%);justify-content:space-between}
.runner-rest{display:flex;flex:1;flex-direction:column;justify-content:center;gap:12px;padding:70px 24px 0}
.runner-rest .runner-big{margin:0;font-size:clamp(100px,32vw,140px)}
.rest-bar{height:5px;overflow:hidden;border-radius:5px;background:#ffffff1f}
.rest-bar span{display:block;width:0;height:100%;background:var(--green);transition:width .25s linear}
.rest-next{display:flex;align-items:center;gap:14px;margin-top:20px;padding:10px;border:1px solid #38352d;border-radius:12px;background:#181916}
.rest-next img{width:64px;height:64px;flex:none;border-radius:9px;object-fit:cover}
.rest-next div{display:flex;flex-direction:column;gap:3px}
.rest-next small{color:#8d8d82;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.rest-next strong{font:700 22px/1 var(--display);text-transform:uppercase}
.rest-next span{color:#b8b6ab;font-size:12px}
.finish-quote{margin:14px 0 18px;max-width:320px;font:600 22px/1.15 var(--display);letter-spacing:.01em}
.finish-stats{display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;border:1px solid #ffffff2e;border-radius:12px;background:#0b0b0a99;backdrop-filter:blur(6px)}
.finish-stats div{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 4px}
.finish-stats div+div{border-left:1px solid #ffffff22}
.finish-stats strong{font:800 34px/1 var(--display);color:var(--green)}
.finish-stats small{color:#b8b6ab;font-size:9px;font-weight:700;letter-spacing:.12em}
body.running{overflow:hidden}

/* Confettis */
.confetti{position:fixed;inset:0;z-index:60;display:none;width:100vw;height:100vh;pointer-events:none}

@media(prefers-reduced-motion:reduce){
  .app-screen.enter,.runner,.workout-dialog.sheet[open]{animation:none}
  button:active:not(:disabled),.program-card:active{transform:none}
}

/* Corrections */
.level-pill b{font-weight:inherit;white-space:nowrap}
body.running .toast{bottom:auto;top:112px}
.runner-stage.finish .runner-photo{filter:saturate(1) brightness(.95)}

/* Barre d'état : icônes redessinées */
.status-bar .status-icons{width:auto;height:auto;margin-right:4px;display:flex;align-items:center;gap:6px}
.status-icons svg{width:auto;height:12px;fill:var(--white);stroke:none}
.status-icons .sb-wifi{height:12px;fill:var(--white)}
.status-icons .sb-wifi path{fill:none;stroke:var(--white);stroke-width:1.7;stroke-linecap:round}
.status-icons .sb-battery{height:12px}
.status-icons .sb-battery .sb-shell{fill:none;stroke:var(--white);stroke-opacity:.45;stroke-width:1.1}
.status-icons .sb-battery .sb-nub{fill:var(--white);fill-opacity:.45}

/* Éléments masqués qui restaient visibles */
.bottom-nav[hidden],.avatar-button[hidden]{display:none}
.setup-admin-help{margin-top:10px;color:#8d8d82;font-size:10px;line-height:1.45;text-align:center}
[hidden]{display:none!important}

/* ===== Mon compte : photo, phrase, réglages ===== */
input::-webkit-contacts-auto-fill-button,input::-webkit-credentials-auto-fill-button{visibility:hidden;display:none!important;pointer-events:none}
input[type=text]{background-image:none}

/* Carte profil */
.profile-card{align-items:center}
.profile-photo{position:relative;width:64px;height:64px;flex:none;padding:2px;border:1px solid #8a6a52;border-radius:50%;background:none;cursor:pointer}
.profile-photo img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center}
.avatar-initials{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:var(--orange);color:#160a05;font:800 24px/1 var(--display);letter-spacing:.02em}
.avatar-initials.small{font-size:12px}
.avatar-button{overflow:hidden}
.avatar-button img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.photo-badge{position:absolute;right:-3px;bottom:-3px;width:24px;height:24px;display:grid;place-items:center;border:2px solid #1b1b18;border-radius:50%;background:var(--green)}
.photo-badge svg{width:13px;height:13px;fill:none;stroke:#10130a;stroke-width:2;stroke-linejoin:round}
.profile-main>strong{font-size:16px;font-weight:700;overflow-wrap:anywhere}
.profile-main>span{color:#cfcdc3;font-size:11px;overflow-wrap:anywhere}
.profile-location{color:#cfcdc3!important;font-size:11px!important}
.profile-location span:first-child{color:var(--orange-bright)}
.profile-edit{width:44px;height:44px;flex:none;font-size:18px;cursor:pointer}
.profile-role{color:#ffa07c!important;font-size:10px!important;letter-spacing:.06em}

/* Phrase du jour */
.phrase-card{position:relative;margin-top:12px;padding:16px 15px 14px;border:1px solid #4a3a2c;border-radius:14px;background:radial-gradient(circle at 0 0,#3a2216 0,transparent 55%),#1a1a17}
.phrase-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.phrase-head h3{margin:0;font-size:12px;font-weight:600;color:#cfcdc3}
.phrase-cat{padding:4px 8px;border:1px solid #6a4a38;border-radius:4px;color:#ffa07c;font-size:10px;font-weight:700;letter-spacing:.06em}
.phrase-card blockquote{margin:14px 0 6px;font:700 25px/1.02 var(--display);letter-spacing:.005em;text-transform:uppercase}
.phrase-mode{margin:0 0 14px;color:#a7a59b;font-size:11px}
.phrase-actions{display:flex;gap:8px}
.phrase-btn{min-height:44px;padding:0 14px;border:1px solid #55524a;border-radius:9px;background:#24241f;color:var(--white);font:600 12px var(--body);cursor:pointer}
.phrase-btn.primary{margin-left:auto;border-color:var(--orange);background:var(--orange);color:#160a05;font-weight:700}
.phrase-btn:disabled{opacity:.45;cursor:default}
.phrase-btn.heart{width:44px;padding:0;display:grid;place-items:center}
.phrase-btn.heart svg{width:20px;height:20px;fill:none;stroke:var(--white);stroke-width:1.8;stroke-linejoin:round}
.phrase-btn.heart[aria-pressed=true]{border-color:var(--orange)}
.phrase-btn.heart[aria-pressed=true] svg{fill:var(--orange);stroke:var(--orange)}
.phrase-btn.small{width:40px;min-height:40px}
.phrase-state{margin:12px 0 0;color:#ffb497;font-size:12px;line-height:1.4;cursor:pointer}
.phrase-state[hidden]{display:none}

/* Formulaire profil */
.profile-goal label{font-size:12px;gap:6px}
.profile-goal input{min-height:46px;font-size:14px}
.goal-chips{display:flex;flex-wrap:wrap;gap:8px}
.goal-chips button{min-height:40px;padding:0 13px;border:1px solid #55524a;border-radius:20px;background:#121310;color:#d6d3c8;font:500 12px var(--body);cursor:pointer}
.goal-chips button.active{border-color:var(--green);background:#232a0c;color:var(--green)}
.profile-goal .save-button{min-height:50px;font-size:14px}
.profile-goal .save-button:disabled{background:#2c2b27;color:#8d8b82;cursor:default}
.save-status{margin:2px 0 0;color:#a7a59b;font-size:12px;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}
.save-status[hidden]{display:none}

/* Réglages */
.profile-links a.profile-link-a strong,.profile-links button strong{font-size:13px}
.profile-links small{font-size:10px}
.settings-card{display:flex;flex-direction:column;gap:2px;padding:4px 14px;border:1px solid #34342e;border-radius:10px;background:#181916}
.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:62px}
.setting-row+.setting-row{border-top:1px solid #2c2d27}
.setting-copy{display:flex;flex-direction:column;gap:3px}
.setting-copy strong{font-size:13px;font-weight:600}
.setting-copy small{color:#a7a59b;font-size:11px;line-height:1.35}
.setting-note{margin:0 0 12px;font-size:12px;line-height:1.4;color:#a7a59b}
.setting-note[data-kind=error]{color:#ff9d8a}
.setting-note[hidden],.setting-row[hidden]{display:none}
.time-row input{min-height:44px;padding:0 10px;border:1px solid #46443d;border-radius:8px;background:#121310;color:var(--white);font:600 15px var(--body)}
.switch{position:relative;display:inline-block;width:52px;height:32px;flex:none}
.switch input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}
.switch span{position:absolute;inset:0;border-radius:20px;background:#3a3932;transition:background .2s;pointer-events:none}
.switch span:after{content:"";position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:50%;background:#f3ebdd;transition:transform .2s}
.switch input:checked+span{background:var(--orange)}
.switch input:checked+span:after{transform:translateX(20px)}
.switch input:focus-visible+span{outline:2px solid var(--green);outline-offset:2px}
.settings-form{display:grid;gap:10px;margin-top:12px;padding:14px;border:1px solid #34342e;border-radius:10px;background:#181916}
.settings-form label,.settings-form-label{display:grid;gap:6px;color:#cfcdc3;font-size:12px}
.settings-form input,.panel input[type=text]{width:100%;min-height:46px;padding:9px 11px;border:1px solid #46443d;border-radius:7px;background:#121310;color:var(--white);font:inherit;font-size:14px}
.settings-form .secondary-button{min-height:46px;margin:0;font-size:12px}
.logout-button{min-height:48px;font-size:13px}
.danger-link{display:block;width:100%;min-height:48px;margin-top:6px;border:0;background:none;color:#ff9d8a;font:600 12px var(--body);text-decoration:underline;text-underline-offset:3px;cursor:pointer}

/* Fenêtres (photo, recadrage, phrases, suppression) */
dialog.panel{width:min(400px,calc(100% - 24px));max-height:min(90vh,780px);padding:22px;overflow:auto;border:1px solid #44443b;border-radius:20px;background:#1b1c18;color:var(--white);box-shadow:0 24px 90px #000b;scrollbar-width:none}
dialog.panel::-webkit-scrollbar{display:none}
dialog.panel::backdrop{background:#050605b8;backdrop-filter:blur(4px)}
dialog.panel[open]{animation:sheet-in .26s cubic-bezier(.2,.7,.2,1)}
dialog.panel h2{margin:0 36px 8px 0;font:800 30px/.95 var(--display);text-transform:uppercase}
.panel-lead{margin:6px 0 16px;color:#cfcdc3;font-size:14px;line-height:1.45}
.panel-note{margin:14px 0 0;color:#a7a59b;font-size:12px;line-height:1.45}
.panel-choices{display:grid;gap:10px;margin-top:12px}
.choice{display:flex;flex-direction:column;gap:4px;min-height:64px;padding:12px 14px;border:1px solid #46443d;border-radius:11px;background:#232420;text-align:left;cursor:pointer}
.choice strong{font-size:15px}
.choice small{color:#a7a59b;font-size:12px;line-height:1.35}
.choice.danger strong{color:#ff9d8a}
.panel-buttons{display:flex;gap:10px;margin-top:14px}
.panel-buttons>button{flex:1;min-height:50px;margin:0;font-size:14px}
.save-button.danger{background:#d6452a;color:#fff}
.save-button.danger:disabled{background:#3a2a25;color:#8d7a72;cursor:default}
.crop-stage{display:grid;place-items:center;margin:14px 0 4px}
#crop-canvas{width:280px;max-width:100%;aspect-ratio:1;border-radius:50%;border:2px solid var(--orange);background:#121310;touch-action:none;cursor:grab}
#crop-canvas:active{cursor:grabbing}
.zoom{display:flex;align-items:center;gap:12px;margin:12px 0 0;color:#cfcdc3;font-size:12px}
.zoom input{flex:1;accent-color:var(--orange);min-height:32px}

/* Choix de phrase */
dialog.tall{padding-bottom:16px}
.panel-row{border-top:0;margin-bottom:6px}
.cat-chips{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px;scrollbar-width:none}
.cat-chips::-webkit-scrollbar{display:none}
.chip{flex:none;min-height:38px;padding:0 13px;border:1px solid #55524a;border-radius:20px;background:#121310;color:#d6d3c8;font:500 12px var(--body);cursor:pointer}
.chip.active{border-color:var(--orange);background:var(--orange);color:#160a05;font-weight:700}
.phrase-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:280px;overflow:auto;scrollbar-width:none}
.phrase-item{display:flex;align-items:stretch;gap:8px}
.phrase-pick{flex:1;display:flex;flex-direction:column;gap:5px;padding:11px 12px;border:1px solid #3c3b34;border-radius:10px;background:#202119;text-align:left;font:500 14px/1.3 var(--body);cursor:pointer}
.phrase-pick small{color:#a7a59b;font-size:11px}
.phrase-item.selected .phrase-pick{border-color:var(--green);background:#232a0c}
.phrase-item .heart{align-self:center}
.phrase-empty{padding:16px 6px;color:#a7a59b;font-size:13px;line-height:1.45}
.own-phrase{margin-top:14px;padding-top:14px;border-top:1px solid #2c2d27}
.own-phrase label{display:block;margin-bottom:6px;color:#cfcdc3;font-size:12px}
.own-phrase textarea{width:100%;padding:10px 11px;border:1px solid #46443d;border-radius:8px;background:#121310;color:var(--white);font:inherit;font-size:14px;resize:none}
.own-foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px}
#own-count{color:#a7a59b;font-size:12px}
#own-count.full{color:#ffb497}
.own-foot .phrase-btn.primary{margin-left:0}

@media(prefers-reduced-motion:reduce){dialog.panel[open]{animation:none}.switch span,.switch span:after{transition:none}}
.profile-card .profile-location span{color:#cfcdc3}
.profile-card .profile-location span:first-child{color:var(--orange-bright)}

/* ===== Scanner un produit (Open Food Facts) ===== */
.scan-button{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;margin:0 0 12px;padding:10px 14px;border:1px solid #4a4236;border-radius:11px;background:linear-gradient(105deg,#2a1d15,#181916);text-align:left;cursor:pointer}
.scan-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:10px;background:var(--orange)}
.scan-icon svg{width:22px;height:22px;fill:none;stroke:#160a05;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.scan-copy{display:flex;flex:1;flex-direction:column;gap:3px}
.scan-copy strong{font-size:14px;font-weight:700}
.scan-copy small{color:#b8b5aa;font-size:11px}
.scan-button i{color:#85857c;font-size:20px;font-style:normal}
.scan-stage{position:relative;margin:12px 0 4px;overflow:hidden;border-radius:14px;background:#000;aspect-ratio:4/3}
.scan-stage[hidden]{display:none}
.scan-stage video{width:100%;height:100%;object-fit:cover}
.scan-frame{position:absolute;left:12%;right:12%;top:30%;bottom:30%;border:3px solid var(--green);border-radius:12px;box-shadow:0 0 0 999px rgba(0,0,0,.35)}
.scan-status{margin:10px 2px 0;color:#cfcdc3;font-size:13px;line-height:1.45}
.scan-status[data-kind=error]{color:#ffb497}
.scan-actions{margin-top:10px}
.scan-manual{margin-top:14px;padding-top:14px;border-top:1px solid #2c2d27}
.scan-manual label{display:block;margin-bottom:6px;color:#cfcdc3;font-size:12px}
.scan-row{display:flex;gap:8px}
.scan-row input{flex:1;min-width:0;min-height:46px;padding:9px 11px;border:1px solid #46443d;border-radius:7px;background:#121310;color:var(--white);font:inherit;font-size:16px;letter-spacing:.06em}
.scan-row .phrase-btn{margin-left:0}
.scan-result{margin-top:14px;padding:14px;border:1px solid #3c3a33;border-radius:12px;background:#171815}
.scan-result[hidden]{display:none}
.scan-head{display:flex;align-items:center;gap:12px}
.scan-head img{width:64px;height:64px;flex:none;border-radius:9px;object-fit:contain;background:#fff}
.scan-id{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.scan-id strong{font-size:15px;line-height:1.25;overflow-wrap:anywhere}
.scan-id span{color:#a7a59b;font-size:12px}
.nutri{flex:none;align-self:flex-start;padding:5px 8px;border-radius:6px;background:#3a3932;color:#e9e6dc;font-size:11px;font-weight:700}
.nutri.n-a{background:#1f8a43;color:#fff}.nutri.n-b{background:#7ab527;color:#10130a}.nutri.n-c{background:#f4c20d;color:#10130a}.nutri.n-d{background:#ee7d1a;color:#10130a}.nutri.n-e{background:#d6452a;color:#fff}
.scan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.scan-cell{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border-radius:9px;background:#202119}
.scan-cell strong{font:700 19px/1 var(--display);color:var(--green);text-align:center}
.scan-cell small{color:#a7a59b;font-size:10px}
.scan-note{margin:12px 0 0;color:#a7a59b;font-size:11px;line-height:1.45}
.scan-credit{margin:12px 0 0;color:#8d8b82;font-size:11px}
.scan-credit a{color:#c6f300}
.scan-cell strong{white-space:nowrap;font-size:17px}

/* ===== Analyser un repas / chercher un aliment ===== */
.food-pane{display:block;margin-top:6px}
.food-pane[hidden]{display:none}
.food-pane label{display:block;margin:8px 0 6px;color:#cfcdc3;font-size:12px}
.food-pane textarea{width:100%;padding:11px;border:1px solid #46443d;border-radius:8px;background:#121310;color:var(--white);font:inherit;font-size:16px;resize:none}
.food-hint{margin:6px 0 12px;color:#a7a59b;font-size:12px;line-height:1.4}
.food-pane .save-button{min-height:50px;font-size:14px}
.food-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px;max-height:300px;overflow:auto}
.food-item{display:flex;flex-direction:column;gap:4px;padding:11px 12px;border:1px solid #3c3b34;border-radius:10px;background:#202119}
.food-item strong{font-size:14px}
.food-brand{color:var(--orange-bright);font-size:12px;font-weight:600}
.food-item small{color:#b8b5aa;font-size:12px;line-height:1.4}
.food-lines{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px}
.food-line{display:flex;flex-direction:column;gap:3px;padding:9px 11px;border-radius:9px;background:#202119}
.food-line strong{font-size:13px}
.food-line small{color:#b8b5aa;font-size:12px;line-height:1.35}
.food-line small.src,.food-item small.src{color:#8d8b82;font-size:11px}
.food-line.bad{border:1px solid #6a3a2a}
.food-line.bad small{color:#ffb497}

/* ===== Bibliothèque d'exercices (wger) ===== */
.program-tools .exo-tool{grid-column:1 / -1;min-height:40px;font-size:10px}
.exo-search{margin:10px 0 4px}
.exo-search input{font-size:16px;letter-spacing:0}
.exo-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px;max-height:46vh;overflow:auto;scrollbar-width:none}
.exo-open{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:8px 12px 8px 8px;border:1px solid #3c3b34;border-radius:11px;background:#202119;text-align:left;cursor:pointer}
.exo-open img,.exo-noimg{width:48px;height:48px;flex:none;border-radius:8px;object-fit:cover;background:#fff}
.exo-noimg{display:grid;place-items:center;background:#2c2b25;color:#85857c;font-size:18px}
.exo-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.exo-copy strong{font-size:14px;line-height:1.25}
.exo-copy small{color:var(--orange-bright);font-size:11px}
.exo-open i{color:#85857c;font-size:20px;font-style:normal}
#exo-more{margin-top:10px}
.exo-back{margin:0 0 6px;padding:8px 0;border:0;background:none;color:var(--orange-bright);font:600 13px var(--body);cursor:pointer}
#exo-name{margin-right:44px}
.exo-gallery{display:flex;gap:8px;margin:12px 0 4px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.exo-gallery img{flex:none;width:86%;max-height:260px;scroll-snap-align:start;border-radius:12px;object-fit:cover;background:#fff}
.exo-gallery img:only-child{width:100%}
.exo-meta{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.exo-meta .tag{padding:6px 9px;border:1px solid #46443d;border-radius:6px;color:#d6d3c8;font-size:12px}
.exo-meta .tag.hot{border-color:var(--orange);color:#ffa07c}
.exo-bodies{display:flex;gap:10px;justify-content:center;margin:6px 0 14px}
.exo-body{position:relative;width:46%;max-width:150px;aspect-ratio:1/1.9;border-radius:10px;background:#fff}
.exo-body img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.exo-body img.sec{opacity:.55}
.exo-desc{color:#d6d3c8;font-size:14px;line-height:1.55}
.exo-desc p{margin:0 0 10px}
.exo-desc ul,.exo-desc ol{margin:0 0 10px;padding-left:20px}

/* ===== Constructeur de repas ===== */
.food-field input{width:100%;min-height:48px;padding:10px 14px;border:1px solid #46443d;border-radius:12px;background:#121310;color:var(--white);font:inherit;font-size:16px}
.food-suggest{list-style:none;margin:6px 0 0;padding:6px;border:1px solid #3c3b34;border-radius:12px;background:#202119;display:grid;gap:2px}
.food-suggest[hidden]{display:none}
.food-suggest button{width:100%;min-height:44px;padding:0 12px;border:0;border-radius:8px;background:none;color:var(--white);text-align:left;font:500 15px var(--body);cursor:pointer}
.food-suggest button:hover,.food-suggest button:focus-visible{background:#2d2e26}
.food-suggest .sg-search{color:var(--green)}
.sg-title{padding:8px 12px 4px;color:#ffb497;font-size:12px}
.food-quick{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.food-quick .chip{min-height:40px}
.meal-card2{display:flex;align-items:center;gap:16px;margin-top:14px;padding:16px;border:1px solid #3c3a33;border-radius:16px;background:radial-gradient(circle at 0 0,#33200f,transparent 60%),#171815}
.meal-ring{position:relative;width:124px;height:124px;flex:none;border-radius:50%;display:grid;place-items:center;background:#393830}
.meal-ring:before{content:"";position:absolute;inset:11px;border-radius:50%;background:#171815}
.meal-ring>div{position:relative;display:flex;flex-direction:column;align-items:center}
.meal-ring strong{font:800 38px/1 var(--display);letter-spacing:.01em}
.meal-ring small{color:#a7a59b;font-size:12px;margin-top:2px}
.meal-macros{display:grid;flex:1;gap:10px;min-width:0}
.macro-head{display:flex;align-items:baseline;gap:8px}
.macro-head span{flex:1;color:#cfcdc3;font-size:13px}
.macro-head strong{font:700 17px/1 var(--display)}
.macro-head small{width:34px;text-align:right;color:#a7a59b;font-size:12px}
.macro-bar{height:6px;margin-top:5px;overflow:hidden;border-radius:6px;background:#2c2b27}
.macro-bar i{display:block;height:100%;border-radius:6px;transition:width .25s}
.food-empty{margin:14px 2px 0;color:#a7a59b;font-size:14px;line-height:1.45;text-align:center}
.food-empty[hidden]{display:none}
.meal-items{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.meal-item{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:10px 10px 10px 12px;border:1px solid #3c3b34;border-radius:14px;background:#202119}
.meal-item.loading{opacity:.7}
.mi-emoji{font-size:26px;line-height:1}
.mi-main{display:flex;min-width:0;flex-direction:column;gap:2px}
.mi-main strong{font-size:14px;line-height:1.2;overflow-wrap:anywhere}
.mi-main small{color:var(--orange-bright);font-size:12px}
.stepper{display:flex;align-items:center;gap:4px}
.stepper button{width:36px;height:36px;border:1px solid #55524a;border-radius:50%;background:#2a2b24;color:var(--white);font:600 20px/1 var(--body);cursor:pointer}
.stepper input{width:52px;height:36px;border:0;border-bottom:2px solid var(--orange);background:none;color:var(--white);text-align:center;font:700 16px var(--body);-moz-appearance:textfield}
.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.stepper span{color:#a7a59b;font-size:13px;margin-right:2px}
.mi-del{width:32px;height:32px;border:0;border-radius:50%;background:none;color:#85857c;font-size:22px;cursor:pointer}
.food-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}
.small-add{min-height:38px;margin-left:0}
#meal-reset{margin-top:12px}
@media(max-width:380px){.meal-item{grid-template-columns:auto 1fr auto}.mi-del{grid-column:3;grid-row:1}.stepper{grid-column:1 / -1;justify-content:flex-end}}

/* Constructeur de repas : finitions */
.food-quick{flex-wrap:nowrap;overflow-x:auto;margin:12px -4px 4px;padding:2px 4px 8px;scrollbar-width:none;scroll-snap-type:x proximity}
.food-quick::-webkit-scrollbar{display:none}
.food-quick .chip{scroll-snap-align:start;white-space:nowrap}
.macro-head strong,.macro-head small,.mi-main small{white-space:nowrap}
.macro-head strong{font-size:16px}
.meal-card2{margin-top:10px;padding:14px}
.meal-ring{width:112px;height:112px}
.meal-ring strong{font-size:34px}
.stepper button{width:34px;height:34px}
.stepper input{width:44px}
.meal-item{grid-template-columns:auto minmax(0,1fr) auto auto;gap:8px}
