/* Bilber — couche « Liquid Glass » (style des apps Apple actuelles).
   Principe : le verre est réservé à la navigation qui flotte au-dessus du contenu
   (barre d'onglets, en-tête, sélecteur, feuilles, boutons flottants, toasts). Le contenu reste net et opaque.
   Réfraction réelle impossible en CSS pur : verre = flou + saturation + reflets spéculaires ;
   une distorsion SVG est ajoutée en amélioration progressive sur les navigateurs Chromium. */
:root{
  --lg-tint:rgba(255,255,255,.62);
  --lg-tint-strong:rgba(255,255,255,.72);
  --lg-blur:blur(22px) saturate(185%);
  --lg-edge:rgba(255,255,255,.75);
  --lg-shadow:0 10px 34px rgba(6,42,36,.16),0 2px 8px rgba(6,42,36,.08);
  --lg-spec:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 1px rgba(255,255,255,.35),inset 0 0 0 .5px rgba(255,255,255,.55);
  --lg-radius-sheet:30px;
  --lg-spring:cubic-bezier(.34,1.56,.64,1);
  --hdr-h:64px;
}
body{background:radial-gradient(1200px 600px at 10% -10%,#dcefe6 0,transparent 60%),radial-gradient(900px 500px at 110% 110%,#E9E3CF 0,transparent 55%),#F3EEDB}

/* ---------- matériau ---------- */
.lg,.hdr .pav,.ptschip,.toptabs,.pillnav,.toast,.csheet,.scan-round,.sb-btn,.cprice{
  -webkit-backdrop-filter:var(--lg-blur);backdrop-filter:var(--lg-blur);
}

/* ---------- en-têtes : flottants, le contenu défile dessous (effet de bord de défilement) ---------- */
.screen>.hdr{position:absolute;top:0;left:0;right:0;z-index:30;min-height:calc(var(--hdr-h) + var(--topsafe));background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
.screen>.hdr::before{content:"";position:absolute;inset:0 0 -18px 0;z-index:-1;pointer-events:none;
  background:linear-gradient(to bottom,rgba(255,255,255,.82),rgba(255,255,255,.55) 62%,rgba(255,255,255,0));
  -webkit-backdrop-filter:blur(14px) saturate(170%);backdrop-filter:blur(14px) saturate(170%);
  -webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent);mask-image:linear-gradient(to bottom,#000 55%,transparent)}
.screen:has(>.hdr)>.body{padding-top:calc(var(--hdr-h) + var(--topsafe))}
#s-main>.body{padding-top:calc(var(--hdr-h) + 64px + var(--topsafe))}
.screen:has(>.hdr)>.body>.pbody,.screen:has(>.hdr)>.body>.hfeed{padding-top:6px}

/* boutons de l'en-tête : capsules de verre */
.hdr .pav,.ptschip,.hdr .back{background:var(--lg-tint);border:1px solid var(--lg-edge);box-shadow:var(--lg-spec),0 4px 14px rgba(6,42,36,.10)}
.hdr .pav{color:#062A24}
.hdr .back{border-radius:999px;padding:8px 14px 8px 10px;-webkit-backdrop-filter:var(--lg-blur);backdrop-filter:var(--lg-blur);font-weight:500}
.ptschip{color:var(--sage-d)}

/* ---------- sélecteur segmenté (Accueil / Explorer / Rechercher) ---------- */
.toptabs{position:absolute;z-index:29;top:calc(var(--hdr-h) + var(--topsafe));left:14px;right:14px;padding:4px;gap:2px;border-radius:999px;
  background:var(--lg-tint);border:1px solid var(--lg-edge);box-shadow:var(--lg-spec),var(--lg-shadow)}
.ttab,.ttab:first-child,.ttab:last-child{border:none!important;border-radius:999px;background:transparent;padding:10px 6px;color:#4d5a55;transition:background .35s var(--ease),color .25s,transform .45s var(--lg-spring)}
.ttab.on{background:rgba(255,255,255,.88);color:var(--ink);box-shadow:inset 0 1px 0 #fff,0 3px 12px rgba(6,42,36,.14)}
.ttab:active{transform:scale(.96);opacity:1}

/* ---------- barre d'onglets flottante ---------- */
.pillnav{background:var(--lg-tint);border:1px solid var(--lg-edge);box-shadow:var(--lg-spec),0 16px 44px rgba(6,42,36,.22);padding:6px;gap:4px;transition:transform .5s var(--lg-spring),padding .35s var(--ease)}
.pnb{color:#55625d;transition:background .35s var(--ease),color .25s,padding .45s var(--lg-spring),transform .45s var(--lg-spring)}
.pnb.on{background:rgba(12,107,77,.92);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -1px 0 rgba(0,0,0,.08),0 6px 16px rgba(12,107,77,.35)}
.pnb.scan{background:rgba(20,21,24,.9);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 6px 16px rgba(20,21,24,.3)}
.pnb:active{transform:scale(1.1)}
/* réduction au défilement, comme la barre d'onglets d'iOS */
.pillnav.lg-min{transform:translateX(-50%) scale(.88);padding:4px}
.pillnav.lg-min .pnb.on span{max-width:0;opacity:0}
.pillnav.lg-min .pnb.on{padding:0 12px}

/* ---------- boutons principaux : verre teinté (« prominent ») ---------- */
.btn,.hscan{position:relative;overflow:hidden;border-radius:999px;transition:transform .45s var(--lg-spring),box-shadow .3s}
.btn::after,.hscan::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,.06) 48%,rgba(255,255,255,0) 52%,rgba(255,255,255,.10));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -1px 0 rgba(0,0,0,.10)}
.btn{background:linear-gradient(180deg,#1f9270,#0C6B4D);box-shadow:0 10px 24px rgba(12,107,77,.28)}
.hscan{background:linear-gradient(180deg,#2a2c31,#062A24)}
.btn:active,.hscan:active{transform:scale(.97)}
.cbtn2,.btn-ghost,.btn-logout{border-radius:999px}
.fchip{border-radius:999px;transition:transform .45s var(--lg-spring),background .25s}
.fchip:active{transform:scale(.95)}
.fchip.on{box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 4px 12px rgba(12,107,77,.25)}

/* ---------- feuilles : verre flottant, coins continus ---------- */
.csheet-bg{background:rgba(12,20,17,.22)}
.csheet{margin:0 8px calc(8px + var(--botsafe));width:calc(100% - 16px);border-radius:var(--lg-radius-sheet);background:var(--lg-tint-strong);
  border:1px solid var(--lg-edge);box-shadow:var(--lg-spec),0 -10px 50px rgba(6,42,36,.22);animation:lgSheetIn .55s var(--lg-spring)}
@keyframes lgSheetIn{from{transform:translateY(40px) scale(.97);opacity:.4}to{transform:none;opacity:1}}
.csheet .grip{background:rgba(60,70,66,.25)}
.csheet .close{background:var(--lg-tint);border:1px solid var(--lg-edge);border-radius:999px;padding:0 14px;box-shadow:var(--lg-spec)}
.csheet input,.csheet textarea,.csheet select{background:rgba(255,255,255,.78)}

/* ---------- toast : capsule de verre sombre ---------- */
.toast{background:rgba(22,26,24,.72);border:1px solid rgba(255,255,255,.14);border-radius:999px;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 12px 30px rgba(0,0,0,.25)}

/* ---------- scanner : commandes en verre sombre sur la caméra ---------- */
.scan-round{background:rgba(40,44,42,.38);border:1px solid rgba(255,255,255,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 22px rgba(0,0,0,.25)}
.scan-round.active{background:rgba(255,255,255,.88);color:var(--ink)}
.sb-btn{background:rgba(40,44,42,.38);border:1px solid rgba(255,255,255,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 22px rgba(0,0,0,.25)}
.sb-btn.photo{background:rgba(255,255,255,.86);color:var(--ink)}
.cprice{background:rgba(20,22,21,.62);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:4px 10px}

/* ---------- contenu : net, arrondis plus doux (pas de verre) ---------- */
.lcard,.scan-card,.acccard,.grp,.ds,.ccomp,.cmarket,.creward,.catcard,.cact{border-radius:22px}
.scan-card .ic,.creward .ri{border-radius:14px}
.cwallet{border-radius:26px;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 14px 34px rgba(15,94,70,.28)}
.cpromo{border-radius:22px}

/* ---------- accessibilité ---------- */
@media (prefers-reduced-transparency: reduce){
  .lg,.hdr .pav,.ptschip,.toptabs,.pillnav,.toast,.csheet,.scan-round,.sb-btn,.cprice,.hdr .back{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  .toptabs,.pillnav,.csheet,.hdr .pav,.ptschip,.hdr .back{background:#fff!important}
  .screen>.hdr::before{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;-webkit-mask-image:none;mask-image:none}
  .toast{background:#062A24}
}
@media (prefers-contrast: more){
  .toptabs,.pillnav,.csheet,.hdr .pav,.ptschip,.hdr .back{border-color:rgba(6,42,36,.45)}
  .pnb,.ttab{color:var(--ink)}
}
@media (prefers-reduced-motion: reduce){
  .pillnav,.pnb,.ttab,.btn,.hscan,.fchip{transition:none!important}
  .csheet{animation:none}
}
/* réfraction (Chromium uniquement : ignorée ailleurs, le flou reste) */
.lg-refract .pillnav,.lg-refract .toptabs{-webkit-backdrop-filter:url(#lg-refraction) blur(16px) saturate(185%);backdrop-filter:url(#lg-refraction) blur(16px) saturate(185%)}

/* ================= récompenses et micro-animations ================= */
.cpts{display:inline-flex;align-items:center;gap:3px;margin-left:6px;padding:2px 8px 2px 6px;border-radius:999px;font-size:11.5px;font-weight:800;letter-spacing:.01em;
  color:#7a4d00;background:linear-gradient(180deg,#ffe9a8,#ffd66b);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 2px 6px rgba(217,145,0,.25);vertical-align:middle;white-space:nowrap}
.cpts svg{width:11px;height:11px;fill:#b87700;stroke:#b87700}
.cact .cpts{margin:2px 0 0}
.btn .cpts{color:#6a4300}
.cearn{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#fff7df,#fff2c8);border:1px solid #f3dfa4;color:#6a4a08;border-radius:16px;padding:11px 14px;font-size:13.5px;margin:0 0 14px}
.cearn svg{width:22px;height:22px;fill:#e0a200;stroke:#b87700;flex:none}
.ptschip.glow{box-shadow:0 0 0 6px rgba(245,196,81,.35),0 0 26px rgba(245,196,81,.75),var(--lg-spec)}
.ptschip svg{fill:#e8b100;stroke:#b87700}
.cfly{position:fixed;left:0;top:0;z-index:300;pointer-events:none;display:flex;align-items:center;gap:5px;padding:7px 13px 7px 10px;border-radius:999px;
  font-weight:800;font-size:16px;color:#5f3d00;background:linear-gradient(180deg,#fff1b8,#ffc93f);border:1px solid rgba(255,255,255,.8);
  box-shadow:inset 0 1px 0 #fff,0 10px 26px rgba(217,145,0,.45);will-change:transform}
.cfly svg{width:17px;height:17px;fill:#e09a00;stroke:#a56a00}
.cspark{position:fixed;left:-4px;top:-4px;width:8px;height:8px;border-radius:2px;z-index:299;pointer-events:none;will-change:transform}
.clevel{position:fixed;left:50%;top:40%;z-index:310;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:4px;padding:22px 34px;border-radius:28px;
  background:rgba(255,255,255,.72);-webkit-backdrop-filter:var(--lg-blur);backdrop-filter:var(--lg-blur);border:1px solid var(--lg-edge);box-shadow:var(--lg-spec),0 24px 60px rgba(6,42,36,.28);
  animation:lvIn .6s var(--lg-spring) both;text-align:center}
.clevel .ls{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(180deg,#ffe38a,#ffbf1f);box-shadow:inset 0 1px 0 #fff,0 8px 20px rgba(217,145,0,.4);margin-bottom:6px}
.clevel .ls svg{width:30px;height:30px;fill:#fff;stroke:#b87700}
.clevel b{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.clevel span:last-child{font-size:24px;font-weight:800;color:var(--sage-d)}
.clevel.out{animation:lvOut .45s ease both}
@keyframes lvIn{from{opacity:0;transform:translate(-50%,-40%) scale(.7)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes lvOut{to{opacity:0;transform:translate(-50%,-60%) scale(.9)}}

/* squelettes de chargement */
.cskel{pointer-events:none}
.cskel .thumb,.cskel .cb i{background:linear-gradient(90deg,#F3EEDB 0,#f7f9f8 40%,#F3EEDB 80%);background-size:300% 100%;animation:shim 1.3s linear infinite}
.cskel .cb i{display:block;height:12px;border-radius:6px;margin:4px 0 8px;width:80%}
.cskel .cb i.s{width:50%}
@keyframes shim{from{background-position:100% 0}to{background-position:-100% 0}}

/* apparitions en cascade (listes, grilles, rangées) */
@keyframes cIn{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
.grid>.lcard:not(.cskel),.lane>.lcard:not(.cskel),#cres>.rowc,.catgrid>.catcard,.creward,.cfield,.chist,.crev,.coffer{animation:cIn .5s var(--lg-spring) both}
.grid>*:nth-child(2),.lane>*:nth-child(2),#cres>*:nth-child(2),.catgrid>*:nth-child(2){animation-delay:40ms}
.grid>*:nth-child(3),.lane>*:nth-child(3),#cres>*:nth-child(3),.catgrid>*:nth-child(3){animation-delay:80ms}
.grid>*:nth-child(4),.lane>*:nth-child(4),#cres>*:nth-child(4),.catgrid>*:nth-child(4){animation-delay:120ms}
.grid>*:nth-child(5),.lane>*:nth-child(5),#cres>*:nth-child(5),.catgrid>*:nth-child(5){animation-delay:160ms}
.grid>*:nth-child(6),.lane>*:nth-child(6),#cres>*:nth-child(6),.catgrid>*:nth-child(6){animation-delay:200ms}
.grid>*:nth-child(n+7),.lane>*:nth-child(n+7),#cres>*:nth-child(n+7),.catgrid>*:nth-child(n+7){animation-delay:240ms}
.hfeed,.pbody{animation:cFade .35s var(--ease) both}
@keyframes cFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.cgal img{animation:cImg .55s var(--lg-spring) both}
@keyframes cImg{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.ccomp .bar i{transition:width 1s cubic-bezier(.22,1,.36,1) .15s}
.cstar{transition:transform .35s var(--lg-spring),background .2s,color .2s}
.cstar.on{animation:starPop .45s var(--lg-spring)}
@keyframes starPop{0%{transform:scale(.8)}60%{transform:scale(1.22)}100%{transform:scale(1)}}
.cact{transition:transform .45s var(--lg-spring),box-shadow .25s}
.cact:active,.catcard:active,.lcard:active,.creward button:active,.coffer button:active{transform:scale(.95)}
.cbanner.ok{animation:okIn .6s var(--lg-spring) both}
@keyframes okIn{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}
.cwallet .n{animation:cImg .6s var(--lg-spring) both}

@media (prefers-reduced-motion: reduce){
  .grid>*,.lane>*,#cres>*,.catgrid>*,.creward,.cfield,.chist,.crev,.coffer,.hfeed,.pbody,.cgal img,.cstar.on,.cbanner.ok,.cwallet .n,.clevel{animation:none!important}
  .cskel .thumb,.cskel .cb i{animation:none}
  .ccomp .bar i{transition:none}
}
