/* =========================================================
   REFONTE v13 : theme clair, cartes douces, rail lateral.
   Charge APRES app.css : on change les jetons de couleur (tout le site les
   utilise deja) puis on redessine les composants. Rien ne change dans le HTML
   genere par les vues, hormis le rail et le titre de page dans index.html.

   Reperes : cartes blanches tres arrondies, ombre diffuse, un seul bloc
   sombre par ecran (le compte a rebours), pastille noire pour l'etat actif,
   couleurs de discipline gardees mais adoucies.
   ========================================================= */
:root{
  --bg:#eceef3;
  --bg-glow:#f2f3f7;
  --card:#fcfcfd;
  --card-2:#f1f2f6;
  --border:#e6e8ee;
  --border-2:#d9dce5;
  --text:#1b1e29;
  --muted:#5d6477;
  --dim:#8a91a2;

  --cap:#1fb36b;
  --velo:#3b7bf0;
  --nat:#12b5d1;
  --muscu:#f29d0c;
  --autre:#8b6df0;

  --ok:#16a05c;
  --warn:#d4850a;
  --danger:#df3649;
  --accent:#0e8a52;

  --ink:#1b1e29;
  --ink-2:#262a38;
  --on-ink:#f4f5f8;
  --display:'Plus Jakarta Sans','Segoe UI',-apple-system,BlinkMacSystemFont,system-ui,Arial,sans-serif;

  --r:22px;
  --r-s:14px;
  --sh:0 1px 2px rgba(27,30,41,.05),0 12px 30px -16px rgba(27,30,41,.18);
  --barh:62px;
}

body{background:var(--bg);background-attachment:scroll}
/* Chrome compense deja certains decalages tout seul : combine a la compensation
   de util.js (garderPlace), on aurait un double deplacement. On la coupe. */
html{overflow-anchor:none}

/* bande d'encoche : visible seulement quand iOS superpose la barre d'etat
   (ancienne installation en black-translucent), elle garde l'heure lisible */
body::before{content:'';position:fixed;top:0;left:0;right:0;height:var(--sat);
  background:var(--ink);z-index:80}

/* ---------- barre haute ---------- */
.appbar{background:rgba(236,238,243,.86);border-bottom:0}
.appbar-in{padding:12px var(--pad) 8px}
.brand-mark{width:26px;height:26px;flex:0 0 26px;border-radius:9px;
  background:linear-gradient(140deg,var(--nat),var(--velo) 50%,var(--cap))}
.brand-txt{font-weight:800;font-size:17px;letter-spacing:-.02em}
.appbar-meta{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:0}
.appbar-ver{color:var(--dim);font-size:10px;letter-spacing:.04em}
.sync-btn{width:38px;height:38px;flex:0 0 38px;border-radius:50%;background:var(--card);
  border:0;box-shadow:var(--sh);color:var(--ink)}
.syncbar{background:rgba(252,252,253,.96);border-bottom:1px solid var(--border)}
#page-titre{display:none}
.rail-brand{display:none}
/* Telephone : « Prepa Louis » etait tronque en « Prepa Lo... » (titre, bouton
   de synchro, « donnees du JJ/MM » et « COQUE V14 » se partagent 390 px). Le
   titre ne se comprime plus, et le marqueur de version, qui ne sert qu'a
   verifier une mise a jour, se masque sous 430 px. Il reste affiche quand il
   signale un ecart (classe .vieux, en orange). */
@media(max-width:430px){
  .brand{flex:0 0 auto}
  .brand-txt{overflow:visible;text-overflow:clip}
  .appbar-ver:not(.vieux){display:none}
}
@media(max-width:359px){
  .brand-txt{font-size:15px}
  .appbar-meta{font-size:11px}
}

/* ---------- titres ---------- */
#prepa-body > h2{margin-top:30px}
.h2{font-size:21px;font-weight:800;letter-spacing:-.025em;margin-bottom:12px}
.h2-meta{font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--dim)}
.h3{font-weight:700;color:var(--muted)}
.stamp{color:var(--dim)}

/* ---------- cartes ---------- */
.card,.sess,.mini,.acc,.wkhead,.natbar,.diag,.st,.chartbox,.pc,.vol,.prow,.gg,.hl,
.act,.gl,.next,.juge,.callout,.hero,.empty{
  background:var(--card);border:0;border-radius:var(--r);box-shadow:var(--sh)}
.empty{box-shadow:none;border:1.5px dashed var(--border-2);background:transparent}
.sess.now,.hl,.callout,.hero{background:var(--card)}
.sub,.jr,.pal,.seance{background:var(--card-2);border:0;border-radius:var(--r-s)}
.sub.courante{box-shadow:inset 0 0 0 1.5px rgba(14,138,82,.45)}
.jr.today{background:rgba(31,179,107,.12);box-shadow:inset 0 0 0 1.5px rgba(14,138,82,.4)}
.pal.fait{background:rgba(22,160,92,.12)}
.pal.programme{background:rgba(18,181,209,.13)}
.more{background:var(--card);border:0;box-shadow:var(--sh);border-radius:var(--r-s);color:var(--text)}
.prev{background:var(--card);border:0;border-left:3px solid var(--warn);box-shadow:var(--sh)}
.notice,.perime{background:rgba(212,133,10,.1);border:0;border-radius:var(--r-s)}
.perime{background:rgba(223,54,73,.09)}
.risk,.rline{border:0}
.risk.ok,.rline.ok{background:rgba(22,160,92,.1)}
.risk.warn,.rline.warn{background:rgba(212,133,10,.1)}
.risk.danger,.rline.danger{background:rgba(223,54,73,.09)}
.enjeu{background:rgba(31,179,107,.1);border:0}
.ecart{background:rgba(212,133,10,.1);border:0}
.hero-e{background:rgba(31,179,107,.1);border:0}

