/* Oznutri — DA noir / rouge, pensée mobile */
:root {
  --bg: #070707;
  --s1: #111112;
  --s2: #18181a;
  --s3: #222225;
  --line: #2a2a2e;
  --line-2: #38383d;
  --text: #f5f5f6;
  --muted: #8d8d96;
  --dim: #5c5c64;

  --red: #e3121b;
  --red-hi: #ff2a2a;
  --red-deep: #7a080d;
  --red-glow: rgba(227, 18, 27, 0.35);

  /* Macros (code couleur imposé) */
  --kcal-bg: #ffffff;
  --kcal-fg: #000000;
  --p: #2bd46b;
  --c: #ff4757;
  --f: #ff9a1f;
  --sugar: #d6d6dc;
  --fiber: #9be15d;
  --salt: #8fb7ff;

  --r-lg: 22px;
  --r-md: 16px;
  --r-sm: 11px;

  --safe-t: env(safe-area-inset-top, 0px);
  --safe-b: env(safe-area-inset-bottom, 0px);
  --tabbar-h: 74px;

  --font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --num: "Barlow Condensed", "Inter", system-ui, sans-serif;
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; padding: 0; background: var(--bg); color: var(--text); }
body {
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.4;
  -webkit-font-smoothing: antialiased;
  overscroll-behavior-y: none;
  min-height: 100dvh;
}
body::before {
  content: "";
  position: fixed;
  inset: -20% -30% auto -30%;
  height: 60vh;
  background: radial-gradient(ellipse at 50% 0%, rgba(227, 18, 27, 0.16), transparent 62%);
  pointer-events: none;
  z-index: 0;
}
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; border: 0; background: none; padding: 0; }
input, select, textarea {
  background: var(--s2);
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  padding: 12px 13px;
  outline: none;
  width: 100%;
  font-size: 16px; /* évite le zoom iOS */
}
input:focus, select:focus, textarea:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(227, 18, 27, 0.18); }
input[type="number"] { -moz-appearance: textfield; }
input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
svg { display: block; }
[hidden] { display: none !important; }

#app { position: relative; z-index: 1; max-width: 520px; margin: 0 auto; }
.view {
  padding: calc(var(--safe-t) + 14px) 16px calc(var(--tabbar-h) + var(--safe-b) + 28px);
  min-height: 100dvh;
}

/* ---------- Topbar ---------- */
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.brand { font-family: var(--num); font-weight: 800; font-size: 26px; letter-spacing: 0.06em; font-style: italic; }
.brand b { color: var(--red); }
.brand { display: inline-flex; align-items: center; gap: 9px; }
.brand-mark { width: 30px; height: 30px; border-radius: 8px; box-shadow: 0 0 14px rgba(255, 30, 40, .35); flex: none; }
.brand-mark.big { width: 88px; height: 88px; border-radius: 22px; display: block; margin: 0 auto 12px; box-shadow: 0 0 34px rgba(255, 30, 40, .45); }
.datenav { display: flex; align-items: center; gap: 4px; background: var(--s1); border: 1px solid var(--line); border-radius: 999px; padding: 4px; }
.datenav button { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; color: var(--muted); }
.datenav button:active { background: var(--s3); }
.datenav .dlabel { min-width: 112px; text-align: center; font-weight: 700; font-size: 14px; text-transform: capitalize; }
.page-title { font-family: var(--num); font-weight: 800; font-size: 30px; letter-spacing: 0.02em; text-transform: uppercase; margin: 0; }
.page-title b { color: var(--red); }

