
.lat-carte{position:fixed;right:14px;top:50%;z-index:45;width:212px;
  background:#fff;border:1px solid var(--line,rgba(11,15,34,.10));border-radius:18px;
  box-shadow:0 2px 6px rgba(11,15,34,.05),0 18px 44px -8px rgba(109,59,245,.38);
  opacity:0;visibility:hidden;transform:translateY(-50%) translateX(14px);
  transition:opacity .4s ease,transform .4s ease,visibility 0s .4s,border-color .2s ease}
.lat-carte.on{opacity:1;visibility:visible;transform:translateY(-50%);transition-delay:0s}
.lat-carte.on:hover{transform:translateY(-50%) scale(1.02);border-color:rgba(109,59,245,.5);
  box-shadow:0 2px 6px rgba(11,15,34,.05),0 22px 52px -8px rgba(109,59,245,.5)}
.lat-carte .corps{display:block;padding:13px 14px 14px;text-decoration:none}
.lat-carte .lk{display:block;font-family:var(--f-mono,ui-monospace,monospace);font-size:9.5px;
  font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#5A2BDA;margin-bottom:10px}
.lat-carte svg{display:block;width:100%;height:auto}
.lat-carte b{display:block;margin-top:10px;font-family:var(--f-sans,sans-serif);font-size:13.5px;
  font-weight:600;letter-spacing:-.01em;line-height:1.35;color:var(--ink,#0B0F22)}
.lat-carte b .nb{white-space:nowrap}
.lat-carte b i{font-style:normal;color:#5A2BDA;display:inline-block;transition:transform .2s ease}
.lat-carte.on:hover b i{transform:translateX(3px)}
.lat-carte .x{position:absolute;top:6px;right:6px;width:22px;height:22px;border:0;background:none;
  cursor:pointer;border-radius:7px;display:grid;place-items:center;
  color:var(--ink-4,#606A90);font-size:11px;line-height:1}
.lat-carte .x:hover{background:var(--bg,#F2F4FA);color:var(--ink,#0B0F22)}
@supports (offset-path: path("M0 0H1")) {
  .lat-pk{cx:0;cy:0;offset-path:path("M38 32C60 40 116 24 138 32");
    animation:latPk 2.8s linear infinite}
}
@keyframes latPk{0%{offset-distance:0%;opacity:0}10%{opacity:1}
  90%{opacity:1}100%{offset-distance:100%;opacity:0}}
.lat-mini{position:fixed;right:14px;top:50%;z-index:45;transform:translateY(-50%);
  width:46px;height:46px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;
  background:linear-gradient(160deg,var(--v,#6D3BF5),var(--b-ink,#0E63D6));
  box-shadow:0 12px 30px -10px rgba(90,43,218,.7);opacity:0;visibility:hidden;
  transition:transform .18s ease,opacity .4s ease,visibility 0s .4s}
.lat-mini.on{opacity:1;visibility:visible;transition-delay:0s}
.lat-mini:hover{transform:translateY(-50%) scale(1.08)}
.lat-mini svg{width:18px;height:18px;display:block}
.lat-mini[hidden]{display:none}
@media(max-width:900px){.lat-carte,.lat-mini{display:none}}
@media print{.lat-carte,.lat-mini{display:none}}
@media(prefers-reduced-motion:reduce){
  .lat-carte,.lat-mini,.lat-carte b i{transition:none}
  .lat-pk{animation:none}}


.wa-fab{position:fixed;right:16px;bottom:16px;z-index:44;width:54px;height:54px;
  border-radius:50%;display:grid;place-items:center;background:#25D366;
  box-shadow:0 12px 30px -10px rgba(11,94,64,.65);transition:transform .18s}
.wa-fab:hover{transform:scale(1.08)}
.wa-fab:active{transform:scale(.95)}
.wa-fab svg{width:30px;height:30px;display:block}

@media(max-width:900px){
  .wa-fab{bottom:16px;transition:transform .18s,bottom .42s cubic-bezier(.2,1,.3,1)}
  body.as-vis .wa-fab{bottom:72px}
  body.act-on .wa-fab{bottom:146px}
}
@media print{.wa-fab{display:none}}
@media(prefers-reduced-motion:reduce){.wa-fab{transition:none}}


.skip{position:absolute;left:10px;top:-72px;z-index:400;
  padding:12px 18px;border-radius:12px;text-decoration:none;
  background:#fff;color:var(--v-ink,#5A2BDA);
  font-family:var(--f-sans,system-ui,sans-serif);font-size:14.5px;font-weight:600;
  letter-spacing:-.01em;border:1px solid rgba(109,59,245,.4);
  box-shadow:0 12px 30px -8px rgba(11,15,34,.28);transition:top .18s ease}
.skip:focus{top:10px}

main[tabindex]:focus{outline:none}
@media print{.skip{display:none}}
@media(prefers-reduced-motion:reduce){.skip{transition:none}}



.pal-voile{position:fixed;inset:0;z-index:320;display:flex;align-items:flex-start;
  justify-content:center;padding:11vh 16px 16px;
  background:rgba(11,15,34,.42);
  -webkit-backdrop-filter:blur(6px) saturate(120%);backdrop-filter:blur(6px) saturate(120%);
  animation:pal-p .18s ease both}
.pal-voile[hidden]{display:none}
@keyframes pal-p{from{opacity:0}}
.pal{width:min(580px,100%);border-radius:var(--r-lg,20px);overflow:hidden;
  background:var(--bg,#F2F4FA);border:1px solid var(--line,rgba(11,15,34,.1));
  box-shadow:0 0 0 1px var(--edge,rgba(255,255,255,.75)) inset,0 34px 80px -24px rgba(11,15,34,.55);
  animation:pal-m .22s cubic-bezier(.2,1,.3,1) both}
@keyframes pal-m{from{opacity:0;transform:translateY(-10px) scale(.985)}}

.pal-in{display:flex;align-items:center;gap:11px;padding:15px 18px;
  border-bottom:1px solid var(--line-2,rgba(11,15,34,.055))}
.pal-in svg{width:18px;height:18px;flex:none;color:var(--v-ink,#5A2BDA)}
.pal-in input{flex:1;border:0;outline:0;background:none;color:var(--ink,#0B0F22);
  font-family:var(--f-sans,sans-serif);font-size:16px;letter-spacing:-.01em}
.pal-in input::placeholder{color:var(--ink-4,#606A90)}
.pal-esc{flex:none;font-family:var(--f-mono,monospace);font-size:10.5px;color:var(--ink-4,#606A90);
  border:1px solid var(--line,rgba(11,15,34,.1));border-radius:6px;padding:3px 7px;background:var(--glass-2,rgba(255,255,255,.86))}

.pal-liste{max-height:min(52vh,430px);overflow-y:auto;padding:8px}
.pal-grp{font-family:var(--f-mono,monospace);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-4,#606A90);padding:10px 12px 5px}
.pal-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;cursor:pointer;
  border:0;background:none;border-radius:var(--r-sm,10px);padding:10px 12px;
  color:var(--ink-2,#252C4A);font-family:var(--f-sans,sans-serif);font-size:14.5px;letter-spacing:-.01em}
.pal-item .pic{width:26px;height:26px;flex:none;border-radius:9px;display:grid;place-items:center;
  background:var(--glass-2,rgba(255,255,255,.86));border:1px solid var(--line-2,rgba(11,15,34,.055));
  color:var(--v-ink,#5A2BDA)}
.pal-item .pic svg{width:14px;height:14px;display:block}
.pal-item .pic img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.pal-item em{font-style:normal;margin-left:auto;font-family:var(--f-mono,monospace);
  font-size:10.5px;color:var(--ink-4,#606A90);white-space:nowrap}
.pal-item.actif{background:var(--v-soft,#EEE9FF);color:var(--ink,#0B0F22)}
.pal-item.actif .pic{border-color:rgba(109,59,245,.35)}
.pal-vide{padding:22px 12px 26px;text-align:center;color:var(--ink-4,#606A90);font-size:14px}

.pal-pied{display:flex;gap:14px;padding:10px 18px;border-top:1px solid var(--line-2,rgba(11,15,34,.055));
  font-family:var(--f-mono,monospace);font-size:10.5px;color:var(--ink-4,#606A90)}
.pal-pied b{font-weight:500;border:1px solid var(--line,rgba(11,15,34,.1));border-radius:5px;
  padding:1px 5px;background:var(--glass-2,rgba(255,255,255,.86))}


.nav-k{display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  border:1px solid var(--line,rgba(11,15,34,.1));border-radius:999px;padding:6px 8px 6px 12px;
  background:var(--glass-2,rgba(255,255,255,.86));color:var(--ink-3,#4E577D);
  font-family:var(--f-sans,sans-serif);font-size:12.5px;font-weight:500;
  box-shadow:0 0 0 1px var(--edge,rgba(255,255,255,.75)) inset;
  transition:color .2s,border-color .2s,transform .2s}
.nav-k svg{width:14px;height:14px;flex:none;color:currentColor}

.nav-k .keys{display:inline-flex;gap:3px}
.nav-k kbd{font-family:var(--f-mono,monospace);font-weight:500;font-size:10px;letter-spacing:.04em;
  color:var(--ink-4,#606A90);border:1px solid var(--line,rgba(11,15,34,.12));border-radius:6px;
  padding:2px 6px;background:var(--solid,#fff);
  box-shadow:0 2px 0 rgba(11,15,34,.13);transform:translateY(-1px);
  transition:transform .08s ease,box-shadow .08s ease}
.nav-k kbd.pressed{transform:translateY(1px);box-shadow:0 0 0 rgba(11,15,34,.13);
  color:var(--v-ink,#5A2BDA);border-color:rgba(109,59,245,.45)}
.nav-k:hover{color:var(--v-ink,#5A2BDA);border-color:rgba(109,59,245,.4);transform:translateY(-1px)}
@media(max-width:900px){.nav-k{display:none}}

@media(prefers-reduced-motion:reduce){
  .pal-voile,.pal{animation:none}
  .nav-k,.nav-k kbd{transition:none}
}