/* ---------- 1. compte a rebours : le seul bloc sombre ---------- */
.cd{background:radial-gradient(520px 260px at 100% 0,rgba(31,179,107,.34),transparent 62%),
    linear-gradient(155deg,var(--ink-2),var(--ink));
  color:var(--on-ink);border:0;border-radius:28px;padding:26px 24px 24px;
  box-shadow:0 22px 44px -22px rgba(27,30,41,.55)}
.cd::after{display:none}
.cd-kick{display:none}
.cd-j{font-weight:800;font-size:clamp(56px,19vw,92px);letter-spacing:-.055em;margin:0 0 4px;line-height:.9}
.cd-j small{color:#aab0c2;font-weight:600;font-size:.26em;letter-spacing:0;margin-left:10px}
.cd-j.long{font-size:clamp(28px,8.6vw,40px);letter-spacing:-.035em}
.cd-nom{font-weight:700;font-size:21px;letter-spacing:-.02em;margin-top:14px;color:var(--on-ink)}
.cd-obj{color:#6fe0a8;font-size:14.5px;font-weight:700;margin-top:6px}
.cd-date{color:#9ba2b6;font-size:13px;margin-top:4px}
.cd-det{color:#c4c9d8;font-size:13.5px;margin-top:14px;padding-top:14px;
  border-top:1px solid rgba(244,245,248,.12)}

.cd-rest{gap:10px;margin-top:12px}
.mini{padding:14px 16px;min-width:158px;border-radius:20px}
.mini-j{font-weight:800;font-size:22px;letter-spacing:-.035em}
.mini-n{font-size:13px;color:var(--text);font-weight:600;margin-top:4px}
.mini-d{font-size:12px;color:var(--dim)}
.mini.major{background:linear-gradient(160deg,rgba(242,157,12,.16),var(--card) 70%)}
.mini.major .mini-j{color:var(--warn)}

/* ---------- 2. seance du jour ---------- */
.sess{padding:20px;border-radius:26px}
.sess-top{gap:8px;margin-bottom:12px}
.sess-t{font-weight:700;font-size:20px;line-height:1.28;letter-spacing:-.02em}
.sess-d{color:var(--muted)}
.sess-rest{font-weight:700;font-size:13px;color:var(--text);background:var(--card-2);
  padding:6px 12px;border-radius:99px}
.sess .jr{background:var(--card-2)!important;border:0!important;border-radius:var(--r-s);margin-top:14px!important}
.sess .jr-h{min-height:48px;padding:8px 14px;font-weight:600}
.sess .jr-t{font-size:14px;font-weight:600;-webkit-line-clamp:unset;display:block}
.done{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.done-h{font-size:13px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--ok)}
.done-h.none{color:var(--dim)}

.pill{font-size:12.5px;font-weight:700;letter-spacing:0;text-transform:none;
  padding:6px 12px;border:0}
.pill i{width:7px;height:7px;flex:0 0 7px}
.pill.cap{color:#0d7a47;background:rgba(31,179,107,.14)}
.pill.velo{color:#2559c4;background:rgba(59,123,240,.13)}
.pill.nat{color:#0b7f94;background:rgba(18,181,209,.15)}
.pill.muscu{color:#9a5a00;background:rgba(242,157,12,.17)}
.pill.autre{color:#5b3fc4;background:rgba(139,109,240,.14)}
.pill.repos{color:var(--muted);background:var(--card-2)}
.done-row .dt{color:var(--text)!important}

/* ---------- 3. dernieres donnees : cinq cartes, icone ronde, ecart en pastille ---------- */
.strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;
  background:transparent;border:0;border-radius:0;overflow:visible}
.strip .c:last-child:nth-child(odd){grid-column:1/-1}
.strip .c{position:relative;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);
  padding:16px 16px 15px;text-align:left;min-height:122px}
.strip .l{font-size:13px;font-weight:600;color:var(--muted);letter-spacing:0;text-transform:none;
  line-height:1.2;white-space:nowrap;padding-right:44px}
.strip .v{color:var(--text)!important;font-size:30px;font-weight:800;letter-spacing:-.045em;margin-top:14px}
.strip .v small{font-size:.45em;color:var(--dim);font-weight:600;margin-left:3px}
.strip .d{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:0;line-height:1;
  margin-top:12px;padding:5px 9px;border-radius:99px;background:var(--card-2);color:var(--muted)}
.strip .d.up{background:rgba(22,160,92,.13);color:#0f7a49}
.strip .d.down{background:rgba(223,54,73,.11);color:#c0283b}
.strip .c::before{content:'';position:absolute;top:13px;right:13px;width:36px;height:36px;
  border-radius:50%;background:var(--tint,rgba(27,30,41,.07))}
.strip .c::after{content:'';position:absolute;top:13px;right:13px;width:36px;height:36px;
  background:var(--tone,var(--ink));
  -webkit-mask:var(--ico) center/18px 18px no-repeat;mask:var(--ico) center/18px 18px no-repeat}
.strip .c:nth-child(1){--tint:rgba(18,181,209,.15);--tone:#0b7f94;
  --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.4-7-10a4 4 0 0 1 7-2.6A4 4 0 0 1 19 10c0 5.6-7 10-7 10z'/%3E%3C/svg%3E")}
.strip .c:nth-child(2){--tint:rgba(31,179,107,.16);--tone:#0d7a47;
  --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 3 5 13h6l-1 8 8-10h-6z'/%3E%3C/svg%3E")}
.strip .c:nth-child(3){--tint:rgba(242,157,12,.18);--tone:#9a5a00;
  --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='16' height='10' rx='2.5'/%3E%3Cpath d='M22 11v2M7 10v4M11 10v4'/%3E%3C/svg%3E")}
.strip .c:nth-child(4){--tint:rgba(139,109,240,.16);--tone:#5b3fc4;
  --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5z'/%3E%3C/svg%3E")}
.strip .c:nth-child(5){--tint:rgba(59,123,240,.14);--tone:#2559c4;
  --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h4l2.5-6 4 12 2.5-6H21'/%3E%3C/svg%3E")}

/* ---------- accordeons ---------- */
.accs{gap:10px;margin-top:8px}
.acc{overflow:hidden}
.acc-h{min-height:64px;padding:14px 18px}
.acc-h:active{background:var(--card-2)}
.acc-t{font-weight:700;font-size:16px;letter-spacing:-.015em}
.acc-r{font-size:12.5px}
.acc-chev{flex:0 0 30px;width:30px;height:30px;padding:7px;border-radius:50%;
  background:var(--card-2);color:var(--muted)}
.acc-h[aria-expanded="true"] .acc-t{color:var(--text)}
.acc-h[aria-expanded="true"] .acc-chev{background:var(--ink);color:var(--on-ink)}
.acc-p{padding:4px 18px 18px;border-top:1px solid var(--border)}
.sub-h[aria-expanded="true"] .sub-chev,.jr-h[aria-expanded="true"] .jr-chev{color:var(--ink)}
.sub.courante .sub-n,.tbl tr.jour-actuel .num,.tbl tr.jour-actuel td:first-child{color:var(--accent)}
.acc.courante{box-shadow:var(--sh),inset 0 0 0 1.5px rgba(14,138,82,.4)}
.plus{color:var(--ink)}

/* ---------- tableaux et blocs de texte ---------- */
.tbl th{color:var(--dim);border-bottom-color:var(--border-2)}
.tbl td{border-bottom-color:var(--border)}
.tbl tr.jour-actuel td{background:rgba(31,179,107,.11)}
.seance .sc-h{color:var(--accent)}
.seance .sc-h-neutre{color:var(--dim)}
.seance .sc-cons{background:var(--card);border-left-color:var(--border-2)}
.band,.compteurs{background:transparent;border:0;border-radius:0;gap:10px;overflow:visible}
.band .cell,.compteurs .c{background:var(--card);border-radius:var(--r);box-shadow:var(--sh)}
.nat-track,.gg-t{background:var(--card-2)}

/* ---------- barre d'onglets : pastille flottante, etat actif en noir ---------- */
.tabs{left:12px;right:12px;bottom:calc(10px + var(--sab));padding:6px;gap:4px;
  border:0;border-radius:32px;background:rgba(252,252,253,.92);
  box-shadow:0 14px 36px -12px rgba(27,30,41,.32),0 0 0 1px rgba(27,30,41,.05)}
.tab{height:54px;border-radius:26px;font-size:10.5px;font-weight:600;letter-spacing:0;
  text-transform:none;color:var(--dim);gap:3px}
.tab.is-active{background:var(--ink);color:var(--on-ink)}
.tab.is-active::after{display:none}
main{padding-bottom:calc(var(--barh) + var(--sab) + 44px)}

/* ---------- coach ---------- */
.co-lui .co-bul{background:var(--card);border:0;box-shadow:var(--sh)}
.co-moi .co-bul{background:var(--ink);color:var(--on-ink)}
.co-saisie textarea{background:var(--card);border:0;box-shadow:var(--sh);border-radius:18px}
.co-saisie textarea:focus{outline:2px solid var(--ink)}
.co-env{background:var(--ink);color:var(--on-ink);border-radius:50%}

/* ---------- ecrans moyens ---------- */
@media(min-width:700px){
  .strip{grid-template-columns:repeat(5,minmax(0,1fr))}
  .strip .c:last-child:nth-child(odd){grid-column:auto}
}

/* ---------- ecrans larges : rail a gauche, grille en bento ---------- */
@media(min-width:1100px){
  :root{--pad:0px}
  body{padding-left:252px}
  body::before{display:none}

  .appbar{background:rgba(236,238,243,.82)}
  .appbar-in{max-width:1120px;margin:0 auto;padding:26px 32px 12px}
  .brand{display:none}
  #page-titre{display:block;font-size:30px;font-weight:800;letter-spacing:-.035em;line-height:1.1}
  main{max-width:1120px;padding:0 32px 48px}
  .view{padding-top:8px}

  .tabs{top:16px;bottom:16px;left:16px;right:auto;width:220px;display:flex;flex-direction:column;
    align-items:stretch;justify-content:flex-start;padding:20px 12px;gap:4px;border-radius:30px;
    background:var(--card);box-shadow:var(--sh);backdrop-filter:none;-webkit-backdrop-filter:none}
  .rail-brand{display:flex;align-items:center;gap:11px;padding:2px 12px 22px;
    font-weight:800;font-size:18px;letter-spacing:-.02em;color:var(--text)}
  .tab{flex-direction:row;justify-content:flex-start;gap:13px;height:48px;padding:0 16px;
    font-size:15px;font-weight:600;border-radius:24px;overflow:visible}
  .tab svg{width:20px;height:20px;flex:0 0 20px}

  #prepa-body{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:14px 18px;
    grid-template-areas:
      "perime perime"
      "cd     gt"
      "cd     today"
      "rest   today"
      "gf     gf"
      "strip  strip"
      "accs   accs"
      "stamp  stamp";
    align-items:stretch}
  #prepa-body > .perime{grid-area:perime;margin:0}
  #prepa-body > .cd{grid-area:cd}
  #prepa-body > .cd-rest{grid-area:rest;margin-top:0;overflow:visible;flex-wrap:wrap}
  #prepa-body > .cd-rest .mini{flex:1 1 150px}
  #prepa-body > h2:nth-of-type(1){grid-area:gt;margin:0}
  #prepa-body > #today-card{grid-area:today}
  #prepa-body > h2:nth-of-type(2){grid-area:gf;margin:10px 0 0}
  #prepa-body > .strip{grid-area:strip}
  #prepa-body > .accs{grid-area:accs;margin-top:12px}
  #prepa-body > .stamp{grid-area:stamp}
  #prepa-body > .sk{grid-column:1/-1}

  .co{height:calc(var(--vvh,100dvh) - 190px)}
}

/* =========================================================
   CALENDRIER : jour / semaine / mois
   ========================================================= */
.cal{margin-bottom:34px}
.cal-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.cal-titre{font-size:22px;font-weight:800;letter-spacing:-.03em;line-height:1.1;margin:0}
.cal-nav{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.cal-rond{width:36px;height:36px;border-radius:50%;background:var(--card);box-shadow:var(--sh);
  display:inline-flex;align-items:center;justify-content:center;color:var(--ink)}
.cal-rond:active,.cal-auj:active{transform:scale(.95)}
.cal-auj{height:36px;padding:0 13px;border-radius:99px;background:var(--card);box-shadow:var(--sh);
  font-size:13px;font-weight:700;color:var(--ink)}
.cal-seg{display:flex;background:var(--card-2);border-radius:99px;padding:4px;gap:2px;margin-bottom:16px}
.cal-seg button{flex:1;height:38px;border-radius:99px;font-size:14px;font-weight:700;color:var(--muted)}
.cal-seg button[aria-pressed="true"]{background:var(--ink);color:var(--on-ink)}

.cal-corps{background:var(--card);border-radius:26px;box-shadow:var(--sh);padding:16px}

/* mois */
.cal-ent{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;
  font-size:12px;font-weight:700;color:var(--dim);margin-bottom:6px}
.cal-grille{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-j{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;
  min-height:58px;padding:7px 0 6px;border-radius:16px;-webkit-tap-highlight-color:transparent}
.cal-j.hors{opacity:.32}
.cal-j.sel{background:var(--card-2)}
.cal-n{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;
  border-radius:50%;font-size:15px;font-weight:700;letter-spacing:-.01em}
.cal-j.auj .cal-n{background:var(--ink);color:var(--on-ink)}
.cal-j.course .cal-n{border-radius:10px;box-shadow:inset 0 0 0 2px var(--ink)}
.cal-j.course.auj .cal-n{box-shadow:none}
.cal-ps{display:flex;flex-wrap:wrap;justify-content:center;gap:3px;min-height:8px;max-width:44px}
.cal-p{display:inline-block;width:8px;height:8px;border-radius:50%;flex:0 0 8px;box-sizing:border-box}
.cal-p.creux{background:transparent;border:1.8px solid var(--dim)}
.cal-c{display:inline-block;width:10px;height:10px;border-radius:3px;box-shadow:inset 0 0 0 2px var(--ink);
  vertical-align:-1px;margin-right:6px}
.cal-leg{display:flex;gap:16px;justify-content:center;margin-top:12px;font-size:12px;color:var(--dim);font-weight:600}
.cal-leg .cal-p{margin-right:6px;vertical-align:0}

.cal-sous{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.cal-sous-t{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.cal-sous-t b{font-size:16px;font-weight:800;letter-spacing:-.02em}
.cal-lien{font-size:13px;font-weight:700;color:var(--ink);padding:7px 14px;border-radius:99px;background:var(--card-2)}

/* semaine */
.cal-tot{display:flex;gap:18px;margin-bottom:14px;font-size:13px;color:var(--dim);font-weight:600}
.cal-tot b{color:var(--text);font-size:16px;font-weight:800;letter-spacing:-.02em;margin-right:3px}
.cal-sem{display:flex;flex-direction:column;gap:8px}
.cal-sj{display:flex;gap:14px;align-items:stretch;text-align:left;width:100%;padding:12px 14px;
  border-radius:20px;background:var(--card-2);-webkit-tap-highlight-color:transparent}
.cal-sj.passe{opacity:.62}
.cal-sj.auj{background:rgba(31,179,107,.13);box-shadow:inset 0 0 0 1.5px rgba(14,138,82,.45);opacity:1}
.cal-sd{flex:0 0 44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.cal-sd b{font-size:12px;font-weight:700;color:var(--dim)}
.cal-sd small{font-size:22px;font-weight:800;letter-spacing:-.04em;color:var(--text);line-height:1}
.cal-sj.auj .cal-sd small{color:var(--accent)}
.cal-sc{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px;justify-content:center}
.cal-it{display:flex;align-items:flex-start;gap:8px;font-size:14px;font-weight:600;line-height:1.3;min-width:0}
.cal-it span{min-width:0;overflow-wrap:anywhere}
.cal-it em{margin-left:auto;font-style:normal;font-size:12.5px;font-weight:700;color:var(--muted);flex:0 0 auto}
.cal-it .cal-p{margin-top:5px}
.cal-it.fait{font-size:12.5px;font-weight:600;color:var(--muted)}
.cal-it.vide{color:var(--dim);font-weight:500}
.cal-it.course b{font-size:13px;background:var(--ink);color:var(--on-ink);padding:4px 11px;border-radius:99px;font-weight:700}

/* jour */
.cal-bloc{margin-bottom:18px}
.cal-bloc-t{display:flex;align-items:baseline;gap:10px;font-size:17px;font-weight:800;letter-spacing:-.02em;margin-bottom:10px}
.cal-bloc-t em{font-style:normal;font-size:13px;font-weight:700;color:var(--muted);background:var(--card-2);padding:4px 11px;border-radius:99px;margin-left:auto}
.cal-pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.cal-titre-seance{font-size:15px;font-weight:600;line-height:1.4;margin-bottom:12px}
.cal-rien,.cal-bloc.vide p{font-size:14px;color:var(--dim)}
.cal-course{display:flex;flex-direction:column;gap:3px;background:var(--ink);color:var(--on-ink);
  border-radius:20px;padding:14px 16px;margin-bottom:16px}
.cal-course b{font-size:16px;font-weight:800;letter-spacing:-.02em}
.cal-course span{font-size:13.5px;color:#6fe0a8;font-weight:700}
.cal-faits{list-style:none;display:flex;flex-direction:column;gap:10px}
.cal-faits li{display:flex;gap:14px;align-items:flex-start}
.cal-faits li.trajet{opacity:.55}
.cal-h{flex:0 0 44px;font-size:13px;font-weight:700;color:var(--dim);padding-top:7px;font-variant-numeric:tabular-nums}
.cal-fc{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:5px;align-items:flex-start;
  background:var(--card-2);border-radius:18px;padding:12px 14px}
.cal-fc b{font-size:14.5px;font-weight:700;line-height:1.3}
.cal-fc small{font-size:12.5px;color:var(--muted);line-height:1.4}
.cal-recup{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:6px}
.cal-recup span{background:var(--card-2);border-radius:16px;padding:11px 12px;display:flex;flex-direction:column;gap:4px}
.cal-recup small{font-size:12px;color:var(--dim);font-weight:600}
.cal-recup b{font-size:20px;font-weight:800;letter-spacing:-.03em}

@media(min-width:1100px){
  .cal-j{min-height:74px}
  .cal-sem{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
  .cal-sj{flex-direction:column;gap:10px;padding:14px 12px;min-height:200px}
  .cal-sd{flex:0 0 auto;flex-direction:row;justify-content:flex-start;gap:8px;align-items:baseline}
  .cal-sd small{font-size:24px}
  .cal-it{align-items:flex-start;flex-wrap:wrap}
  .cal-sc{justify-content:flex-start}
  .cal-it em{margin-left:0}
  .cal-corps{padding:22px}
  .cal-jour{max-width:760px}
}

/* ---------- rappels push (js/notifs.js) ---------- */
.rap{margin:22px 0 6px;padding:14px 16px;background:var(--card);border-radius:var(--r-s);box-shadow:var(--sh);
  display:flex;flex-direction:column;gap:8px}
.rap-t{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px}
.rap-etat{font-size:12px;font-weight:700;color:var(--dim);background:var(--card-2);border-radius:99px;padding:3px 10px}
.rap-actif .rap-etat{color:var(--accent);background:rgba(31,179,107,.12)}
.rap-refuse .rap-etat,.rap-a-finaliser .rap-etat{color:var(--warn);background:rgba(212,133,10,.12)}
.rap-d,.rap-msg{font-size:13px;line-height:1.4;color:var(--muted)}
.rap-msg{color:var(--text)}
.rap-b{display:flex;gap:8px;flex-wrap:wrap}
.rap-btn{font:inherit;font-size:13.5px;font-weight:700;border:0;border-radius:99px;padding:9px 16px;min-height:40px;
  background:var(--ink);color:var(--on-ink);cursor:pointer}
.rap-btn.rap-sec{background:var(--card-2);color:var(--text)}
.rap-btn:disabled{opacity:.5;cursor:default}

/* ---------- Parametres (js/parametres.js), prefixe .par- ---------- */
.par-gear{width:38px;height:38px;flex:0 0 38px;border-radius:50%;display:inline-flex;align-items:center;
  justify-content:center;background:var(--card);box-shadow:var(--sh);color:var(--ink);
  -webkit-tap-highlight-color:transparent}
.par-gear:active{transform:scale(.94)}
.par-gear[aria-pressed="true"]{background:var(--ink);color:var(--on-ink)}
.par-retour{font-size:15px;font-weight:700;color:var(--muted);min-height:44px;padding:0 4px 0 0}
.par-carte{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:6px 18px 20px}
.par-champ{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;
  padding:8px 0;border-bottom:1px solid var(--border)}
.par-lib{font-size:15px;font-weight:600;flex:0 0 auto}
.par-saisie{display:flex;align-items:center;gap:8px;min-width:0}
.par-saisie em{font-style:normal;font-size:14px;color:var(--dim);font-weight:600;width:24px}
.par-saisie input,.par-saisie select{font:inherit;font-size:17px;font-weight:600;color:var(--text);
  background:var(--card-2);border:1.5px solid transparent;border-radius:var(--r-s);padding:10px 12px;
  min-height:46px;text-align:right;width:150px;-webkit-appearance:none;appearance:none}
.par-saisie select{text-align-last:right;width:170px}
.par-saisie input[type="date"]{width:170px}
.par-saisie input:focus,.par-saisie select:focus{outline:0;border-color:var(--ink)}
.par-etats{list-style:none;margin:14px 0 4px;padding:0;display:flex;flex-direction:column;gap:6px;
  font-size:13px;color:var(--muted);line-height:1.4}
.par-btn{margin-top:14px;width:100%;min-height:50px;border-radius:99px;font-size:16px;font-weight:700;
  background:var(--ink);color:var(--on-ink)}
.par-btn:disabled{opacity:.55}
.par-msg{margin:12px 0 0;font-size:14px;line-height:1.4;font-weight:600;color:var(--muted)}
.par-msg:empty{display:none}
.par-msg.par-ok{color:var(--ok)}
.par-msg.par-warn{color:var(--warn)}
.par-msg.par-err{color:var(--danger)}

/* ---------- Nutrition course (js/nutrition.js), prefixe .nut- ---------- */
.nut-slot:not(:empty){margin-top:26px}
.nut{background:linear-gradient(165deg,rgba(31,179,107,.12),var(--card) 52%);border-radius:26px;
  box-shadow:var(--sh);padding:20px 18px 18px}
.nut-titre{font-size:20px;font-weight:800;letter-spacing:-.025em;line-height:1.25;margin:0}
.nut-course{font-size:13px;color:var(--muted);margin:6px 0 14px;line-height:1.4}
.nut-tus{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.nut-tu{background:var(--card-2);border-radius:var(--r-s);padding:12px 10px}
.nut-tl{font-size:12px;font-weight:600;color:var(--muted)}
.nut-tv{font-size:22px;font-weight:800;letter-spacing:-.03em;margin-top:2px;font-variant-numeric:tabular-nums}
.nut-ts{font-size:11.5px;color:var(--dim);margin-top:1px}
.nut-sp{margin-top:10px}
.nut-btn{font:inherit;font-size:14.5px;font-weight:700;border-radius:99px;min-height:44px;padding:0 20px;
  background:var(--ink);color:var(--on-ink)}
.nut-cons{margin:14px 0 0;padding-left:18px;font-size:13.5px;line-height:1.45;color:var(--text)}
.nut-cons li{margin-top:4px}
.nut-mt{display:flex;flex-direction:column;gap:2px;margin:18px 0 8px}
.nut-mtt{font-size:15px;font-weight:800;letter-spacing:-.015em}
.nut-mtg{font-size:13px;color:var(--muted)}
.nut-mtg b{color:var(--text)}
.nut-reps,.nut-autres{display:flex;flex-direction:column;gap:7px}
.nut-sub{margin-top:0!important;background:var(--card-2)}
.nut-h{min-height:50px;padding:8px 14px}
.nut-rn{flex:1;min-width:0;font-size:14px;font-weight:600;color:var(--text);text-align:left}
.nut-rg{flex:0 0 auto;font-size:13.5px;font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums}
.nut-hb{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;text-align:left}
.nut-hb .nut-rn{flex:none}
.nut-rs{font-size:12.5px;color:var(--muted)}
.nut-p{padding:2px 14px 12px}
.nut-it{list-style:none;margin:0;padding:0}
.nut-it li{display:flex;justify-content:space-between;gap:12px;padding:7px 0;font-size:13.5px;
  border-bottom:1px solid var(--border);color:var(--text)}
.nut-it li:last-child{border-bottom:0}
.nut-it b{flex:0 0 auto;font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.nut-pro{font-size:12.5px;color:var(--muted);margin:10px 0 0;line-height:1.4}
.nut-al{font-size:15px;font-weight:800;letter-spacing:-.015em;margin:20px 0 8px}
.nut-bloc{margin-top:18px}
.nut-bloc:first-child{margin-top:0}
.nut-h4{font-size:15px;font-weight:800;letter-spacing:-.015em;margin:0 0 8px;line-height:1.3}
.nut-h4 span{font-size:13px;font-weight:600;color:var(--muted);letter-spacing:0;margin-left:6px}
.nut-p1{font-size:13.5px;line-height:1.45;margin:6px 0 0}
.nut-tw{margin-top:6px}
.nut-tbl{font-size:12.5px}
.nut-tbl th{font-size:11px}
.nut-tbl td{padding:8px 6px}
.nut-c1{font-weight:700}
@media(max-width:360px){.nut-tv{font-size:19px}}
.nut-kg .nut-tv{font-size:17px;letter-spacing:-.02em;white-space:nowrap;margin-top:6px}

/* ---------- Journal alimentaire (js/journal.js), prefixe .jou- ---------- */
.jou-retour{font-size:15px;font-weight:700;color:var(--muted);min-height:44px;padding:0 4px 0 0}
.jou-nav{display:flex;align-items:center;gap:8px;margin:2px 0 14px}
.jou-nav button{flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:var(--card);box-shadow:var(--sh);
  font-size:26px;line-height:1;color:var(--ink);padding-bottom:3px}
.jou-nav button:active{transform:scale(.94)}
.jou-jour{flex:1;min-width:0;text-align:center;display:flex;flex-direction:column;gap:1px}
.jou-jour b{font-size:17px;font-weight:800;letter-spacing:-.015em}
.jou-jour span{font-size:13px;color:var(--muted);min-height:16px}

.jou-tot{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:18px}
.jou-kc{display:flex;align-items:baseline;gap:7px}
.jou-kc b{font-size:40px;font-weight:800;letter-spacing:-.035em;line-height:1;font-variant-numeric:tabular-nums}
.jou-kc span{font-size:15px;font-weight:600;color:var(--muted)}
.jou-macros{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.jou-macros div{background:var(--card-2);border-radius:var(--r-s);padding:10px 10px 9px}
.jou-macros b{display:block;font-size:18px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.jou-macros span{font-size:12px;font-weight:600;color:var(--muted)}
.jou-cible:not(:empty){margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.jou-ct{font-size:12.5px;font-weight:600;color:var(--muted);margin:0 0 4px;line-height:1.35}
.jou-cv{font-size:15px;margin:0 0 8px;font-variant-numeric:tabular-nums}
.jou-cv b{font-size:19px;font-weight:800;letter-spacing:-.02em}
.jou-bar{height:10px;border-radius:99px;background:var(--card-2);overflow:hidden}
.jou-bar i{display:block;height:100%;border-radius:99px;background:var(--accent)}
.jou-trop .jou-bar i{background:var(--warn)}
.jou-cp{font-size:13px;color:var(--muted);margin:8px 0 0}
.jou-cn{font-size:13px;color:var(--muted);margin:12px 0 0;line-height:1.4}

.jou-scan{margin-top:14px;width:100%;min-height:56px;border-radius:99px;background:var(--ink);color:var(--on-ink);
  font-size:17px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px}
.jou-scan:active{transform:scale(.985)}
.jou-msg{margin:12px 2px 0;font-size:14px;line-height:1.4;font-weight:600;color:var(--muted)}
.jou-msg:empty{display:none}
.jou-msg.jou-ok{color:var(--ok)}
.jou-msg.par-err{color:var(--danger)}
.jou-annuler{font-size:14px;font-weight:800;text-decoration:underline;min-height:44px;padding:0 6px;color:var(--ink)}
.jou-vide{margin:22px 4px 0;font-size:14.5px;color:var(--muted);line-height:1.45}
.jou-h3{font-size:15px;font-weight:800;letter-spacing:-.015em;margin:22px 0 8px}
.jou-recents{display:flex;gap:8px;overflow-x:auto;margin:0 calc(-1 * var(--pad));padding:2px var(--pad) 6px;
  -webkit-overflow-scrolling:touch;scrollbar-width:none}
.jou-recents::-webkit-scrollbar{display:none}
.jou-rec{flex:0 0 auto;max-width:190px;min-height:48px;padding:6px 14px;border-radius:var(--r-s);background:var(--card);
  box-shadow:var(--sh);text-align:left;display:flex;flex-direction:column;justify-content:center}
.jou-rn{font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jou-rg{font-size:12px;color:var(--muted);font-weight:600}

.jou-repas{margin-top:20px}
.jou-rh{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;padding:0 4px}
.jou-rh h3{font-size:15px;font-weight:800;letter-spacing:-.015em;margin:0}
.jou-rh span{font-size:13px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.jou-repas ul{list-style:none;margin:0;padding:0;background:var(--card);border-radius:var(--r);box-shadow:var(--sh)}
.jou-repas li{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 16px;min-height:60px;border-bottom:1px solid var(--border)}
.jou-repas li:last-child{border-bottom:0}
.jou-li{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.jou-li b{font-size:14.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jou-li span{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jou-lk{flex:0 0 auto;font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
.jou-del{flex:0 0 44px;width:44px;height:44px;border-radius:50%;color:var(--dim);display:inline-flex;align-items:center;justify-content:center}
.jou-del:active{background:var(--card-2)}

.jou-attente{margin:30px 4px;font-size:15px;color:var(--muted);font-weight:600}
.jou-aide{font-size:14px;line-height:1.45;color:var(--muted);margin:0 2px 14px}
.jou-aide b{color:var(--text)}
.jou-actions{display:flex;flex-direction:column;gap:10px}
.jou-sec{min-height:50px;border-radius:99px;font-size:16px;font-weight:700;background:var(--card);box-shadow:var(--sh)}
.jou-formperso .par-saisie input[type="text"]{width:190px}
.jou-formperso .par-saisie input[inputmode="decimal"]{width:110px}
.jou-formperso .par-saisie em{width:30px}

.jou-fiche{padding-bottom:6px}
.jou-tete{display:flex;align-items:center;gap:12px;margin:2px 0 14px}
.jou-img{width:56px;height:56px;flex:0 0 56px;object-fit:contain;border-radius:var(--r-s);background:#fff;box-shadow:var(--sh)}
.jou-nom{font-size:19px;font-weight:800;letter-spacing:-.02em;line-height:1.2;margin:0}
.jou-marque{font-size:13px;color:var(--muted);margin:3px 0 0;line-height:1.3}
.jou-gl{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--card);border-radius:var(--r);
  box-shadow:var(--sh);padding:10px 16px;min-height:66px;font-size:15px;font-weight:700}
.jou-gs{display:flex;align-items:center;gap:8px}
.jou-gs em{font-style:normal;font-size:15px;color:var(--dim);font-weight:600}
.jou-gs input{font:inherit;font-size:22px;font-weight:800;color:var(--text);background:var(--card-2);border:1.5px solid transparent;
  border-radius:var(--r-s);padding:8px 12px;min-height:48px;width:120px;text-align:right;-webkit-appearance:none;appearance:none}
.jou-gs input:focus{outline:0;border-color:var(--ink)}
.jou-qs{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.jou-q{min-height:44px;padding:0 16px;border-radius:99px;background:var(--card);box-shadow:var(--sh);font-size:14px;font-weight:700}
.jou-q:active{background:var(--card-2)}
.jou-repas-ch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0 0}
.jou-repas-ch button{min-height:44px;border-radius:var(--r-s);background:var(--card);box-shadow:var(--sh);font-size:14px;font-weight:700}
.jou-repas-ch button[aria-pressed="true"]{background:var(--ink);color:var(--on-ink)}
.jou-ajout{margin-top:14px;width:100%;min-height:54px;border-radius:99px;font-size:16.5px;font-weight:800;background:var(--accent);color:#fff}
.jou-ajout:disabled{opacity:.5}
.jou-tab{width:100%;border-collapse:collapse;margin-top:18px;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);
  overflow:hidden;font-variant-numeric:tabular-nums}
.jou-tab th,.jou-tab td{padding:9px 14px;font-size:14px;text-align:right;border-bottom:1px solid var(--border)}
.jou-tab thead th{font-size:12px;color:var(--muted);font-weight:700;padding-top:12px}
.jou-tab tbody th{text-align:left;font-weight:600}
.jou-tab td{font-weight:700}
.jou-tab tr:last-child th,.jou-tab tr:last-child td{border-bottom:0}
.jou-tab .jou-sous th{padding-left:26px;font-weight:500;color:var(--muted)}
.jou-lien{margin-top:10px;min-height:44px;font-size:14px;font-weight:700;text-decoration:underline;color:var(--muted)}

/* ---------- Scanner (js/scan.js), prefixe .scn- ---------- */
html.scn-ouvert,html.scn-ouvert body{overflow:hidden}
.scn{position:fixed;left:0;top:0;width:100%;height:100vh;height:100dvh;z-index:200;background:#000;color:#fff;display:flex;flex-direction:column}
html.clavier .scn{top:var(--vvt,0px);height:var(--vvh,100dvh)}
.scn-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}
.scn-sans-camera .scn-video{visibility:hidden}
.scn-masque{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.scn-cadre{width:min(82vw,420px);aspect-ratio:7/4;border-radius:20px;border:3px solid rgba(255,255,255,.92);
  box-shadow:0 0 0 100vmax rgba(0,0,0,.45)}
.scn-sans-camera .scn-cadre{display:none}
.scn-haut{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;
  padding:max(14px,env(safe-area-inset-top)) 16px 0;z-index:3}
.scn-x{width:48px;height:48px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:30px;line-height:1;padding-bottom:3px;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.scn-torche{min-height:48px;padding:0 20px;border-radius:99px;background:rgba(0,0,0,.55);color:#fff;font-size:15px;font-weight:700;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.scn-torche[hidden]{display:none}
.scn-torche[aria-pressed="true"]{background:#fff;color:#000}
.scn-bas{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:16px 16px max(16px,env(safe-area-inset-bottom));
  background:linear-gradient(to top,rgba(0,0,0,.82),rgba(0,0,0,.55) 70%,rgba(0,0,0,0))}
.scn-sans-camera .scn-bas{background:none}
.scn-sans-camera .scn-msg{font-size:16px;margin-bottom:18px}
.scn-msg{margin:0 0 12px;font-size:15px;line-height:1.4;font-weight:600;text-align:center;color:#fff}
.scn-msg.scn-err{color:#ffb3bb}
.scn-msg.scn-warn{color:#ffd48a}
.scn-form{display:flex;gap:8px}
.scn-code{flex:1;min-width:0;font:inherit;font-size:17px;font-weight:600;color:#111;background:#fff;border:0;border-radius:var(--r-s);
  padding:0 14px;min-height:50px;-webkit-appearance:none;appearance:none}
.scn-code:focus{outline:2px solid var(--accent)}
.scn-ok{flex:0 0 auto;min-width:64px;min-height:50px;border-radius:var(--r-s);background:var(--accent);color:#fff;font-size:16px;font-weight:800}

/* clavier ouvert : de l'air sous les formulaires, pour que le bouton d'envoi ne se retrouve pas sous la pastille
   d'onglets qui revient des la fermeture du clavier */
html.clavier .jou-formperso,html.clavier .jou-fiche{margin-bottom:96px}

/* l'icone du journal s'ajoute a la barre haute : un peu plus compacte pour que la ligne tienne a 390 px */
.jou-btn{width:34px;height:34px;flex:0 0 34px;margin:0 -4px}
/* barre haute : avec l'icone du journal la ligne depasse quand l'etiquette « il y a 3 h » est affichee ;
   le libelle de fraicheur se tronque (ellipse) au lieu de pousser la page en largeur (constate au simulateur iOS) */
.appbar-droite{flex:0 1 auto;min-width:0}
.appbar-meta{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- Recherche, saisie de macros, historique (js/recherche.js, macros.js, historique.js) ---------- */
.jou-tete-liste{display:flex;align-items:center;justify-content:space-between;gap:8px}
.jou-hist{min-height:44px;padding:0 4px 0 12px;font-size:14px;font-weight:700;color:var(--muted);text-decoration:underline}
.jou-acces{display:flex;gap:10px;margin-top:14px}
.jou-acces .jou-scan{margin-top:0;width:auto;flex:1 1 0;min-width:0}

.jou-rech input{width:100%;box-sizing:border-box;font:inherit;font-size:17px;font-weight:600;color:var(--text);background:var(--card);
  border:1.5px solid transparent;border-radius:99px;box-shadow:var(--sh);padding:0 18px;min-height:50px;-webkit-appearance:none;appearance:none}
.jou-rech input:focus{outline:0;border-color:var(--ink)}
.jou-lien-mac{display:block;margin:4px 0 0 4px}
.jou-resl{display:flex;flex-direction:column;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
.jou-res{display:flex;align-items:center;gap:8px;text-align:left;width:100%;min-height:56px;padding:8px 16px;border-bottom:1px solid var(--border)}
.jou-res:last-child{border-bottom:0}
.jou-res:active{background:var(--card-2)}
.jou-resn{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.jou-resn b{font-size:14.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jou-resn span{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jou-rinfo{margin:2px 4px 0;font-size:13.5px;line-height:1.4;color:var(--muted)}
.jou-rerr{color:var(--danger);font-weight:600}

.jou-mode{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 0}
.jou-mode>span{flex:1 0 100%;font-size:13px;font-weight:700;color:var(--muted)}
.jou-mode button{flex:1;min-height:44px;border-radius:var(--r-s);background:var(--card-2);font-size:14px;font-weight:700}
.jou-mode button[aria-pressed="true"]{background:var(--ink);color:var(--on-ink)}
.jou-plus{padding:2px 0}
.jou-plus summary{min-height:44px;display:flex;align-items:center;font-size:14px;font-weight:700;color:var(--muted);cursor:pointer}
.jou-garder{display:flex;align-items:center;gap:10px;min-height:48px;margin-top:6px;font-size:14px;font-weight:600}
.jou-garder input{width:22px;height:22px;flex:0 0 22px}
#jou-macros .jou-repas-ch{margin-top:10px}
.jou-formperso .par-saisie input[type="text"]#mac-nom{width:190px}

.jou-moy{margin-bottom:6px}
.jou-hj{margin-top:12px;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:2px 14px 0}
.jou-hj summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:60px;cursor:pointer;list-style:none}
.jou-hj summary::-webkit-details-marker{display:none}
.jou-hd{display:flex;flex-direction:column;min-width:0}
.jou-hd b{font-size:15px;font-weight:800;letter-spacing:-.015em}
.jou-hd span{font-size:12.5px;color:var(--muted)}
.jou-hk{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto;font-size:13px;font-weight:600;color:var(--muted)}
.jou-hkk{white-space:nowrap}
.jou-hk b{font-size:17px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.jou-hk span{font-size:12px;font-variant-numeric:tabular-nums}
.jou-hj ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}
.jou-hj li{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);font-size:14px}
.jou-hn{min-width:0;display:flex;flex-direction:column;font-weight:600}
.jou-hn em{font-style:normal;font-size:12px;color:var(--muted);font-weight:500}
.jou-hv{font-weight:800;font-variant-numeric:tabular-nums}
.jou-hj .jou-lien{margin:0;display:block}
html.clavier #jou-macros{margin-bottom:96px}