/* ---------- Cartes ---------- */
.card { background: var(--s1); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 16px; margin-bottom: 14px; }
.card-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.card-t { font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.section-t { display: flex; align-items: center; justify-content: space-between; margin: 22px 2px 10px; }
.section-t h3 { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.link { color: var(--red-hi); font-weight: 600; font-size: 13px; }

/* ---------- Hero kcal ---------- */
.hero { position: relative; overflow: hidden; padding: 18px 16px 16px; }
.hero::after {
  content: ""; position: absolute; right: -60px; top: -60px; width: 200px; height: 200px;
  background: radial-gradient(circle, var(--red-glow), transparent 70%); pointer-events: none;
}
.hero-row { display: flex; align-items: center; gap: 16px; }
.ring { position: relative; width: 168px; height: 168px; flex: none; }
.ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.ring .track { stroke: var(--s3); }
.ring .bar { stroke: var(--red); transition: stroke-dashoffset 0.8s cubic-bezier(.2,.8,.2,1); filter: drop-shadow(0 0 6px var(--red-glow)); }
.ring .bar.over { stroke: var(--red-hi); }
.ring .over-bar { stroke: #fff; opacity: 0.9; }
.ring-core {
  position: absolute; inset: 22px; border-radius: 50%;
  background: var(--kcal-bg); color: var(--kcal-fg);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  box-shadow: inset 0 -6px 18px rgba(0,0,0,0.12);
}
.ring-core .big { font-family: var(--num); font-weight: 800; font-size: 44px; line-height: 0.9; letter-spacing: -0.01em; }
.ring-core .sub { font-size: 11px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: #000; opacity: 0.55; margin-top: 4px; }
.hero-side { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.remain { font-family: var(--num); font-weight: 800; font-size: 30px; line-height: 1; }
.remain small { display: block; font-family: var(--font); font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-top: 4px; }
.remain.over { color: var(--red-hi); }
.mini-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.mini-stats div { background: var(--s2); border-radius: 10px; padding: 7px 9px; }
.mini-stats b { display: block; font-family: var(--num); font-size: 18px; font-weight: 700; }
.mini-stats span { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; font-weight: 700; }

/* ---------- Barres macros ---------- */
.macros { display: flex; flex-direction: column; gap: 13px; margin-top: 18px; }
.mbar-h { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 6px; }
.mbar-name { font-size: 13px; font-weight: 700; display: flex; align-items: center; gap: 7px; }
.mbar-name .dot { width: 9px; height: 9px; border-radius: 3px; }
.mbar-name .mode { font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dim); }
.mbar-val { font-family: var(--num); font-size: 19px; font-weight: 700; }
.mbar-val small { color: var(--muted); font-weight: 600; font-size: 14px; }
.mbar-track { position: relative; height: 9px; background: var(--s3); border-radius: 99px; overflow: hidden; }
.mbar-fill { position: absolute; inset: 0 auto 0 0; border-radius: 99px; transition: width 0.7s cubic-bezier(.2,.8,.2,1); }
.mbar-fill.over { background-image: repeating-linear-gradient(-45deg, transparent 0 5px, rgba(0,0,0,0.35) 5px 9px); }
.mbar-foot { font-size: 11.5px; color: var(--muted); margin-top: 5px; font-weight: 500; }
.mbar-foot.bad { color: var(--red-hi); font-weight: 700; }
.mbar-foot.good { color: var(--p); font-weight: 700; }
.c-p { color: var(--p); } .c-c { color: var(--c); } .c-f { color: var(--f); }
.bg-p { background: var(--p); } .bg-c { background: var(--c); } .bg-f { background: var(--f); }
.bg-sugar { background: var(--sugar); } .bg-fiber { background: var(--fiber); } .bg-salt { background: var(--salt); }
.bg-kcal { background: #fff; }

.subnutri { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 16px; }
.subnutri div { background: var(--s2); border-radius: 12px; padding: 9px 10px; border: 1px solid transparent; }
.subnutri div.bad { border-color: var(--red); }
.subnutri b { font-family: var(--num); font-size: 18px; font-weight: 700; display: block; }
.subnutri span { font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); font-weight: 700; }

/* ---------- Pastilles macros (ordre : kcal → P → G → L) ---------- */
.mchips { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.mc { display: inline-flex; align-items: baseline; gap: 3px; padding: 3px 8px; border-radius: 8px; background: var(--s3); font-family: var(--num); font-weight: 700; font-size: 15px; line-height: 1.25; white-space: nowrap; }
.mc i { font-style: normal; font-family: var(--font); font-size: 10px; font-weight: 800; opacity: 0.85; }
.mc.kcal { background: var(--kcal-bg); color: var(--kcal-fg); font-weight: 800; }
.mc.p { color: var(--p); background: rgba(43, 212, 107, 0.1); }
.mc.c { color: var(--c); background: rgba(255, 71, 87, 0.1); }
.mc.f { color: var(--f); background: rgba(255, 154, 31, 0.1); }
.mchips.sm { gap: 4px; flex-wrap: nowrap; }
.mchips.sm .mc { font-size: 13.5px; padding: 2px 5px; border-radius: 7px; gap: 2px; }
.mchips.sm .mc i { font-size: 9px; }
.mchips.lg .mc { font-size: 19px; padding: 5px 10px; border-radius: 10px; }
.mchips.lg .mc.kcal { font-size: 22px; }

/* ---------- Semaine ---------- */
.wplot { position: relative; height: 96px; display: grid; grid-template-columns: repeat(7, 1fr); gap: 7px; align-items: end; margin-top: 22px; border-bottom: 1px solid var(--line); }
.wc { position: relative; height: 100%; display: flex; align-items: flex-end; justify-content: center; }
.wc .wbar { width: 100%; }
.wc .wval { position: absolute; left: 50%; transform: translateX(-50%); font-family: var(--num); font-size: 12px; font-weight: 700; white-space: nowrap; }
.wlabels { display: grid; grid-template-columns: repeat(7, 1fr); gap: 7px; margin-top: 7px; text-align: center; font-size: 10.5px; font-weight: 800; color: var(--dim); text-transform: uppercase; }
.wlabels .on { color: var(--red-hi); }
.week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; align-items: end; height: 118px; position: relative; padding-top: 6px; }
.wcol { display: flex; flex-direction: column; align-items: center; gap: 6px; height: 100%; justify-content: flex-end; }
.wbar { width: 100%; max-width: 30px; border-radius: 7px 7px 3px 3px; background: var(--s3); min-height: 3px; transition: height .6s cubic-bezier(.2,.8,.2,1); position: relative; }
.wbar.ok { background: linear-gradient(180deg, #fff, #bdbdc4); }
.wbar.over { background: linear-gradient(180deg, var(--red-hi), var(--red-deep)); }
.wbar.cur { box-shadow: 0 0 0 2px var(--bg), 0 0 0 3px var(--red); }
.wlbl { font-size: 10.5px; color: var(--muted); font-weight: 700; text-transform: uppercase; }
.wval { font-family: var(--num); font-size: 12px; font-weight: 700; color: var(--text); }
.wline { position: absolute; left: 0; right: 0; border-top: 1px dashed rgba(255,255,255,0.35); pointer-events: none; }
.wline span { position: absolute; right: 0; top: -15px; background: var(--s1); padding-left: 4px; font-size: 10px; color: var(--muted); font-weight: 700; }

/* ---------- Repas ---------- */
.meal { background: var(--s1); border: 1px solid var(--line); border-radius: var(--r-md); margin-bottom: 10px; overflow: hidden; }
.meal-main { display: flex; gap: 12px; padding: 12px; align-items: center; width: 100%; text-align: left; }
.thumb { width: 54px; height: 54px; border-radius: 13px; flex: none; background: var(--s3) center/cover no-repeat; display: grid; place-items: center; color: var(--dim); overflow: hidden; }
.thumb.sm { width: 42px; height: 42px; border-radius: 10px; }
.meal-info { flex: 1; min-width: 0; }
.meal-name { font-weight: 700; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.meal-meta { font-size: 12px; color: var(--muted); margin: 2px 0 6px; }
.meal-items { border-top: 1px solid var(--line); padding: 6px 12px 4px; }
.mi-row { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; font-size: 13px; border-bottom: 1px dashed var(--line); }
.mi-row:last-child { border-bottom: 0; }
.mi-row > span:first-child { color: var(--text); }
.mi-row > span:last-child { color: var(--muted); white-space: nowrap; }
.meal-actions { display: flex; gap: 6px; padding: 8px 12px 12px; }
.meal-actions button { flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px; height: 38px; border-radius: 11px; background: var(--s2); font-size: 13px; font-weight: 600; }
.meal-actions button.danger { color: var(--red-hi); flex: 1; background: color-mix(in srgb, var(--red) 12%, var(--s2)); }
.meal-actions button { min-width: 0; padding: 0 6px; white-space: nowrap; }
.type-h { display: flex; align-items: center; gap: 8px; margin: 18px 2px 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.type-h::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.type-h b { font-family: var(--num); font-size: 14px; color: var(--text); letter-spacing: 0.02em; }

.empty { text-align: center; padding: 30px 18px; color: var(--muted); border: 1px dashed var(--line-2); border-radius: var(--r-lg); }
.empty b { display: block; color: var(--text); font-size: 16px; margin-bottom: 4px; }

/* ---------- Boutons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 50px; padding: 0 18px; border-radius: 14px; font-weight: 700; font-size: 15px; background: var(--s2); border: 1px solid var(--line); transition: transform .1s; }
.btn:active { transform: scale(0.97); }
.btn.primary { background: linear-gradient(180deg, var(--red-hi), var(--red)); border-color: transparent; color: #fff; box-shadow: 0 8px 24px -8px var(--red-glow); }
.btn.ghost { background: transparent; }
.btn.block { width: 100%; }
.btn.sm { height: 40px; font-size: 13.5px; padding: 0 13px; border-radius: 11px; }
.btn[disabled] { opacity: 0.45; pointer-events: none; }
.quick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 14px; }
.quick button { background: var(--s1); border: 1px solid var(--line); border-radius: var(--r-md); padding: 12px 6px; display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--text); }
.quick button svg { color: var(--red-hi); }
.icon-btn { width: 42px; height: 42px; border-radius: 13px; display: grid; place-items: center; background: var(--s2); }
.icon-btn.big { width: 52px; height: 52px; border-radius: 16px; }
.glass { background: rgba(20, 20, 22, 0.55); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,0.08); color: #fff; }

/* ---------- Tabbar ---------- */
.tabbar {
  position: fixed; left: 50%; transform: translateX(-50%); bottom: 0; z-index: 20;
  width: 100%; max-width: 520px;
  height: calc(var(--tabbar-h) + var(--safe-b));
  padding: 0 10px var(--safe-b);
  display: grid; grid-template-columns: 1fr 1fr 84px 1fr 1fr; align-items: center;
  background: rgba(10, 10, 11, 0.86); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  border-top: 1px solid var(--line);
}
.tab { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; color: var(--dim); font-size: 10.5px; font-weight: 700; letter-spacing: 0.04em; }
.tab.on { color: var(--text); }
.tab.on svg { color: var(--red-hi); }
.tab-scan {
  justify-self: center; width: 66px; height: 66px; margin-top: -30px; border-radius: 22px;
  background: linear-gradient(160deg, var(--red-hi), var(--red) 55%, var(--red-deep));
  display: grid; place-items: center; color: #fff;
  box-shadow: 0 10px 30px -6px var(--red-glow), 0 0 0 5px var(--bg), inset 0 1px 0 rgba(255,255,255,0.25);
  transition: transform .15s;
}
.tab-scan:active { transform: scale(0.94); }
.tab-scan .badge { position: absolute; }

/* ---------- Bottom sheets ---------- */
.sheet-back { position: fixed; inset: 0; z-index: 40; background: rgba(0,0,0,0.6); opacity: 0; transition: opacity .25s; }
.sheet-back.in { opacity: 1; }
.sheet {
  position: fixed; left: 50%; bottom: 0; z-index: 41; width: 100%; max-width: 520px;
  max-height: calc(100dvh - var(--safe-t) - 18px);
  transform: translate(-50%, 100%); transition: transform .32s cubic-bezier(.2,.9,.2,1);
  background: var(--s1); border-top: 1px solid var(--line-2); border-radius: 26px 26px 0 0;
  display: flex; flex-direction: column;
}
.sheet.in { transform: translate(-50%, 0); }
.sheet.full { height: calc(100dvh - var(--safe-t) - 10px); }
.sheet-grip { width: 42px; height: 5px; border-radius: 9px; background: var(--line-2); margin: 9px auto 0; flex: none; }
.sheet-h { display: flex; align-items: center; justify-content: space-between; padding: 10px 16px 10px; flex: none; }
.sheet-h h2 { margin: 0; font-family: var(--num); font-size: 24px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.02em; }
.sheet-b { overflow-y: auto; padding: 4px 16px 18px; flex: 1; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
.sheet-f { flex: none; padding: 12px 16px calc(12px + var(--safe-b)); border-top: 1px solid var(--line); background: var(--s1); display: flex; gap: 8px; }
.sheet-f .btn { flex: 1; }

/* ---------- Formulaires ---------- */
.field { margin-bottom: 12px; }
.field label, .lbl { display: block; font-size: 11.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.grid4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.nf { position: relative; }
.nf input { padding-right: 30px; font-family: var(--num); font-weight: 700; font-size: 20px; padding-top: 22px; padding-bottom: 6px; }
.nf .tag { position: absolute; left: 12px; top: 6px; font-size: 10px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.nf .u { position: absolute; right: 11px; bottom: 10px; font-size: 12px; color: var(--muted); }
.nf.kcal input { background: #fff; color: #000; border-color: #fff; }
.nf.kcal .tag, .nf.kcal .u { color: #000; }
.nf.p .tag { color: var(--p); } .nf.c .tag { color: var(--c); } .nf.f .tag { color: var(--f); }
.seg { display: flex; background: var(--s2); border: 1px solid var(--line); border-radius: 13px; padding: 3px; gap: 3px; }
.seg button { flex: 1; height: 38px; border-radius: 10px; font-size: 13px; font-weight: 700; color: var(--muted); }
.seg button.on { background: var(--red); color: #fff; }
.seg.sm button { height: 32px; font-size: 12px; }
.row { display: flex; gap: 10px; align-items: center; }
.row > * { min-width: 0; }
.grow { flex: 1; }
.muted { color: var(--muted); }
.small { font-size: 12.5px; }
.hr { height: 1px; background: var(--line); margin: 16px 0; }
.switch { position: relative; width: 46px; height: 28px; flex: none; }
.switch input { position: absolute; opacity: 0; inset: 0; margin: 0; z-index: 1; cursor: pointer; }
.switch span { position: absolute; inset: 0; border-radius: 99px; background: var(--s3); transition: background .2s; }
.switch span::after { content: ""; position: absolute; left: 3px; top: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; transition: transform .2s; }
.switch input:checked + span { background: var(--red); }
.switch input:checked + span::after { transform: translateX(18px); }

/* ---------- Éditeur de repas ---------- */
.ed-photos { display: flex; gap: 8px; overflow-x: auto; margin: 0 -16px 12px; padding: 0 16px; scrollbar-width: none; }
.ed-photos img { width: 92px; height: 92px; object-fit: cover; border-radius: 14px; flex: none; border: 1px solid var(--line); }
.ed-total { background: var(--s2); border: 1px solid var(--line); border-radius: var(--r-md); padding: 13px; margin-bottom: 12px; }
.ed-total .mchips { gap: 6px; }
.ed-sub { display: flex; gap: 14px; font-size: 12px; color: var(--muted); margin-top: 9px; font-weight: 600; }
.ed-sub b { color: var(--text); font-family: var(--num); font-size: 14px; }
.proj { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--line-2); }
.proj-row { display: flex; justify-content: space-between; align-items: baseline; font-size: 13px; }
.proj-row b { font-family: var(--num); font-size: 17px; }
.proj-track { height: 6px; background: var(--s3); border-radius: 9px; margin-top: 7px; position: relative; overflow: hidden; }
.proj-track i { position: absolute; top: 0; bottom: 0; left: 0; border-radius: 9px; }
.proj-track i.now { background: #fff; }
.proj-track i.add { background: var(--red); }
.warn { display: flex; gap: 9px; align-items: flex-start; background: rgba(227,18,27,0.12); border: 1px solid rgba(227,18,27,0.45); color: #ffb3b6; padding: 10px 12px; border-radius: 12px; font-size: 13px; font-weight: 600; margin-top: 10px; }
.warn svg { flex: none; color: var(--red-hi); margin-top: 1px; }
.ai-note { display: flex; gap: 8px; font-size: 12.5px; color: var(--muted); background: var(--s2); border-radius: 12px; padding: 9px 11px; margin-bottom: 12px; }
.ai-note svg { flex: none; color: var(--red-hi); }

.item { background: var(--s2); border: 1px solid var(--line); border-radius: var(--r-md); margin-bottom: 9px; overflow: hidden; transition: border-color .2s, opacity .25s, transform .25s; }
.item.removing { opacity: 0; transform: translateX(40px); }
.item.new { animation: pop .5s cubic-bezier(.2,.9,.2,1); border-color: var(--red); }
@keyframes pop { from { transform: scale(0.96); opacity: 0; } to { transform: none; opacity: 1; } }
.item-top { display: flex; align-items: center; gap: 10px; padding: 11px 11px 0; }
.item-name { flex: 1; min-width: 0; background: transparent; border: 0; padding: 4px 0; font-weight: 700; font-size: 15px; }
.item-name:focus { box-shadow: none; border-bottom: 1px solid var(--red); border-radius: 0; }
.conf { font-size: 10px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; padding: 3px 7px; border-radius: 6px; background: rgba(255,154,31,0.14); color: var(--f); flex: none; }
.src { font-size: 10px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--dim); flex: none; }
.item-mid { display: flex; align-items: center; gap: 10px; padding: 9px 11px 11px; }
.stepper { display: flex; align-items: center; background: var(--s1); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; flex: none; }
.stepper button { width: 31px; height: 38px; display: grid; place-items: center; color: var(--muted); }
.stepper button:active { background: var(--s3); color: #fff; }
.stepper input { width: 46px; border: 0; background: transparent; text-align: center; padding: 0; height: 38px; font-family: var(--num); font-weight: 700; font-size: 19px; border-radius: 0; }
.stepper input:focus { box-shadow: none; }
.stepper .u { font-size: 12px; color: var(--muted); padding-right: 2px; }
.item-mid .mchips { flex: 1; justify-content: flex-end; }
.item-tools { display: flex; gap: 2px; }
.item-tools button { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; color: var(--muted); }
.item-tools button.on { color: var(--red-hi); }
.item-tools button.del { color: var(--red-hi); }
.item-more { padding: 0 11px 12px; border-top: 1px dashed var(--line); padding-top: 11px; }
.item-more .grid4 .nf input { font-size: 17px; }
.portion-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.portion-chips button { height: 32px; padding: 0 11px; border-radius: 9px; background: var(--s1); border: 1px solid var(--line); font-size: 12.5px; font-weight: 600; }

.adder { position: relative; margin: 6px 0 4px; }
.adder-row { display: flex; gap: 8px; }
.adder-row input { flex: 1; height: 50px; }
.adder-row .icon-btn { width: 50px; height: 50px; border-radius: 13px; flex: none; border: 1px solid var(--line); }
.adder-row .icon-btn.go { background: var(--red); border-color: var(--red); color: #fff; }
.suggest { position: absolute; left: 0; right: 0; bottom: calc(100% + 6px); background: var(--s2); border: 1px solid var(--line-2); border-radius: 14px; overflow: hidden; z-index: 5; box-shadow: 0 -14px 40px rgba(0,0,0,0.6); }
.suggest button { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 13px; text-align: left; border-bottom: 1px solid var(--line); font-size: 14px; }
.suggest button:last-child { border-bottom: 0; }
.suggest small { color: var(--muted); font-size: 11.5px; }
.suggest .ai { color: var(--red-hi); font-weight: 700; }
.adder-tools { display: flex; gap: 8px; margin-top: 8px; }
.adder-tools .btn { flex: 1; }
.spinner { width: 18px; height: 18px; border-radius: 50%; border: 2.5px solid rgba(255,255,255,0.25); border-top-color: #fff; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ---------- Calendrier ---------- */
.cal-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.cal-h h2 { margin: 0; font-family: var(--num); font-weight: 800; font-size: 26px; text-transform: uppercase; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.cal-wd { text-align: center; font-size: 10.5px; font-weight: 800; color: var(--dim); letter-spacing: 0.08em; padding-bottom: 4px; }
.cal-d { position: relative; aspect-ratio: 0.78; border-radius: 12px; background: var(--s1); border: 1px solid var(--line); display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 6px 2px 5px; overflow: hidden; }
.cal-d.out { opacity: 0.25; }
.cal-d .n { font-size: 12px; font-weight: 700; color: var(--muted); }
.cal-d .k { font-family: var(--num); font-size: 14px; font-weight: 800; line-height: 1; padding: 3px 4px; border-radius: 6px; }
.cal-d .k.ok { background: #fff; color: #000; }
.cal-d .k.over { background: var(--red); color: #fff; }
.cal-d .k.none { color: var(--dim); font-size: 12px; }
.cal-d .pb { position: absolute; left: 0; bottom: 0; height: 3px; background: var(--p); }
.cal-d.today { border-color: var(--red); }
.cal-d.sel { background: var(--s3); border-color: #fff; }
.cal-d.future { opacity: 0.45; }
.cal-legend { display: flex; gap: 14px; font-size: 11.5px; color: var(--muted); margin-top: 12px; flex-wrap: wrap; }
.cal-legend span { display: inline-flex; align-items: center; gap: 6px; }
.cal-legend i { width: 12px; height: 12px; border-radius: 4px; display: inline-block; }
.stats4 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.stat { background: var(--s2); border-radius: 14px; padding: 11px 12px; }
.stat b { display: block; font-family: var(--num); font-size: 24px; font-weight: 800; line-height: 1.05; }
.stat span { font-size: 10.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.stat.red b { color: var(--red-hi); }
.stat.kc b { display: block; width: fit-content; margin-bottom: 3px; background: #fff; color: #000; padding: 0 6px; border-radius: 7px; }

/* ---------- Bibliothèque ---------- */
.search { position: relative; margin-bottom: 12px; }
.search input { padding-left: 42px; height: 48px; }
.search svg { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: var(--muted); }
.lib-item { display: flex; align-items: center; gap: 12px; background: var(--s1); border: 1px solid var(--line); border-radius: var(--r-md); padding: 10px; margin-bottom: 8px; }
.lib-item .meal-info { cursor: pointer; }
.lib-add { width: 44px; height: 44px; border-radius: 13px; background: var(--red); color: #fff; display: grid; place-items: center; flex: none; }
.lib-star { width: 30px; height: 36px; display: grid; place-items: center; color: var(--dim); flex: none; }
.lib-star.on { color: var(--f); }
.count { font-size: 11px; font-weight: 700; color: var(--muted); }
.nutri { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 5px; font-size: 11px; font-weight: 900; color: #fff; text-transform: uppercase; vertical-align: middle; }
.nutri.a { background: #038141; } .nutri.b { background: #85bb2f; } .nutri.c { background: #fecb02; color: #000; } .nutri.d { background: #ee8100; } .nutri.e { background: #e63e11; }

/* ---------- Réglages ---------- */
.q-row { display: grid; grid-template-columns: 1fr 128px; gap: 10px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); }
.q-row:last-child { border-bottom: 0; }
.q-name { display: flex; align-items: center; gap: 10px; font-weight: 700; }
.q-name .dot { width: 11px; height: 11px; border-radius: 4px; }
.q-row .seg { grid-column: 1 / -1; }
.q-row.off .nf, .q-row.off .seg { opacity: 0.35; pointer-events: none; }
.q-row .nf input { padding-top: 10px; padding-bottom: 10px; font-size: 18px; text-align: right; padding-right: 40px; }
.q-row .nf .u { bottom: 50%; transform: translateY(50%); }
.kv { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); gap: 12px; }
.kv:last-child { border-bottom: 0; }
.status-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; background: var(--dim); }
.status-dot.ok { background: var(--p); box-shadow: 0 0 8px var(--p); }
.status-dot.ko { background: var(--red-hi); }

/* ---------- Scanner ---------- */
.scanner { position: fixed; inset: 0; z-index: 60; background: #000; overflow: hidden; color: #fff; }
.scanner video, .scanner .freeze { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.scan-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.55), transparent 22%, transparent 66%, rgba(0,0,0,0.8)); pointer-events: none; }
.scan-top { position: absolute; top: calc(var(--safe-t) + 12px); left: 14px; right: 14px; display: flex; align-items: center; justify-content: space-between; z-index: 2; }
.scan-title { font-family: var(--num); font-weight: 800; font-style: italic; font-size: 22px; letter-spacing: 0.08em; }
.scan-title span { color: var(--red-hi); margin: 0 6px; }
.scan-title em { font-style: normal; font-size: 13px; font-family: var(--font); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.7); }
.reticle { position: absolute; left: 50%; top: 44%; width: min(76vw, 340px); height: min(76vw, 340px); transform: translate(-50%, -50%); pointer-events: none; transition: all .3s; }
.reticle i { position: absolute; width: 38px; height: 38px; border: 4px solid #fff; }
.reticle i:nth-child(1) { left: 0; top: 0; border-right: 0; border-bottom: 0; border-radius: 16px 0 0 0; }
.reticle i:nth-child(2) { right: 0; top: 0; border-left: 0; border-bottom: 0; border-radius: 0 16px 0 0; }
.reticle i:nth-child(3) { left: 0; bottom: 0; border-right: 0; border-top: 0; border-radius: 0 0 0 16px; }
.reticle i:nth-child(4) { right: 0; bottom: 0; border-left: 0; border-top: 0; border-radius: 0 0 16px 0; }
.reticle.hit i { border-color: var(--red-hi); }
.reticle.hit { transform: translate(-50%, -50%) scale(0.92); }
.scanline { position: absolute; left: 8%; right: 8%; height: 2px; top: 10%; background: linear-gradient(90deg, transparent, var(--red-hi), transparent); box-shadow: 0 0 16px 2px var(--red-glow); animation: sweep 2.2s ease-in-out infinite; }
@keyframes sweep { 0%, 100% { top: 10%; } 50% { top: 88%; } }
.scan-hint { position: absolute; left: 20px; right: 20px; top: calc(44% + min(38vw, 170px) + 18px); text-align: center; font-size: 13.5px; font-weight: 600; color: rgba(255,255,255,0.86); text-shadow: 0 1px 8px rgba(0,0,0,0.8); }
.scan-bottom { position: absolute; left: 0; right: 0; bottom: calc(var(--safe-b) + 26px); display: flex; align-items: center; justify-content: space-between; padding: 0 28px; z-index: 2; }
.shutter { width: 82px; height: 82px; border-radius: 50%; border: 4px solid #fff; display: grid; place-items: center; background: transparent; }
.shutter span { width: 64px; height: 64px; border-radius: 50%; background: var(--red); transition: transform .12s; box-shadow: 0 0 30px var(--red-glow); }
.shutter:active span { transform: scale(0.86); }
.draft-btn { height: 52px; min-width: 52px; border-radius: 16px; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 0 12px; }
.draft-btn b { font-family: var(--num); font-size: 20px; }
.draft-btn.has { background: #fff; color: #000; }
.scan-manual { position: absolute; left: 50%; transform: translateX(-50%); bottom: calc(var(--safe-b) + 122px); height: 36px; padding: 0 14px; border-radius: 99px; font-size: 12.5px; font-weight: 700; display: flex; align-items: center; gap: 7px; z-index: 2; }
.scan-busy { position: absolute; inset: 0; z-index: 3; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; background: rgba(0,0,0,0.55); backdrop-filter: blur(3px); }
.busy-ring { width: 74px; height: 74px; border-radius: 50%; border: 4px solid rgba(255,255,255,0.15); border-top-color: var(--red-hi); border-right-color: var(--red-hi); animation: spin .9s linear infinite; }
.busy-text { font-family: var(--num); font-size: 22px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; text-align: center; padding: 0 30px; }
.busy-text small { display: block; font-family: var(--font); font-size: 12.5px; text-transform: none; letter-spacing: 0; color: rgba(255,255,255,0.65); font-weight: 500; margin-top: 6px; }
.scan-error { position: absolute; left: 20px; right: 20px; top: 34%; z-index: 2; text-align: center; background: rgba(20,20,22,0.9); border: 1px solid var(--line-2); border-radius: 18px; padding: 20px 18px; }
.scan-error b { display: block; font-size: 16px; margin-bottom: 6px; }
.scan-error p { margin: 0 0 14px; color: var(--muted); font-size: 13.5px; }
.scan-sheet .btn { white-space: nowrap; font-size: 14px; padding: 0 12px; }
.scan-sheet { position: absolute; left: 0; right: 0; bottom: 0; z-index: 4; background: var(--s1); border-radius: 26px 26px 0 0; border-top: 1px solid var(--line-2); padding: 8px 16px calc(var(--safe-b) + 16px); max-height: 78dvh; overflow-y: auto; animation: up .3s cubic-bezier(.2,.9,.2,1); color: var(--text); }
@keyframes up { from { transform: translateY(100%); } to { transform: none; } }
.prod { display: flex; gap: 12px; align-items: center; margin: 8px 0 14px; }
.prod img, .prod .thumb { width: 74px; height: 74px; border-radius: 14px; object-fit: contain; background: #fff; flex: none; }
.prod h3 { margin: 0; font-size: 17px; line-height: 1.2; }
.prod p { margin: 3px 0 0; font-size: 12.5px; color: var(--muted); }
.per100 { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin: 0 0 7px; }
.qr-box { word-break: break-all; background: var(--s2); border-radius: 12px; padding: 12px; font-size: 13.5px; margin: 8px 0 12px; font-family: ui-monospace, monospace; }

/* ---------- Toast ---------- */
.toast { position: fixed; left: 50%; bottom: calc(var(--tabbar-h) + var(--safe-b) + 18px); transform: translate(-50%, 20px); z-index: 90; background: #fff; color: #000; font-weight: 700; font-size: 14px; padding: 11px 16px; border-radius: 14px; opacity: 0; pointer-events: none; transition: all .25s; max-width: calc(100vw - 32px); box-shadow: 0 12px 30px rgba(0,0,0,0.5); display: flex; align-items: center; gap: 8px; }
.toast.in { opacity: 1; transform: translate(-50%, 0); }
.toast.err { background: var(--red); color: #fff; }
.toast, body.sheet-open .toast { bottom: auto; top: calc(var(--safe-t) + 10px); transform: translate(-50%, -20px); }
.toast.in { transform: translate(-50%, 0); }
body.sheet-open .toast.in { transform: translate(-50%, 0); }

/* ---------- Divers ---------- */
.fade-in { animation: fade .35s ease both; }
@keyframes fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.pill { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 11px; border-radius: 99px; background: var(--s2); font-size: 12px; font-weight: 700; color: var(--muted); border: 1px solid var(--line); }
.pill.red { background: rgba(227,18,27,0.14); color: #ffb3b6; border-color: rgba(227,18,27,0.4); }
.mini-stats b.streak, .streak { display: inline-flex; align-items: center; gap: 5px; font-family: var(--num); font-weight: 800; font-size: 16px; }
.streak svg { color: var(--red-hi); }
.install-hint { font-size: 13px; color: var(--muted); line-height: 1.5; }
@media (min-width: 521px) { .scanner video, .scanner .freeze { object-fit: contain; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; } }

/* ---------- v1.1 : photos produits + précisions IA ---------- */
.thumb.prod { background-color: #fff; background-size: contain; background-origin: content-box; padding: 5px; }
.item-img { width: 34px; height: 34px; border-radius: 9px; object-fit: contain; background: #fff; padding: 2px; flex: none; }
.ctx-h { display: flex; align-items: center; justify-content: space-between; margin: 10px 0 6px; }
.ctx-h h3 { margin: 0; font-family: var(--num); font-size: 22px; font-weight: 800; text-transform: uppercase; letter-spacing: .02em; }
textarea { resize: none; line-height: 1.45; }
#ctxNote { min-height: 84px; }

/* ---------- v1.2 : comptes ---------- */
.acct { display: flex; align-items: center; gap: 12px; }
.acct-av { width: 46px; height: 46px; border-radius: 14px; background: linear-gradient(160deg, var(--red-hi), var(--red-deep)); display: grid; place-items: center; font-family: var(--num); font-weight: 800; font-size: 22px; flex: none; }
.auth-hero { text-align: center; padding: 18px 0 20px; }
.auth-hero .brand.big { font-size: 44px; margin-bottom: 8px; }
.auth-hero p { max-width: 300px; margin: 0 auto; }

/* ---------- v1.3 : sport, profil, rappels, valeurs complètes ---------- */
.ex-svg { display: block; margin: 0 auto; --ex-body: #f5f5f6; --ex-prop: #3a3a40; }
.ex-photo { object-fit: cover; border-radius: 12px; display: block; margin: 0 auto; }
.ex-hero { background: radial-gradient(circle at 50% 35%, #1d1d21, #101012 70%); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 14px 0; }
.sp-hero .sp-title, .sp-title { margin: 2px 0 8px; font-family: var(--num); font-size: 28px; font-weight: 800; text-transform: uppercase; letter-spacing: .01em; line-height: 1.05; }
.sp-hero.live { border-color: var(--red); box-shadow: 0 0 0 1px var(--red), 0 18px 40px -20px var(--red-glow); }
.sp-exrow { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.sp-mini { flex: none; background: var(--s2); border-radius: 12px; padding: 4px; }
.wk-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.wk-day { background: var(--s2); border: 1px solid var(--line); border-radius: 12px; padding: 8px 3px; min-height: 66px; display: flex; flex-direction: column; align-items: center; gap: 5px; text-align: center; }
.wk-day span { font-size: 10.5px; font-weight: 800; color: var(--muted); text-transform: uppercase; }
.wk-day b { font-size: 10px; line-height: 1.15; font-weight: 700; color: var(--dim); overflow-wrap: anywhere; hyphens: auto; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.wk-day.on { background: rgba(227,18,27,0.13); border-color: rgba(227,18,27,0.45); }
.wk-day.on b { color: var(--text); }
.wk-day.today { box-shadow: 0 0 0 2px var(--bg), 0 0 0 3px #fff; }
.wo-row { width: 100%; text-align: left; }
.wo-date { width: 46px; height: 46px; border-radius: 13px; background: var(--s2); display: flex; flex-direction: column; align-items: center; justify-content: center; flex: none; }
.wo-date b { font-family: var(--num); font-size: 20px; line-height: 1; }
.wo-date span { font-size: 10px; color: var(--muted); text-transform: uppercase; font-weight: 700; }
.wo-name { background: transparent; border: 0; font-family: var(--num); font-size: 26px; font-weight: 800; text-transform: uppercase; padding: 0 0 8px; }
.wo-name:focus { box-shadow: none; }
.wo-ex { background: var(--s2); border: 1px solid var(--line); border-radius: var(--r-md); padding: 10px; margin-bottom: 10px; }
.wo-ex-h { display: flex; gap: 10px; align-items: center; margin-bottom: 8px; }
.wo-ex-img { background: #0d0d0f; border-radius: 12px; padding: 2px; flex: none; }
.set-head, .set-row { display: grid; grid-template-columns: 26px 1fr 1fr 0.8fr 44px; gap: 6px; align-items: center; }
.set-head { font-size: 10.5px; font-weight: 800; color: var(--dim); text-transform: uppercase; padding: 0 2px 4px; text-align: center; }
.set-row { margin-bottom: 5px; }
.set-row input { padding: 9px 6px; text-align: center; font-family: var(--num); font-weight: 700; font-size: 19px; background: var(--s1); }
.set-n { font-family: var(--num); font-weight: 800; color: var(--muted); text-align: center; }
.set-ok { height: 42px; border-radius: 11px; background: var(--s3); color: var(--dim); display: grid; place-items: center; }
.set-row.done .set-ok { background: var(--p); color: #04200e; }
.set-row.done input { border-color: rgba(43,212,107,0.4); color: var(--p); }
.wo-notes { margin-top: 8px; font-size: 14px; }
.rest-bar { position: relative; flex: none; padding: 12px 16px; background: #fff; color: #000; display: flex; justify-content: space-between; align-items: center; gap: 8px; font-weight: 700; overflow: hidden; }
.rest-bar b { font-family: var(--num); font-size: 22px; }
.rest-bar .btn { background: #000; color: #fff; border: 0; height: 34px; }
.rest-bar i { position: absolute; left: 0; bottom: 0; height: 4px; background: var(--red); transition: width 1s linear; }
.rest-bar span { display: inline-flex; align-items: center; gap: 6px; }
.wo-sum { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid var(--line); }
.chips-scroll { display: flex; gap: 6px; overflow-x: auto; margin: 0 -16px 10px; padding: 0 16px 2px; scrollbar-width: none; }
.chips-scroll button, .chips-wrap button { flex: none; height: 34px; padding: 0 12px; border-radius: 99px; background: var(--s2); border: 1px solid var(--line); font-size: 13px; font-weight: 700; color: var(--muted); white-space: nowrap; }
.chips-scroll button.on, .chips-wrap button.on { background: var(--red); border-color: var(--red); color: #fff; }
.chips-wrap { display: flex; flex-wrap: wrap; gap: 6px; }
.ex-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.ex-card { position: relative; background: var(--s2); border: 1px solid var(--line); border-radius: var(--r-md); padding: 8px 8px 10px; display: flex; flex-direction: column; gap: 2px; text-align: left; }
.ex-card .ex-svg, .ex-card .ex-photo { background: #0d0d0f; border-radius: 10px; width: 100% !important; height: auto !important; aspect-ratio: 1.2; margin-bottom: 6px; }
.ex-card b { font-size: 13.5px; line-height: 1.2; }
.ex-card span { font-size: 11px; color: var(--muted); }
.ex-card.on { border-color: var(--red); box-shadow: 0 0 0 1px var(--red); }
.ex-check { position: absolute; top: 12px; right: 12px; width: 24px; height: 24px; border-radius: 50%; background: var(--red); color: #fff; display: grid; place-items: center; }
.tips { margin: 0 0 12px; padding-left: 18px; font-size: 14px; line-height: 1.5; }
.tips li { margin-bottom: 4px; }
.ai-box { background: var(--s2); border: 1px solid rgba(227,18,27,0.35); border-radius: var(--r-md); padding: 12px; margin-bottom: 10px; }
.prog-row { width: 100%; display: flex; align-items: center; gap: 12px; padding: 12px; margin-bottom: 7px; background: var(--s2); border: 1px solid var(--line); border-radius: var(--r-md); text-align: left; color: var(--muted); }
.prog-row b { display: block; color: var(--dim); }
.prog-row small { display: block; color: var(--muted); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prog-row.on { border-color: rgba(227,18,27,0.4); }
.prog-row.on b { color: var(--text); }
.prog-wd { width: 40px; font-family: var(--num); font-weight: 800; font-size: 17px; text-transform: uppercase; color: var(--red-hi); flex: none; }
.pd-ex { background: var(--s2); border: 1px solid var(--line); border-radius: var(--r-md); padding: 10px; margin-bottom: 8px; }
.pd-ex .row > svg { background: #0d0d0f; border-radius: 10px; flex: none; }
.pd-ex .nf input { font-size: 17px; padding-top: 20px; }
.icon-btn[disabled] { opacity: .3; }
.sp-strip { width: 100%; display: flex; align-items: center; gap: 12px; padding: 14px; text-align: left; background: var(--s1); border: 1px solid var(--line); border-radius: var(--r-lg); margin-bottom: 14px; color: var(--text); }
.sp-strip > svg { color: var(--red-hi); flex: none; }
.sp-strip b { display: block; font-size: 15px; }
.sp-strip small { display: block; color: var(--muted); font-size: 12.5px; }
.sp-strip.live { border-color: var(--red); }
.sp-strip.done > svg:first-child { color: var(--p); }
.card .sp-strip { background: var(--s2); margin-bottom: 10px; }
.cd-sp { position: absolute; top: 4px; right: 3px; line-height: 0; }
.cd-sp.done { color: var(--red-hi); }
.cd-sp.plan { color: var(--muted); }
.rem-row { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.rem-row.off { opacity: .45; }
.rem-main { flex: 1; display: flex; align-items: center; gap: 12px; text-align: left; min-width: 0; }
.rem-main b { display: block; }
.rem-main small { display: block; color: var(--muted); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rem-time { font-family: var(--num); font-size: 24px; font-weight: 800; min-width: 62px; }
.notif-st { display: flex; gap: 8px; align-items: flex-start; margin-top: 12px; padding: 10px 12px; border-radius: 12px; background: var(--s2); font-size: 12.5px; color: var(--muted); }
.notif-st svg { flex: none; margin-top: 1px; }
.notif-st.ok { color: var(--p); }
.rem-check { width: 100%; display: flex; align-items: center; gap: 12px; padding: 10px 2px; border-bottom: 1px dashed var(--line); text-align: left; }
.rem-check:last-child { border-bottom: 0; }
.rem-check i { width: 26px; height: 26px; border-radius: 8px; border: 2px solid var(--line-2); display: grid; place-items: center; flex: none; }
.rem-check.ok i { background: var(--p); border-color: var(--p); color: #04200e; }
.rem-check.ok b { text-decoration: line-through; color: var(--muted); }
.rem-check small { color: var(--muted); }
.rem-check .rem-t { font-family: var(--num); font-weight: 800; font-size: 16px; color: var(--muted); }
.rem-check.late .rem-t { color: var(--f); }
.nut-all { margin-top: 12px; border-top: 1px dashed var(--line-2); padding-top: 10px; }
.nut-all summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 700; color: var(--text); }
.nut-all summary::-webkit-details-marker { display: none; }
.nut-all summary .muted { margin-left: auto; }
.nut-all summary::after { content: "▾"; color: var(--muted); transition: transform .2s; }
.nut-all[open] summary::after { transform: rotate(180deg); }
.nut-all table { width: 100%; border-collapse: collapse; margin-top: 8px; font-size: 13px; }
.nut-all th { font-size: 10.5px; color: var(--dim); text-transform: uppercase; text-align: right; font-weight: 800; padding-bottom: 4px; }
.nut-all td { padding: 6px 0; border-bottom: 1px solid var(--line); color: var(--muted); }
.nut-all td + td { text-align: right; white-space: nowrap; padding-left: 10px; }
.nut-all td b { color: var(--text); }
.tabbar .tab svg { width: 23px; height: 23px; }

/* ---------- v1.4 : lieux, comparateur, frigo, muscles ---------- */
.quick.q4 { grid-template-columns: repeat(4, 1fr); gap: 7px; }
.quick.q4 button { font-size: 11.5px; padding: 11px 4px; }
.musc-box { background: var(--s1); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 10px 6px 8px; margin-top: 10px; text-align: center; }
.musc-svg { display: block; margin: 0 auto; max-width: 100%; height: auto; }
.musc-leg { display: flex; justify-content: center; gap: 16px; font-size: 11.5px; color: var(--muted); font-weight: 700; margin-top: 4px; }
.musc-leg i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }
.musc-leg i.p { background: #ff3a2f; } .musc-leg i.s { background: var(--f); }
.verdict { margin: 12px 0 4px; padding: 12px; border-radius: var(--r-md); background: var(--s2); border: 1px solid var(--line); }
.verdict.good { border-color: rgba(43,212,107,.45); } .verdict.mid { border-color: rgba(255,154,31,.45); } .verdict.bad { border-color: rgba(255,42,42,.5); }
.vd-top { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.vd-ring { position: relative; width: 64px; height: 64px; flex: none; }
.vd-ring b { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--num); font-size: 21px; font-weight: 800; }
.vd-ring b small { font-size: 11px; }
.vd-label { font-family: var(--num); font-size: 22px; font-weight: 800; text-transform: uppercase; }
.verdict.good .vd-label { color: var(--p); } .verdict.mid .vd-label { color: var(--f); } .verdict.bad .vd-label { color: var(--red-hi); }
.vd-row { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; padding: 3px 0; }
.vd-row svg { flex: none; margin-top: 2px; }
.vd-row.good svg { color: var(--p); } .vd-row.bad svg { color: var(--red-hi); }
.vd-store { margin-top: 10px; }
.vd-store .chips-scroll { padding-left: 16px; }
.vd-store .chips-scroll button { height: 30px; font-size: 12px; }
.alt-row { width: 100%; display: flex; gap: 10px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--line); text-align: left; }
.alt-row img { width: 44px; height: 44px; border-radius: 10px; object-fit: contain; background: #fff; flex: none; }
.alt-row b { display: block; font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.alt-row small { display: block; color: var(--muted); font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.alt-score { font-family: var(--num); font-weight: 800; font-size: 18px; padding: 3px 8px; border-radius: 8px; }
.alt-score.good { color: var(--p); background: rgba(43,212,107,.12); } .alt-score.mid { color: var(--f); background: rgba(255,154,31,.12); }
.pl-map { height: 34vh; min-height: 220px; border-radius: var(--r-lg); overflow: hidden; background: var(--s2); border: 1px solid var(--line); margin-bottom: 10px; }
.pl-map-msg { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 20px; text-align: center; font-size: 13px; color: var(--muted); }
.pl-me { width: 16px; height: 16px; border-radius: 50%; background: #3d8bff; border: 3px solid #fff; box-shadow: 0 0 0 6px rgba(61,139,255,.25); }
.pl-pin { min-width: 26px; height: 26px; padding: 0 6px; border-radius: 13px 13px 13px 3px; background: var(--red); color: #fff; font: 800 13px var(--num); display: grid; place-items: center; border: 2px solid #fff; box-shadow: 0 4px 12px rgba(0,0,0,.5); transform: rotate(-45deg); }
.pl-pin.user { background: #111; border-color: var(--red-hi); }
.pl-crit { margin-bottom: 10px; background: var(--s2); border: 1px solid var(--line); border-radius: var(--r-md); padding: 10px 12px; }
.pl-crit summary { list-style: none; display: flex; gap: 7px; align-items: center; font-size: 13px; font-weight: 700; cursor: pointer; }
.pl-crit summary::-webkit-details-marker { display: none; }
.pl-crit .chips-wrap { margin-top: 10px; }
.pl-crit .chips-wrap button { height: 30px; font-size: 12px; }
.pl-loading { display: flex; gap: 10px; align-items: center; justify-content: center; padding: 24px; color: var(--muted); font-size: 13px; }
.pl-card { width: 100%; display: flex; gap: 12px; align-items: flex-start; text-align: left; background: var(--s1); border: 1px solid var(--line); border-radius: var(--r-md); padding: 10px; margin-bottom: 8px; }
.pl-card b { display: block; font-size: 15px; }
.pl-photo { position: relative; width: 74px; height: 74px; border-radius: 12px; background: var(--s3) center/cover no-repeat; flex: none; display: grid; place-items: center; color: var(--dim); }
.pl-photo i { position: absolute; top: -6px; left: -6px; min-width: 22px; height: 22px; border-radius: 11px; background: var(--red); color: #fff; font: 800 12px var(--num); display: grid; place-items: center; font-style: normal; border: 2px solid var(--bg); }
.pl-rates { display: flex; gap: 10px; flex-wrap: wrap; font-size: 13px; font-weight: 700; color: #ffc93c; margin-top: 4px; }
.pl-rates small { color: var(--muted); font-weight: 600; }
.pl-rates .oz { color: var(--red-hi); }
.pl-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.pl-tags span { font-size: 10.5px; font-weight: 700; padding: 3px 7px; border-radius: 6px; background: var(--s3); color: var(--muted); }
.pl-tags.big span { font-size: 12px; padding: 5px 9px; color: var(--text); }
.pl-tags b { color: var(--red-hi); }
.pl-gallery { display: flex; gap: 8px; overflow-x: auto; margin: 0 -16px; padding: 0 16px; scrollbar-width: none; min-height: 4px; }
.pl-gallery img { height: 170px; border-radius: 14px; flex: none; object-fit: cover; max-width: 82vw; }
.pl-rev { padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.pl-rev p { margin: 6px 0 0; }
.pl-rev.rej { opacity: .6; }
.pl-stars { display: flex; gap: 6px; }
.pl-stars button { font-size: 30px; color: var(--s3); line-height: 1; }
.pl-stars button.on { color: #ffc93c; }
.pl-phs { display: flex; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.pl-ph { position: relative; }
.pl-ph img { width: 84px; height: 84px; object-fit: cover; border-radius: 12px; }
.pl-ph button { position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; border-radius: 50%; background: rgba(0,0,0,.7); color: #fff; display: grid; place-items: center; }
.fr-list { display: flex; flex-wrap: wrap; gap: 6px; }
.fr-chip { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 4px 0 12px; border-radius: 99px; background: var(--s2); border: 1px solid var(--line); font-size: 13px; font-weight: 600; }
.fr-chip img { width: 22px; height: 22px; border-radius: 6px; object-fit: contain; background: #fff; margin-left: -6px; }
.fr-chip small { color: var(--muted); font-weight: 500; }
.fr-chip button { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; color: var(--muted); }
.fr-rec { background: var(--s2); border: 1px solid var(--line); border-radius: var(--r-md); padding: 12px; margin-bottom: 10px; }
.fr-rec-t { font-family: var(--num); font-size: 21px; font-weight: 800; text-transform: uppercase; line-height: 1.1; }
.fr-add { font-size: 10px; font-weight: 800; text-transform: uppercase; color: var(--f); background: rgba(255,154,31,.12); padding: 2px 6px; border-radius: 5px; }

/* ---------- v1.4 : biceps de fidélité ---------- */
.bi-mini { display: flex; align-items: center; gap: 8px; background: var(--s2); border-radius: 12px; padding: 6px 10px 6px 6px; text-align: left; }
.bi-mini b { display: block; font-family: var(--num); font-size: 22px; font-weight: 800; line-height: 1; }
.bi-mini { min-width: 0; max-width: 100%; }
.bi-mini > span { min-width: 0; }
.bi-mini b em { font-style: normal; font-family: var(--font); font-size: 12px; font-weight: 600; color: var(--muted); margin-left: 2px; }
.bi-mini small { display: block; font-size: 10px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 2px; }
.bi-hero { text-align: center; padding: 10px 0 6px; background: radial-gradient(circle at 50% 40%, color-mix(in srgb, var(--t1) 22%, transparent), transparent 62%); border-radius: var(--r-lg); }
.bi-hero .biceps { display: block; margin: 0 auto; }
.biceps.pulse { animation: flex 2.4s ease-in-out infinite; transform-origin: 30% 80%; }
@keyframes flex { 0%, 100% { transform: scale(1); } 45% { transform: scale(1.06) rotate(-2deg); } 55% { transform: scale(1.06) rotate(-2deg); } }
.bi-lvl { font-family: var(--num); font-size: 26px; font-weight: 800; text-transform: uppercase; margin: 4px 0 8px; }
.bi-lvl b { color: var(--t1); }
.bi-xp { height: 10px; background: var(--s3); border-radius: 9px; overflow: hidden; margin: 0 20px 8px; }
.bi-xp i { display: block; height: 100%; background: linear-gradient(90deg, var(--t2), var(--t1)); border-radius: 9px; }
.bi-tiers { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.bi-tiers div { background: var(--s2); border-radius: 12px; padding: 6px 2px; text-align: center; opacity: .45; }
.bi-tiers div.ok { opacity: 1; filter: none; }
.bi-tiers div.cur { box-shadow: 0 0 0 2px var(--red); }
.bi-tiers .biceps { display: block; margin: 0 auto; }
.bi-tiers span { font-size: 9.5px; font-weight: 800; text-transform: uppercase; color: var(--muted); }
.bi-themes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.bi-themes button { background: var(--s2); border: 1px solid var(--line); border-radius: 12px; padding: 10px 4px; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.bi-themes button i { width: 26px; height: 26px; border-radius: 50%; background: var(--c); box-shadow: 0 0 12px var(--c); }
.bi-themes button span { font-size: 12px; font-weight: 700; }
.bi-themes button small { font-size: 10px; color: var(--muted); }
.bi-themes button.on { border-color: var(--c); box-shadow: 0 0 0 1px var(--c); }
.bi-themes button[disabled] { opacity: .35; }
.bi-themes button[disabled] i { box-shadow: none; filter: grayscale(.7); }
.bi-badges { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; }
.bi-badges div { background: var(--s2); border-radius: 12px; padding: 10px; opacity: .4; }
.bi-badges div.ok { opacity: 1; border: 1px solid rgba(255,201,60,.35); }
.bi-badges span { font-size: 24px; }
.bi-badges b { display: block; font-size: 13px; margin-top: 2px; }
.bi-badges small { color: var(--muted); font-size: 11px; }
.field label.btn { text-transform: none; letter-spacing: 0; font-size: 13.5px; color: var(--text); margin: 0; display: flex; font-weight: 700; }
a.btn { text-decoration: none; color: inherit; }
.vd-ring b { display: flex; align-items: center; justify-content: center; gap: 1px; }
.bi-tiers span { font-size: 8.5px; overflow: hidden; text-overflow: ellipsis; display: block; }

/* ---------- v1.5 : suivi de progression, défis ---------- */
.acct-av.framed { color: #fff; background: #1b1b1f; box-shadow: 0 0 0 2.5px var(--t1), 0 0 0 5px var(--bg), 0 0 0 6.5px var(--t2); }
.bi-title { font-size: 14px; font-weight: 700; color: var(--t1); margin: -4px 0 10px; font-style: italic; }
.bi-ch div { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.bi-ch i { width: 26px; height: 26px; border-radius: 8px; border: 2px solid var(--line-2); display: grid; place-items: center; font-style: normal; font-weight: 900; flex: none; }
.bi-ch .ok i { background: var(--p); border-color: var(--p); color: #04200e; }
.bi-ch b { display: block; font-size: 14px; }
.bi-ch em { display: block; height: 5px; background: var(--s3); border-radius: 5px; margin-top: 5px; overflow: hidden; }
.bi-ch u { display: block; height: 100%; background: var(--red); border-radius: 5px; text-decoration: none; }
.bi-ch .ok u { background: var(--p); }
.bi-ch small { font-family: var(--num); font-weight: 800; font-size: 15px; color: var(--muted); }
.chart { position: relative; margin-top: 4px; padding-left: 0; touch-action: pan-y; }
.chart svg { display: block; overflow: visible; }
.ch-y span { position: absolute; left: 0; transform: translateY(-50%); font-size: 10px; color: var(--muted); font-family: var(--num); font-weight: 700; }
.ch-x { display: flex; justify-content: space-between; font-size: 10.5px; color: var(--muted); margin-top: 2px; padding-left: 34px; }
.ch-tip { position: absolute; top: -6px; transform: translate(-50%, -100%); background: #fff; color: #000; font-size: 12px; font-weight: 700; padding: 5px 9px; border-radius: 8px; white-space: nowrap; pointer-events: none; z-index: 2; box-shadow: 0 6px 16px rgba(0,0,0,.4); }
.ch-cross { position: absolute; top: 0; bottom: 20px; width: 1px; background: rgba(255,255,255,.35); pointer-events: none; }
.ch-empty { padding: 26px 10px; text-align: center; color: var(--muted); font-size: 13px; border: 1px dashed var(--line-2); border-radius: 12px; }
.pg-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 10px; }
.pg-kpis div { background: var(--s2); border-radius: 12px; padding: 9px 10px; }
.pg-kpis b { display: block; font-family: var(--num); font-size: 22px; font-weight: 800; line-height: 1.1; }
.pg-kpis b small { font-size: 13px; color: var(--muted); }
.pg-kpis span { font-size: 10px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }
.pg-meas { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; }
.pg-meas button { background: var(--s2); border: 1px solid var(--line); border-radius: 12px; padding: 9px 10px; text-align: left; display: grid; grid-template-columns: 1fr auto; align-items: end; }
.pg-meas button.on { border-color: var(--f); }
.pg-meas span { grid-column: 1 / -1; font-size: 11px; color: var(--muted); font-weight: 700; }
.pg-meas b { font-family: var(--num); font-size: 21px; font-weight: 800; }
.pg-meas b small { font-size: 12px; color: var(--muted); }
.pg-meas em { font-style: normal; font-family: var(--num); font-weight: 800; font-size: 14px; }
.pg-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: 10px; }
.pg-compare div { position: relative; }
.pg-compare img { width: 100%; aspect-ratio: 3/4; object-fit: cover; border-radius: 12px; display: block; }
.pg-compare span { position: absolute; left: 6px; bottom: 6px; background: rgba(0,0,0,.7); font-size: 11px; font-weight: 700; padding: 3px 7px; border-radius: 6px; }
.pg-photos { display: flex; gap: 6px; overflow-x: auto; margin: 0 -16px; padding: 0 16px; scrollbar-width: none; }
.pg-photos button { flex: none; width: 82px; text-align: center; }
.pg-photos img { width: 82px; height: 108px; object-fit: cover; border-radius: 10px; display: block; }
.pg-photos span { font-size: 10.5px; color: var(--muted); }
.pg-vrow { display: grid; grid-template-columns: 82px 1fr 26px; gap: 8px; align-items: center; padding: 4px 0; font-size: 12.5px; }
.pg-vrow b { font-family: var(--num); font-size: 16px; text-align: right; }
.pg-vbar { position: relative; height: 10px; background: var(--s3); border-radius: 5px; overflow: hidden; }
.pg-vbar .zone { position: absolute; top: 0; bottom: 0; background: rgba(255,255,255,.08); }
.pg-vbar .v { position: absolute; top: 0; bottom: 0; left: 0; background: var(--muted); border-radius: 5px; }
.pg-vbar .v.ok { background: var(--p); }
.pg-vbar .v.hi { background: var(--f); }
/* figures */
.sk-row { display: flex; gap: 8px; overflow-x: auto; margin: 0 -16px; padding: 0 16px 2px; scrollbar-width: none; }
.sk-mini { flex: none; width: 128px; background: var(--s2); border: 1px solid var(--line); border-radius: var(--r-md); padding: 10px; text-align: left; display: flex; flex-direction: column; gap: 3px; }
.sk-mini b { font-size: 13px; line-height: 1.2; }
.sk-mini small { font-size: 11px; color: var(--muted); }
.sk-mini i { display: block; height: 5px; background: var(--s3); border-radius: 5px; overflow: hidden; margin-top: 4px; }
.sk-mini u { display: block; height: 100%; background: var(--red); text-decoration: none; }
.sk-emo { font-size: 26px; line-height: 1; }
.sk-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-bottom: 8px; }
.sk-card { background: var(--s2); border: 1px solid var(--line); border-radius: var(--r-md); padding: 12px; text-align: left; display: flex; flex-direction: column; gap: 4px; }
.sk-card b { font-size: 14px; }
.sk-card small { color: var(--muted); font-size: 11.5px; }
.sk-card.on { border-color: var(--red); }
.sk-hero { display: flex; gap: 12px; align-items: center; background: var(--s2); border-radius: var(--r-md); padding: 12px; margin-bottom: 12px; }
.sk-hero > span { font-size: 40px; }
.sk-hero b { font-size: 15px; }
.sk-steps { position: relative; }
.sk-step { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px dashed var(--line); opacity: .55; }
.sk-step i { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-weight: 800; font-size: 13px; background: var(--s3); flex: none; }
.sk-step b { display: block; font-size: 14px; }
.sk-step small { color: var(--muted); font-size: 12px; }
.sk-step.done { opacity: 1; }
.sk-step.done i { background: var(--p); color: #04200e; }
.sk-step.cur { opacity: 1; }
.sk-step.cur i { background: var(--red); color: #fff; box-shadow: 0 0 0 4px rgba(227,18,27,.2); }
.sk-log { padding: 8px 0; border-bottom: 1px solid var(--line); }
.vd-frames { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin: 4px 0 12px; }
.vd-frames img { width: 100%; aspect-ratio: 3/4; object-fit: cover; border-radius: 8px; background: #000; }
.vd-metrics { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; margin-bottom: 10px; }
.vd-metrics div { background: var(--s2); border-radius: 10px; padding: 8px 10px; }
.vd-metrics b { display: block; font-family: var(--num); font-size: 22px; font-weight: 800; }
.vd-metrics span { font-size: 11px; color: var(--muted); }
/* connexions */
.cn-card { width: 100%; display: flex; gap: 12px; align-items: center; background: var(--s2); border: 1px solid var(--line); border-radius: var(--r-md); padding: 12px; margin-bottom: 8px; text-align: left; }
.cn-card b { display: block; font-size: 15px; }
.cn-card small { display: block; font-size: 12px; color: var(--muted); line-height: 1.35; }
.cn-card.soon { opacity: .72; }
.cn-logo { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; flex: none; background: color-mix(in srgb, var(--c) 16%, #111); color: var(--c); font-family: var(--num); font-size: 22px; }
.cn-logo.big { width: 64px; height: 64px; border-radius: 18px; font-size: 32px; margin-bottom: 14px; }
.cn-st { font-size: 11.5px; font-weight: 700; color: var(--muted); margin-top: 4px; }
.cn-st.ok { color: var(--p); }
.cn-acts { display: flex; gap: 4px; }
.cn-acts .btn { padding: 0 10px; }
.cn-today { display: flex; gap: 14px; flex-wrap: wrap; font-size: 13px; padding: 4px 2px 6px; }
.cn-sum { width: 100%; display: flex; gap: 10px; align-items: center; text-align: left; font-size: 13px; color: var(--muted); }
.cn-dots { display: flex; }
.cn-dots i { width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; background: color-mix(in srgb, var(--c) 18%, #111); color: var(--c); margin-left: -4px; border: 2px solid var(--s1); font-style: normal; font-size: 12px; }
.cn-dots i:first-child { margin-left: 0; }
.hg-steps li { margin-bottom: 8px; }
.hg-steps code, .tips code { background: var(--s3); padding: 1px 5px; border-radius: 5px; font-size: 12px; }
.hd-strip { justify-content: space-around; }
.hd-strip span { text-align: center; }
.hd-strip b { display: block; font-family: var(--num); font-size: 20px; font-weight: 800; }
.hd-strip small { color: var(--muted); font-size: 11px; }

/* ---------- v1.5 · Anatomie 3D ---------- */
.a3-tabs { margin-bottom: 10px; }
.a3-tabs button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.a3-new { font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; background: var(--red); color: #fff; border-radius: 99px; padding: 1px 6px; }
.a3-wrap { position: relative; background: var(--s1); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.a3-view { height: min(460px, 60vh); position: relative; touch-action: pan-y; cursor: grab; background: radial-gradient(ellipse at 50% 38%, #ffffff, #ececf0 62%, #dcdce2); }
.a3-view .a3-load { color: #55555c; }
.a3-view canvas { display: block; width: 100% !important; height: 100% !important; }
.a3-load { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; color: var(--muted); font-size: 13px; text-align: center; }
.a3-bar { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px 4px; }
.a3-bar .seg { flex: 1; }
.a3-pick { position: absolute; left: 50%; top: 10px; transform: translateX(-50%); background: rgba(10,10,12,.86); backdrop-filter: blur(8px); border: 1px solid var(--line); border-radius: 99px; padding: 6px 12px; font-size: 13px; display: flex; gap: 8px; align-items: center; white-space: nowrap; max-width: 92%; overflow: hidden; text-overflow: ellipsis; z-index: 2; }
.a3-pick span { font-size: 11px; font-weight: 700; border-radius: 99px; padding: 1px 7px; }
.a3-pick span.p { background: var(--red); color: #fff; }
.a3-pick span.s { background: #ff8a2a; color: #111; }
.a3-soon { display: flex; gap: 6px; align-items: center; justify-content: center; margin: 4px 12px 0; }
.a3-credit { font-size: 10.5px; color: var(--muted); text-align: center; margin: 6px 10px 10px; line-height: 1.45; opacity: .8; }

/* ---------- v1.5.3 · Menu hamburger ---------- */
.topbar .menu-btn { flex: none; width: 42px; height: 42px; border-radius: 13px; background: var(--s1); border: 1px solid var(--line); color: var(--text); }
.topbar .menu-btn:active { background: var(--s3); }
.topbar > .brand { min-width: 0; }
@media (max-width: 400px) { .topbar > .brand > span { display: none; } .datenav .dlabel { min-width: 96px; } }
.sheet-h h2 .brand { font-size: 22px; }
/* menu façon iOS : actions rapides, rubriques illustrées, listes groupées */
.mn-sheet .sheet-b { padding-top: 4px; }
.mn-quick { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 2px 0 18px; }
.mn-quick button { display: flex; flex-direction: column; align-items: center; gap: 7px; font-size: 12px; font-weight: 700; color: var(--text); }
.mn-quick i { width: 62px; height: 62px; border-radius: 18px; display: grid; place-items: center; color: #fff;
  background: linear-gradient(160deg, color-mix(in srgb, var(--c) 82%, #fff 18%), var(--c)); box-shadow: 0 8px 20px color-mix(in srgb, var(--c) 35%, transparent), inset 0 1px 0 rgba(255,255,255,.25); }
.mn-quick button:active i { transform: scale(.92); }
.mn-sec { margin-bottom: 18px; }
.mn-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 14px 12px 16px; border-radius: 20px 20px 0 0;
  background: linear-gradient(135deg, var(--h1), var(--h2)); border: 1px solid var(--line); border-bottom: 0; }
.mn-head h3 { margin: 0 0 3px; font-size: 19px; font-weight: 800; letter-spacing: -.01em; }
.mn-head p { margin: 0; font-size: 12.5px; color: rgba(255,255,255,.72); line-height: 1.35; max-width: 210px; }
.mn-head svg { width: 84px; height: 56px; flex: none; }
.mn-nutrition { --h1: #3a1414; --h2: #1d1416; }
.mn-sport { --h1: #191c3d; --h2: #15161f; }
.mn-suivi { --h1: #12301f; --h2: #141a17; }
.mn-compte { --h1: #2a2b31; --h2: #18181c; }
.mn-list { background: var(--s1); border: 1px solid var(--line); border-radius: 0 0 20px 20px; overflow: hidden; }
.mn-row { width: 100%; display: flex; align-items: center; gap: 12px; padding: 11px 14px; text-align: left; color: var(--text); position: relative; }
.mn-row + .mn-row::before { content: ""; position: absolute; left: 58px; right: 0; top: 0; height: 1px; background: var(--line); }
.mn-row:active { background: var(--s2); }
.mn-row > i { width: 32px; height: 32px; border-radius: 9px; display: grid; place-items: center; color: #fff; flex: none;
  background: linear-gradient(160deg, color-mix(in srgb, var(--c) 80%, #fff 20%), var(--c)); }
.mn-row > span { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.mn-row b { font-size: 15px; font-weight: 600; }
.mn-row small { font-size: 12px; color: var(--muted); margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mn-row > svg:last-child { color: #55555e; flex: none; }
.mn-row.danger b { color: var(--red-hi, #ff3b3b); }
.mn-foot { text-align: center; font-size: 11.5px; color: var(--muted); margin: 4px 0 8px; }

/* ---------- v1.5.3 · Lieux : simple et rapide ---------- */
.pl-cats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 12px; }
.pl-cats button { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 2px 9px; border-radius: 16px; background: var(--s1); border: 1px solid var(--line); color: var(--text); font-size: 11.5px; font-weight: 700; line-height: 1.15; text-align: center; }
.pl-cats i { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; color: var(--c); background: color-mix(in srgb, var(--c) 16%, transparent); transition: .15s; }
.pl-cats button.on { border-color: var(--c); background: color-mix(in srgb, var(--c) 12%, var(--s1)); }
.pl-cats button.on i { background: var(--c); color: #fff; box-shadow: 0 6px 16px color-mix(in srgb, var(--c) 40%, transparent); }
.pl-cats button:active { transform: scale(.96); }
.pl-sheet .pl-map { height: 30vh; min-height: 200px; }
.pl-bar { display: flex; justify-content: space-between; align-items: center; font-size: 12.5px; color: var(--muted); margin: 0 2px 8px; }
.pl-bar span { display: inline-flex; gap: 5px; align-items: center; }
.pl-bar .link { font-size: 12.5px; font-weight: 700; color: var(--red-hi); }
.pl-count { font-size: 12px; color: var(--muted); margin: 2px 2px 8px; }
.pl-card2 { display: flex; gap: 12px; align-items: center; background: var(--s1); border: 1px solid var(--line); border-radius: 18px; padding: 10px; margin-bottom: 8px; cursor: pointer; }
.pl-card2:active { background: var(--s2); }
.pl-card2 b { display: block; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pl-ic { position: relative; width: 58px; height: 58px; border-radius: 15px; flex: none; display: grid; place-items: center; color: var(--c); background: color-mix(in srgb, var(--c) 15%, var(--s2)) center/cover no-repeat; }
.pl-ic i { position: absolute; top: -5px; left: -5px; min-width: 21px; height: 21px; border-radius: 11px; background: var(--c); color: #fff; font: 800 11.5px var(--num); display: grid; place-items: center; font-style: normal; border: 2px solid var(--bg); }
.pl-dist { display: flex; gap: 8px; align-items: center; font-size: 12.5px; color: var(--muted); margin-top: 2px; }
.pl-dist span { font-weight: 800; color: var(--text); }
.pl-sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 1px; }
.pl-go { flex: none; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 8px 10px; border-radius: 13px; background: var(--red); color: #fff; font-size: 11px; font-weight: 800; text-decoration: none; }
.pl-go:active { transform: scale(.95); }
.pl-pin2 { width: 30px; height: 36px; position: relative; filter: drop-shadow(0 3px 6px rgba(0,0,0,.55)); }
.pl-pin2::before { content: ""; position: absolute; left: 2px; top: 0; width: 26px; height: 26px; border-radius: 50% 50% 50% 4px; transform: rotate(-45deg); background: var(--c); border: 2px solid #fff; }
.pl-pin2 span { position: absolute; left: 0; top: 4px; width: 30px; text-align: center; color: #fff; font: 800 12px var(--num); }
.pl-credit { text-align: center; margin: 6px 0 4px; }
.pl-sheet .leaflet-container { background: #1a1a1d; font: inherit; }
.pl-sheet .leaflet-control-attribution { background: rgba(0,0,0,.55) !important; color: #aaa !important; font-size: 9px !important; }
.pl-sheet .leaflet-control-attribution a { color: #ccc !important; }
.bi-how { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.bi-how div { background: var(--s1); border: 1px solid var(--line); border-radius: 16px; padding: 10px; display: flex; flex-direction: column; gap: 4px; }
.bi-how i { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; color: #fff; background: var(--c); margin-bottom: 2px; }
.bi-how b { font-size: 13px; }
.bi-how span { font-size: 11.5px; color: var(--muted); line-height: 1.35; }
.ed-ph { position: relative; display: inline-block; flex: none; }
.ed-ph button { position: absolute; top: 4px; right: 4px; width: 24px; height: 24px; border-radius: 50%; background: rgba(0,0,0,.72); color: #fff; display: grid; place-items: center; }
.ed-delmeal { margin-top: 16px; color: var(--red-hi, #ff3b3b); border-color: color-mix(in srgb, var(--red) 40%, var(--line)); }
.a2-view { background: #fff; height: min(420px, 56vh); cursor: pointer; }
.a2-view svg { display: block; }
.a3-bar .small { display: inline-flex; gap: 6px; align-items: center; }
.mn-acct { display: flex; gap: 12px; align-items: center; padding: 14px 16px; background: var(--s1); border-left: 1px solid var(--line); border-right: 1px solid var(--line); border-top: 1px solid var(--line); }
.mn-acct .acct-av { flex: none; }
.mn-acct-t { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.mn-acct-t b { font-size: 16px; }
.mn-acct-t small { font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mn-acct.off { display: block; }
.mn-acct.off p { font-size: 13px; color: var(--muted); margin: 6px 0 12px; line-height: 1.4; }
.mn-acct-row { display: flex; justify-content: space-between; align-items: center; }
.mn-acct + .mn-list { border-radius: 0 0 20px 20px; }

/* ---------- Annonce & maintenance (pilotées depuis le dashboard) ---------- */
.oz-banner { display: flex; align-items: stretch; gap: 4px; margin: 0 0 12px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--s2); overflow: hidden; }
.oz-banner > a, .oz-banner .ozb-t { flex: 1; display: flex; align-items: center; gap: 10px; padding: 12px 4px 12px 14px; color: var(--text); text-decoration: none; font-size: 14px; line-height: 1.35; font-weight: 600; }
.oz-banner > a > svg:last-child { margin-left: auto; opacity: .6; flex: none; }
.oz-banner svg { flex: none; }
.oz-banner > button { background: none; border: 0; color: var(--muted); padding: 0 12px; cursor: pointer; }
.oz-banner.promo { background: linear-gradient(120deg, rgba(227, 18, 27, .28), rgba(122, 8, 13, .35)); border-color: rgba(227, 18, 27, .5); }
.oz-banner.promo svg:first-child { color: var(--red-hi); }
.oz-banner.warn { background: rgba(255, 154, 31, .12); border-color: rgba(255, 154, 31, .45); }
.oz-banner.warn svg:first-child { color: var(--f); }
.oz-banner.ok { background: rgba(43, 212, 107, .1); border-color: rgba(43, 212, 107, .4); }
.oz-banner.ok svg:first-child { color: var(--p); }
.maint { position: fixed; inset: 0; z-index: 9999; background: radial-gradient(120% 70% at 50% 0%, rgba(227, 18, 27, .22), transparent 60%), var(--bg); display: grid; place-items: center; padding: 24px; text-align: center; }
.maint-in { max-width: 340px; display: grid; justify-items: center; gap: 10px; }
.maint-in h2 { margin: 14px 0 0; font-size: 22px; }
.maint-in p { margin: 0 0 12px; color: var(--muted); line-height: 1.5; }

/* ---------- choix du scanner : macros / comparer ---------- */
.scan-pick { display: grid; gap: 10px; padding-bottom: 6px; }
.scan-pick button { display: flex; align-items: center; gap: 14px; width: 100%; text-align: left; padding: 14px; border-radius: 20px; border: 1px solid var(--line); background: var(--s2); color: var(--text); transition: transform .12s, background .12s; }
.scan-pick button:active { transform: scale(.98); background: var(--s3); }
.scan-pick button svg:first-child { flex: none; filter: drop-shadow(0 6px 14px rgba(0,0,0,.45)); }
.scan-pick span { flex: 1; min-width: 0; }
.scan-pick b { display: block; font-size: 17px; font-weight: 750; margin-bottom: 3px; }
.scan-pick small { display: block; color: var(--muted); font-size: 13px; line-height: 1.35; }
.scan-pick button > svg:last-child { color: var(--muted); flex: none; }
/* mode comparer : pas de photo d'assiette ni de repas en cours */
.scanner.cmp #shutter, .scanner.cmp .scan-bottom label, .scanner.cmp #scanDraft { visibility: hidden; }

/* ---------- « + » ajouter sans scanner ---------- */
.scan-pills { position: absolute; left: 0; right: 0; bottom: calc(var(--safe-b) + 122px); display: flex; justify-content: center; gap: 8px; z-index: 2; }
.scan-pills button { height: 36px; padding: 0 14px; border-radius: 99px; font-size: 12.5px; font-weight: 700; display: flex; align-items: center; gap: 7px; }
.scanner.cmp #scanPlus { display: none; }
.qa-text textarea { width: 100%; min-height: 110px; resize: vertical; font-size: 16px; line-height: 1.45; }
.qa-item { display: flex; align-items: center; gap: 12px; background: var(--s1); border: 1px solid var(--line); border-radius: var(--r-md); padding: 10px; margin-bottom: 8px; }
.qa-item .meal-info { flex: 1; min-width: 0; cursor: pointer; }
[data-sheet="quickadd"] .seg button { flex: 1; }

/* ---------- cloche & ajout rapide ---------- */
.topbar .tb-acts { display: flex; gap: 8px; flex: none; }
.bell-btn { position: relative; }
.bell-n { position: absolute; top: -5px; right: -5px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 99px; background: var(--red); color: #fff; font: 800 11px/19px var(--font); text-align: center; border: 2px solid var(--bg); }
.nt { position: relative; display: flex; gap: 12px; align-items: flex-start; padding: 12px; border-radius: var(--r-md); background: var(--s1); border: 1px solid var(--line); margin-bottom: 8px; }
.nt.unread { border-color: rgba(227, 18, 27, 0.4); background: linear-gradient(120deg, rgba(227, 18, 27, 0.1), transparent 60%), var(--s1); }
.nt-ic { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; flex: none; color: var(--k); background: color-mix(in srgb, var(--k) 16%, var(--s2)); }
.nt-t { flex: 1; min-width: 0; }
.nt-t b { display: block; font-size: 15px; }
.nt-t p { margin: 3px 0 4px; color: var(--text-2); font-size: 14px; line-height: 1.4; overflow-wrap: anywhere; }
.nt-t small { color: var(--muted); font-size: 12px; margin-right: 8px; }
.nt-t .pill { margin-top: 8px; }
.nt-done { display: inline-flex; align-items: center; gap: 4px; color: var(--p); font-size: 12px; font-weight: 700; }
.nt-dot { position: absolute; top: 14px; right: 12px; width: 9px; height: 9px; border-radius: 50%; background: var(--red-hi); }
.add-meal { display: inline-flex; align-items: center; gap: 5px; height: 34px; padding: 0 12px 0 9px; border-radius: 99px; border: 0; background: var(--red); color: #fff; font-weight: 750; font-size: 13.5px; box-shadow: 0 6px 18px -8px rgba(227, 18, 27, 0.8); }
.add-meal:active { transform: scale(0.96); }
.bi-tiers span { display: block; font-size: 9.5px; letter-spacing: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 0 2px; }

/* Biceps détourés (images) */
img.biceps { object-fit: contain; user-select: none; -webkit-user-drag: none; filter: drop-shadow(0 3px 6px rgba(0,0,0,.45)); }
img.biceps.lv5 { filter: drop-shadow(0 0 10px rgba(255,211,77,.55)) drop-shadow(0 3px 6px rgba(0,0,0,.45)); }
.bi-mini img.biceps { flex: none; }

/* =====================================================================
   V6 — écrans sport / programme (verre léger, rouge / noir, icônes)
   ===================================================================== */
:root { --nx-l1: rgba(255,255,255,.96); --nx-l2: rgba(235,235,245,.62); --nx-l3: rgba(235,235,245,.34); --nx-sep: rgba(255,255,255,.08); }
.nx-i { width: 1em; height: 1em; display: inline-block; vertical-align: -0.14em; flex: none; }
.nx-tile { display: inline-grid; place-items: center; flex: none; color: #fff; font-size: 22px; }
.nx-tile svg.exo-ic { display: block; }
.nx-glass { background: rgba(22,22,24,.62); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.08); box-shadow: 0 4px 16px rgba(0,0,0,.25); border-radius: 22px; color: var(--nx-l1); text-align: left; }
button.nx-glass { font: inherit; width: 100%; cursor: pointer; }
.sheet.nx { background: #0a0a0b; overflow: hidden; }
.sheet.nx::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(420px 320px at -10% -5%, rgba(227,18,27,.38), transparent 70%), radial-gradient(300px 260px at 110% 55%, rgba(196,16,26,.16), transparent 70%), radial-gradient(320px 300px at 0% 105%, rgba(138,10,16,.22), transparent 70%); border-radius: inherit; }
.sheet.nx > * { position: relative; }
.sheet.nx .sheet-h h2 { font-family: var(--font); text-transform: none; font-size: 17px; font-weight: 600; letter-spacing: -.01em; }
.sheet.nx .sheet-f { background: linear-gradient(transparent, rgba(10,10,11,.92) 30%); border-top: 0; align-items: center; }
.sheet.nx .icon-btn { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.1); }
.nx-chip { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border-radius: 99px; background: rgba(22,22,24,.62); border: 1px solid rgba(255,255,255,.1); color: var(--nx-l1); font-size: 13.5px; font-weight: 600; margin-right: 6px; white-space: nowrap; }
.nx-link { color: #ff6b6b; font-weight: 600; font-size: 13.5px; background: none; border: 0; display: inline-flex; align-items: center; gap: 5px; }
.nx-linkb { color: #ff8a8a; font-weight: 600; font-size: 12.5px; background: none; border: 0; padding: 0; text-decoration: underline; }
.nx-btn { flex: 1; height: 54px; border-radius: 99px; display: flex; align-items: center; justify-content: center; gap: 8px; font-weight: 600; font-size: 16.5px; border: 0; color: #fff; font-family: var(--font); width: 100%; white-space: nowrap; }
.nx-btn.pri { background: linear-gradient(180deg, #ff4d4d, #d9101a); box-shadow: 0 8px 22px rgba(227,18,27,.3); }
.nx-btn.sec { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.1); }
.nx-btn.ok { height: 48px; background: rgba(47,200,90,.08); border: 1px solid rgba(47,200,90,.45); color: #7ee29a; margin-bottom: 12px; }
.nx-btn.ok.on { background: rgba(47,200,90,.18); }
.nx-btn:disabled { opacity: .6; }
.nx-back { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; font-size: 20px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.1); color: #fff; flex: none; }
.nx-lt { padding: 2px 4px 14px; }
.nx-lt h1 { font-size: 30px; font-weight: 700; letter-spacing: -.03em; line-height: 1.1; margin: 0; }
.nx-lt p, .nx-sub { font-size: 14px; color: var(--nx-l2); margin: 4px 4px 14px; display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.nx-title-in { width: 100%; background: transparent; border: 0; border-bottom: 1px dashed transparent; font-size: 28px; font-weight: 700; letter-spacing: -.03em; color: #fff; padding: 0 4px; height: 42px; box-shadow: none !important; }
.nx-title-in:focus { border-bottom-color: rgba(255,255,255,.2); }
.nx-sec { font-size: 13px; font-weight: 600; color: var(--nx-l2); margin: 14px 4px 8px; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.nx-sec .muted { color: var(--nx-l3); font-weight: 500; }
.nx-note { display: flex; gap: 8px; align-items: flex-start; font-size: 12.5px; color: var(--nx-l2); padding: 10px 12px; border-radius: 14px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.06); margin: 8px 0 12px; line-height: 1.4; }
.nx-note .nx-i { font-size: 16px; color: #ff8a8a; margin-top: 1px; }
.nx-hint { font-size: 12.5px; color: var(--nx-l2); margin: 4px 4px 12px; line-height: 1.4; }
.nx-hint b { color: var(--nx-l1); font-weight: 600; }
.nx-addlink { display: flex; align-items: center; justify-content: center; gap: 7px; width: 100%; min-height: 44px; border-radius: 14px; border: 1px dashed rgba(255,255,255,.16); background: transparent; color: var(--nx-l2); font-size: 13.5px; font-weight: 600; margin: 8px 0; }
.nx-addlink.red { color: #ff8a8a; border-color: rgba(227,18,27,.45); }
.nx-addlink.sm { min-height: 36px; font-size: 12.5px; margin: 2px 0 8px; }
.nx-empty { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; padding: 26px 10px; border: 1px dashed rgba(255,255,255,.12); border-radius: 22px; margin: 4px 0 10px; }
.nx-empty b { font-size: 16px; } .nx-empty small { color: var(--nx-l2); font-size: 13px; }

/* onglet sport */
.nx-page { padding-bottom: 8px; }
.nx-today { padding: 16px; border-radius: 26px; margin-bottom: 12px; border-color: rgba(227,18,27,.45); background: linear-gradient(160deg, rgba(227,18,27,.22), rgba(20,20,22,.7) 60%); }
.nx-today.done { border-color: rgba(47,200,90,.4); background: linear-gradient(160deg, rgba(47,200,90,.14), rgba(20,20,22,.7) 60%); }
.nx-today.active { border-color: rgba(47,200,90,.4); background: linear-gradient(160deg, rgba(47,200,90,.16), rgba(20,20,22,.7) 60%); }
.nx-today.rest { border-color: rgba(255,255,255,.1); background: rgba(22,22,24,.62); }
.nx-k { font-size: 12px; font-weight: 700; color: #ff9a9a; display: flex; align-items: center; gap: 6px; letter-spacing: .02em; }
.nx-today h3 { font-size: 26px; font-weight: 700; letter-spacing: -.03em; margin: 6px 0 2px; }
.nx-today p { font-size: 13.5px; color: var(--nx-l2); margin: 0; display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.nx-minis { display: flex; gap: 6px; flex-wrap: wrap; margin: 12px 0 14px; }
.nx-minis.sm { margin: 8px 0 0; gap: 5px; }
.nx-ra-list { display: grid; gap: 6px; margin-top: 10px; }
.nx-ra-it { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 14px; }
.nx-ra-it small { display: block; font-size: 12px; color: var(--nx-l2); font-weight: 500; }
.nx-quick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 12px; }
.nx-quick button { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px 6px; font-size: 12.5px; font-weight: 600; text-align: center; border-radius: 20px; }
.nx-card { padding: 14px; margin-bottom: 12px; }
.nx-card-h { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; gap: 8px; }
.nx-card-h b { font-size: 15px; font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nx-card-h small { color: var(--nx-l3); font-size: 12px; }
.nx-wk { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.nx-wk button, .nx-cyc-strip button { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.06); border-radius: 12px; padding: 7px 2px; color: var(--nx-l3); display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 0; }
.nx-wk button span, .nx-cyc-strip button span { font-size: 11px; font-weight: 700; }
.nx-wk button b, .nx-cyc-strip button b { font-size: 9.5px; letter-spacing: -.01em; font-weight: 600; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nx-wk button.train, .nx-cyc-strip button.train { color: #fff; border-color: rgba(227,18,27,.4); background: rgba(227,18,27,.12); }
.nx-wk button.active, .nx-cyc-strip button.active { color: #7ee29a; border-color: rgba(47,200,90,.35); }
.nx-wk button.today { outline: 1.5px solid #e3121b; }
.nx-cyc-strip { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.nx-cyc-strip button { min-width: 74px; flex: 1 0 74px; padding: 8px 6px; }
.nx-cyc-strip button.next { outline: 1.5px solid #e3121b; }
.nx-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 4px; }
.nx-stats > div { border-radius: 18px; padding: 10px 4px 9px; text-align: center; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07); display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 0; }
.nx-stats .nx-i, .nx-stats .nx-g { font-size: 19px; }
.nx-stats b { font-size: 20px; font-weight: 600; line-height: 1.15; letter-spacing: -.02em; white-space: nowrap; }
.nx-stats span { font-size: 11px; color: var(--nx-l2); font-weight: 500; }
.nx-hist { display: flex; align-items: center; gap: 12px; padding: 10px 12px; margin-bottom: 8px; border-radius: 18px; }
.nx-hist-d { width: 44px; height: 44px; border-radius: 13px; background: rgba(227,18,27,.16); color: #ff8a8a; display: flex; flex-direction: column; align-items: center; justify-content: center; flex: none; }
.nx-hist-d b { font-size: 17px; color: #fff; line-height: 1; } .nx-hist-d span { font-size: 10.5px; font-weight: 700; text-transform: uppercase; }
.nx-hist-n { flex: 1; min-width: 0; } .nx-hist-n b { display: block; font-size: 15px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .nx-hist-n small { font-size: 12.5px; color: var(--nx-l2); }
.nx-hist-k, .nx-kc { text-align: right; flex: none; } .nx-hist-k b, .nx-kc b { font-size: 19px; font-weight: 600; display: block; } .nx-hist-k small, .nx-kc small { font-size: 10px; color: var(--nx-l3); font-weight: 700; }

/* séance */
.nx-pbar { height: 6px; border-radius: 3px; background: rgba(255,255,255,.1); overflow: hidden; margin: 2px 0 14px; }
.nx-pbar i { display: block; height: 100%; background: #e3121b; border-radius: 3px; transition: width .3s; }
.nx-exl { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: 18px; margin-bottom: 7px; }
.nx-exl-n { flex: 1; min-width: 0; display: block; }
.nx-exl-n b { font-size: 15px; font-weight: 600; display: block; line-height: 1.25; }
.nx-exl-n small { font-size: 12.5px; color: var(--nx-l2); display: flex; align-items: center; gap: 4px; flex-wrap: wrap; margin-top: 2px; }
.nx-exl.done { opacity: .55; }
.nx-exl.cur { border-color: #e3121b; background: linear-gradient(180deg, rgba(227,18,27,.16), rgba(227,18,27,.04)); }
.nx-exl.okb { border-color: rgba(47,200,90,.4); }
.nx-st { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; font-weight: 700; flex: none; border: 2px solid rgba(255,255,255,.18); }
.nx-st.ok { background: #2fc85a; border-color: #2fc85a; font-size: 14px; }
.nx-st.now { background: #e3121b; border-color: #e3121b; }
.nx-grp { border: 1.5px dashed rgba(227,18,27,.45); border-radius: 22px; padding: 8px 6px 2px; margin-bottom: 8px; }
.nx-grp-h { font-size: 12px; font-weight: 700; color: #ff8a8a; padding: 0 6px 6px; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.nx-grp-h > span:nth-child(3) { color: var(--nx-l3); font-weight: 500; }
.nx-grp .nx-exl, .nx-grp .nx-blk, .nx-grp .nx-open { background: rgba(255,255,255,.04); }
.nx-exhead { display: flex; align-items: center; gap: 12px; margin: 0 2px 12px; }
.nx-exhead b { font-size: 21px; font-weight: 700; letter-spacing: -.02em; display: block; line-height: 1.15; }
.nx-exhead small { font-size: 13px; color: var(--nx-l2); }
.nx-goal { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 0 10px; }
.nx-goal span { display: inline-flex; align-items: center; gap: 5px; height: 28px; padding: 0 10px; border-radius: 99px; font-size: 12.5px; font-weight: 600; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.09); }
.nx-lastt { font-size: 12.5px; color: var(--nx-l2); margin: 0 2px 10px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.nx-lastt b { color: var(--nx-l1); font-weight: 600; }
.nx-lastnote { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; padding: 10px 12px; border-radius: 14px; background: rgba(255,159,10,.08); border: 1px solid rgba(255,159,10,.25); margin: 0 0 10px; line-height: 1.4; }
.nx-selr { display: flex; align-items: center; justify-content: space-between; width: 100%; height: 46px; padding: 0 14px; border-radius: 14px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); margin-bottom: 10px; color: #fff; }
.nx-selr .l { font-size: 13.5px; color: var(--nx-l2); font-weight: 500; }
.nx-selr .v { display: flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 600; }
.nx-lh { display: grid; gap: 6px; font-size: 12px; color: var(--nx-l3); font-weight: 600; text-align: center; margin: 2px 0 5px; }
.nx-lh span { display: flex; align-items: center; justify-content: center; gap: 4px; }
.nx-lh-set { grid-template-columns: 30px 1fr 1fr 74px; padding: 0 8px; }
.nx-lh-ln { grid-template-columns: 22px 1fr 1fr 1fr 24px; }
.nx-lh-min { grid-template-columns: 1fr; }
.nx-setr { display: grid; grid-template-columns: 30px 1fr 1fr 74px; gap: 7px; align-items: center; padding: 7px 8px; border-radius: 16px; margin-bottom: 6px; background: rgba(22,22,24,.62); border: 1px solid rgba(255,255,255,.08); }
.nx-setr .no { font-size: 13px; font-weight: 600; color: var(--nx-l3); text-align: center; }
.nx-setr.done { opacity: .62; }
.nx-setr.cur { border: 1.5px solid #e3121b; background: rgba(227,18,27,.08); opacity: 1; }
.nx-setr.chg .nx-f input { color: #ffbd66; }
.nx-setr.chg { border-color: rgba(255,159,10,.55); }
.nx-f { display: flex; align-items: baseline; justify-content: center; gap: 2px; height: 46px; border-radius: 13px; background: rgba(255,255,255,.07); padding: 0 6px; min-width: 0; }
.nx-f input { width: 100%; min-width: 0; background: transparent; border: 0; box-shadow: none !important; color: #fff; text-align: center; font-size: 21px; font-weight: 600; height: 46px; padding: 0; font-family: var(--font); }
.nx-f input::placeholder { color: var(--nx-l3); font-size: 13px; font-weight: 500; }
.nx-f small { font-size: 11.5px; color: var(--nx-l2); flex: none; }
.nx-f.sm, .nx-f.sm input { height: 38px; font-size: 17px; }
.nx-fe { height: 46px; border-radius: 13px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; font-size: 10.5px; font-weight: 700; }
.nx-fe small { font-size: 10.5px; font-weight: 700; color: var(--nx-l3); }
.nx-feel-t { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; }
.nx-drop { display: grid; grid-template-columns: 30px 1fr 1fr 34px; gap: 7px; align-items: center; margin: -2px 0 6px 18px; }
.nx-drop .ar { text-align: center; }
.nx-droplink { display: block; margin: 0 0 8px 48px; font-size: 12.5px; font-weight: 600; color: #ffbd66; background: none; border: 0; }
.nx-x { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.07); border: 0; color: var(--nx-l2); font-size: 13px; flex: none; }
.nx-row2 { display: flex; gap: 8px; margin: 2px 0 4px; }
.nx-mini { flex: 1; height: 38px; border-radius: 12px; display: flex; align-items: center; justify-content: center; gap: 6px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08); color: var(--nx-l2); font-size: 13px; font-weight: 600; }
.nx-feelrow { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; margin: 0 0 10px; }
.nx-feelrow button { min-height: 76px; border-radius: 15px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; font-size: 11.5px; font-weight: 600; color: var(--nx-l2); background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); padding: 6px 2px; text-align: center; }
.nx-feelrow button small { font-size: 9.5px; font-weight: 500; color: var(--nx-l3); line-height: 1.1; }
.nx-feelrow button.on { color: #fff; border-color: var(--c); background: color-mix(in srgb, var(--c) 18%, transparent); }
.nx-note-in { display: flex; gap: 10px; align-items: flex-start; padding: 11px 13px; border-radius: 16px; background: rgba(22,22,24,.62); border: 1px solid rgba(255,159,10,.3); margin: 8px 0; }
.nx-note-in .nx-i { font-size: 19px; margin-top: 2px; }
.nx-note-in textarea { flex: 1; background: transparent; border: 0; box-shadow: none !important; color: #fff; font-size: 14px; resize: none; padding: 0; min-height: 40px; font-family: var(--font); }
.nx-minrow { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 10px 0 16px; }
.nx-in.big { width: 110px; height: 70px; font-size: 40px; font-weight: 700; text-align: center; border-radius: 20px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); color: #fff; }
.nx-unit { font-size: 15px; color: var(--nx-l2); font-weight: 600; margin-left: -6px; }
.nx-stp { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.1); border: 0; color: #fff; font-size: 16px; }
.nx-stp.red { background: #e3121b; box-shadow: 0 4px 12px rgba(227,18,27,.35); }
.nx-dur { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 18px; margin-top: 8px; }
.nx-dur b { font-size: 14.5px; display: block; } .nx-dur small { font-size: 12.5px; color: var(--nx-l2); }
.nx-pill { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 600; padding: 4px 9px; border-radius: 99px; flex: none; white-space: nowrap; }
.nx-pill.green { color: #7ee29a; background: rgba(47,200,90,.16); }
.nx-pill.orange { color: #ffbd66; background: rgba(255,159,10,.16); }
.nx-pill.grey { color: var(--nx-l2); background: rgba(255,255,255,.08); }
.nx-tag { display: inline-flex; align-items: center; gap: 3px; font-size: 10.5px; font-weight: 600; padding: 2px 7px; border-radius: 99px; vertical-align: 2px; margin-left: 4px; }
.nx-tag.orange { color: #ffbd66; background: rgba(255,159,10,.16); }

/* pause */
.nx-rest { position: fixed; inset: 0; z-index: 90; background: rgba(5,5,6,.9); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); display: grid; place-items: center; opacity: 0; transition: opacity .25s; padding: 20px; }
.nx-rest.in { opacity: 1; }
.nx-rest::before { content: ""; position: absolute; inset: 0; background: radial-gradient(420px 320px at 50% 20%, rgba(227,18,27,.28), transparent 70%); pointer-events: none; }
.nx-rest-c { position: relative; width: 100%; max-width: 380px; text-align: center; }
.nx-rest h2 { font-size: 26px; font-weight: 700; margin: 0 0 6px; font-family: var(--font); }
.nx-ring { width: 230px; height: 230px; margin: 10px auto 10px; position: relative; }
.nx-ring svg { display: block; }
.nx-ring .c { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.nx-ring .c b { font-size: 58px; font-weight: 600; letter-spacing: -.03em; font-family: var(--font); }
.nx-ring .c small { font-size: 13px; color: var(--nx-l2); }
.nx-pills { display: flex; gap: 10px; justify-content: center; margin-bottom: 18px; }
.nx-pills button { height: 44px; padding: 0 16px; border-radius: 99px; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 15px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); color: #fff; }
.nx-next { display: flex; align-items: center; gap: 12px; padding: 12px 14px; text-align: left; }
.nx-next small { display: block; font-size: 12px; color: var(--nx-l2); } .nx-next b { font-size: 15px; }

/* fin / historique */
.nx-hero { padding: 16px 18px; margin-bottom: 12px; border-radius: 26px; }
.nx-hero .big { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.nx-hero .big .nx-i { font-size: 34px; color: #ff6a2b; align-self: center; filter: drop-shadow(0 0 10px rgba(255,90,40,.5)); }
.nx-hero .big b { font-size: 54px; font-weight: 600; line-height: 1; letter-spacing: -.03em; }
.nx-hero .big span { font-size: 16px; font-weight: 600; color: var(--nx-l2); }
.nx-hero .sub { font-size: 13px; color: var(--nx-l2); margin-top: 6px; }
.nx-bar { display: flex; height: 8px; gap: 3px; margin: 12px 0 9px; }
.nx-bar i { border-radius: 4px; }
.nx-lg { display: flex; flex-wrap: wrap; gap: 3px 12px; font-size: 11.5px; color: var(--nx-l2); }
.nx-lg i { display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 5px; vertical-align: 1px; }
.nx-xp { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 14px; font-weight: 600; color: #ffd34d; margin: 4px 0 6px; }
.nx-rec { display: flex; align-items: center; gap: 12px; padding: 11px 13px; border-radius: 18px; margin-bottom: 7px; }
.nx-rec b { font-size: 14.5px; font-weight: 600; display: block; } .nx-rec small { font-size: 12.5px; color: var(--nx-l2); }
.nx-grpl { border-radius: 22px; overflow: hidden; margin-bottom: 10px; }
.nx-sl { display: grid; grid-template-columns: 52px 1fr auto; gap: 8px; align-items: center; padding: 11px 14px; }
.nx-sl + .nx-sl { border-top: 1px solid var(--nx-sep); }
.nx-sl .no { font-size: 13px; font-weight: 600; color: var(--nx-l3); }
.nx-sl .m b { font-size: 17px; font-weight: 600; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.nx-sl .m small { font-size: 11.5px; color: var(--nx-l3); display: block; margin-top: 3px; }
.nx-sl .m small.drops { color: #ffbd66; }
.nx-sl .pb { display: flex; height: 5px; gap: 3px; margin-top: 7px; width: 100%; max-width: 180px; }
.nx-sl .pb i { border-radius: 3px; }
.nx-sl .v { text-align: right; } .nx-sl .v b { font-size: 20px; font-weight: 600; } .nx-sl .v small { display: block; font-size: 10px; color: var(--nx-l3); font-weight: 700; }

/* sélecteurs */
.nx-typ, .nx-opt { display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-radius: 18px; margin-bottom: 8px; }
.nx-typ b, .nx-opt b { display: block; font-size: 15.5px; font-weight: 600; letter-spacing: -.01em; }
.nx-typ small, .nx-opt small { font-size: 12.5px; color: var(--nx-l2); line-height: 1.35; display: block; }
.nx-typ > span:nth-child(2), .nx-opt > span:nth-child(2) { flex: 1; min-width: 0; }
.nx-ck { margin-left: auto; width: 26px; height: 26px; border-radius: 50%; border: 2px solid rgba(255,255,255,.18); display: grid; place-items: center; font-size: 13px; flex: none; }
.nx-typ.on, .nx-opt.on { border-color: #e3121b; background: linear-gradient(180deg, rgba(227,18,27,.16), rgba(227,18,27,.05)); }
.nx-typ.on .nx-ck, .nx-opt.on .nx-ck { background: #e3121b; border-color: #e3121b; }
.nx-alth { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 20px; margin-bottom: 4px; }
.nx-alth small { color: var(--nx-l2); font-size: 12px; display: block; } .nx-alth b { font-size: 16px; font-weight: 600; }
.nx-fchips { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.nx-fchips button { height: 32px; padding: 0 12px; border-radius: 99px; font-size: 12.5px; font-weight: 600; color: var(--nx-l2); background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08); white-space: nowrap; }
.nx-fchips button.on { background: #e3121b; color: #fff; border-color: #e3121b; }
.nx-alt { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 18px; margin-bottom: 8px; }
.nx-alt .rk { width: 18px; font-size: 13px; font-weight: 700; color: var(--nx-l3); text-align: center; flex: none; }
.nx-alt .n { flex: 1; min-width: 0; } .nx-alt .n b { font-size: 14.5px; font-weight: 600; display: block; line-height: 1.25; } .nx-alt .n small { font-size: 11.5px; color: var(--nx-l2); display: block; margin-top: 2px; }
.nx-alt .m { width: 56px; text-align: right; flex: none; } .nx-alt .m b { font-size: 16px; font-weight: 600; display: block; }
.nx-alt .m i { display: block; height: 5px; border-radius: 3px; background: rgba(255,255,255,.1); margin-top: 4px; overflow: hidden; }
.nx-alt .m i em { display: block; height: 100%; background: linear-gradient(90deg, #ff9f0a, #32d74b); }
.nx-alt.best { border-color: rgba(50,215,75,.45); background: linear-gradient(180deg, rgba(50,215,75,.1), rgba(50,215,75,.03)); }
.nx-badge { display: inline-flex; font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 99px; background: rgba(50,215,75,.18); color: #7ee29a; margin-left: 6px; vertical-align: 2px; }
.nx-bgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.nx-bgrid > button { border-radius: 22px; padding: 14px; min-height: 120px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.nx-bgrid b { font-size: 15px; font-weight: 600; } .nx-bgrid small { font-size: 12px; color: var(--nx-l2); line-height: 1.3; }

/* programme */
.nx-dayc { display: flex; align-items: center; gap: 12px; padding: 12px 14px; margin-bottom: 8px; border-radius: 20px; }
.nx-d { min-width: 42px; height: 42px; padding: 0 4px; border-radius: 12px; background: rgba(227,18,27,.16); color: #ff8a8a; font-size: 13px; font-weight: 700; display: grid; place-items: center; flex: none; }
.nx-dn { flex: 1; min-width: 0; display: block; } .nx-dn b { font-size: 15.5px; font-weight: 600; display: block; } .nx-dn small { font-size: 12.5px; color: var(--nx-l2); display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.nx-dayc.rest { background: transparent; border: 1px dashed rgba(255,255,255,.12); box-shadow: none; padding: 9px 14px; }
.nx-dayc.rest .nx-d { background: rgba(255,255,255,.05); color: var(--nx-l3); }
.nx-dayc.rest small { flex: 1; color: var(--nx-l2); font-size: 13px; }
.nx-plus { color: #ff8a8a; font-size: 13px; font-weight: 600; }
.nx-dayc.active { border-color: rgba(47,200,90,.35); }
.nx-dayc.active .nx-d { background: rgba(47,200,90,.16); color: #7ee29a; }
.nx-dayc.next { border-color: #e3121b; background: linear-gradient(180deg, rgba(227,18,27,.18), rgba(227,18,27,.05)); }
.nx-nexttag { font-size: 10.5px; font-weight: 700; color: #fff; background: #e3121b; border-radius: 99px; padding: 3px 8px; flex: none; }
.nx-loop { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 12.5px; color: var(--nx-l2); margin: 6px 0 4px; }
.nx-cal { padding: 12px; border-radius: 22px; margin-bottom: 6px; }
.nx-cal .mh { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; font-size: 15px; text-transform: capitalize; }
.nx-cal .mh button { background: none; border: 0; color: var(--nx-l2); width: 34px; height: 34px; font-size: 15px; }
.nx-cal .g { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; text-align: center; }
.nx-cal .wd { font-size: 10.5px; color: var(--nx-l3); font-weight: 600; }
.nx-cal .c { height: 42px; border-radius: 10px; font-size: 13px; font-weight: 500; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; color: var(--nx-l2); background: none; border: 0; }
.nx-cal .c i { width: 20px; height: 4px; border-radius: 2px; }
.nx-cal .c.has { color: #fff; background: rgba(255,255,255,.05); }
.nx-cal .c.today { outline: 1.5px solid #e3121b; color: #fff; }
.nx-cal .c.sel { background: #e3121b; color: #fff; }
.nx-mbar { display: grid; grid-template-columns: 84px 1fr 30px; gap: 8px; align-items: center; font-size: 12.5px; margin-bottom: 7px; }
.nx-mbar span { color: var(--nx-l2); } .nx-mbar div { height: 8px; border-radius: 4px; background: rgba(255,255,255,.08); overflow: hidden; } .nx-mbar div i { display: block; height: 100%; border-radius: 4px; } .nx-mbar b { text-align: right; font-weight: 600; }
.nx-wkstrip { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; margin-bottom: 12px; }
.nx-wkstrip button { border-radius: 14px; padding: 7px 0 6px; font-size: 12px; font-weight: 600; color: var(--nx-l2); text-align: center; }
.nx-wkstrip button i { display: block; width: 6px; height: 6px; border-radius: 50%; margin: 4px auto 0; background: rgba(255,255,255,.12); }
.nx-wkstrip button.on { color: #fff; } .nx-wkstrip button.on i { background: #e3121b; } .nx-wkstrip button.act i { background: #2fc85a; }
.nx-wkstrip button.sel { background: #e3121b; border-color: #e3121b; color: #fff; } .nx-wkstrip button.sel i { background: #fff; }
.nx-blk { display: flex; align-items: center; gap: 10px; padding: 10px 12px 10px 6px; margin-bottom: 8px; border-radius: 20px; touch-action: pan-y; }
.nx-blk-n { flex: 1; min-width: 0; text-align: left; background: none; border: 0; color: inherit; padding: 0; display: block; }
.nx-blk-n b { font-size: 15px; font-weight: 600; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nx-blk-n small { font-size: 12.5px; color: var(--nx-l2); display: flex; align-items: center; gap: 4px; flex-wrap: wrap; margin-top: 2px; }
.nx-hd { color: var(--nx-l3); font-size: 18px; width: 22px; height: 40px; display: grid; place-items: center; flex: none; touch-action: none; cursor: grab; }
.nx-open { padding: 12px; margin-bottom: 8px; border-radius: 22px; border-color: rgba(227,18,27,.45); }
.nx-open .top2 { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.dragging { opacity: .9; z-index: 5; position: relative; box-shadow: 0 12px 30px rgba(0,0,0,.5); }
.nx-ln { display: grid; grid-template-columns: 22px 1fr 1fr 1fr 24px; gap: 6px; align-items: center; margin-bottom: 6px; }
.nx-ln .no { font-size: 12px; color: var(--nx-l3); text-align: center; font-weight: 600; }
.nx-ln .nx-f { height: 42px; } .nx-ln .nx-f input { height: 42px; font-size: 19px; }
.nx-ln .nx-f input[data-lf="rest"] { font-size: 16px; }
.nx-ln .nx-f input[data-lf="rest"]::placeholder { font-size: 11.5px; }
.nx-ln .nx-x { width: 24px; height: 24px; font-size: 11px; }
.nx-acts3 { display: flex; gap: 6px; margin-top: 4px; }
.nx-acts3 button { flex: 1; height: 38px; border-radius: 12px; display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 12.5px; font-weight: 600; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.08); color: #fff; }
.nx-acts3 button .nx-i { font-size: 16px; }
.nx-acts3 button.alt { background: rgba(227,18,27,.16); border-color: rgba(227,18,27,.45); color: #ffb3b6; }
.nx-inl { width: 46px; height: 26px; border-radius: 8px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.1); color: #fff; text-align: center; font-size: 13px; font-weight: 600; padding: 0 4px; }
.nx-rk2 { padding: 14px; border-radius: 22px; margin-bottom: 10px; display: block; }
.nx-rk2 .h { display: flex; align-items: center; gap: 12px; width: 100%; background: none; border: 0; color: inherit; text-align: left; padding: 0; }
.nx-rk2 .h > span:nth-child(2) { flex: 1; } .nx-rk2 .h b { display: block; font-size: 16px; font-weight: 600; } .nx-rk2 .h small { font-size: 12.5px; color: var(--nx-l2); }
.nx-rk2.on { border-color: #e3121b; background: linear-gradient(180deg, rgba(227,18,27,.14), rgba(227,18,27,.04)); }
.nx-rk2.green.on { border-color: rgba(47,200,90,.6); background: linear-gradient(180deg, rgba(47,200,90,.12), rgba(47,200,90,.03)); }
.nx-rk2.on .nx-ck { background: #e3121b; border-color: #e3121b; } .nx-rk2.green.on .nx-ck { background: #2fc85a; border-color: #2fc85a; }
.nx-ra { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border-radius: 14px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.07); margin-top: 8px; color: inherit; text-align: left; }
.nx-ra > span:nth-child(2) { flex: 1; min-width: 0; } .nx-ra b { font-size: 14px; font-weight: 600; display: block; } .nx-ra small { font-size: 12px; color: var(--nx-l2); }
.nx-sw { width: 44px; height: 26px; border-radius: 99px; background: rgba(120,120,128,.32); position: relative; flex: none; transition: background .2s; }
.nx-sw::after { content: ""; position: absolute; top: 2px; left: 2px; width: 22px; height: 22px; border-radius: 50%; background: #fff; transition: left .2s; }
.nx-sw.on { background: #2fc85a; } .nx-sw.on::after { left: 20px; }
/* programme IA */
.nx-wz { display: flex; align-items: center; gap: 10px; margin: 0 2px 6px; font-size: 12.5px; color: var(--nx-l2); font-weight: 600; white-space: nowrap; }
.nx-wzprog { flex: 1; display: flex; gap: 5px; } .nx-wzprog i { flex: 1; height: 5px; border-radius: 3px; background: rgba(255,255,255,.12); } .nx-wzprog i.on { background: #e3121b; }
.nx-q { font-size: 28px; font-weight: 700; letter-spacing: -.03em; line-height: 1.12; margin: 10px 2px 6px; }
.nx-s { font-size: 14px; color: var(--nx-l2); margin: 0 2px 18px; }
.nx-bigs { display: flex; gap: 8px; margin-bottom: 20px; }
.nx-bigs button { flex: 1; height: 74px; border-radius: 20px; font-size: 28px; font-weight: 600; text-align: center; display: grid; place-items: center; }
.nx-bigs.sm button { height: 50px; font-size: 16px; border-radius: 14px; }
.nx-bigs button.on { background: #e3121b; border-color: #e3121b; box-shadow: 0 8px 22px rgba(227,18,27,.35); }
.nx-wdays { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; margin-bottom: 10px; }
.nx-wdays button { height: 48px; border-radius: 14px; font-size: 14px; font-weight: 600; color: var(--nx-l2); text-align: center; display: grid; place-items: center; }
.nx-wdays button.on { background: rgba(227,18,27,.2); border-color: rgba(227,18,27,.6); color: #fff; }
.nx-tchips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.nx-tchips button { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 14px; border-radius: 99px; font-size: 14px; font-weight: 600; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); color: #fff; }
.nx-tchips button .nx-i { font-size: 17px; }
.nx-tchips button.on { background: rgba(227,18,27,.18); border-color: rgba(227,18,27,.6); }
.nx-ta { width: 100%; border-radius: 16px; background: rgba(22,22,24,.62); border: 1px solid rgba(255,255,255,.1); color: #fff; padding: 14px; font-size: 15px; resize: none; }
.nx-wzfoot { display: flex; gap: 10px; width: 100%; align-items: center; }
/* barre d'onglets : pas de fond gris iOS sous les icônes */
.tabbar .tab, .tabbar .tab-scan { -webkit-appearance: none; appearance: none; border: 0; -webkit-tap-highlight-color: transparent; outline: none; }
.tabbar .tab { background: transparent !important; box-shadow: none; }
.tabbar .tab:focus, .tabbar .tab:focus-visible { outline: none; background: transparent; }
.tabbar .tab-scan { box-shadow: 0 10px 30px -6px var(--red-glow), inset 0 1px 0 rgba(255,255,255,0.25); }
@media (max-width: 420px) { .topbar .pill span { display: none; } .topbar .pill { padding-left: 10px; padding-right: 10px; } }
/* badge fidélité : biceps au-dessus, texte centré dessous → jamais coupé */
.bi-mini { flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 8px 8px 7px; width: 100%; }
.bi-mini small { overflow: visible; text-overflow: clip; letter-spacing: .03em; }
@media (max-width: 360px) { .bi-mini { padding: 8px 3px 7px; } .bi-mini b { font-size: 18px; } .bi-mini small { font-size: 9px; letter-spacing: .02em; } }
.nx-title-in { font-size: clamp(22px, 7vw, 28px); text-overflow: ellipsis; }
.nx-lt h1 { font-size: clamp(24px, 7.6vw, 30px); }
.nx-q { font-size: clamp(23px, 7.2vw, 28px); }
.nx-rk2.nx-train { border-color: rgba(227,18,27,.55); background: linear-gradient(160deg, rgba(227,18,27,.24), rgba(20,20,22,.7) 65%); padding: 16px 14px; width: 100%; text-align: left; color: inherit; }
.nx-rk2.nx-train .h b { font-size: 18px; }
button.nx-rk2 { width: 100%; text-align: left; color: inherit; font: inherit; }

/* =====================================================================
   V10 — onglets Suivi et Profil (catégories, icônes de couleur)
   ===================================================================== */
.pf-tl { display: inline-grid; place-items: center; border-radius: 28%; color: #fff; flex: none; background: linear-gradient(160deg, color-mix(in srgb, var(--c) 100%, #fff 18%), color-mix(in srgb, var(--c) 78%, #000)); box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 4px 10px color-mix(in srgb, var(--c) 28%, transparent); }
.pf-tl .nx-i { width: 1em; height: 1em; }
.sv-seg { display: flex; padding: 4px; border-radius: 16px; background: rgba(22,22,24,.7); border: 1px solid rgba(255,255,255,.08); margin-bottom: 10px; gap: 2px; }
.sv-seg button { flex: 1; height: 38px; border-radius: 12px; display: flex; align-items: center; justify-content: center; gap: 7px; font-size: 14px; font-weight: 600; color: rgba(235,235,245,.6); font-family: var(--font); min-width: 0; }
.sv-seg button .nx-i { font-size: 17px; }
.sv-seg button.on { background: #e3121b; color: #fff; box-shadow: 0 4px 14px rgba(227,18,27,.35); }
.sv-chips { display: flex; gap: 6px; margin-bottom: 14px; }
.sv-chips button { flex: 1; height: 34px; border-radius: 99px; font-size: 13px; font-weight: 600; color: rgba(235,235,245,.6); background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.07); }
.sv-chips button.on { background: #fff; color: #000; border-color: #fff; }
.sv-kgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 4px; }
.sv-k { border-radius: 22px; padding: 13px; background: linear-gradient(160deg, color-mix(in srgb, var(--c) 16%, transparent), rgba(22,22,24,.7) 70%); border: 1px solid color-mix(in srgb, var(--c) 28%, transparent); display: flex; flex-direction: column; align-items: flex-start; gap: 3px; min-width: 0; text-align: left; color: #fff; font-family: var(--font); }
.sv-k .pf-tl { margin-bottom: 6px; }
.sv-k b { font-size: 26px; font-weight: 700; letter-spacing: -.03em; line-height: 1.05; white-space: nowrap; }
.sv-k b small { font-size: 14px; font-weight: 600; color: rgba(235,235,245,.6); }
.sv-k span { font-size: 12.5px; color: rgba(235,235,245,.62); font-weight: 500; }
.sv-k em { font-style: normal; font-size: 11.5px; font-weight: 600; color: rgba(235,235,245,.5); margin-top: 3px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sv-k em.up { color: #32d74b; }
.sv-sec { display: flex; align-items: center; gap: 9px; margin: 20px 2px 9px; }
.sv-sd { width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; font-size: 16px; color: var(--c); background: color-mix(in srgb, var(--c) 18%, transparent); flex: none; }
.sv-sec b { font-size: 18px; font-weight: 700; letter-spacing: -.02em; flex: 1; font-family: var(--font); }
.sv-sr { font-size: 12.5px; color: rgba(235,235,245,.45); font-weight: 500; }
.sv-card { border-radius: 22px; padding: 14px; background: rgba(22,22,24,.66); border: 1px solid rgba(255,255,255,.08); margin-bottom: 10px; }
.sv-ch { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 8px; gap: 8px; }
.sv-ch > span:first-child { min-width: 0; }
.sv-ch small { display: block; font-size: 12.5px; color: rgba(235,235,245,.55); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sv-ch b { font-size: 22px; font-weight: 700; letter-spacing: -.02em; }
.sv-pill { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 600; padding: 5px 9px; border-radius: 99px; white-space: nowrap; flex: none; }
.sv-pill.green { color: #7ee29a; background: rgba(50,215,75,.15); }
.sv-pill.orange { color: #ffbd66; background: rgba(255,159,10,.16); }
.sv-pill.grey { color: rgba(235,235,245,.6); background: rgba(255,255,255,.08); }
.sv-muted { font-size: 12px; color: rgba(235,235,245,.45); white-space: nowrap; }
.sv-hint { font-size: 12px; color: rgba(235,235,245,.5); margin: 8px 0 0; line-height: 1.4; display: flex; gap: 6px; align-items: center; }
.sv-foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.sv-foot .sv-hint { margin: 0; }
.sv-link { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: #7ee29a; background: none; border: 0; padding: 0; }
.sv-link.sm { color: #64b5ff; font-size: 12.5px; }
.sv-add { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: rgba(227,18,27,.18); color: #ff6b6b; font-size: 15px; flex: none; border: 0; cursor: pointer; }
.sv-rowcard { padding: 12px; }
.sv-rh { display: flex; align-items: center; gap: 12px; }
.sv-rt { flex: 1; min-width: 0; }
.sv-rt b { display: block; font-size: 15px; font-weight: 600; letter-spacing: -.01em; }
.sv-rt small { display: block; font-size: 12px; color: rgba(235,235,245,.5); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sv-meas { margin-top: 12px; }
.sv-rowcard .pg-compare, .sv-rowcard .pg-photos { margin-top: 12px; }
.sv-tri { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.sv-tri div { border-radius: 16px; background: rgba(255,255,255,.04); padding: 10px 4px; text-align: center; min-width: 0; }
.sv-tri b { font-size: 20px; font-weight: 700; display: block; letter-spacing: -.02em; white-space: nowrap; }
.sv-tri small { font-size: 11px; color: rgba(235,235,245,.5); }
.sv-mchips { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: 0 -14px 6px; padding: 0 14px; }
.sv-mchips::-webkit-scrollbar { display: none; }
.sv-mchips button { height: 30px; padding: 0 12px; border-radius: 99px; font-size: 12.5px; font-weight: 600; background: rgba(255,255,255,.06); color: rgba(235,235,245,.7); white-space: nowrap; flex: none; border: 0; }
.sv-mchips button.on { background: #ff453a; color: #fff; }
.sv-gains { display: grid; gap: 1px; margin-top: 12px; border-radius: 14px; overflow: hidden; }
.sv-gains div { display: grid; grid-template-columns: 1fr auto 62px; gap: 8px; align-items: center; padding: 9px 11px; background: rgba(255,255,255,.04); font-size: 13px; }
.sv-gains span { color: rgba(235,235,245,.75); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sv-gains em { font-style: normal; font-weight: 600; text-align: right; color: rgba(235,235,245,.5); font-size: 12px; }
.sv-gains em.up { color: #32d74b; } .sv-gains em.down { color: #ff9f0a; }
.sv-mb { display: grid; grid-template-columns: 84px 1fr 26px; gap: 8px; align-items: center; font-size: 13px; margin-bottom: 9px; }
.sv-mb span { color: rgba(235,235,245,.72); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sv-mb div { height: 10px; border-radius: 5px; background: rgba(255,255,255,.07); position: relative; overflow: hidden; }
.sv-mb div i { position: absolute; top: 0; bottom: 0; left: 0; border-radius: 5px; }
.sv-mb div i.z { background: rgba(50,215,75,.16); border-radius: 0; }
.sv-mb b { text-align: right; font-weight: 700; }
.sv-more { display: flex; justify-content: center; align-items: center; gap: 5px; width: 100%; font-size: 12.5px; font-weight: 600; color: rgba(235,235,245,.55); padding: 4px 0; background: none; border: 0; }
.sv-lbl { font-size: 12px; font-weight: 600; color: rgba(235,235,245,.5); margin: 12px 0 4px; }
.sv-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 7px; padding: 14px 8px; }
.sv-empty b { font-size: 15.5px; font-family: var(--font); }
.sv-empty small { font-size: 12.5px; color: rgba(235,235,245,.55); max-width: 290px; line-height: 1.45; }
.sv-conn { padding: 18px 14px; }
.sv-conn { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; }
.sv-conn b { font-size: 15.5px; } .sv-conn small { font-size: 12.5px; color: rgba(235,235,245,.55); max-width: 280px; line-height: 1.4; }
.sv-cicons { display: flex; gap: 8px; margin-bottom: 6px; }
.sv-btn { margin-top: 8px; height: 42px; padding: 0 18px; border-radius: 99px; background: rgba(10,132,255,.18); color: #64b5ff; font-weight: 600; font-size: 14px; display: inline-flex; align-items: center; gap: 7px; border: 0; }
.sv .chart { margin-top: 2px; }

/* Profil */
.pf-hero { border-radius: 26px; padding: 16px; background: linear-gradient(150deg, rgba(227,18,27,.25), rgba(22,22,24,.75) 60%); border: 1px solid rgba(227,18,27,.35); margin-bottom: 4px; }
.pf-hrow { display: flex; align-items: center; gap: 13px; }
.pf-av { width: 62px; height: 62px; border-radius: 50%; display: grid; place-items: center; font-size: 28px; font-weight: 700; color: #fff; background: linear-gradient(150deg, #ff5a5a, #b30d14); box-shadow: 0 0 0 3px rgba(255,255,255,.12), 0 8px 22px rgba(227,18,27,.35); flex: none; border: 0; font-family: var(--font); }
.pf-hn { flex: 1; min-width: 0; }
.pf-hn b { font-size: 22px; font-weight: 700; letter-spacing: -.02em; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pf-hn small { display: flex; align-items: center; gap: 5px; font-size: 13px; color: rgba(235,235,245,.7); font-weight: 500; margin-top: 3px; }
.pf-hn small img { width: 20px; height: 20px; flex: none; }
.pf-edit { width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.1); display: grid; place-items: center; font-size: 17px; color: #fff; flex: none; border: 0; }
.pf-hchips { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0; }
.pf-hchips span, .pf-fill { height: 30px; padding: 0 11px; border-radius: 99px; background: rgba(255,255,255,.07); display: inline-flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 600; color: #fff; border: 0; }
.pf-hchips span.ok { background: rgba(50,215,75,.15); color: #7ee29a; }
.pf-hchips span.warn { background: rgba(255,159,10,.15); color: #ffbd66; }
.pf-fill { background: rgba(227,18,27,.2); color: #ffb3b6; }
.pf-goal { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: 18px; background: rgba(0,0,0,.28); border: 1px solid rgba(255,255,255,.07); }
.pf-gt { flex: 1; min-width: 0; text-align: left; background: none; border: 0; color: #fff; padding: 0; font-family: var(--font); }
.pf-gt small { display: block; font-size: 11.5px; color: rgba(235,235,245,.55); }
.pf-gt b { font-size: 15px; font-weight: 600; }
.pf-rc { flex: none; width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.08); display: grid; place-items: center; font-size: 16px; color: #fff; border: 0; }
.pf-gt2 { font-size: 12.5px; font-weight: 600; color: rgba(235,235,245,.5); margin: 18px 6px 7px; font-family: var(--font); }
.pf-list { border-radius: 20px; background: rgba(22,22,24,.66); border: 1px solid rgba(255,255,255,.08); overflow: hidden; margin-bottom: 10px; }
.pf-row { display: flex; align-items: center; gap: 12px; padding: 10px 12px; min-height: 56px; width: 100%; text-align: left; background: none; border: 0; color: #fff; font-family: var(--font); cursor: pointer; }
.pf-row + .pf-row, .pf-qr + .pf-qr { border-top: 1px solid rgba(255,255,255,.06); }
.pf-row:active { background: rgba(255,255,255,.04); }
.pf-rt { flex: 1; min-width: 0; text-align: left; background: none; border: 0; color: inherit; padding: 0; font-family: var(--font); }
.pf-rt b { display: block; font-size: 15px; font-weight: 600; letter-spacing: -.01em; }
.pf-rt small { display: block; font-size: 12px; color: rgba(235,235,245,.5); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pf-rv { font-size: 14px; color: rgba(235,235,245,.55); white-space: nowrap; flex: none; max-width: 46%; overflow: hidden; text-overflow: ellipsis; }
.pf-sync { font-size: 12px; display: inline-flex; align-items: center; gap: 4px; }
.pf-row.danger b { color: #ff6961; }
.pf-row.off { opacity: .55; }
.pf-foot { text-align: center; font-size: 11.5px; color: rgba(235,235,245,.35); margin: 14px 0 6px; }
.pf-remt { flex: none; min-width: 58px; height: 38px; border-radius: 12px; background: rgba(255,214,10,.14); color: #ffd60a; display: grid; place-items: center; border: 0; font-family: var(--font); }
.pf-remt b { font-size: 15px; }
.pf-sheet .sheet-b { padding-top: 4px; }
.pf-form { display: flex; flex-direction: column; gap: 10px; }
.pf-f2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pf-f3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pf-in { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border-radius: 16px; background: rgba(22,22,24,.7); border: 1px solid rgba(255,255,255,.09); min-width: 0; }
.pf-in small { font-size: 11.5px; color: rgba(235,235,245,.55); font-weight: 600; }
.pf-in input { background: transparent; border: 0; box-shadow: none !important; color: #fff; font-size: 17px; font-weight: 600; padding: 0; height: 26px; width: 100%; min-width: 0; font-family: var(--font); }
.pf-in.num { align-items: center; text-align: center; border-color: color-mix(in srgb, var(--c) 30%, transparent); background: linear-gradient(170deg, color-mix(in srgb, var(--c) 12%, transparent), rgba(22,22,24,.7) 70%); }
.pf-in.num > .nx-i { font-size: 20px; }
.pf-in.num span { display: flex; align-items: baseline; justify-content: center; gap: 3px; width: 100%; }
.pf-in.num input { text-align: center; font-size: 22px; height: 30px; width: 70%; }
.pf-in.num em { font-style: normal; font-size: 12px; color: rgba(235,235,245,.5); }
.pf-in.num.wide { flex-direction: row; text-align: left; gap: 10px; }
.pf-in.num.wide span { justify-content: flex-end; width: auto; flex: 1; }
.pf-in.num.wide input { width: 90px; text-align: right; }
.pf-lbl { font-size: 13px; font-weight: 600; color: rgba(235,235,245,.75); margin: 6px 2px 0; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.pf-lbl span { font-weight: 500; color: rgba(235,235,245,.45); font-size: 12px; display: inline-flex; align-items: center; gap: 4px; }
.pf-qr { display: flex; align-items: center; gap: 11px; padding: 11px 12px; }
.pf-qr.off .pf-tl, .pf-qr.off .pf-qn, .pf-qr.off .pf-qv { opacity: .45; }
.pf-qn { flex: 1; min-width: 0; }
.pf-qn b { font-size: 15px; font-weight: 600; display: block; }
.pf-mode { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; font-size: 11px; font-weight: 600; padding: 3px 8px; border-radius: 99px; border: 0; white-space: nowrap; }
.pf-mode.max { color: #ffbd66; background: rgba(255,159,10,.14); }
.pf-mode.min { color: #7ee29a; background: rgba(50,215,75,.14); }
.pf-qv { width: 84px; height: 42px; border-radius: 12px; background: rgba(255,255,255,.07); display: flex; align-items: center; justify-content: center; gap: 2px; flex: none; padding: 0 6px; }
.pf-qv input { width: 100%; min-width: 0; background: transparent; border: 0; box-shadow: none !important; color: #fff; font-size: 18px; font-weight: 700; text-align: right; padding: 0; height: 40px; font-family: var(--font); }
.pf-qv small { font-size: 11px; color: rgba(235,235,245,.5); flex: none; }
.pf-split { display: flex; align-items: center; justify-content: center; gap: 7px; width: 100%; min-height: 44px; border-radius: 14px; border: 1px dashed rgba(255,159,10,.35); background: transparent; color: #ffbd66; font-size: 13px; font-weight: 600; margin: 4px 0 8px; padding: 0 10px; }
.pf-qa { border-radius: 18px; background: rgba(22,22,24,.66); border: 1px solid rgba(255,255,255,.08); margin-bottom: 8px; overflow: hidden; }
.pf-qa summary { display: flex; align-items: center; gap: 11px; padding: 11px 12px; cursor: pointer; list-style: none; }
.pf-qa summary::-webkit-details-marker { display: none; }
.pf-qa summary b { flex: 1; font-size: 14.5px; font-weight: 600; line-height: 1.3; }
.pf-qa[open] summary .nx-i:last-child { transform: rotate(180deg); }
.pf-qa p { margin: 0; padding: 0 14px 14px 55px; font-size: 13.5px; color: rgba(235,235,245,.7); line-height: 1.5; }
@media (max-width: 360px) { .sv-k b { font-size: 22px; } .sv-tri b { font-size: 17px; } .pf-qv { width: 72px; } .pf-in.num input { font-size: 19px; } }
@media (max-width: 380px) { .pf-qr .pf-tl { display: none; } .pf-qr { gap: 8px; } .pf-qv { width: 78px; } .pf-qv input { font-size: 16px; } }

/* =====================================================================
   V11 — même direction artistique sur toute l'app
   (verre léger rouge / noir, police Inter en minuscules, icônes de couleur)
   ===================================================================== */
:root { --glass: rgba(22,22,24,.66); --glass-b: rgba(255,255,255,.08); --s1: #141416; --s2: #1b1b1e; --line: rgba(255,255,255,.08); --line-2: rgba(255,255,255,.14); }
/* cartes */
.card, .meal, .sp-strip { background: var(--glass); border: 1px solid var(--glass-b); border-radius: 22px; }
.card .sp-strip { background: rgba(255,255,255,.04); }
.card-t, .section-t h3 { font-size: 15px; font-weight: 600; letter-spacing: -.01em; text-transform: none; color: var(--text); }
.section-t h3 { font-size: 18px; font-weight: 700; letter-spacing: -.02em; }
.type-h { text-transform: none; letter-spacing: 0; font-size: 14px; font-weight: 600; color: var(--text); gap: 9px; margin: 16px 2px 8px; }
.type-h b { font-family: var(--font); font-size: 13px; font-weight: 600; color: rgba(235,235,245,.5); letter-spacing: 0; }
.type-h::after { background: rgba(255,255,255,.06); }
.thumb { border-radius: 14px; background-color: rgba(255,255,255,.06); }
.thumb.mt { background: none; }
.sp-strip { padding: 12px 14px; }
.sp-strip > svg:first-child { width: 22px; height: 22px; }
/* titres de fenêtres et de pages internes */
.sheet-h h2, .cal-h h2, .ctx-h h3, .vd-label, .fr-rec-t, .bi-lvl, .sp-title, .busy-text { font-family: var(--font); text-transform: none; font-weight: 700; letter-spacing: -.02em; }
.sheet-h h2 { font-size: 22px; }
.cal-h h2 { font-size: 22px; text-transform: capitalize; }
.bi-lvl { font-size: 24px; }
.fr-rec-t, .vd-label { font-size: 19px; }
.busy-text { font-size: 20px; }
.wo-name { font-family: var(--font); text-transform: none; font-weight: 700; letter-spacing: -.02em; font-size: 24px; }
/* petites étiquettes : plus de majuscules */
.field label, .lbl, .stat span, .pg-kpis span, .mini-stats span, .subnutri span, .per100, .remain small, .ring-core .sub, .mbar-name .mode, .wlbl, .wk-day span, .set-head, .nut-all th, .bi-tiers span, .bi-mini small, .wo-date span, .conf, .src, .fr-add, .a3-new, .nx-hist-d span {
  text-transform: none; letter-spacing: 0;
}
.field label, .lbl { font-size: 12.5px; font-weight: 600; color: rgba(235,235,245,.6); }
.nf .tag { text-transform: none; letter-spacing: 0; font-size: 11px; font-weight: 600; }
.remain small { font-size: 12.5px; font-weight: 600; }
.ring-core .sub { font-size: 11.5px; font-weight: 600; }
.mini-stats span, .subnutri span, .pg-kpis span, .stat span { font-size: 11.5px; font-weight: 500; }
.mbar-name .mode { font-size: 11px; font-weight: 600; }
.bi-mini small { font-size: 11px; font-weight: 600; }
/* fenêtres : fond noir + halo rouge comme les nouveaux écrans */
.sheet { background: #0e0e10; border-top: 1px solid rgba(255,255,255,.08); border-radius: 30px 30px 0 0; overflow: hidden; }
.sheet::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(420px 300px at -10% -5%, rgba(227,18,27,.3), transparent 70%), radial-gradient(300px 260px at 110% 70%, rgba(196,16,26,.1), transparent 70%); border-radius: inherit; z-index: 0; }
.sheet > .sheet-grip, .sheet > .sheet-h, .sheet > .sheet-b, .sheet > .sheet-f { position: relative; z-index: 1; }
.sheet-grip { background: rgba(255,255,255,.2); }
.sheet-f { background: linear-gradient(transparent, rgba(14,14,16,.94) 30%); border-top: 0; }
.sheet .icon-btn, .icon-btn { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.1); }
.sheet-back { background: rgba(0,0,0,.6); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
/* boutons en pilule */
.btn { border-radius: 99px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.1); font-weight: 600; }
.btn.sm { border-radius: 99px; }
.btn.primary { background: linear-gradient(180deg, #ff4d4d, #d9101a); border: 0; box-shadow: 0 8px 22px rgba(227,18,27,.3); }
.btn.ghost { background: transparent; }
/* sélecteurs */
.seg { background: rgba(22,22,24,.7); border: 1px solid rgba(255,255,255,.08); border-radius: 16px; padding: 4px; gap: 2px; }
.seg button { border-radius: 12px; font-weight: 600; color: rgba(235,235,245,.6); }
.seg button.on { background: #e3121b; color: #fff; box-shadow: 0 4px 14px rgba(227,18,27,.3); }
.chips-scroll button, .chips-wrap button { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.08); font-weight: 600; color: rgba(235,235,245,.7); }
.pill { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.1); font-weight: 600; }
/* interrupteurs façon iPhone */
.switch span { background: rgba(120,120,128,.32); }
.switch input:checked + span { background: #32d74b; }
/* champs */
input, select, textarea { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.1); border-radius: 14px; }
.nf input { font-family: var(--font); font-weight: 700; font-size: 19px; }
.empty { border-radius: 22px; border-color: rgba(255,255,255,.12); }
/* fidélité & figures : vignettes d'icônes au lieu des emojis */
.bi-badges div { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; background: var(--glass); border: 1px solid var(--glass-b); border-radius: 18px; padding: 12px; }
.bi-badges div.ok { border-color: rgba(255,214,10,.4); background: linear-gradient(160deg, rgba(255,214,10,.1), var(--glass) 70%); }
.bi-badges b { margin-top: 0; }
.sk-card, .sk-mini { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.sk-hero { background: var(--glass); border: 1px solid var(--glass-b); border-radius: 20px; }
/* barre « 7 derniers jours » : couleur */
.wbar.ok { background: linear-gradient(180deg, #ffffff, #c9c9cf); }
.wbar.over { background: linear-gradient(180deg, #ff6b6b, #e3121b); }
.add-meal { font-weight: 600; }

/* =====================================================================
   V12 — écran Jour : interfaces au choix (Cartes par défaut)
   ===================================================================== */
.hj .hj-sec { margin: 18px 2px 9px; }
.hj .hj-sec .add-meal { margin-left: auto; }
.hj .hj-sec .sv-sr b { color: #fff; }
.hj-tag { font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 99px; background: rgba(255,255,255,.08); color: rgba(235,235,245,.6); white-space: nowrap; }
.hj-tag.obj { background: rgba(50,215,75,.14); color: #7ee29a; }
.hj em.ok, .hj small.ok { color: #32d74b !important; }
.hj em.bad, .hj small.bad { color: #ff6961 !important; }
.hj .over { color: #ff6961; }
/* badge fidélité : biceps bien centré dans son rond */
.hj-loy { display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 12px 0 3px; border-radius: 99px; background: rgba(0,0,0,.32); border: 1px solid rgba(255,255,255,.09); font-size: 12.5px; font-weight: 600; color: #fff; white-space: nowrap; font-family: var(--font); max-width: 100%; }
.hj-loy > span:last-child { overflow: hidden; text-overflow: ellipsis; }
.hj-bw { width: 28px; height: 28px; border-radius: 50%; background: radial-gradient(circle at 50% 42%, rgba(255,255,255,.28), rgba(255,255,255,.06) 75%); display: grid; place-items: center; flex: none; overflow: hidden; }
.hj-bw img.biceps { width: 86% !important; height: 86% !important; object-fit: contain; transform: translate(2%, -7%); filter: none; }
.hj-bw.big { width: 52px; height: 52px; }
.hj-loy.abs { position: absolute; right: 12px; top: 12px; z-index: 1; }
.hj-center { display: flex; justify-content: center; margin: 4px 0 10px; }
/* minis sucres / fibres / sel */
.hj-minis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 4px; }
.hj-minis span { display: grid; grid-template-columns: auto auto 1fr; align-items: baseline; column-gap: 4px; padding: 9px 10px; border-radius: 16px; background: var(--glass); border: 1px solid var(--glass-b); min-width: 0; }
.hj-minis .nx-i { grid-row: 1 / 3; align-self: center; font-size: 18px; margin-right: 3px; }
.hj-minis b { font-size: 17px; font-weight: 700; }
.hj-minis small { font-size: 11px; color: rgba(235,235,245,.5); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hj-minis em { grid-column: 2 / 4; font-style: normal; font-size: 11px; color: rgba(235,235,245,.55); }
.hj-minis span.bad { border-color: rgba(255,69,58,.5); } .hj-minis span.bad b { color: #ff6961; }
.hj-minis.in { margin-top: 4px; } .hj-minis.in span { background: rgba(0,0,0,.22); }
.hj-minis.col { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hj .nut-all, .hj details.allnut { margin-top: 8px; }
.hj-today > * { margin-bottom: 8px; }
.hj-today .card { margin-bottom: 8px; }
/* D · Cartes */
.hj-hero { border-radius: 26px; padding: 16px; background: linear-gradient(150deg, rgba(227,18,27,.25), rgba(22,22,24,.75) 62%); border: 1px solid rgba(227,18,27,.35); position: relative; margin-bottom: 4px; }
.hj-hrow { display: flex; align-items: center; gap: 16px; }
.hj-ring { position: relative; width: 146px; height: 146px; flex: none; }
.hj-ring > svg { width: 100%; height: 100%; display: block; }
.hj-rin { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.hj-rin b { font-size: 31px; font-weight: 700; letter-spacing: -.04em; line-height: 1; }
.hj-rin small { font-size: 11.5px; color: rgba(235,235,245,.6); margin-top: 4px; }
.hj-hr { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; flex: 1; }
.hj-hr > small { font-size: 13px; color: rgba(235,235,245,.6); }
.hj-rem { font-size: 40px; font-weight: 700; letter-spacing: -.04em; line-height: 1; }
.hj-rem span { font-size: 15px; font-weight: 600; color: rgba(235,235,245,.6); letter-spacing: 0; }
.hj-pc { font-size: 12px; font-weight: 600; color: #ff9a9a; background: rgba(227,18,27,.18); padding: 4px 9px; border-radius: 99px; margin: 2px 0 4px; }
.hj-mac { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; }
.hj-mt { border-radius: 20px; padding: 11px; background: linear-gradient(160deg, color-mix(in srgb, var(--c) 15%, transparent), rgba(22,22,24,.7) 70%); border: 1px solid color-mix(in srgb, var(--c) 28%, transparent); display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.hj-mt .t { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; gap: 4px; }
.hj-mt b { font-size: 24px; font-weight: 700; letter-spacing: -.03em; line-height: 1.1; white-space: nowrap; }
.hj-mt b small { font-size: 11.5px; color: rgba(235,235,245,.55); font-weight: 600; letter-spacing: 0; }
.hj-mt .nm { font-size: 12.5px; font-weight: 600; color: rgba(235,235,245,.75); }
.hj-mt i { display: block; height: 6px; border-radius: 3px; background: rgba(255,255,255,.08); overflow: hidden; margin-top: 5px; }
.hj-mt i u { display: block; height: 100%; background: var(--c); border-radius: 3px; }
.hj-mt em, .hj-me em, .hj-fk em { font-style: normal; font-size: 11.5px; color: rgba(235,235,245,.55); font-weight: 600; display: flex; align-items: center; gap: 3px; margin-top: 3px; white-space: nowrap; overflow: hidden; }
/* semaine */
.hj-week { padding: 14px 12px 10px; }
.hj-wb { position: relative; display: flex; align-items: flex-end; gap: 8px; }
.hj-wb button { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 4px; background: none; border: 0; padding: 0; color: inherit; min-width: 0; }
.hj-wb em { font-style: normal; font-size: 10.5px; font-weight: 700; color: rgba(235,235,245,.7); white-space: nowrap; }
.hj-wb i { width: 100%; max-width: 30px; border-radius: 8px 8px 3px 3px; background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.5)); }
.hj-wb button.over i { background: linear-gradient(180deg, #ff6b6b, #c80f17); }
.hj-wb button.cur i { background: linear-gradient(180deg, #ff6b6b, #e3121b); box-shadow: 0 0 0 2px #0e0e10, 0 0 0 3.5px #ff453a; }
.hj-wb small { height: 16px; line-height: 16px; font-size: 11px; font-weight: 700; color: rgba(235,235,245,.45); text-transform: uppercase; }
.hj-wb button.cur small { color: #ff6b6b; }
.hj-wb u { position: absolute; left: 0; right: 0; border-top: 1.5px dashed rgba(255,255,255,.26); text-decoration: none; }
.hj-wb u span { position: absolute; right: 0; top: -16px; font-size: 10px; font-weight: 700; color: rgba(235,235,245,.45); }
/* repas */
.hj-ty { display: flex; align-items: center; gap: 7px; font-size: 13.5px; font-weight: 600; margin: 12px 4px 7px; color: rgba(235,235,245,.85); }
.hj-ty i { width: 8px; height: 8px; border-radius: 50%; }
.hj-ty b { font-weight: 500; color: rgba(235,235,245,.45); font-size: 12.5px; }
.hj .meal { margin-bottom: 8px; }
.hj-empty { border: 1.5px dashed rgba(255,255,255,.12); border-radius: 22px; }
/* E · Jauge */
.hj-e { padding: 14px 16px 16px; }
.hj-gauge { position: relative; width: 100%; max-width: 300px; margin: 16px auto 0; }
.hj-gauge > svg { width: 100%; height: auto; display: block; }
.hj-gc { position: absolute; left: 0; right: 0; bottom: 4px; display: flex; flex-direction: column; align-items: center; }
.hj-gc b { font-size: 50px; font-weight: 700; letter-spacing: -.05em; line-height: 1; }
.hj-gc small { font-size: 13px; color: rgba(235,235,245,.6); margin-top: 2px; }
.hj-gfoot { display: flex; justify-content: center; align-items: center; gap: 14px; margin-top: 10px; }
.hj-gfoot span { display: flex; flex-direction: column; align-items: center; } .hj-gfoot b { font-size: 17px; font-weight: 700; } .hj-gfoot small { font-size: 11px; color: rgba(235,235,245,.5); }
.hj-gfoot i { width: 1px; height: 26px; background: rgba(255,255,255,.1); }
.hj-div { height: 1px; background: rgba(255,255,255,.08); margin: 14px -16px 12px; }
.hj-me { margin-bottom: 12px; }
.hj-me .l { display: flex; align-items: center; gap: 8px; } .hj-me .l > b { font-size: 14.5px; font-weight: 600; }
.hj-me .v { margin-left: auto; font-size: 13px; color: rgba(235,235,245,.55); white-space: nowrap; } .hj-me .v b { font-size: 19px; font-weight: 700; }
.hj-me i { display: block; height: 8px; border-radius: 4px; background: rgba(255,255,255,.08); overflow: hidden; margin-top: 8px; }
.hj-me i u { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, color-mix(in srgb, var(--c) 70%, #000), var(--c)); }
/* F · Tuiles */
.hj-fhd { margin: 2px 2px 8px; }
.hj-fhd .r1 { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.hj-fhd small { font-size: 13px; color: rgba(235,235,245,.55); text-transform: capitalize; }
.hj-fhd > b { display: block; font-size: 30px; font-weight: 700; letter-spacing: -.03em; margin-top: 4px; }
.hj-fhd > b span { font-size: 15px; color: rgba(235,235,245,.55); font-weight: 600; letter-spacing: 0; }
.hj-fbar { height: 8px; border-radius: 4px; background: rgba(255,255,255,.08); overflow: hidden; margin: 0 2px 12px; }
.hj-fbar i { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, #b30d14, #ff4d4d); }
.hj-fgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-bottom: 9px; }
.hj-fk { border-radius: 22px; padding: 12px; background: linear-gradient(160deg, color-mix(in srgb, var(--c) 16%, transparent), rgba(22,22,24,.7) 70%); border: 1px solid color-mix(in srgb, var(--c) 28%, transparent); display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hj-fk .ft { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 2px; }
.hj-fk .ft > svg { width: 54px; height: 54px; margin: -6px -6px 0 0; }
.hj-fk b { font-size: 26px; font-weight: 700; letter-spacing: -.03em; line-height: 1.1; white-space: nowrap; }
.hj-fk b small { font-size: 12.5px; color: rgba(235,235,245,.55); font-weight: 600; letter-spacing: 0; }
.hj-fk > span { font-size: 12.5px; color: rgba(235,235,245,.75); font-weight: 600; } .hj-fk > span i { font-style: normal; color: rgba(235,235,245,.45); font-weight: 500; }
/* A · Anneaux */
.hj-strip { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; margin-bottom: 4px; }
.hj-strip button { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 6px 0 7px; border-radius: 16px; background: none; border: 0; color: inherit; }
.hj-strip small { font-size: 11px; font-weight: 600; color: rgba(235,235,245,.45); text-transform: uppercase; }
.hj-strip button > svg { width: 30px; height: 30px; }
.hj-strip b { font-size: 13px; font-weight: 600; color: rgba(235,235,245,.7); }
.hj-strip button.on { background: linear-gradient(180deg, #ff3b3b, #c80f17); box-shadow: 0 6px 16px rgba(227,18,27,.35); }
.hj-strip button.on small, .hj-strip button.on b { color: #fff; }
.hj-rings { position: relative; width: 230px; height: 230px; margin: 6px auto 8px; }
.hj-rings > svg { width: 100%; height: 100%; }
.hj-rings .c { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.hj-rings .c b { font-size: 34px; font-weight: 700; letter-spacing: -.04em; line-height: 1; } .hj-rings .c small { font-size: 10.5px; color: rgba(235,235,245,.6); margin-top: 3px; }
.hj-leg { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-bottom: 8px; }
.hj-leg div { text-align: center; display: flex; flex-direction: column; align-items: center; min-width: 0; }
.hj-leg i { width: 8px; height: 8px; border-radius: 50%; margin-bottom: 4px; }
.hj-leg b { font-size: 17px; font-weight: 700; display: flex; align-items: center; }
.hj-leg small { font-size: 10.5px; color: rgba(235,235,245,.5); white-space: nowrap; }
/* B · Journal */
.hj-b > small { font-size: 14px; color: rgba(235,235,245,.6); font-weight: 500; }
.hj-b .big { display: flex; align-items: baseline; gap: 6px; } .hj-b .big b { font-size: 60px; font-weight: 700; letter-spacing: -.05em; line-height: 1; } .hj-b .big span { font-size: 18px; font-weight: 600; color: rgba(235,235,245,.6); }
.hj-b p { font-size: 13px; color: rgba(235,235,245,.6); margin: 6px 0 14px; } .hj-b p b { color: #fff; }
.hj-stack { display: flex; height: 14px; gap: 3px; } .hj-stack i { border-radius: 5px; min-width: 6px; } .hj-stack i.rest { background: repeating-linear-gradient(135deg, rgba(255,255,255,.1) 0 4px, rgba(255,255,255,.04) 4px 8px); }
.hj-stleg { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 9px; font-size: 11.5px; color: rgba(235,235,245,.6); }
.hj-stleg i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 5px; } .hj-stleg i.r { background: rgba(255,255,255,.2); }
.hj-tanks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 10px 0; }
.hj-tanks > div { display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; }
.hj-tanks .tb { width: 100%; height: 112px; border-radius: 22px; background: var(--glass); border: 1px solid var(--glass-b); position: relative; overflow: hidden; display: grid; place-items: center; }
.hj-tanks .tb i { position: absolute; left: 0; right: 0; bottom: 0; background: linear-gradient(180deg, var(--c), color-mix(in srgb, var(--c) 55%, #000)); opacity: .9; }
.hj-tanks .tb b { position: relative; font-size: 27px; font-weight: 700; letter-spacing: -.03em; text-shadow: 0 2px 8px rgba(0,0,0,.4); } .hj-tanks .tb b small { font-size: 14px; }
.hj-tanks > div > span { font-size: 13.5px; font-weight: 600; } .hj-tanks > div > small { font-size: 11px; color: rgba(235,235,245,.55); display: flex; align-items: center; gap: 3px; }
.hj-tl { position: relative; padding-left: 52px; }
.hj-tl::before { content: ""; position: absolute; left: 45px; top: 10px; bottom: 16px; width: 2px; background: rgba(255,255,255,.08); }
.hj-tl .it { position: relative; }
.hj-tl .tt { position: absolute; left: -52px; top: 18px; width: 36px; text-align: right; font-size: 12px; font-weight: 600; color: rgba(235,235,245,.5); }
.hj-tl .dot { position: absolute; left: -12px; top: 21px; width: 12px; height: 12px; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 4px #0a0a0b; }
.hj-tl .meal, .hj-tl .hj-remc { margin-left: 10px; margin-bottom: 8px; width: calc(100% - 10px); }
.hj-remc { border-radius: 18px; border: 1px dashed rgba(255,255,255,.14); background: transparent; }
/* C · Bento */
.hj-bento { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-bottom: 9px; }
.hj-bento .bx { border-radius: 22px; background: var(--glass); border: 1px solid var(--glass-b); padding: 12px; display: flex; flex-direction: column; gap: 2px; min-width: 0; color: #fff; font-family: var(--font); }
.hj-bento .wide { grid-column: 1 / -1; }
.hj-bento .wide2 { grid-column: span 2; padding: 8px; justify-content: center; }
.hj-bento .kc { flex-direction: row; align-items: center; gap: 14px; background: linear-gradient(160deg, rgba(227,18,27,.22), rgba(22,22,24,.7) 60%); border-color: rgba(227,18,27,.3); }
.hj-bento .kc .r { position: relative; width: 116px; height: 116px; flex: none; } .hj-bento .kc .r > svg { width: 100%; height: 100%; }
.hj-bento .kc .c { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; } .hj-bento .kc .c b { font-size: 29px; font-weight: 700; letter-spacing: -.04em; line-height: 1; } .hj-bento .kc .c small { font-size: 11px; color: rgba(235,235,245,.6); }
.hj-bento .kc .s { flex: 1; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.hj-bento .kc .s div { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid rgba(255,255,255,.06); padding-bottom: 6px; } .hj-bento .kc .s div:last-child { border: 0; padding: 0; }
.hj-bento .kc .s small { font-size: 12.5px; color: rgba(235,235,245,.55); } .hj-bento .kc .s b { font-size: 19px; font-weight: 700; }
.hj-bento .mac, .hj-bento .st { align-items: center; text-align: center; }
.hj-bento .mac > svg { width: 54px; height: 54px; }
.hj-bento .mac b, .hj-bento .st b { font-size: 20px; font-weight: 700; margin-top: 4px; } .hj-bento .mac b small, .hj-bento .st b small { font-size: 12px; color: rgba(235,235,245,.6); }
.hj-bento .mac span, .hj-bento .st span { font-size: 12.5px; font-weight: 600; } .hj-bento .mac > small { font-size: 10.5px; color: rgba(235,235,245,.5); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; display: flex; gap: 2px; align-items: center; }
.hj-bento .st { background: linear-gradient(160deg, rgba(255,214,10,.12), var(--glass) 70%); border-color: rgba(255,214,10,.3); }
.hj-minis.col span { padding: 8px 6px; background: rgba(255,255,255,.04); }
/* choix de l'interface (Profil) */
.hj-lay { display: grid; gap: 10px; }
.hj-lo { display: flex; align-items: center; gap: 14px; width: 100%; padding: 10px 14px 10px 10px; border-radius: 22px; background: var(--glass); border: 1px solid var(--glass-b); color: #fff; text-align: left; font-family: var(--font); }
.hj-lo.on { border-color: #e3121b; background: linear-gradient(180deg, rgba(227,18,27,.16), rgba(227,18,27,.04)); }
.hj-lo.on .nx-ck { background: #e3121b; border-color: #e3121b; }
.hj-prev { width: 64px; height: 81px; flex: none; border-radius: 12px; box-shadow: 0 0 0 1px rgba(255,255,255,.1); }
.hj-lt { flex: 1; min-width: 0; } .hj-lt b { display: block; font-size: 16px; font-weight: 600; } .hj-lt b em { font-style: normal; font-size: 10.5px; font-weight: 700; color: #7ee29a; background: rgba(50,215,75,.15); padding: 2px 7px; border-radius: 99px; vertical-align: 2px; margin-left: 4px; }
.hj-lt small { display: block; font-size: 12.5px; color: rgba(235,235,245,.55); line-height: 1.35; margin-top: 2px; }
@media (max-width: 360px) {
  .hj-ring { width: 122px; height: 122px; } .hj-rin b { font-size: 26px; } .hj-rem { font-size: 32px; } .hj-hrow { gap: 12px; }
  .hj-mt { padding: 9px; } .hj-mt b { font-size: 19px; } .hj-mt b small { font-size: 10px; } .hj-mt .t .pf-tl { width: 24px !important; height: 24px !important; font-size: 13px !important; }
  .hj-minis span { padding: 8px 7px; } .hj-minis b { font-size: 15px; }
  .hj-fk b { font-size: 21px; } .hj-gc b { font-size: 42px; } .hj-b .big b { font-size: 50px; }
  .hj-leg b { font-size: 15px; } .hj-loy { font-size: 11.5px; }
}

.hj-loyrow { display: flex; justify-content: center; margin-top: 14px; }
.hj-loy.wide { height: 40px; padding: 0 8px 0 4px; gap: 9px; font-size: 13px; font-weight: 500; color: rgba(235,235,245,.8); background: rgba(0,0,0,.3); }
.hj-loy.wide b { color: #fff; font-weight: 600; }
.hj-loy.wide .hj-bw { width: 32px; height: 32px; }
.hj-loyc { font-size: 12px; color: rgba(235,235,245,.4); display: grid; place-items: center; }
.topbar > .brand { flex: none; }
.topbar .brand-mark { flex: none; }
.hj-pc { white-space: nowrap; }
@media (max-width: 360px) {
  .topbar { gap: 6px; } .datenav { min-width: 0; flex: 1; } .datenav .dlabel { min-width: 0; }
  .hj-pc { font-size: 10.5px; padding: 3px 7px; }
  .hj-minis.col .nx-i { display: none; } .hj-minis.col span { grid-template-columns: auto 1fr; padding: 7px 5px; } .hj-minis.col em { grid-column: 1 / 3; }
}

/* V14 : notes d'une séance (reprises de l'historique) */
.nx-wonote span { white-space: pre-line; min-width: 0; overflow-wrap: anywhere; }
.nx-wonote b { display: block; margin-bottom: 4px; font-weight: 700; }

/* V16 · Jour « Cartes » : barre de progression + fidélité en pied de carte */
.hj-d2.has-loy { padding-bottom: 0; overflow: hidden; }
.hj-pbar { width: 100%; height: 6px; border-radius: 9px; background: rgba(255,255,255,.1); overflow: hidden; margin: 6px 0 2px; }
.hj-pbar i { display: block; height: 100%; border-radius: 9px; background: linear-gradient(90deg, #ff7070, #e3121b); }
.hj-pbar.over i { background: #ff453a; }
.hj-loyfoot { display: flex; align-items: center; gap: 12px; width: calc(100% + 32px); margin: 14px -16px 0; padding: 10px 16px 11px; border: 0; border-top: 1px solid rgba(255,255,255,.08); background: rgba(0,0,0,.22); color: #fff; font: inherit; text-align: left; cursor: pointer; }
.hj-loyfoot:active { background: rgba(0,0,0,.32); }
.hj-bwf { width: 46px; height: 46px; border-radius: 50%; flex: none; display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle at 50% 40%, rgba(255,211,77,.28), rgba(227,18,27,.12) 70%); border: 1px solid rgba(255,211,77,.35); }
.hj-bwf img.biceps { width: 74% !important; height: auto !important; object-fit: contain; transform: translate(3%, -4%); }
.hj-lft { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.hj-lft b { font-size: 15px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hj-lft small { font-size: 12px; font-weight: 600; color: var(--c, #ffd34d); }
.hj-loyfoot > .nx-i { color: rgba(235,235,245,.35); font-size: 14px; }
@media (max-width: 360px) { .hj-loyfoot { gap: 10px; } .hj-bwf { width: 40px; height: 40px; } .hj-lft b { font-size: 14px; } }

/* V16 · DA partout : champs mis en avant, logos de connexions, états vides, cartes */
.nf.kcal input { background: rgba(227,18,27,.1); color: #fff; border-color: rgba(255,69,58,.55); box-shadow: 0 0 0 3px rgba(227,18,27,.12); }
.nf.kcal .tag { color: #ff8a8a; }
.nf.kcal .u { color: rgba(235,235,245,.6); }
.nf.kcal input::placeholder { color: rgba(235,235,245,.35); }
.cn-logo { border-radius: 28%; color: #fff; font-size: 24px; background: linear-gradient(160deg, color-mix(in srgb, var(--c) 100%, #fff 18%), color-mix(in srgb, var(--c) 78%, #000)); box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 4px 10px color-mix(in srgb, var(--c) 30%, transparent); }
.cn-logo.big { font-size: 34px; margin-left: auto; margin-right: auto; }
.cn-logo .nx-i { width: 1em; height: 1em; }
.empty.oz-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; padding: 22px 16px; border-radius: 22px; background: rgba(22,22,24,.66); border: 1px solid rgba(255,255,255,.08); }
.empty.oz-empty .pf-tl { margin-bottom: 4px; }
.empty.oz-empty b { display: block; font-size: 15px; color: #fff; }
.empty.oz-empty small { font-size: 13px; color: rgba(235,235,245,.55); line-height: 1.4; max-width: 280px; }
.nx-card-h .nx-sm { font-size: 12px; color: var(--nx-l3, rgba(235,235,245,.45)); white-space: nowrap; }
.nx-card-h .pill { flex: none; }
.bi-ch i .nx-i, .sk-steps i .nx-i { width: 12px; height: 12px; }
.empty:not(.hj-empty) { border-radius: 22px; background: rgba(22,22,24,.66); border: 1px solid rgba(255,255,255,.08); text-align: center; line-height: 1.45; color: rgba(235,235,245,.55); font-size: 13px; }
.empty:not(.hj-empty) > b { display: block; font-size: 15px; color: #fff; margin-bottom: 3px; }

/* V17 · mise à jour de l'app installée */
.oz-upd { position: fixed; left: 12px; right: 12px; top: calc(env(safe-area-inset-top, 0px) + 10px); z-index: 9000; display: flex; align-items: center; gap: 10px; padding: 10px 10px 10px 12px; border-radius: 22px; background: rgba(22,22,24,.92); border: 1px solid rgba(50,215,75,.35); box-shadow: 0 18px 40px -12px rgba(0,0,0,.7); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); transform: translateY(-140%); transition: transform .35s cubic-bezier(.2,.9,.3,1.1); max-width: 520px; margin: 0 auto; }
.oz-upd.on { transform: none; }
.oz-upd-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.oz-upd-t b { font-size: 14.5px; font-weight: 700; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.oz-upd-t small { font-size: 12px; color: rgba(235,235,245,.6); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.oz-upd-go { flex: none; height: 36px; padding: 0 14px; border-radius: 99px; border: 0; background: #e3121b; color: #fff; font: inherit; font-weight: 700; font-size: 13px; box-shadow: 0 6px 16px rgba(227,18,27,.35); cursor: pointer; }
.oz-upd-x { flex: none; width: 30px; height: 30px; border-radius: 50%; border: 0; background: rgba(255,255,255,.07); color: rgba(235,235,245,.6); display: grid; place-items: center; font-size: 13px; cursor: pointer; }
.oz-upd-x .nx-i { width: 1em; height: 1em; }
.oz-updo { position: fixed; inset: 0; z-index: 9500; display: grid; place-items: center; padding: 24px; background: radial-gradient(420px 320px at 50% 30%, rgba(227,18,27,.28), transparent 70%), rgba(6,6,7,.94); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); animation: ozFade .25s ease; }
@keyframes ozFade { from { opacity: 0; } }
.oz-updo-c { width: 100%; max-width: 340px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; }
.oz-updo-c img { width: 72px; height: 72px; border-radius: 50%; margin-bottom: 10px; box-shadow: 0 10px 30px -6px rgba(227,18,27,.6); }
.oz-updo-c > b { font-size: 21px; font-weight: 800; letter-spacing: -.02em; color: #fff; }
.oz-updo-c > small { font-size: 13px; color: rgba(235,235,245,.6); margin-bottom: 14px; }
.oz-updo-bar { width: 100%; height: 8px; border-radius: 9px; background: rgba(255,255,255,.1); overflow: hidden; }
.oz-updo-bar i { display: block; height: 100%; width: 0; border-radius: 9px; background: linear-gradient(90deg, #ff7070, #e3121b); transition: width .3s ease; }
.oz-updo-row { width: 100%; display: flex; justify-content: space-between; font-size: 12.5px; color: rgba(235,235,245,.7); margin-top: 6px; }
.oz-updo-pc { font-weight: 700; color: #fff; }
.oz-updo-c p { font-size: 12px; color: rgba(235,235,245,.45); margin: 14px 0 0; line-height: 1.4; }
.oz-upd-t small { white-space: normal; line-height: 1.3; }
@media (max-width: 360px) { .oz-upd-go { padding: 0 11px; font-size: 12.5px; } }

/* V18 · courbes lisibles (Suivi) */
.ch2 { margin-top: 6px; }
.ch2 > svg { display: block; overflow: visible; }
.ch2 .ch-y span { left: 0; font-size: 10.5px; font-weight: 600; color: rgba(235,235,245,.5); font-family: var(--font); }
.ch-pts { position: absolute; left: 0; right: 0; top: 0; height: 0; pointer-events: none; }
.ch-pts i { position: absolute; width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; border-radius: 50%; background: #0b0b0d; border: 2px solid var(--c); }
.ch-pts i.last { width: 11px; height: 11px; margin: -5.5px 0 0 -5.5px; background: var(--c); border: 2px solid #0b0b0d; box-shadow: 0 0 0 3px color-mix(in srgb, var(--c) 30%, transparent); }
.ch-last { position: absolute; transform: translate(-100%, -150%); font-size: 12px; font-weight: 700; color: #fff; background: color-mix(in srgb, var(--c) 30%, #161618); border: 1px solid color-mix(in srgb, var(--c) 55%, transparent); padding: 2px 7px; border-radius: 8px; white-space: nowrap; pointer-events: none; }
.ch-tg { position: absolute; right: 14px; transform: translateY(-120%); font-size: 10px; font-weight: 600; color: rgba(235,235,245,.6); pointer-events: none; }
.ch-x2 { display: flex; justify-content: space-between; font-size: 10.5px; font-weight: 600; color: rgba(235,235,245,.5); margin-top: 6px; }
.ch-x2 span:first-child { transform: translateX(-30%); } .ch-x2 span:last-child { transform: translateX(30%); }
.ch-leg { display: flex; justify-content: center; gap: 14px; margin-top: 8px; font-size: 11px; color: rgba(235,235,245,.55); }
.ch-leg span { display: inline-flex; align-items: center; gap: 6px; }
.ch-leg i { width: 14px; height: 3px; border-radius: 2px; display: inline-block; }
.ch-leg i.d { background: none; border-top: 2px dashed rgba(255,255,255,.55); height: 0; }
.sv-foot { flex-wrap: wrap; gap: 6px 14px; }
.bd-edit { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 14px; background: rgba(255,159,10,.1); border: 1px solid rgba(255,159,10,.3); font-size: 13px; color: rgba(235,235,245,.85); margin-bottom: 12px; }
.bd-edit > .nx-i { color: #ff9f0a; width: 16px; height: 16px; flex: none; }
.bd-edit span { flex: 1; min-width: 0; } .bd-edit b { color: #fff; }
.bd-list { display: flex; flex-direction: column; border-radius: 18px; background: rgba(22,22,24,.66); border: 1px solid rgba(255,255,255,.08); overflow: hidden; margin-top: 6px; }
.bd-row { display: flex; align-items: center; gap: 4px; padding: 0 6px 0 0; border-bottom: 1px solid rgba(255,255,255,.06); }
.bd-row:last-child { border-bottom: 0; }
.bd-row.on { background: rgba(255,159,10,.08); }
.bd-rm { flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; padding: 11px 12px; background: none; border: 0; color: inherit; font: inherit; text-align: left; }
.bd-d { font-size: 13px; color: rgba(235,235,245,.6); width: 74px; flex: none; }
.bd-v { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
.bd-v b { font-size: 15px; color: #fff; } .bd-v small { font-size: 11.5px; color: rgba(235,235,245,.55); }
.bd-ic { width: 34px; height: 34px; flex: none; border-radius: 10px; border: 0; background: rgba(255,255,255,.06); color: rgba(235,235,245,.75); display: grid; place-items: center; font-size: 15px; }
.bd-ic .nx-i { width: 1em; height: 1em; }
.bd-ic.del { color: #ff6b6b; background: rgba(255,69,58,.1); }

/* V19 · IA Oznutri */
.ia-hero { border-radius: 24px; padding: 14px; margin: 0 0 16px; background: linear-gradient(150deg, rgba(227,18,27,.3), rgba(22,22,24,.85) 70%); border: 1px solid rgba(255,69,58,.45); box-shadow: 0 18px 40px -18px rgba(227,18,27,.6); }
.ia-hr1 { display: flex; align-items: center; gap: 12px; }
.ia-hr1 > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.ia-hr1 b { font-size: 18px; font-weight: 800; color: #fff; } .ia-hr1 small { font-size: 12.5px; color: rgba(235,235,245,.65); }
.ia-fake { display: flex; align-items: center; gap: 8px; height: 50px; border-radius: 16px; margin: 12px 0 0; padding: 0 6px 0 14px; background: rgba(0,0,0,.42); border: 1px solid rgba(255,255,255,.1); }
.ia-fake input { flex: 1; min-width: 0; background: none; border: 0; outline: 0; color: #fff; font: inherit; font-size: 15px; padding: 0; height: 100%; box-shadow: none; }
.ia-fake input::placeholder { color: rgba(235,235,245,.45); }
.ia-fake button { width: 38px; height: 38px; border-radius: 12px; border: 0; display: grid; place-items: center; background: #e3121b; color: #fff; font-size: 17px; flex: none; }
.ia-qs { display: flex; gap: 6px; margin-top: 10px; overflow-x: auto; scrollbar-width: none; }
.ia-qs::-webkit-scrollbar { display: none; }
.ia-qs button { flex: none; font: inherit; font-size: 12px; font-weight: 600; padding: 7px 11px; border-radius: 99px; border: 0; background: rgba(255,255,255,.08); color: rgba(235,235,245,.9); white-space: nowrap; }
.ia-logo { width: 46px; height: 46px; flex: none; display: grid; place-items: center; border-radius: 50%; background: #000; box-shadow: 0 6px 18px -6px rgba(227,18,27,.7); }
.ia-logo.sm { width: 44px; height: 44px; } .ia-logo.xs { width: 30px; height: 30px; box-shadow: none; }
.ia-ring { width: 100%; height: 100%; display: block; }
.ia-oz { font: italic 900 30px/1 var(--font, Inter), sans-serif; fill: #fff; letter-spacing: -1px; }
.ia-sheet .sheet-h { display: none; }
.ia-sheet { background: radial-gradient(420px 320px at 0% 0%, rgba(227,18,27,.22), transparent 70%), radial-gradient(380px 320px at 100% 60%, rgba(150,10,16,.12), transparent 70%), #0a0a0b !important; }
.ia-wrap { display: flex; flex-direction: column; min-height: 100%; }
.ia-head { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: 10px; padding: 6px 0 12px; background: linear-gradient(180deg, #0d0606 70%, transparent); }
.ia-ht { flex: 1; min-width: 0; display: flex; flex-direction: column; } .ia-ht b { font-size: 19px; font-weight: 800; } .ia-ht small { font-size: 11.5px; color: rgba(235,235,245,.55); }
.ia-ib { width: 40px; height: 40px; border-radius: 13px; border: 1px solid rgba(255,255,255,.09); background: rgba(255,255,255,.06); color: #fff; display: grid; place-items: center; font-size: 17px; flex: none; }
.ia-ib .nx-i, .ia-fake .nx-i, .ia-send .nx-i { width: 1em; height: 1em; }
.ia-thread { display: flex; flex-direction: column; gap: 14px; padding-bottom: 10px; }
.ia-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 24px 6px 6px; }
.ia-big { width: 120px; height: 120px; border-radius: 50%; background: #000; display: grid; place-items: center; box-shadow: 0 0 60px -10px rgba(227,18,27,.7); margin-bottom: 6px; }
.ia-big .ia-oz { font-size: 32px; }
.ia-empty b { font-size: 18px; font-weight: 800; } .ia-empty small { font-size: 13px; color: rgba(235,235,245,.6); line-height: 1.45; max-width: 320px; }
.ia-sugg { display: flex; flex-direction: column; gap: 8px; width: 100%; margin-top: 12px; }
.ia-sugg button { display: flex; align-items: center; gap: 10px; text-align: left; font: inherit; font-size: 14px; font-weight: 600; color: #fff; padding: 12px 14px; border-radius: 16px; background: rgba(22,22,24,.85); border: 1px solid rgba(255,255,255,.08); }
.ia-sugg .nx-i { width: 16px; height: 16px; flex: none; }
.ia-me { align-self: flex-end; max-width: 86%; padding: 11px 14px; border-radius: 18px 18px 6px 18px; background: #e3121b; color: #fff; font-size: 15px; line-height: 1.4; white-space: pre-wrap; overflow-wrap: anywhere; }
.ia-think { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 4px 0; }
.ia-orbw { position: relative; width: 100%; max-width: 340px; height: 250px; display: grid; place-items: center; }
.ia-orb { position: relative; width: 132px; height: 132px; border-radius: 50%; background: radial-gradient(circle at 50% 45%, #1a0507, #000 70%); box-shadow: 0 0 70px -6px rgba(227,18,27,.7); display: grid; place-items: center; }
.ia-orb > svg { position: relative; z-index: 1; }
.ia-orb .ia-oz { font-size: 30px; }
.ia-orb .ia-arc { transition: stroke-dasharray .6s ease; }
.ia-orb > i { position: absolute; inset: -16px; border-radius: 50%; border: 1.5px solid rgba(255,90,82,.3); animation: iaPulse 2.2s ease-out infinite; }
.ia-orb > i + i { animation-delay: 1.1s; }
@keyframes iaPulse { from { transform: scale(.85); opacity: .9; } to { transform: scale(1.35); opacity: 0; } }
.ia-chip { position: absolute; display: inline-flex; align-items: center; gap: 6px; max-width: 46%; font-size: 11.5px; font-weight: 600; padding: 6px 10px; border-radius: 99px; background: rgba(20,20,22,.94); border: 1px solid color-mix(in srgb, var(--c) 55%, transparent); color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; animation: iaIn .4s ease both; }
.ia-chip .nx-i { width: 14px; height: 14px; color: var(--c); flex: none; }
.ia-chip.now { box-shadow: 0 0 0 3px color-mix(in srgb, var(--c) 18%, transparent); }
@keyframes iaIn { from { opacity: 0; transform: scale(.8); } }
.ia-say { text-align: center; display: flex; flex-direction: column; gap: 3px; padding: 0 10px; }
.ia-say b { font-size: 16px; font-weight: 700; } .ia-say small { font-size: 13px; color: rgba(235,235,245,.6); }
.ia-log { width: 100%; display: flex; flex-direction: column; gap: 2px; border-radius: 18px; padding: 6px 10px; background: rgba(22,22,24,.8); border: 1px solid rgba(255,255,255,.07); }
.ia-log > div { display: flex; align-items: center; gap: 10px; padding: 6px 0; }
.ia-log > div > span:not(.pf-tl) { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ia-log b { font-size: 13px; font-weight: 600; } .ia-log small { font-size: 11.5px; color: rgba(235,235,245,.55); }
.ia-log .nx-i { width: 15px; height: 15px; }
.ia-spin { width: 15px; height: 15px; border-radius: 50%; border: 2px solid rgba(255,255,255,.15); border-top-color: #ff453a; animation: iaSpin .8s linear infinite; flex: none; }
@keyframes iaSpin { to { transform: rotate(360deg); } }
.ia-ans { display: flex; flex-direction: column; gap: 12px; }
.ia-src { border-radius: 14px; background: rgba(50,215,75,.06); border: 1px solid rgba(50,215,75,.22); overflow: hidden; }
.ia-src > button { width: 100%; display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: none; border: 0; color: rgba(235,235,245,.8); font: inherit; font-size: 12.5px; }
.ia-src > button > span:nth-child(2) { flex: 1; text-align: left; }
.ia-src-t { display: flex; gap: 3px; }
.ia-src .nx-i { width: 15px; height: 15px; }
.ia-src-l { display: none; padding: 0 10px 8px; flex-direction: column; gap: 6px; }
.ia-src.open .ia-src-l { display: flex; }
.ia-src-l > div { display: flex; align-items: center; gap: 8px; } .ia-src-l span:not(.pf-tl) { display: flex; flex-direction: column; } .ia-src-l b { font-size: 12.5px; } .ia-src-l small { font-size: 11px; color: rgba(235,235,245,.55); }
.ia-qc { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; border-left: 3px solid #e3121b; background: rgba(227,18,27,.07); border-radius: 0 12px 12px 0; }
.ia-qc small { font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: #ff8a8a; }
.ia-qc span { font-size: 14px; color: rgba(235,235,245,.9); line-height: 1.4; }
.ia-rep { display: flex; gap: 10px; align-items: flex-start; }
.ia-rep p { margin: 0; font-size: 17px; font-weight: 600; line-height: 1.42; color: #fff; }
.ia-kp { display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: 8px; }
.ia-kp span { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 2px; padding: 10px 6px; border-radius: 16px; background: color-mix(in srgb, var(--c) 10%, rgba(22,22,24,.9)); border: 1px solid color-mix(in srgb, var(--c) 35%, transparent); }
.ia-kp b { font-size: 18px; font-weight: 800; color: var(--c); } .ia-kp small { font-size: 11px; color: rgba(235,235,245,.6); line-height: 1.25; }
.ia-sec { border-radius: 18px; padding: 12px 14px; background: rgba(22,22,24,.85); border: 1px solid rgba(255,255,255,.07); }
.ia-st { display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: rgba(235,235,245,.6); margin-bottom: 6px; }
.ia-st .nx-i { width: 15px; height: 15px; }
.ia-sec ul, .ia-sec ol { margin: 0; padding-left: 20px; font-size: 14px; line-height: 1.55; color: rgba(235,235,245,.92); }
.ia-sec li + li { margin-top: 3px; }
.ia-acts { display: flex; flex-wrap: wrap; gap: 8px; }
.ia-acts button { height: 40px; padding: 0 14px; border-radius: 99px; border: 0; font: inherit; font-size: 13.5px; font-weight: 700; color: #fff; background: rgba(255,255,255,.09); display: inline-flex; align-items: center; gap: 6px; }
.ia-acts button.pri { background: #e3121b; box-shadow: 0 6px 16px rgba(227,18,27,.35); }
.ia-acts .nx-i { width: 15px; height: 15px; }
.ia-err { display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: 16px; background: rgba(255,159,10,.08); border: 1px solid rgba(255,159,10,.3); font-size: 13.5px; }
.ia-err span { flex: 1; } .ia-err .nx-i { width: 18px; height: 18px; flex: none; }
.ia-err button { font: inherit; font-size: 12.5px; font-weight: 700; color: #fff; background: #e3121b; border: 0; border-radius: 99px; padding: 7px 12px; }
.ia-in { display: flex; align-items: flex-end; gap: 8px; width: 100%; padding: 6px 6px 6px 14px; border-radius: 20px; background: rgba(24,24,26,.96); border: 1px solid rgba(255,255,255,.1); }
.ia-in textarea { flex: 1; min-width: 0; resize: none; background: none; border: 0; outline: 0; color: #fff; font: inherit; font-size: 15px; line-height: 1.4; padding: 9px 0; max-height: 120px; box-shadow: none; }
.ia-in textarea::placeholder { color: rgba(235,235,245,.45); }
.ia-send { width: 42px; height: 42px; border-radius: 14px; border: 0; display: grid; place-items: center; font-size: 18px; color: #fff; background: linear-gradient(160deg, #ff5a52, #e3121b); flex: none; }
.ia-log > div > span:not(.pf-tl) { flex: 1; } .ia-log > div > span.pf-tl { flex: none; display: inline-grid; }
.ia-src-l > div > span.pf-tl, .ia-src-t .pf-tl { display: inline-grid; flex: none; }
.ia-orbw { height: 270px; }
.ia-orb { width: 120px; height: 120px; }
.ia-chip { max-width: 34%; }
.ia-me { scroll-margin-top: 70px; }
/* V20 · orbe IA : bulles rangées autour, jamais coupées ni hors du cadre */
.ia-orbw { width: 100%; max-width: 360px; height: 230px; margin: 0 auto; overflow: visible; }
.ia-orb { width: 116px; height: 116px; }
.ia-orb > i { inset: -10px; }
.ia-chip { position: absolute; max-width: calc(50% - 68px); min-width: 0; padding: 6px 9px; font-size: 12px; gap: 5px; left: auto; right: auto; top: auto; }
.ia-chip em { font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.ia-chip .nx-i { width: 13px; height: 13px; }
.ia-chip.l { left: 0; } .ia-chip.r { right: 0; }
.ia-chip.t1 { top: 12%; } .ia-chip.t2 { top: 50%; transform: translateY(-50%); } .ia-chip.t3 { bottom: 12%; }
.ia-chip.t2 { animation: none; }
.ia-chip.ok { border-color: color-mix(in srgb, var(--c) 40%, transparent); }
@media (max-width: 360px) { .ia-orb { width: 100px; height: 100px; } .ia-chip { max-width: calc(50% - 58px); font-size: 11px; padding: 5px 7px; } }
.ia-orb { width: 108px; height: 108px; }
.ia-chip { max-width: calc(50% - 60px); }
.ia-chip.now { background: color-mix(in srgb, var(--c) 22%, #141416); }
.ia-chip.ok { opacity: .85; }
@media (max-width: 360px) { .ia-orb { width: 92px; height: 92px; } .ia-chip { max-width: calc(50% - 50px); font-size: 11px; padding: 5px 7px; gap: 4px; } .ia-chip .nx-i { width: 12px; height: 12px; } .ia-orbw { height: 200px; } }
.ia-ht small, .ia-ht b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* V21 · IA : pendant la réflexion, tout tient dans l'écran (pas de défilement) */
.ia-stage { display: none; }
.ia-busy .sheet-b { overflow: hidden; display: flex; flex-direction: column; }
.ia-busy .ia-wrap { flex: 1; min-height: 0; height: 100%; }
.ia-busy .ia-thread { display: none; }
.ia-busy .ia-stage { display: flex; flex: 1; min-height: 0; flex-direction: column; align-items: center; gap: 10px; padding-bottom: 4px; }
.ia-me-s { align-self: flex-end; flex: none; max-width: 86%; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ia-stage .ia-orbw { flex: 1 1 auto; min-height: 170px; max-height: 260px; height: auto; }
.ia-stage .ia-say { flex: none; }
.ia-stage .ia-log { flex: none; }
.ia-more { display: flex; align-items: center; gap: 10px; padding: 6px 0; font-size: 12.5px; color: rgba(235,235,245,.6); }
.ia-more .nx-i { width: 18px; height: 18px; margin: 0 3px; }
.ia-log > .now > .ia-spin:first-child { margin: 0 4px; }
@media (max-height: 700px) { .ia-stage .ia-log > div:nth-last-child(n+3) { display: none; } .ia-stage .ia-orbw { min-height: 150px; } .ia-stage .ia-say b { font-size: 15px; } }
/* V21 · historique des questions à l'IA */
.ia-ib.on { background: rgba(227,18,27,.2); border-color: rgba(255,69,58,.5); }
.ia-hist { display: flex; flex-direction: column; gap: 8px; padding-top: 4px; }
.ia-hh { display: flex; flex-direction: column; margin: 0 2px 6px; } .ia-hh b { font-size: 18px; font-weight: 800; } .ia-hh small { font-size: 12.5px; color: rgba(235,235,245,.55); }
.ia-hc { display: flex; align-items: center; gap: 6px; padding-right: 6px; border-radius: 18px; background: rgba(22,22,24,.85); border: 1px solid rgba(255,255,255,.07); }
.ia-hc.cur { border-color: rgba(255,69,58,.45); }
.ia-hb { flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; padding: 11px 6px 11px 12px; background: none; border: 0; color: inherit; font: inherit; text-align: left; }
.ia-hm { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ia-hm b { font-size: 14.5px; font-weight: 600; color: #fff; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ia-hm small { font-size: 12px; color: rgba(235,235,245,.55); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ia-hx { width: 36px; height: 36px; flex: none; border-radius: 11px; border: 0; background: rgba(255,69,58,.1); color: #ff6b6b; display: grid; place-items: center; font-size: 15px; }
.ia-hx .nx-i { width: 1em; height: 1em; }
.ia-head .ia-ib { width: 38px; height: 38px; }
/* V21 · Sport : historique en liste ou en agenda */
.nx-sec-h { align-items: center; }
.nx-seg2 { display: inline-flex; padding: 3px; border-radius: 12px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08); }
.nx-seg2 button { display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 11px; border-radius: 9px; border: 0; background: none; color: rgba(235,235,245,.6); font: inherit; font-size: 12.5px; font-weight: 600; }
.nx-seg2 button.on { background: #e3121b; color: #fff; }
.nx-seg2 .nx-i { width: 14px; height: 14px; }
.nx-ag { padding: 12px; }
.nx-ag-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.nx-ag-h b { font-size: 16px; font-weight: 700; text-align: center; flex: 1; }
.nx-ag-n { width: 36px; height: 36px; border-radius: 11px; border: 1px solid rgba(255,255,255,.09); background: rgba(255,255,255,.06); color: #fff; display: grid; place-items: center; font-size: 15px; }
.nx-ag-n:disabled { opacity: .3; }
.nx-ag-n .nx-i { width: 1em; height: 1em; }
.nx-ag-s { text-align: center; font-size: 12px; color: rgba(235,235,245,.55); margin: 4px 0 10px; }
.nx-ag-g { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.nx-ag-w { text-align: center; font-size: 11px; font-weight: 700; color: rgba(235,235,245,.4); padding-bottom: 2px; }
.nx-ag-c { position: relative; aspect-ratio: 1 / 1.1; min-width: 0; border-radius: 10px; border: 1px solid transparent; background: rgba(255,255,255,.03); color: rgba(235,235,245,.45); font: inherit; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; padding: 4px 1px 2px; gap: 1px; overflow: hidden; }
.nx-ag-c.empty { background: none; }
.nx-ag-c b { font-size: 12.5px; font-weight: 700; }
.nx-ag-c.on { background: color-mix(in srgb, var(--c) 22%, rgba(22,22,24,.9)); border-color: color-mix(in srgb, var(--c) 45%, transparent); color: #fff; }
.nx-ag-c i { font-style: normal; font-size: 8.5px; font-weight: 700; line-height: 1.1; color: color-mix(in srgb, var(--c) 70%, #fff); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 0 2px; }
.nx-ag-c em { position: absolute; top: 2px; right: 3px; font-style: normal; font-size: 8.5px; font-weight: 800; color: #fff; background: var(--c); border-radius: 6px; padding: 0 3px; }
.nx-ag-c.today b { color: #ff6b6b; }
.nx-ag-c.sel { box-shadow: 0 0 0 2px #fff inset; }
.nx-ag-day { font-size: 13px; font-weight: 700; color: rgba(235,235,245,.75); margin: 12px 4px 8px; text-transform: capitalize; }
.ia-chip, .ia-chip.t2 { animation: none; }
.nx-fe-0 { color: rgba(235,235,245,.3); font-weight: 600; }
@media (max-height: 700px) { .ia-stage .ia-orbw { min-height: 130px; } .ia-stage .ia-log > .ia-more { display: none; } }

/* ===== V22 : programmes enregistrés, séance du jour, ordre des jours, agenda en semaines ===== */
.nx-two { display: flex; gap: 8px; margin-top: 10px; }
.nx-two .nx-btn { height: 46px; font-size: 15px; min-width: 0; }
.nx-undo { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; margin-top: 10px; background: none; border: 0; color: var(--nx-l2); font: 600 13px var(--font); }
/* programme actif */
.nx-mp { padding: 14px; border-radius: 24px; margin-bottom: 12px; }
.nx-mp-h { display: flex; align-items: center; gap: 12px; }
.nx-mp-h .t { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.nx-mp-h .t small { font-size: 11px; font-weight: 700; letter-spacing: .04em; color: #ffb36b; }
.nx-mp-h .t b { font-size: 17px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nx-mp-s { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; margin: 12px 0; }
.nx-mp-s.c1 { grid-template-columns: 1fr; } .nx-mp-s.c2 { grid-template-columns: repeat(2, 1fr); } .nx-mp-s.c3 { grid-template-columns: repeat(3, 1fr); } .nx-mp-s.c4 { grid-template-columns: repeat(4, 1fr); } .nx-mp-s.c5 { grid-template-columns: repeat(5, 1fr); } .nx-mp-s.c6 { grid-template-columns: repeat(6, 1fr); }
.nx-mp-s.scroll { display: flex; overflow-x: auto; scrollbar-width: none; }
.nx-mp-s.scroll button { flex: 0 0 52px; }
.nx-mp-s button { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 7px 2px; border-radius: 12px; background: rgba(255,255,255,.05); border: 0; color: var(--nx-l2); font: 600 11.5px var(--font); min-width: 0; text-align: center; }
.nx-mp-s button em { font-style: normal; font-size: 10.5px; font-weight: 800; color: var(--nx-l3); }
.nx-mp-s button span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nx-mp-s button.r { opacity: .55; }
.nx-mp-s button.nx { background: rgba(227,18,27,.2); box-shadow: inset 0 0 0 1px rgba(255,69,58,.55); color: #fff; opacity: 1; }
.nx-mp-s button.nx em { color: #ff8a8a; }
.nx-mp-f { display: flex; align-items: center; justify-content: center; gap: 7px; width: 100%; height: 44px; border-radius: 99px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.08); color: #fff; font: 600 14.5px var(--font); }
.nx-mp-f i { font-style: normal; font-size: 12px; font-weight: 700; background: #e3121b; border-radius: 99px; padding: 1px 7px; }
/* déplacer les jours */
.nx-grip { width: 34px; height: 44px; margin: -6px -6px -6px 0; display: grid; place-items: center; flex: none; color: var(--nx-l3); font-size: 20px; touch-action: none; cursor: grab; }
.nx-dlist { position: relative; }
.nx-dlist.sorting .nx-dayc:not(.dragging) { transition: transform .18s ease; }
.nx-dayc.dragging { position: relative; z-index: 5; transition: none; border-color: rgba(255,69,58,.8); background: #26191a; box-shadow: 0 20px 40px rgba(0,0,0,.6); }
.nx-dayc.dragging .nx-grip { color: #fff; cursor: grabbing; }
.nx-dayc.rest .nx-grip { margin-left: 4px; }
.nx-pgoff { display: flex; align-items: center; gap: 10px; padding: 10px 10px 10px 14px; border-radius: 16px; margin-bottom: 10px; background: rgba(255,138,31,.1); border: 1px solid rgba(255,138,31,.3); font-size: 13.5px; color: var(--nx-l1); }
.nx-pgoff span { flex: 1; }
.nx-pgoff button { flex: none; height: 34px; padding: 0 14px; border-radius: 99px; border: 0; background: #e3121b; color: #fff; font: 700 13.5px var(--font); }
.nx-pgname { display: flex; align-items: center; gap: 6px; color: var(--nx-l3); font-size: 17px; }
.nx-pgname .nx-title-in { flex: 1; min-width: 0; }
/* changer la séance */
.nx-chl { display: flex; flex-direction: column; gap: 8px; }
.nx-cho { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 20px; width: 100%; color: #fff; font-family: var(--font); }
.nx-cho .j { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; flex: none; font-weight: 800; font-size: 14px; color: #ff8a8a; background: rgba(227,18,27,.14); }
.nx-cho .n { flex: 1; min-width: 0; display: flex; flex-direction: column; text-align: left; }
.nx-cho .n b { font-size: 15.5px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nx-cho .n small { font-size: 12.5px; color: var(--nx-l2); }
.nx-cho .nx-minis.sm { margin: 6px 0 0; gap: 4px; }
.nx-cho .tag { font-size: 11.5px; font-weight: 700; color: var(--nx-l2); background: rgba(255,255,255,.08); padding: 4px 8px; border-radius: 99px; flex: none; }
.nx-cho .rd { width: 24px; height: 24px; border-radius: 50%; border: 2px solid rgba(255,255,255,.2); display: grid; place-items: center; flex: none; font-size: 13px; }
.nx-cho.on { border-color: rgba(255,69,58,.7); background: linear-gradient(160deg, rgba(227,18,27,.22), rgba(20,20,22,.7) 60%); }
.nx-cho.on .rd { background: #e3121b; border-color: #e3121b; }
.nx-chafter { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 12px 14px; border-radius: 16px; background: rgba(79,157,255,.1); border: 1px solid rgba(79,157,255,.25); font-size: 13.5px; color: var(--nx-l2); line-height: 1.35; }
.nx-chafter b { color: #fff; }
.nx-chafter .nx-i { font-size: 19px; }
/* mes programmes */
.nx-pl { position: relative; padding: 14px; border-radius: 22px; margin-bottom: 10px; }
.nx-pl.act { border-color: rgba(255,69,58,.6); background: linear-gradient(160deg, rgba(227,18,27,.2), rgba(20,20,22,.7) 60%); }
.nx-pl.menu { z-index: 5; }
.nx-pl-h { display: flex; align-items: center; gap: 12px; padding-right: 40px; cursor: pointer; }
.nx-pl-h .t { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.nx-pl-h .t b { font-size: 16.5px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nx-pl-h .t small { font-size: 12.5px; color: var(--nx-l2); }
.nx-pl-act { display: inline-flex; align-items: center; gap: 4px; flex: none; font-size: 12px; font-weight: 700; background: #e3121b; padding: 4px 9px; border-radius: 99px; }
.nx-pl-more { position: absolute; top: 18px; right: 12px; width: 34px; height: 34px; border-radius: 12px; display: grid; place-items: center; background: rgba(255,255,255,.07); border: 0; color: #fff; font-size: 18px; }
.nx-pl .nx-minis.sm { margin: 10px 0 0; gap: 4px; }
.nx-pl-use { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; height: 40px; margin-top: 12px; border-radius: 99px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.1); color: #fff; font: 600 14px var(--font); }
.nx-pl-menu { position: absolute; right: 12px; top: 56px; z-index: 6; width: 190px; border-radius: 18px; background: rgba(40,40,44,.98); border: 1px solid rgba(255,255,255,.1); box-shadow: 0 18px 40px rgba(0,0,0,.6); padding: 6px; display: flex; flex-direction: column; }
.nx-pl-menu button { display: flex; align-items: center; gap: 10px; height: 42px; padding: 0 10px; border-radius: 12px; border: 0; background: none; color: #fff; font: 600 14.5px var(--font); text-align: left; }
.nx-pl-menu button + button { border-top: 1px solid rgba(255,255,255,.06); }
.nx-pl-menu button .nx-i { font-size: 18px; }
.nx-pl-menu .del { color: #ff6b6b; }
/* agenda en semaines */
.nx-strk { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 22px; margin-bottom: 10px; border-color: rgba(255,123,59,.35); background: linear-gradient(160deg, rgba(255,123,59,.16), rgba(20,20,22,.7) 60%); }
.nx-strk > span:nth-child(2) { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.nx-strk > span:nth-child(2) b { font-size: 16px; }
.nx-strk small { font-size: 12px; color: var(--nx-l2); }
.nx-strk .v { display: flex; flex-direction: column; align-items: flex-end; flex: none; }
.nx-strk .v b { font-size: 20px; font-weight: 800; }
.nx-wr { padding: 12px; border-radius: 22px; margin-bottom: 8px; }
.nx-wr.now { border-color: rgba(255,69,58,.45); }
.nx-wr-h { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin: 0 2px 10px; }
.nx-wr-h b { font-size: 14.5px; }
.nx-wr-h small { font-size: 12px; color: var(--nx-l2); white-space: nowrap; }
.nx-wr-g { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.nx-wd { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; background: none; border: 0; padding: 0; color: inherit; font-family: var(--font); }
.nx-wd em { font-style: normal; font-size: 10.5px; font-weight: 700; color: var(--nx-l3); }
.nx-wd > i { width: 38px; height: 38px; border-radius: 12px; background: rgba(255,255,255,.05); }
.nx-wd.fut > i { background: none; border: 1.5px dashed rgba(255,255,255,.12); }
.nx-wd.tod em { color: #ff6b6b; }
.nx-wd.tod > i, .nx-wd.tod .nx-mu { box-shadow: 0 0 0 2px #fff; }
.nx-wd small { font-size: 10px; font-weight: 600; color: var(--nx-l2); height: 12px; max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.nx-wd-n { position: absolute; top: 12px; right: calc(50% - 24px); min-width: 16px; height: 16px; border-radius: 99px; background: #fff; color: #000; font-size: 10px; font-weight: 800; display: grid; place-items: center; padding: 0 4px; }
.nx-mu { display: inline-grid; place-items: center; flex: none; border-radius: 12px; color: #fff; background: linear-gradient(160deg, color-mix(in srgb, var(--c) 92%, #fff 10%), color-mix(in srgb, var(--c) 62%, #000)); box-shadow: inset 0 1px 0 rgba(255,255,255,.25); }
.nx-mu .mu-i { display: block; }
@media (max-width: 360px) { .nx-wd > i, .nx-wd .nx-mu { width: 32px !important; height: 32px !important; } }
.nx-sub.nx-subb { display: block; line-height: 1.4; }
.nx-sub.nx-subb b { color: #fff; }
.nx-nexttag.in { display: inline-block; align-self: flex-start; margin-bottom: 4px; }
.nx-dayc .nx-dn { min-width: 0; }
@media (max-width: 360px) {
  .nx-wd small { font-size: 8.5px; letter-spacing: -.2px; text-overflow: clip; }
  .nx-mp-s button { font-size: 10px; letter-spacing: -.2px; padding: 7px 0; }
  .nx-mp-s button span { text-overflow: clip; }
}
.nx-mini.del { flex: 1.6; color: #ff6b6b; border-color: rgba(255,59,59,.28); background: rgba(255,59,59,.06); white-space: nowrap; }
.nx-btn.sec.nx-danger { color: #ff6b6b; border-color: rgba(255,59,59,.28); }
.sk-log .row { gap: 8px; }
.sk-log .row > b { flex: 1; min-width: 0; }
.sk-del { flex: none; width: 30px; height: 30px; border-radius: 10px; display: grid; place-items: center; border: 0; background: rgba(255,59,59,.08); color: #ff6b6b; font-size: 15px; margin: -4px -4px -4px 0; }
[data-sheet="woview"] .sheet-f .nx-btn { font-size: 15px; gap: 6px; padding: 0 6px; min-width: 0; }
.sk-log .row > span.small { display: flex; align-items: center; gap: 8px; flex: none; }
[data-sheet="skill"] .sheet-f .btn { white-space: nowrap; font-size: 15px; min-width: 0; }
/* V25 : agenda en calendrier du mois, icône du muscle par jour */
.nx-cm { padding: 14px 12px 12px; border-radius: 24px; }
.nx-cm-h { display: flex; align-items: center; gap: 8px; }
.nx-cm-h b { flex: 1; text-align: center; font-size: 17px; font-weight: 700; }
.nx-cm-n { width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center; flex: none; border: 1px solid rgba(255,255,255,.09); background: rgba(255,255,255,.06); color: #fff; font-size: 16px; }
.nx-cm-n:disabled { opacity: .3; }
.nx-cm-k { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 12px 0; }
.nx-cm-k span { display: flex; flex-direction: column; align-items: center; padding: 8px 0; border-radius: 14px; background: rgba(255,255,255,.05); font-size: 11.5px; color: var(--nx-l2); }
.nx-cm-k b { font-size: 18px; color: #fff; }
.nx-cm-g { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.nx-cm-w { text-align: center; font-size: 11px; font-weight: 700; color: var(--nx-l3); padding-bottom: 2px; }
.nx-cm-c { position: relative; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 4px 0 5px; min-width: 0; border-radius: 12px; border: 0; background: rgba(255,255,255,.03); color: var(--nx-l3); font-family: var(--font); }
.nx-cm-c.pad { background: none; }
.nx-cm-c b { font-size: 11px; font-weight: 600; line-height: 1; }
.nx-cm-c > i { width: 32px; height: 32px; border-radius: 10px; }
.nx-cm-c.fut { opacity: .45; }
.nx-cm-c.on { color: #fff; background: rgba(255,255,255,.06); }
.nx-cm-c.on b { font-weight: 800; }
.nx-cm-c .nx-mu { border-radius: 10px; }
.nx-cm-c.tod b { color: #ff6b6b; }
.nx-cm-c.tod:not(.on) > i { box-shadow: inset 0 0 0 1.5px rgba(255,107,107,.7); }
.nx-cm-c.sel { box-shadow: inset 0 0 0 2px #fff; }
.nx-cm-c em { position: absolute; top: 14px; right: 1px; min-width: 15px; height: 15px; border-radius: 99px; background: #fff; color: #000; font: 800 9.5px var(--font); display: grid; place-items: center; padding: 0 3px; }
.nx-cm-lg { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 12px; margin-top: 12px; font-size: 12px; color: var(--nx-l2); }
.nx-cm-lg span { display: inline-flex; align-items: center; gap: 5px; }
.nx-cm-lg .nx-mu { border-radius: 5px; }
.nx-cm-lg small { color: var(--nx-l3); font-weight: 700; }
@media (max-width: 360px) { .nx-cm-c .nx-mu, .nx-cm-c > i { width: 28px !important; height: 28px !important; } .nx-cm { padding: 12px 8px 10px; } }
