/* =========================================================
   Cap · le jeu dans Aujourd'hui (game-ui.js) : carte du jour, chaîne du soir, cartes du haut,
   « Sans mes fiches », puce de mode, feuilles, rapport du jour, passage de niveau, objectif réussi.
   Toutes les classes sont préfixées g-. Polices système uniquement (aucune requête externe).
   Couleur d'accent (--ac, --ac-ink) : posée par index.html sur :root. Teinte du rang : body[data-tier].
   Jamais de rouge pour une baisse ou un jour non bouclé (règle 0.10).
   ========================================================= */

/* ---------- jetons ---------- */
:root{
  --ac:#0A84FF;--ac-ink:#FFFFFF;
  --cyan:#66D4CF;--tx3:#5A5A5E;--out:cubic-bezier(.16,1,.3,1);
  --cond:"SF Compact Display","Arial Narrow",-apple-system,sans-serif;
  --ac-soft:color-mix(in srgb,var(--ac) 16%,transparent);
  --ac-lo:color-mix(in srgb,var(--ac) 45%,#000);
  /* teinte du rang : bronze par défaut */
  --rk:#D69A6B;--rk-hi:#F6D2B0;--rk-lo:#5A3420;--rk-deep:#1A0F09;--rk-glow:rgba(214,154,107,.35);
  --metal:linear-gradient(135deg,#F6D2B0 0%,#B8784C 22%,#6B3D22 48%,#D69A6B 70%,#8A5433 100%);
}
body[data-tier="argent"]{--rk:#C9D0DA;--rk-hi:#FFFFFF;--rk-lo:#4A515C;--rk-deep:#0E1014;--rk-glow:rgba(201,208,218,.3);
  --metal:linear-gradient(135deg,#FFFFFF 0%,#AEB6C2 22%,#5A626E 48%,#D5DBE3 70%,#7C8591 100%)}
body[data-tier="or"]{--rk:#E8BE5A;--rk-hi:#FFEDB8;--rk-lo:#6B4E12;--rk-deep:#140F04;--rk-glow:rgba(232,190,90,.35);
  --metal:linear-gradient(135deg,#FFEDB8 0%,#D9A93F 22%,#7A5714 48%,#F0CD72 70%,#A57D25 100%)}
body[data-tier="noir-or"]{--rk:#D4AF62;--rk-hi:#F3DFA8;--rk-lo:#2A2112;--rk-deep:#050505;--rk-glow:rgba(212,175,98,.3);
  --metal:linear-gradient(135deg,#F3DFA8 0%,#9C7A36 18%,#1A1712 40%,#0B0B0B 60%,#B8934A 100%)}
body[data-tier="platine"]{--rk:#BFE0F2;--rk-hi:#F2FAFF;--rk-lo:#3C5566;--rk-deep:#0A1118;--rk-glow:rgba(191,224,242,.3);
  --metal:linear-gradient(135deg,#F2FAFF 0%,#A9C7D9 22%,#56707F 48%,#DCEEF8 70%,#8FA9B8 100%)}
body[data-tier="holo"]{--rk:#C4A8FF;--rk-hi:#F4EEFF;--rk-lo:#3B2A66;--rk-deep:#0B0714;--rk-glow:rgba(196,168,255,.35);
  --metal:linear-gradient(120deg,#FFD6F0 0%,#B9A6FF 20%,#8FE3FF 40%,#C8FFD9 60%,#FFE7A8 80%,#FFB8E1 100%)}
/* métal vertical pour le texte et les pastilles : la bande sombre ne coupe jamais un chiffre */
body{--metal-t:linear-gradient(180deg,var(--rk-hi) 0%,var(--rk) 56%,color-mix(in srgb,var(--rk) 62%,var(--rk-lo)) 100%)}
body[data-tier="holo"]{--metal-t:var(--metal)}

/* ---------- communs ---------- */
.g-cond{font-family:var(--cond);font-stretch:condensed}
.g-metal{background:var(--metal-t);-webkit-background-clip:text;background-clip:text;color:transparent}
.g-xp{font-size:12px;font-weight:600;color:var(--ac);font-variant-numeric:tabular-nums;white-space:nowrap}
.g-bar{height:6px;background:var(--s2);border-radius:3px;overflow:hidden}
.g-bar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--ac-lo),var(--ac));transition:width 1.1s var(--out)}
.g-ck{width:24px;height:24px;flex:none;border-radius:50%;border:1.5px solid var(--s3);display:grid;place-items:center;font-size:12px;font-weight:800;transition:.2s var(--ease);background:none;color:var(--ac-ink)}
.g-ck.on{background:var(--ac);border-color:var(--ac)}
button.g-ck:disabled{cursor:default}
.g-x2{font-family:var(--cond);font-stretch:condensed;font-size:12px;font-weight:700;color:#FFB340;background:rgba(255,159,10,.14);border-radius:999px;padding:1px 6px;margin-left:4px;vertical-align:1px}
.g-hint{font-size:12px;color:var(--tx2);margin:8px 4px 0;line-height:1.4}
.g-cta{display:block;width:100%;padding:14px;min-height:48px;border-radius:14px;background:var(--ac);color:var(--ac-ink);font-weight:700;font-size:15px;letter-spacing:.01em;text-align:center;transition:opacity .2s,filter .2s}
.g-cta:active{filter:brightness(.92)}
.g-cta:disabled{opacity:.35;cursor:default}
.g-cta.ghost{background:var(--s2);color:var(--tx)}
.g-ghost{display:block;width:100%;padding:12px;min-height:44px;border-radius:14px;color:var(--tx2);font-weight:600;font-size:14.5px;text-align:center}
.g-tact{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:14px;align-items:center}
.g-tact .g-ghost{width:auto;padding:12px 16px}
.g-tact.three{grid-template-columns:1fr;gap:4px}

/* ---------- +XP flottant ---------- */
.g-fxp{position:fixed;z-index:90;transform:translate(-50%,0);font-family:var(--cond);font-stretch:condensed;font-weight:700;font-size:22px;letter-spacing:.02em;pointer-events:none;color:var(--ac);text-shadow:0 0 14px color-mix(in srgb,var(--ac) 45%,transparent);animation:g-fxp .7s var(--out) forwards;white-space:nowrap}
.g-fxp.calm{font-size:15px;font-weight:600;text-shadow:none;animation:g-fxpc .9s var(--ease) forwards}
@keyframes g-fxp{0%{opacity:0;transform:translate(-50%,6px) scale(.8)}20%{opacity:1;transform:translate(-50%,-8px) scale(1.1)}100%{opacity:0;transform:translate(-50%,-38px) scale(1)}}
@keyframes g-fxpc{0%{opacity:0;transform:translate(-50%,2px)}25%{opacity:.85}100%{opacity:0;transform:translate(-50%,-16px)}}

/* ---------- carte du jour ---------- */
.g-day{position:relative;overflow:hidden;border-radius:20px;padding:16px;margin-bottom:12px;cursor:pointer;background:var(--s1);border:1px solid rgba(255,255,255,.05)}
.g-day:before{content:"";position:absolute;right:-70px;top:-90px;width:230px;height:230px;border-radius:50%;background:radial-gradient(color-mix(in srgb,var(--ac) 22%,transparent),transparent 65%);pointer-events:none}
.g-day>*{position:relative}
.g-top{display:flex;align-items:center;gap:12px;min-height:84px}
.g-rings{width:84px;height:84px;flex:none;transform:rotate(-90deg);overflow:visible}
.g-rings circle{fill:none;stroke-linecap:round;stroke-width:9}
.g-rings .v{transition:stroke-dasharray 1.1s var(--out),opacity .3s}
.g-rings .v.full{filter:drop-shadow(0 0 4px currentColor)}
.g-mid{flex:1;min-width:0}
.g-lbl{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--tx2);text-transform:uppercase;white-space:nowrap}
.g-big{font-family:var(--cond);font-stretch:condensed;font-size:50px;font-weight:700;line-height:.95;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap}
.g-big small{font-size:20px;font-weight:600;color:var(--ac);margin-left:4px;letter-spacing:.04em}
.g-boucle{display:inline-block;margin-top:5px;font-size:12px;font-weight:600;color:var(--ac);background:var(--ac-soft);border-radius:999px;padding:3px 9px}
.g-mini{width:46px;height:58px;border-radius:10px;padding:1.5px;background:var(--metal);box-shadow:0 8px 20px -8px var(--rk-glow);flex:none;align-self:flex-start}
.g-mini div{height:100%;border-radius:9px;background:linear-gradient(160deg,var(--rk-deep),#000 80%);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--cond);font-stretch:condensed}
.g-mini b{font-size:23px;font-weight:800;line-height:1;background:var(--metal-t);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.g-mini span{font-size:8px;font-weight:700;letter-spacing:.14em;color:var(--rk);margin-top:2px}
.g-legend{display:flex;gap:14px;margin-top:12px;font-size:12px;color:var(--tx2);flex-wrap:wrap;row-gap:4px}
.g-legend span{display:flex;align-items:center;gap:5px;white-space:nowrap}
.g-legend i{width:7px;height:7px;border-radius:50%;flex:none}
.g-legend b{color:var(--tx);font-weight:600;font-variant-numeric:tabular-nums}
.g-lvrow{display:flex;align-items:center;gap:8px;margin:14px 0 7px;min-width:0}
.g-lvrow b{font-family:var(--cond);font-stretch:condensed;font-size:20px;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.g-lvrow .rkn{color:var(--rk);font-weight:600;font-size:13px;white-space:nowrap}
.g-lvrow .r{margin-left:auto;font-size:12px;color:var(--tx2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;font-variant-numeric:tabular-nums}
.g-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:12px}
.g-trio.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-trio>div{position:relative;background:rgba(255,255,255,.04);border-radius:11px;padding:8px 10px;min-width:0;display:flex;flex-wrap:wrap;align-items:center;column-gap:2px}
.g-trio small{flex:0 0 100%;font-size:10.5px;color:var(--tx2);line-height:1.2;margin-bottom:1px}
.g-trio b{font-size:17px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.g-trio b span{font-size:12px;color:var(--tx2);font-weight:500}
.g-reb{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 10px;border-radius:11px;font-size:12.5px;color:#FFD9A0;background:rgba(255,159,10,.1);border:1px solid rgba(255,159,10,.22)}
.g-reb>span{flex:1;min-width:0}
.g-reb b{color:#FFB340;font-weight:700;font-family:var(--cond);font-stretch:condensed;font-size:14px;letter-spacing:.04em;text-transform:uppercase}
.g-foot{margin-top:12px;padding-top:11px;border-top:1px solid rgba(255,255,255,.07);display:grid;gap:9px;font-size:13px}
.g-foot>div{display:flex;align-items:center;gap:9px;min-width:0}
.g-foot .x{flex:1;min-width:0;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.35}
.g-foot .x em{font-style:normal;color:var(--tx2)}
.g-foot .x.done{color:var(--tx2)}
/* zones de tap d'au moins 44 px sans changer le dessin */
.g-foot button.g-ck{position:relative}
.g-foot button.g-ck:after{content:"";position:absolute;inset:-10px}
.g-foot .g-pick{padding:12px 0 12px 14px;margin:-12px 0;font-size:13px}
.g-links{display:flex;gap:8px;flex-wrap:wrap}
.g-links button{position:relative;background:rgba(255,255,255,.06);border-radius:999px;padding:7px 13px;min-height:34px;font-size:12.5px;font-weight:600;color:var(--tx2)}
.g-links button:after{content:"";position:absolute;inset:-5px -3px}
.g-foot .g-night{display:flex;align-items:center;gap:9px;width:100%;min-width:0;text-align:left;padding:10px 0;margin:-10px 0;color:var(--tx);font-size:13px}
.g-foot .g-night .x em{font-style:normal;color:var(--tx2)}
.g-ico{width:24px;height:24px;flex:none;display:grid;place-items:center;color:var(--cyan)}
.g-ico svg{width:15px;height:15px}
.g-night .r{color:var(--tx2);font-size:17px;line-height:1;padding:0 2px}

/* ---------- chaîne du soir ---------- */
.g-chain{background:var(--s1);border-radius:16px;padding:4px 14px 12px}
.g-step{display:flex;align-items:center;gap:12px;padding:11px 0;position:relative;min-height:56px}
.g-step:not(.last):after{content:"";position:absolute;left:58px;top:44px;bottom:-12px;width:2px;background:linear-gradient(var(--s3),transparent)}
.g-step .h{width:36px;font-size:12px;color:var(--tx2);font-variant-numeric:tabular-nums;text-align:right;flex:none}
.g-step .o{width:32px;height:32px;border-radius:50%;flex:none;display:grid;place-items:center;border:1.5px solid var(--s3);background:#000;position:relative;z-index:1;font-size:12px;font-weight:700;color:var(--tx2);transition:background .25s var(--ease),border-color .25s,transform .15s;
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}
.g-step .o.ok{background:var(--cyan);border-color:var(--cyan);color:#000}
.g-step .o.mid{background:color-mix(in srgb,var(--cyan) 45%,#000);border-color:var(--cyan);color:#000}
.g-step.tap{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.g-step.tap:focus-visible{outline:2px solid var(--ac);outline-offset:2px;border-radius:12px}
.g-step .o.hold{transform:scale(.9);border-color:var(--cyan)}
.g-step .o.hold:after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--cyan);border-right-color:transparent;border-bottom-color:transparent;animation:g-spin .5s linear}
@keyframes g-spin{to{transform:rotate(270deg)}}
.g-step .x{flex:1;min-width:0}
.g-step .x .n{font-weight:500;font-size:14.5px}
.g-step .x .s{font-size:12px;color:var(--tx2);line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.g-step .x .s .g-xp{font-size:12px}
.g-step .go{background:var(--s2);border-radius:10px;padding:8px 12px;min-height:44px;font-size:13px;font-weight:600;color:var(--tx);white-space:nowrap;flex:none}
.g-step .go.pri{background:var(--ac);color:var(--ac-ink)}
.g-chainfoot{font-size:12px;color:var(--tx2);padding:10px 0 2px;border-top:1px solid var(--bd);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.g-chainfoot b{color:var(--tx);font-weight:600}
.g-chain .g-asp{margin-top:10px}

/* ---------- cartes du haut (une seule affichée à la fois, choisie par l'aide) ---------- */
.g-morn,.g-tcard{border-radius:20px;padding:16px;margin-bottom:12px;background:linear-gradient(160deg,color-mix(in srgb,var(--ac) 12%,var(--s1)),var(--s1) 62%);border:1px solid color-mix(in srgb,var(--ac) 22%,transparent);position:relative;overflow:hidden}
.g-morn .e{font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--ac);text-transform:uppercase}
.g-morn h3,.g-tcard h3{font-size:20px;font-weight:700;letter-spacing:-.02em;margin:3px 0 2px;line-height:1.25}
.g-morn .d{font-size:12.5px;color:var(--tx2)}
.g-tcard p{font-size:15px;line-height:1.45}
.g-q{margin-top:14px}
.g-q .l{font-size:14px;font-weight:500;margin-bottom:7px}
.g-q .note{font-size:12px;color:var(--tx2);margin-top:6px}
.g-seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.g-seg.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-seg button{background:rgba(255,255,255,.06);border-radius:10px;padding:10px 4px;min-height:44px;font-size:13.5px;font-weight:500;border:1.5px solid transparent;transition:.15s var(--ease);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g-seg button.on{border-color:var(--ac);color:var(--tx);background:var(--ac-soft)}
.g-seg button:disabled{opacity:.45;cursor:default}
.g-morn .g-cta{margin-top:16px}
.g-alt{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:14px}
.g-alt button{color:var(--ac);font-size:14px;font-weight:600;padding:10px 0;min-height:44px;text-align:left}
.g-alt .g-off{display:flex;flex-direction:column;color:var(--tx2);font-size:14px;padding:10px 0}
.g-alt .g-off small{font-size:12px}
.g-defis{list-style:none;margin:12px 0 0;background:rgba(0,0,0,.22);border-radius:14px;padding:4px 14px}
.g-defis li{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:14px}
.g-defis li:last-child{border-bottom:0}
.g-defis b{font-family:var(--cond);font-stretch:condensed;font-size:18px;font-weight:700;color:var(--ac);font-variant-numeric:tabular-nums}

/* ---------- puce de mode ---------- */
.g-mode{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:7px 12px 7px 11px;border-radius:999px;background:var(--s1);border:1px solid var(--bd);font-size:13px;font-weight:600;color:var(--tx);position:relative}
.g-mode:after{content:"";position:absolute;inset:-5px -2px}
.g-mode i{width:8px;height:8px;border-radius:50%;background:var(--ac);flex:none}
.g-mode span{color:var(--tx2);font-size:15px;line-height:1}
.g-mission{font-size:13px;color:var(--tx);margin:6px 2px 0}

/* ---------- « Sans mes fiches » et téléphone rangé ---------- */
.g-sf{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px 8px 10px;border-radius:999px;font-size:14px;font-weight:600;color:var(--tx);background:var(--s2);border:1.5px solid transparent;transition:background .15s,border-color .15s}
.g-sf .ic{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--s3);display:grid;place-items:center;font-size:11px;font-weight:800;flex:none}
.g-sf em{font-style:normal;font-size:12px;font-weight:600;color:var(--ac);font-variant-numeric:tabular-nums}
.g-sf.on{border-color:var(--ac);background:var(--ac-soft)}
.g-sf.on .ic{background:var(--ac);border-color:var(--ac);color:var(--ac-ink)}
.g-sf.on em{color:var(--tx2)}
.nowcard .acts .g-sf{flex:0 0 auto;background:rgba(0,0,0,.28);color:#fff;border-color:rgba(255,255,255,.35);border-style:dashed;padding:8px 14px 8px 10px;font-size:13.5px}
.nowcard .acts .g-sf em{color:rgba(255,255,255,.85)}
.nowcard .acts .g-sf .ic{border-color:rgba(255,255,255,.6)}
.nowcard .acts .g-sf.on{background:rgba(0,0,0,.4);border-style:solid;border-color:#fff}
.nowcard .acts .g-sf.on .ic{background:#fff;border-color:#fff;color:#000}
.g-sfwrap{margin-top:18px}
.g-sfhead{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:12.5px;color:var(--tx2);margin:0 2px 8px}
.g-sfhead small{font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}
.nowcard .acts .g-phw{flex:0 0 100%;order:-1;display:flex}
.nowcard .acts .g-ph{flex:none;display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:8px 14px 8px 11px;border-radius:999px;font-size:13.5px;font-weight:600;color:#fff;background:rgba(0,0,0,.22);border:1px dashed rgba(255,255,255,.4);transition:background .15s,border-color .15s,color .15s}
.nowcard .acts .g-ph svg{width:18px;height:18px;flex:none}
.nowcard .acts .g-ph.on{background:rgba(10,32,18,.78);border:1px solid rgba(48,209,88,.6)}
.nowcard .acts .g-ph.on svg,.nowcard .acts .g-ph.on i{color:#30D158}
.nowcard .acts .g-ph i{font-style:normal;font-size:12px;font-weight:800}
.nowcard .acts .g-ph.out{background:rgba(58,58,60,.82);border:1px solid transparent;color:rgba(255,255,255,.72)}

/* ---------- feuilles (ta nuit, la chose la plus importante, défis, période, questions du soir) ---------- */
.g-sh .g-sec{font-size:12px;color:var(--tx2);margin:20px 0 8px;display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.g-sh .g-sec b{color:var(--tx);font-weight:600;font-size:13px}
.g-sh .g-sec em{font-style:normal}
.g-sh .g-cta{margin-top:22px}
.g-sh .g-tact .g-cta{margin-top:0}
.g-sh .ttl{font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.25;margin:4px 0 2px}
.g-sh .when{font-size:13px;color:var(--tx2);line-height:1.4}
.g-in{display:block;width:100%;margin-top:8px;background:var(--s2);border:1.5px solid transparent;border-radius:12px;padding:12px 14px;font-size:16px;color:var(--tx);min-height:46px}
.g-in:focus{outline:none;border-color:var(--ac)}
textarea.g-in{resize:vertical;min-height:84px;line-height:1.4}
.g-ok{font-size:13px;color:var(--tx2);padding:10px 2px}
.g-evs{display:grid;gap:6px}
.g-ev{display:flex;align-items:center;gap:10px;background:var(--s2);border-radius:12px;padding:11px 12px;min-height:48px;text-align:left;border:1.5px solid transparent;transition:.15s var(--ease);width:100%}
.g-ev .n{flex:1;min-width:0;font-size:14.5px;font-weight:500}
.g-ev .n small{display:block;font-size:12px;color:var(--tx2);font-weight:400;margin-top:1px}
.g-ev.on{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 12%,var(--s2))}
.g-ev:disabled{opacity:.55;cursor:default}
.g-rd{width:18px;height:18px;flex:none;border-radius:50%;border:1.5px solid var(--s3);transition:.15s var(--ease)}
.g-ev.on .g-rd{border:5px solid var(--ac)}
.g-add{display:inline-block;margin-top:8px;padding:11px 2px;min-height:44px;color:var(--ac);font-weight:600;font-size:14px}
.g-cnt{display:flex;align-items:center;gap:6px;flex:none}
.g-cnt button{width:44px;height:44px;border-radius:12px;background:var(--s3);font-size:20px;font-weight:600}
.g-cnt b{font-family:var(--cond);font-stretch:condensed;font-size:24px;font-weight:700;min-width:30px;text-align:center;font-variant-numeric:tabular-nums}
/* défis : liste du catalogue */
.g-dlist{display:grid;gap:6px;margin-top:16px}
.g-drow{display:flex;align-items:center;gap:8px;background:var(--s2);border-radius:12px;padding:4px 6px 4px 4px;border:1.5px solid transparent}
.g-drow.on{border-color:color-mix(in srgb,var(--ac) 60%,transparent)}
.g-dtg{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:8px;min-height:44px;text-align:left;font-size:14.5px}
/* période : liste, formulaire, jours d'épreuve, pause du soir */
.g-mlist{display:grid;gap:6px}
.g-mrow{display:flex;gap:10px;align-items:flex-start;background:var(--s2);border-radius:12px;padding:10px 12px;flex-wrap:wrap}
.g-mrow .x{flex:1;min-width:150px}
.g-mrow .n{font-weight:600;font-size:14.5px}
.g-mrow .s{font-size:12.5px;color:var(--tx2)}
.g-mrow .a{display:flex;flex-wrap:wrap;gap:6px}
.g-mrow .a button{background:var(--s3);border-radius:10px;padding:8px 11px;min-height:40px;font-size:13px;font-weight:600}
.g-madd{display:flex;flex-wrap:wrap;gap:8px}
.g-madd button{background:var(--s2);border-radius:999px;padding:10px 16px;min-height:44px;font-size:14px;font-weight:600}
.g-mform{margin-top:6px}
.g-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.g-date{display:block;background:var(--s2);border-radius:12px;padding:8px 10px 4px 12px;min-width:0}
.g-date span{display:block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--tx2)}
.g-date input,.g-ep input{display:block;width:100%;min-width:0;height:40px;border:0;background:none;color:var(--tx);font-size:16px;color-scheme:dark;-webkit-appearance:none;appearance:none}
.g-date input:disabled{color:var(--tx2)}
.g-eplist{display:grid;gap:8px}
.g-ep{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:6px;background:var(--s2);border-radius:12px;padding:6px 6px 8px 12px;align-items:center}
.g-ep .g-seg{grid-column:1 / -1}
.g-ep .g-seg button{background:var(--s3)}
.g-ep .g-seg button.on{background:var(--ac-soft)}
.g-x1{width:44px;height:44px;border-radius:22px;color:var(--tx2);grid-row:1;grid-column:2}
.g-pnow{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--s2);border-radius:12px;padding:10px 12px;font-size:14px}
.g-pnow button{color:var(--ac);font-weight:600;padding:10px 4px;min-height:44px}
.g-sh .tawrap{position:relative}

/* ---------- ta nuit (carte « Hier soir » et feuille) ---------- */
.g-pips{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.g-pips button{min-height:44px;border-radius:999px;background:rgba(255,255,255,.06);border:1.5px solid transparent;font-size:15px;font-weight:600;color:var(--tx);font-variant-numeric:tabular-nums;transition:.15s var(--ease);touch-action:manipulation}
.g-pips button.on{border-color:var(--ac);background:var(--ac-soft)}
.g-sh .g-pips button{background:var(--s2)}
.g-nt{margin-top:14px;padding:12px;border-radius:16px;background:rgba(0,0,0,.28)}
.g-sh .g-nt{margin-top:18px;padding:0;background:none}
.g-nhead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:9px}
.g-nhead>b{font-size:13.5px;font-weight:600}
.g-ndur{display:flex;align-items:baseline;gap:6px;color:var(--cyan);white-space:nowrap}
.g-ndur small{font-size:11.5px;color:var(--tx2)}
.g-ndur b{font-family:var(--cond);font-stretch:condensed;font-size:24px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.g-ndur.un b{color:var(--tx2)}
.g-ntimes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.g-tm{display:block;min-width:0;background:rgba(255,255,255,.06);border-radius:14px;padding:8px 10px 4px 12px;cursor:pointer;border:1.5px solid transparent;transition:border-color .15s}
.g-sh .g-tm{background:var(--s2)}
.g-tm:focus-within{border-color:var(--ac)}
.g-tm span{display:block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--tx2)}
.g-tm input{display:block;width:100%;min-width:0;height:44px;padding:0;margin:0;border:0;background:none;color:var(--tx);font-family:var(--cond);font-stretch:condensed;font-size:30px;font-weight:700;letter-spacing:.01em;font-variant-numeric:tabular-nums;-webkit-appearance:none;appearance:none;color-scheme:dark;text-align:left}
.g-tm input:focus{outline:none}
.g-tm input::-webkit-date-and-time-value{text-align:left}
.g-tm input::-webkit-datetime-edit{padding:0}
.g-tm input::-webkit-calendar-picker-indicator{opacity:.4;cursor:pointer;width:14px;height:14px;padding:0;margin:0 0 0 2px}
.g-tm.un input{color:var(--tx2)}
.g-nl{font-size:12.5px;color:var(--tx);font-weight:500;margin:12px 0 7px}
.g-nl em{font-style:normal;color:var(--tx2);font-weight:400}

/* ---------- plein écran commun (rapport du jour, passage de niveau, objectif réussi) ---------- */
.g-ov{position:fixed;inset:0;z-index:70;background:#000;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;opacity:0;transition:opacity .25s var(--ease);-webkit-overflow-scrolling:touch}
.g-ov.on{opacity:1}
.g-ov .g-x{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));right:12px;z-index:5;width:44px;height:44px;border-radius:50%;background:var(--s1);color:var(--tx2);font-size:14px}
body.g-lock{overflow:hidden}
/* une feuille ouverte depuis un plein écran (un « ? ») passe devant lui, le message aussi */
body.g-lock .scrim,body.g-lock #scrim{z-index:75}
body.g-lock .drawer,body.g-lock #drawer{z-index:76}
body.g-lock .toast,body.g-lock #toast{z-index:77}

/* ---------- rapport du jour ---------- */
.g-rp{position:relative;max-width:480px;margin:0 auto;min-height:100%;padding:calc(18px + env(safe-area-inset-top,0px)) 16px calc(28px + env(safe-area-inset-bottom,0px));
  background:radial-gradient(420px 320px at 50% 90px,color-mix(in srgb,var(--rk) 16%,transparent),transparent 70%)}
.g-rphead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 10px;margin:4px 54px 0 0}
.g-rphead .e{white-space:nowrap;font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--rk);text-transform:uppercase}
.g-rphead .d{font-size:13px;color:var(--tx2);margin-top:2px}
.g-pill{white-space:nowrap;flex:none;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:var(--s1);color:var(--tx2);font-size:12px;font-weight:600}
.g-pill i{width:16px;height:16px;border-radius:50%;background:var(--s3);color:var(--tx);display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:800}
.g-pill.ok{background:rgba(48,209,88,.13);color:var(--green)}
.g-pill.ok i{background:var(--green);color:#000}
.g-hero{text-align:center;padding:14px 0 12px}
.g-hero .tot{font-family:var(--cond);font-stretch:condensed;font-size:84px;font-weight:800;line-height:.9;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.g-hero .u{display:flex;justify-content:center;align-items:center;gap:4px;font-size:12px;font-weight:700;letter-spacing:.2em;color:var(--rk);margin-top:2px}
.g-hero .meta{display:flex;justify-content:center;gap:4px 14px;margin-top:10px;font-size:13px;color:var(--tx2);flex-wrap:wrap}
.g-hero .meta span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.g-hero .meta b{color:var(--tx);font-weight:600;font-variant-numeric:tabular-nums}
.g-rpnote{margin:2px 0 10px;padding:12px 14px;border-radius:14px;background:var(--s1);font-size:14px;line-height:1.4;text-align:center}
.g-lines{background:rgba(28,28,30,.86);border-radius:18px;padding:4px 14px 8px}
.g-lines .grp{font-size:10.5px;font-weight:700;letter-spacing:.14em;color:#8E8E93;text-transform:uppercase;padding:10px 0 3px}
.g-ln{display:flex;align-items:center;gap:10px;padding:4px 0;opacity:.18;transform:translateX(-6px);transition:opacity .3s,transform .4s var(--out)}
.g-ln.in{opacity:1;transform:none}
.g-ln .n{flex:1;min-width:0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g-ln .n em{font-style:normal;color:var(--tx2);font-size:12.5px}
.g-ln .v{font-family:var(--cond);font-stretch:condensed;font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;min-width:44px;text-align:right}
.g-ln.mult .n,.g-ln.mult .v{color:var(--rk-hi)}
.g-ln .x2{font-family:var(--cond);font-stretch:condensed;font-size:12px;font-weight:700;color:#FFB340;background:rgba(255,159,10,.14);border-radius:999px;padding:1px 6px;margin-right:6px;vertical-align:1px}
.g-ln.imp .n:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ac);margin-right:8px;vertical-align:2px;box-shadow:0 0 8px var(--ac)}
.g-empty{font-size:13.5px;color:var(--tx2);padding:14px 0 8px;text-align:center}
.g-lvbox{margin-top:12px;background:var(--s1);border-radius:18px;padding:14px 16px;position:relative;overflow:hidden;transition:box-shadow .5s}
.g-lvbox .t{display:flex;align-items:center;gap:8px;position:relative;flex-wrap:wrap}
.g-lvbox .t b{font-family:var(--cond);font-stretch:condensed;font-size:22px;font-weight:700}
.g-lvbox .t .rkn{color:var(--rk);font-size:13px;font-weight:600}
.g-lvbox .t .c{font-size:12px;color:var(--tx2);margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap}
.g-lvbox .g-bar{height:8px;margin-top:9px;position:relative}
.g-lvbox.up{box-shadow:0 0 0 1px var(--rk),0 0 40px -6px var(--rk-glow)}
.g-lvbox .burst{position:absolute;inset:0;background:radial-gradient(circle at 50% 100%,var(--rk-glow),transparent 70%);opacity:0;transition:opacity .6s}
.g-lvbox.up .burst{opacity:1}
.g-lvbadge{display:none;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:color-mix(in srgb,var(--rk) 18%,transparent);border:1px solid color-mix(in srgb,var(--rk) 50%,transparent);color:var(--rk-hi)}
.g-lvbox.up .g-lvbadge{display:inline-block;animation:g-pop .5s var(--out)}
@keyframes g-pop{0%{transform:scale(.4);opacity:0}100%{transform:none;opacity:1}}
.g-cardd{display:flex;align-items:center;gap:12px;margin-top:10px;padding:12px 14px;border-radius:16px;background:var(--s1)}
.g-cardd .x{flex:1;font-size:13px;color:var(--tx2);min-width:0}
.g-cardd .x b{color:var(--tx);font-weight:600}
.g-cardd .up{color:var(--green);font-weight:600}
.g-rpact{margin-top:14px}
.g-rpact .g-cta{margin:0}

/* ---------- passage de niveau, objectif réussi ---------- */
.g-lu{position:relative;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:calc(60px + env(safe-area-inset-top,0px)) 28px calc(40px + env(safe-area-inset-bottom,0px));overflow:hidden;max-width:480px;margin:0 auto}
.g-lu>*{position:relative}
.g-lu .glow{position:absolute;left:50%;top:50%;width:560px;height:560px;border-radius:50%;background:radial-gradient(var(--rk-glow),transparent 58%);transform:translate(-50%,-50%) scale(.3);opacity:0;animation:g-luGlow 1.6s var(--out) .15s forwards;pointer-events:none}
@keyframes g-luGlow{to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.g-lu .rays{position:absolute;left:50%;top:50%;width:760px;height:760px;margin:-380px 0 0 -380px;background:repeating-conic-gradient(rgba(255,255,255,.04) 0 1.5deg,transparent 1.5deg 10deg);-webkit-mask:radial-gradient(circle,#000 8%,transparent 52%);mask:radial-gradient(circle,#000 8%,transparent 52%);animation:g-luSpin 60s linear infinite,g-luFade 1.4s .4s both;pointer-events:none}
@keyframes g-luSpin{to{transform:rotate(360deg)}}
@keyframes g-luFade{from{opacity:0}}
.g-lu .ring{position:absolute;left:50%;top:50%;width:252px;height:252px;margin:-126px 0 0 -126px;transform:rotate(-90deg)}
.g-lu .ring circle{fill:none;stroke-width:1.2}
.g-lu .ring .draw{stroke:var(--rk);stroke-dasharray:100;stroke-dashoffset:100;animation:g-luDraw 1.4s var(--out) .4s forwards;filter:drop-shadow(0 0 6px var(--rk))}
@keyframes g-luDraw{to{stroke-dashoffset:0}}
.g-lu .ey{font-size:12px;font-weight:800;letter-spacing:.3em;text-transform:uppercase;color:var(--rk);animation:g-luRise .6s var(--out) .2s both}
@keyframes g-luRise{from{opacity:0;transform:translateY(16px)}}
.g-lu .dig{position:relative;height:200px;width:100%;margin:36px 0 34px;font-family:var(--cond);font-stretch:condensed;font-weight:800;font-size:190px;line-height:200px;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.g-lu .dig.long{font-size:140px}
.g-lu .dig span{position:absolute;left:0;right:0;top:0}
.g-lu .dig .old{color:#2a2a2c;animation:g-luOut .5s var(--ease) .6s forwards}
@keyframes g-luOut{to{opacity:0;transform:translateY(-50px) scale(.9);filter:blur(8px)}}
.g-lu .dig .new{opacity:0;animation:g-luIn .9s var(--out) .8s forwards}
@keyframes g-luIn{from{opacity:0;transform:translateY(60px) scale(.86);filter:blur(14px)}to{opacity:1;transform:none;filter:drop-shadow(0 0 30px var(--rk-glow))}}
.g-lu .ttl{font-size:24px;font-weight:700;letter-spacing:-.02em;animation:g-luRise .6s var(--out) 1.3s both;overflow-wrap:anywhere}
.g-lu .ttl span{color:var(--rk-hi)}
.g-lu .sub2{font-size:14px;color:var(--tx2);margin-top:6px;animation:g-luRise .6s var(--out) 1.45s both}
.g-lu .nxt{width:100%;margin-top:28px;padding:14px 16px;border-radius:16px;background:rgba(28,28,30,.8);border:1px solid rgba(255,255,255,.06);text-align:left;animation:g-luRise .6s var(--out) 1.6s both}
.g-lu .nxt .t{display:flex;justify-content:space-between;gap:10px;font-size:13px;margin-bottom:8px}
.g-lu .nxt .t b{font-weight:600}
.g-lu .nxt .t span{color:var(--tx2);font-variant-numeric:tabular-nums;white-space:nowrap}
.g-lu .nxt .g-bar i{transition:width 1s var(--out)}
.g-lu .nxt .f{font-size:12.5px;color:var(--tx2);margin-top:9px;line-height:1.4}
.g-lu .go2{margin-top:22px;padding:13px 40px;min-height:48px;border-radius:999px;border:1px solid color-mix(in srgb,var(--rk) 60%,transparent);color:var(--rk-hi);font-weight:600;font-size:15px;animation:g-luRise .6s var(--out) 1.9s both}
.g-lu .medalw{position:relative;margin:14px 0 6px}
.g-lu .medal{position:relative;display:block;width:150px;height:150px;animation:g-luRise .7s var(--out) .3s both}
.g-lu .medal .draw{stroke-dasharray:100;stroke-dashoffset:100;animation:g-luDraw 1.2s var(--out) .5s forwards}
.g-lu .g-mdate{font-family:var(--cond);font-stretch:condensed;font-weight:700;font-size:12px;letter-spacing:3px;fill:var(--rk-hi)}
.g-lu .prize{font-family:var(--cond);font-stretch:condensed;font-size:76px;font-weight:800;line-height:1;margin-top:10px;font-variant-numeric:tabular-nums;animation:g-luRise .6s var(--out) 1s both}
.g-lu .prize small{font-size:26px;letter-spacing:.06em;margin-left:6px}
.g-lu.win .ttl{animation-delay:.8s;margin-top:4px}

/* ---------- petits écrans ---------- */
@media(max-width:380px){
  .g-big{font-size:44px}
  .g-rings{width:76px;height:76px}
  .g-hero .tot{font-size:72px}
  .g-lu .dig{font-size:160px}
  .g-lu .dig.long{font-size:120px}
  .g-trio>div{padding:8px}
  .g-legend{gap:10px}
}

/* ---------- mouvement réduit : tout est affiché, rien ne bouge ---------- */
@media(prefers-reduced-motion:reduce){
  .g-fxp,.g-fxp.calm{display:none}
  .g-rings .v,.g-bar i,.g-ln,.g-lvbox,.g-lvbox .burst{transition:none}
  .g-ln{opacity:1;transform:none}
  .g-lu *,.g-lu .dig .new,.g-lu .dig .old{animation-duration:.01ms!important;animation-delay:0s!important}
  .g-lu .rays{animation:none}
  .g-step .o.hold:after{animation:none}
  .g-ov{transition:none}
}
