/* Profil, rubriques « Santé et forme », historique, mesures */
.p-title{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;text-align:center}
.p-title h1{grid-column:2;font-size:28px}
.p-title .gear{grid-column:3}
.p-head{display:flex;align-items:center;gap:16px}
.avatar{width:72px;height:72px;border-radius:50%;background:var(--tint);color:var(--acc-t);display:grid;place-items:center;flex:none;font-family:var(--display);font-size:32px;font-weight:800;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.avatar-btn{position:relative;flex:none;cursor:pointer;border-radius:50%}
.avatar-btn:focus-within{outline:2px solid var(--accent);outline-offset:3px}
.cam{position:absolute;right:-2px;bottom:-2px;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;border:3px solid var(--bg)}
.p-id{display:flex;flex-direction:column;gap:2px;min-width:0}
.p-id h2{font-size:28px;overflow-wrap:anywhere}
.edit-link{margin:0;padding:2px 0;color:var(--acc-t);display:flex;align-items:center;gap:2px;font-size:16px}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tile{display:flex;flex-direction:column;gap:6px;padding:16px;min-width:0;text-align:left;color:var(--fg);font:inherit}
.tile p{margin:0;display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}
.tile b{font-family:var(--display);font-size:28px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.tile p span{color:var(--muted);font-size:14px}
.lbl.ico{display:flex;align-items:center;gap:6px}
.lbl.ico svg{flex:none}

/* Santé et forme */
.navgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.navbtn{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:14px;color:var(--fg);font:inherit;cursor:pointer;text-align:left;min-width:0}
.navbtn:hover{border-color:var(--line2)}
.navbtn b{min-width:0;font-weight:600;font-size:16px;overflow-wrap:anywhere}
.navbtn .chev{position:absolute;top:16px;right:14px}
.nico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:none;color:var(--ic);background:color-mix(in srgb, var(--ic) 16%, transparent)}
.nico.goal{--ic:var(--ic-goal)}
.nico.train{--ic:var(--ic-train)}
.nico.weight{--ic:var(--ic-weight)}
.nico.stats{--ic:var(--ic-stats)}
.nico.meas{--ic:var(--ic-meas)}

/* Historique */
.hlist{display:flex;flex-direction:column;gap:10px}
.hday{padding:0}
.hday summary{list-style:none;display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer}
.hday summary::-webkit-details-marker{display:none}
.hday .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.hday .t b{font-weight:600}
.hday .t small,.hday .v small{color:var(--muted);font-size:13px;font-weight:500}
.hday .v{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;flex:none;font-family:var(--display);font-size:18px}
.hday .v small{display:block;font-family:var(--body)}
.hday .v.over{color:var(--fat)}
.hitems{list-style:none;margin:0;padding:12px 16px 14px;display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line)}
.hitems li{display:flex;justify-content:space-between;gap:10px;font-size:14px}
.hitems b{font-weight:600;font-variant-numeric:tabular-nums;flex:none}
.hsess{display:flex;flex-direction:column;gap:12px}
.hs-top b{display:block;font-family:var(--display);font-size:22px}
.hs-top small{color:var(--muted);font-size:14px}
.hs-top.row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.hs-top.row>div{min-width:0;text-align:left;flex:1}
.hs-stats{display:flex;gap:28px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.hs-stats div{display:flex;flex-direction:column;gap:2px}
.hs-stats b{font-size:18px;font-variant-numeric:tabular-nums}
.hs-ex{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.hs-ex li{display:flex;gap:10px;align-items:baseline;font-size:15px}
.hs-ex li span{color:var(--acc-t);font-weight:600;flex:none;min-width:62px;font-size:14px}
.hs-ex li b{font-weight:500}
.hs-more summary{color:var(--muted);cursor:pointer;font-size:14px;text-align:center;padding:4px;list-style:none}
.hs-more summary::-webkit-details-marker{display:none}
.hs-more[open] summary{margin-bottom:8px}

/* Invité */
.lock{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:28px 18px}
.lock h2{font-size:26px}
.lock p{margin:0;color:var(--muted);max-width:34ch}
.lock-ico{width:64px;height:64px;border-radius:50%;background:var(--tint);color:var(--acc-t);display:grid;place-items:center}
.lock-list{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-direction:column;gap:6px;font-size:14px}
.lock-list li::before{content:"✓ ";color:var(--good);font-weight:700}
.lock .btn{width:100%}

/* Rubriques */
.pd-right{display:flex;justify-content:flex-end}
.pd-body{display:flex;flex-direction:column;gap:14px}
.pnav{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;text-align:center;margin-bottom:14px}
.pnav div{display:flex;flex-direction:column;gap:2px}
.pnav b{font-family:var(--display);font-size:20px}
.pbtn{width:40px;height:40px;border-radius:50%;border:0;background:var(--surface2);color:var(--fg);display:grid;place-items:center;cursor:pointer}
.pbtn:disabled{opacity:.3;cursor:default}
.kpi{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.kpi .big{margin:4px 0 0}
.kpi .big b{font-size:48px}
.trend{text-align:right;display:flex;flex-direction:column;gap:4px}
.trend b{font-family:var(--display);font-size:22px;font-variant-numeric:tabular-nums}
.kv2{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-top:12px;padding-top:12px}
.kv2 button{background:none;border:0;color:var(--fg);font:inherit;text-align:left;display:flex;flex-direction:column;gap:2px;cursor:pointer;padding:4px 0}
.kv2 button+button{border-left:1px solid var(--line);padding-left:16px}
.kv2 b{font-family:var(--display);font-size:24px;font-variant-numeric:tabular-nums}
.kv2 small{font-size:13px;color:var(--muted);font-family:var(--body)}
.tri{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px solid var(--line);margin-top:12px;padding-top:12px}
.tri div{display:flex;flex-direction:column;gap:2px;min-width:0}
.tri div:nth-child(2){text-align:center}
.tri div:nth-child(3){text-align:right}
.tri b{font-family:var(--display);font-size:20px;font-variant-numeric:tabular-nums;white-space:nowrap}
.tri b small{font-family:var(--body);font-size:12px;color:var(--muted)}
.tri.sep div{text-align:center;align-items:center}
.tri.sep div+div{border-left:1px solid var(--line)}
.tri.sep b{display:flex;align-items:center;gap:5px}
.tri.sep b svg{color:var(--muted);flex:none}
.warn{margin:10px 0 0;font-size:13px;color:var(--muted)}
.linkrow{display:flex;align-items:center;gap:12px;color:var(--fg);font:inherit;cursor:pointer;text-align:left;width:100%}
.linkrow svg:first-child{color:var(--acc-t);flex:none}
.linkrow b{flex:1;font-weight:600;font-size:16px}
.linkrow span{color:var(--muted);font-size:14px}

/* Objectif de poids */
.burnbox{display:flex;flex-direction:column;gap:14px}
.bb-list{background:var(--surface2);border-radius:var(--r-field);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.bb-list div{display:flex;justify-content:space-between;gap:10px;font-size:14px}
.bb-list b{font-variant-numeric:tabular-nums}
.eq{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;text-align:center;gap:4px}
.eq div{display:flex;flex-direction:column;gap:2px}
.eq b{font-family:var(--display);font-size:24px;font-variant-numeric:tabular-nums}
.eq small{color:var(--muted);font-size:13px}
.eq>span{color:var(--muted);font-size:22px}
.budget{margin:0;text-align:center;border-top:1px solid var(--line);padding-top:12px;color:var(--muted)}
.budget b{color:var(--fg)}

/* Carte « Ton objectif » */
.goalbox{display:flex;flex-direction:column;gap:12px}
.goalbox .btn{margin-top:4px}
.gb-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.gt{display:block;font-family:var(--display);font-size:26px;line-height:1.15;margin-top:4px}
.months{background:var(--tint);border-radius:var(--r-field);padding:10px 14px;text-align:center;flex:none;min-width:72px}
.months b{display:block;font-family:var(--display);font-size:30px;color:var(--acc-t);line-height:1}
.months small{color:var(--muted);font-size:13px}
.gbar{height:10px;border-radius:5px;background:var(--line);overflow:hidden}
.gbar i{display:block;height:100%;width:var(--w,0%);background:var(--accent);border-radius:5px;min-width:10px}
.gb-ends{display:flex;justify-content:space-between}
.gb-ends div{display:flex;flex-direction:column;gap:2px}
.gb-ends div+div{text-align:right}
.gtiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.gtiles div{background:var(--surface2);border-radius:var(--r-field);padding:12px 6px;text-align:center;display:flex;flex-direction:column;gap:2px;min-width:0}
.gtiles b{font-family:var(--display);font-size:20px;font-variant-numeric:tabular-nums}
.gtiles small{color:var(--muted);font-size:12px}
.gtiles span{font-size:13px;font-weight:600}
.miles{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.miles div{background:var(--surface2);border-radius:12px;padding:8px 2px;text-align:center;display:flex;flex-direction:column;gap:2px;min-width:0}
.miles b{font-size:13px}
.miles span{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.miles .on{background:var(--accent)}
.miles .on b,.miles .on span{color:var(--accent-ink)}
.wsum{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}
.wsum div{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--muted);font-size:13px}
.wsum i{width:100%;max-width:40px;aspect-ratio:1;border-radius:50%;background:var(--surface2)}
.wsum i.on{background:var(--accent)}

/* Réglages d'entraînement */
.wgoal{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px}
.wgoal button{background:var(--surface2);border:0;border-radius:var(--r-card-sm);color:var(--muted);font:inherit;font-weight:600;padding:18px 6px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer}
.wgoal button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
.wdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.wdays div{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--muted);font-size:13px}
.wdays button{width:100%;max-width:44px;aspect-ratio:1;border-radius:50%;border:0;background:var(--surface2);color:var(--muted);display:grid;place-items:center;cursor:pointer;padding:0}
.wdays button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
.wlink{margin:12px 0 0;font-size:13px;color:var(--muted)}
.wlink b{color:var(--fg);font-weight:600}
.wfoot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
.wfoot span{flex:1;color:var(--muted);font-size:14px;min-width:120px}
.wfoot .chip{display:flex;align-items:center;gap:6px}

/* Mensurations */
.mgroup{padding:16px 16px 6px}
.mgroup .card-h{margin-bottom:4px}
.mrow2{display:flex;align-items:center;gap:12px;width:100%;background:none;border:0;border-top:1px solid var(--line);color:var(--fg);font:inherit;padding:13px 0;cursor:pointer;text-align:left}
.mgroup .card-h+.mrow2{border-top:0}
.mrow2 .mi{width:34px;height:34px;border-radius:10px;background:var(--tint);color:var(--acc-t);display:grid;place-items:center;flex:none}
.mrow2>b{flex:1;font-weight:500;font-size:16px}
.mrow2 .mv{font-weight:600;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:4px}
.mrow2 .mv small{color:var(--muted);font-weight:500}
.mrow2 em{font-style:normal;color:var(--muted);font-size:12px;margin-left:4px}
.mrow2 .dash{color:var(--muted)}

/* Fenêtre de mesure */
.ms-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ms-form .field{min-width:0}
.ms-form .field input{font-size:22px}
.ms-form input[type=date]{font-family:var(--body);font-size:16px;font-weight:600}
#ms-k{font-size:16px;font-weight:600}
.mrow{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:6px 6px 6px 14px}
.mrow span{flex:1;min-width:0;color:var(--muted);font-size:14px}
.mrow b{font-variant-numeric:tabular-nums}
