/* ui.css — lisibilité et composants, chargé après da.css */

/* échelle de texte : rien sous 12,5 px */
.tiny,.ph-set small,.nut-item small,.nut-res-i small,.ph-foot,.ph-err,
.hm-macros{font-size:12.5px;line-height:1.45}
.stat span,.hm-tile span{font-size:11.5px}
label{font-size:12.5px;text-transform:none;letter-spacing:0;color:var(--ink2);font-weight:550;margin:14px 0 6px}
.muted{color:var(--ink2)}
.hm-lab{font-size:11.5px;letter-spacing:.04em}
.ph-kick,.hm-date{font-size:11.5px;letter-spacing:.05em;color:var(--ink2)}
.sec{font-size:15px}
.ph-h1,.hm-hi{font-size:26px;line-height:1.08}

/* zones tactiles */
.nut-del,.ph-del{min-width:44px;min-height:44px;font-size:17px}
.ph-del{min-height:36px}
.chip{min-height:38px;padding:0 15px;font-size:13px}
.btn-sm{min-height:38px;font-size:12.5px}

/* avatar de profil, fixe à droite, présent sur tous les écrans privés */
.topbar{padding-right:calc(var(--gutter) + 46px)}
.av{position:fixed;top:calc(var(--safe-t) + 14px);right:var(--gutter);z-index:35;
  width:36px;height:36px;border-radius:50%;background:var(--brand);color:var(--on-brand);
  display:grid;place-items:center;font-size:13px;font-weight:700;text-transform:uppercase;
  text-decoration:none;box-shadow:var(--e2)}
.av:active{transform:scale(.94)}
.av[hidden],body.no-ava .av{display:none}
body.bare .view{padding-top:calc(var(--safe-t) + 56px)}
body.previewing .av{top:calc(var(--safe-t) + 52px)}

/* bouton principal du hero, pleine largeur */
.hm-cta{display:grid;place-items:center;border-radius:var(--r-full);background:var(--on-brand);color:var(--brand-lo);font:var(--t-label);font-weight:650;text-decoration:none}

/* bande de semaine */
.weekstrip{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:12px 0}
.wday{border-radius:14px;background:var(--surface2);min-height:62px;display:grid;place-items:center;gap:2px;padding:6px 0;text-decoration:none;color:var(--ink2)}
.wday small{font-size:10.5px;font-weight:650;letter-spacing:.06em;color:var(--ink3);text-transform:uppercase}
.wday b{font-size:17px;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums}
.wday.seance{background:var(--brand-soft)}
.wday.seance b,.wday.seance small{color:var(--brand)}
.wday.fait{background:var(--brand)}
.wday.fait b,.wday.fait small{color:var(--on-brand)}
.wday.now{box-shadow:inset 0 0 0 2px var(--brand)}
.wday.passe{opacity:.55}

/* phrase du jour */
.phrase{background:var(--surface);border-radius:var(--r-m);box-shadow:var(--e1);padding:15px;margin:10px 0}
.ph-k{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:650;color:var(--brand);
  background:var(--brand-soft);border-radius:var(--r-full);padding:4px 9px}
.phrase p{font-size:14px;line-height:1.5;color:var(--ink);margin:0}

/* anneau d'eau */
.water{background:var(--surface);border-radius:var(--r-m);box-shadow:var(--e1);padding:14px;display:flex;align-items:center;gap:14px;margin:10px 0}
.water svg{width:64px;height:64px;flex:none;transform:rotate(-90deg)}
.water circle{fill:none;stroke-width:7;stroke-linecap:round}
.wbg{stroke:var(--line2)}
.wfg{stroke:var(--brand);transition:stroke-dashoffset var(--t)}
.w-txt{flex:1}
.w-txt b{display:block;font-size:19px;font-weight:650;letter-spacing:-.02em}
.w-txt small{font-size:12.5px;color:var(--ink3)}
.w-act{display:flex;gap:6px;align-items:center}
.wbtn{background:var(--brand);color:var(--on-brand);border:0;border-radius:var(--r-full);min-height:44px;padding:0 16px;display:grid;place-items:center;font-size:12.5px;font-weight:650}
.wbtn.ghost{background:var(--surface2);color:var(--ink2);padding:0 14px;font-size:16px}
.stats.two{grid-template-columns:1fr 1fr}

/* accordéon */
details.acc{background:var(--surface);border-radius:var(--r-m);box-shadow:var(--e1);margin-bottom:9px;overflow:hidden}
details.acc>summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:54px;padding:0 15px;cursor:pointer}
details.acc>summary::-webkit-details-marker{display:none}
details.acc>summary .acc-t{flex:1;font-size:14px;font-weight:600;color:var(--ink)}
details.acc>summary .acc-v{font-size:12.5px;color:var(--ink2)}
details.acc>summary::after{content:"";width:8px;height:8px;border-right:1.8px solid var(--ink3);border-bottom:1.8px solid var(--ink3);
  transform:rotate(45deg);margin-top:-3px;transition:transform var(--t)}
details.acc[open]>summary::after{transform:rotate(-135deg);margin-top:4px}
details.acc[open]>summary{border-bottom:1px solid var(--line)}
.acc-body{padding:14px 15px 16px}
.acc-tools{display:flex;justify-content:flex-end;margin-bottom:8px}
.acc-tools button{border:0;background:none;font-size:12.5px;color:var(--ink2);font-weight:600;padding:6px 0}

/* rangée de champ inline */
.frow{display:flex;gap:8px;align-items:flex-end}
.frow .grow{flex:1}
.frow .btn{flex:none}

/* état vide normalisé */
.emptybox{background:var(--surface);border-radius:var(--r-m);box-shadow:var(--e1);padding:22px 16px;text-align:center}
.emptybox b{display:block;font-size:14px;color:var(--ink);margin-bottom:6px}
.emptybox p{font-size:12.5px;line-height:1.5;color:var(--ink2);margin:0 0 12px}

.btn-g{background:var(--surface);box-shadow:var(--e1);color:var(--ink)}
.view>*:last-child{margin-bottom:8px}