/* Fonctionnalités communautaires — style archive (noir, Playfair + Inter, filets fins, pilules) */
:root{--fx-bg:#000;--fx-c:#EDEAE4;--fx-m:#8d8983;--fx-l:rgba(237,234,228,.14);--fx-p:#ff8cc0;--fx-card:#0b0b0b}
html.light{--fx-bg:#f4f1ec;--fx-c:#111;--fx-m:#6b665f;--fx-l:rgba(17,17,17,.14);--fx-p:#b0246f;--fx-card:#fff}
html body:not(#arz) .fx-intro{max-width:720px;font:300 1.05rem/1.65 InterV,Inter,sans-serif!important;color:var(--fx-c)!important;opacity:.85;margin:0 0 28px!important}
html body:not(#arz) .fx{font-family:InterV,Inter,sans-serif;color:var(--fx-c);display:grid;gap:36px;margin:0 0 40px}
html body:not(#arz) .fx *{box-shadow:none}
html body:not(#arz):not(#arx) .fx h2,html body:not(#arz):not(#arx) .fx h3{font-family:'Playfair Display',Georgia,serif!important;font-weight:400!important;letter-spacing:-.02em!important;color:var(--fx-c)!important;-webkit-text-fill-color:var(--fx-c)!important;background:none!important;text-transform:none!important;margin:0!important}
html body:not(#arz):not(#arx) .fx h2{font-size:clamp(1.9rem,4vw,3rem)!important;line-height:1!important}
html body:not(#arz):not(#arx) .fx h3{font-size:1.45rem!important;margin-bottom:12px!important}
html body:not(#arz) .fx h2 em{font-style:italic;color:var(--fx-p)!important;-webkit-text-fill-color:var(--fx-p)!important}
.fx-hd{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.fx-hd>div,.fx-hd>p{width:100%}
html body:not(#arz) .fx-k{margin:0 0 10px!important;font:500 .68rem/1.3 InterV,Inter,sans-serif!important;letter-spacing:.22em!important;text-transform:uppercase;color:var(--fx-m)!important}
html body:not(#arz) .fx-mut{color:var(--fx-m)!important;font-size:.9rem}
.fx-load{color:var(--fx-m)}
html body:not(#arz) .fx-card{background:var(--fx-card)!important;border:1px solid var(--fx-l)!important;border-radius:18px!important;padding:clamp(18px,2.4vw,28px)!important}
.fx-empty p{margin:0;color:var(--fx-m)}
.fx-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.fx-c{justify-content:center}
html body:not(#arz):not(#arx) .fx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 22px;border-radius:999px!important;border:1px solid var(--fx-c)!important;background:var(--fx-c)!important;color:var(--fx-bg)!important;-webkit-text-fill-color:var(--fx-bg)!important;font:500 .9rem InterV,Inter,sans-serif!important;text-decoration:none!important;cursor:pointer;transition:transform .2s,opacity .2s,background .2s;white-space:nowrap;transform:none}
html body:not(#arz):not(#arx) .fx-btn.sm{min-height:38px;padding:0 16px;font-size:.82rem!important}
html body:not(#arz):not(#arx) .fx-btn.ghost{background:transparent!important;color:var(--fx-c)!important;-webkit-text-fill-color:var(--fx-c)!important;border-color:var(--fx-l)!important}
html body:not(#arz):not(#arx) .fx-btn.danger{background:transparent!important;color:#ff6b6b!important;-webkit-text-fill-color:#ff6b6b!important;border-color:rgba(255,107,107,.45)!important}
html body:not(#arz):not(#arx) .fx-btn:hover{opacity:.88}html body:not(#arz):not(#arx) .fx-btn:active{transform:scale(.97)}html body:not(#arz):not(#arx) .fx-btn:disabled{opacity:.5}
html body:not(#arz):not(#arx) .fx-btn.on{background:var(--fx-p)!important;border-color:var(--fx-p)!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
.fx-n{font:italic 400 1.05rem/1 'Playfair Display',Georgia,serif;color:var(--fx-p)}
.fx-tag{display:inline-block;font:500 .66rem/1 InterV,Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;padding:5px 9px;border-radius:999px;border:1px solid var(--fx-l);color:var(--fx-m);vertical-align:middle}
.fx-av{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:none;display:inline-grid;place-items:center;background:rgba(237,234,228,.1);font:500 .9rem InterV,Inter,sans-serif;color:var(--fx-c)}
html body:not(#arz) .fx-me{margin:0 0 16px!important;font-size:.95rem;color:var(--fx-c)!important}.fx-me b{font-family:'Playfair Display',serif;font-size:1.3rem}
.fx-me a,.fx-ls a,.fx-mem a,.fx-fa small a{color:var(--fx-c)!important;text-decoration:none!important;border-bottom:1px solid var(--fx-l)}
/* défis */
.fx-ch{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.fx-cc{position:relative;display:grid;gap:12px;align-content:start;padding:22px;border:1px solid var(--fx-l);border-radius:18px;background:linear-gradient(160deg,rgba(255,140,192,.08),transparent 60%),var(--fx-card)}
.fx-cc b{font:400 1.25rem/1.25 'Playfair Display',Georgia,serif;color:var(--fx-c)}
.fx-pts{font:500 .78rem InterV,Inter,sans-serif;color:var(--fx-p);letter-spacing:.06em}
.fx-cc.done{opacity:.7}.fx-ok{color:#6fdc9b;font-weight:500;font-size:.9rem}
/* classement */
.fx-pod{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:14px;align-items:end;margin-bottom:16px}
html body:not(#arz) .fx-pd{display:grid;justify-items:center;gap:8px;padding:22px 12px;border:1px solid var(--fx-l);border-radius:18px;background:var(--fx-card);text-decoration:none!important;color:var(--fx-c)!important}
.fx-pd.p1{order:2;padding-top:34px;background:linear-gradient(180deg,rgba(255,140,192,.16),transparent 70%),var(--fx-card)}.fx-pd.p2{order:1}.fx-pd.p3{order:3}
.fx-pd .fx-av{width:56px;height:56px;font-size:1.3rem}.fx-pd.p1 .fx-av{width:72px;height:72px}
.fx-pn{font:italic 400 2.4rem/1 'Playfair Display',serif;color:var(--fx-p)}.fx-pd b{font-size:1rem;font-weight:500}.fx-pd small{color:var(--fx-m)}
html body:not(#arz) .fx-ls{list-style:none!important;margin:0!important;padding:0!important;border-top:1px solid var(--fx-l)}
html body:not(#arz) .fx-ls li{display:flex;align-items:center;gap:14px;padding:12px 4px!important;border-bottom:1px solid var(--fx-l);margin:0!important}
.fx-ls li::before{display:none!important}.fx-ls b{margin-left:auto;font-weight:500;font-size:.9rem;color:var(--fx-m)}
.fx-rk{width:2ch;font:italic 400 1.2rem 'Playfair Display',serif;color:var(--fx-m)}
details.fx-how{border:1px solid var(--fx-l);border-radius:16px;padding:14px 18px;margin:0 0 30px}details.fx-how summary{cursor:pointer;font-weight:500}
/* chat */
.fx-chat{display:grid;grid-template-rows:1fr auto;height:min(68vh,640px);border:1px solid var(--fx-l);border-radius:20px;overflow:hidden;background:var(--fx-card)}
.fx-cl{overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:14px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.fx-m{display:flex;gap:10px;max-width:82%}.fx-m.mine{align-self:flex-end;flex-direction:row-reverse;text-align:right}
html body:not(#arz) .fx-mh{margin:0 0 4px!important;font-size:.78rem;color:var(--fx-m)!important}.fx-mh b{color:var(--fx-c);font-weight:600}
html body:not(#arz) .fx-mb{margin:0!important;padding:10px 14px;border-radius:16px;background:rgba(237,234,228,.07);color:var(--fx-c)!important;font-size:.95rem;line-height:1.45;word-break:break-word;display:inline-block;text-align:left}
html.light .fx-mb{background:rgba(17,17,17,.06)!important}html body:not(#arz) .fx-m.mine .fx-mb{background:var(--fx-p)!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
.fx-cf{display:flex;gap:10px;padding:12px;border-top:1px solid var(--fx-l);align-items:flex-end}
html body:not(#arz) .fx-cf textarea{flex:1;resize:none;min-height:46px;max-height:120px;padding:12px 16px!important;border-radius:22px!important;border:1px solid var(--fx-l)!important;background:transparent!important;color:var(--fx-c)!important;font:400 16px/1.35 InterV,Inter,sans-serif!important}
.fx-chat .fx-login{border:0!important;border-top:1px solid var(--fx-l)!important;border-radius:0!important}
html body:not(#arz):not(#arx) .fx-x{background:none!important;border:0!important;color:var(--fx-m)!important;font-size:.75rem;cursor:pointer;text-decoration:underline;padding:0 4px;min-height:0}
/* formulaires */
.fx-form{display:grid;gap:14px}
html body:not(#arz) .fx label{display:grid;gap:6px;font-size:.82rem;color:var(--fx-m)}
html body:not(#arz) .fx input:not([type=checkbox]):not([type=file]),html body:not(#arz) .fx select,html body:not(#arz) .fx-pf input,html body:not(#arz) .fx-pf select,html body:not(#arz) .fx-pf textarea,html body:not(#arz) .fx-form textarea{width:100%;min-height:48px;padding:0 16px!important;border-radius:14px!important;border:1px solid var(--fx-l)!important;background:transparent!important;color:var(--fx-c)!important;font:400 16px InterV,Inter,sans-serif!important;outline:none}
html body:not(#arz) .fx input:focus,html body:not(#arz) .fx select:focus,html body:not(#arz) .fx textarea:focus{border-color:var(--fx-p)!important}
.fx-f2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
html body:not(#arz) .fx-chk{display:flex!important;gap:10px;align-items:center;color:var(--fx-c)!important;font-size:.9rem!important}
.fx-drop{position:relative;border:1px dashed var(--fx-l);border-radius:16px;padding:26px;text-align:center;cursor:pointer;color:var(--fx-c)!important}.fx-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
/* grilles garage / crews */
.fx-gg{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
html body:not(#arz) .fx-gc{position:relative;display:grid;gap:8px;align-content:start;padding:20px;border:1px solid var(--fx-l);border-radius:18px;background:var(--fx-card);text-decoration:none!important;color:var(--fx-c)!important;transition:border-color .25s,transform .25s}
a.fx-gc:hover{border-color:var(--fx-p)!important;transform:translateY(-2px)}
.fx-gc b{font:400 1.3rem/1.2 'Playfair Display',Georgia,serif}html body:not(#arz) .fx-gc p{margin:0!important;color:var(--fx-m)!important;font-size:.9rem}.fx-gc small{color:var(--fx-m);font-size:.75rem}
.fx-gc .fx-x{position:absolute;top:16px;right:12px}
.fx-crew h2{margin:4px 0 6px!important}
.fx-code{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0;padding:14px 18px;border:1px dashed var(--fx-l);border-radius:14px}.fx-code span{color:var(--fx-m);font-size:.82rem}.fx-code b{font:500 1.4rem/1 ui-monospace,monospace;letter-spacing:.2em}
html body:not(#arz) .fx-mem{list-style:none!important;padding:0!important;margin:0 0 18px!important;display:grid;gap:10px}.fx-mem li{display:flex;align-items:center;gap:10px;margin:0!important}.fx-mem li::before{display:none!important}
.fx-back{display:inline-block;margin-bottom:-18px;color:var(--fx-m)!important;text-decoration:none!important;font-size:.9rem}
/* fan art */
.fx-fg{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
html body:not(#arz) .fx-fa{position:relative;margin:0!important;border-radius:18px;overflow:hidden;aspect-ratio:4/5;background:#111;border:1px solid var(--fx-l)}
.fx-fa img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.fx-fa:hover img{transform:scale(1.06)}
.fx-fa figcaption{position:absolute;left:0;right:0;bottom:0;padding:16px;display:grid;gap:4px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.88));color:#fff}
.fx-fa figcaption b{font:400 1.2rem/1.2 'Playfair Display',serif;color:#fff}.fx-fa figcaption small{color:rgba(255,255,255,.75)}html body:not(#arz) .fx-fa figcaption small a{color:#fff!important}
.fx-fa.pend{opacity:.7}.fx-fa .fx-tag{color:#fff;border-color:rgba(255,255,255,.4);justify-self:start}
html body:not(#arz):not(#arx) .fx-like{justify-self:start;margin-top:4px;background:rgba(255,255,255,.14)!important;border:1px solid rgba(255,255,255,.35)!important;color:#fff!important;border-radius:999px!important;padding:6px 14px;cursor:pointer;font:500 .85rem InterV,Inter,sans-serif}
html body:not(#arz):not(#arx) .fx-like.on{background:var(--fx-p)!important;border-color:var(--fx-p)!important}
/* alertes */
.fx-al{display:grid;gap:0;padding:6px 22px!important}
html body:not(#arz) .fx-sw{display:flex!important;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--fx-l);color:var(--fx-c)!important;font-size:1rem!important;cursor:pointer}.fx-sw:last-child{border-bottom:0}
.fx-sw input{position:absolute;opacity:0;pointer-events:none}.fx-sw i{flex:none;width:48px;height:28px;border-radius:999px;background:rgba(237,234,228,.18);position:relative;transition:background .25s}html.light .fx-sw i{background:rgba(17,17,17,.15)}
.fx-sw i::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .25s}
.fx-sw input:checked+i{background:var(--fx-p)}.fx-sw input:checked+i::after{transform:translateX(20px)}.fx-sw input:focus-visible+i{outline:2px solid var(--fx-p);outline-offset:3px}
/* compte à rebours */
.fx-cd{text-align:center;display:grid;gap:22px;justify-items:center;padding:clamp(30px,6vw,70px) 0;border:1px solid var(--fx-l);border-radius:24px;background:radial-gradient(ellipse at 50% 30%,rgba(255,140,192,.12),transparent 60%),var(--fx-card)}
html body:not(#arz):not(#arx) .fx-cd h2{font-size:clamp(3.4rem,10vw,7rem)!important}
html body:not(#arz) .fx-cd ol{list-style:none!important;margin:0!important;padding:0!important;display:flex;gap:clamp(14px,4vw,48px)}.fx-cd li{display:grid;gap:4px;margin:0!important}.fx-cd li::before{display:none!important}
.fx-cd li b{font:400 clamp(2.4rem,7vw,5rem)/1 'Playfair Display',Georgia,serif;font-variant-numeric:tabular-nums;color:var(--fx-c)}.fx-cd li small{font:500 .66rem InterV,Inter,sans-serif;letter-spacing:.22em;text-transform:uppercase;color:var(--fx-m)}
#fxcv{width:min(92%,720px);height:auto;border-radius:14px;border:1px solid var(--fx-l)}
/* carte : repères */
.fx-pin{background:none;border:0}.fx-pin span{display:grid;place-items:center;width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#111;border:2px solid var(--fx-p,#ff8cc0);box-shadow:0 4px 12px rgba(0,0,0,.4)}
.fx-pin i{font-style:normal;font-size:15px;line-height:1;transform:rotate(45deg)}.fx-pin.pend span{border-style:dashed;opacity:.75}
.fx-mc{display:grid;gap:6px;justify-items:start}.fx-mc .fx-btn{box-shadow:0 4px 14px rgba(0,0,0,.35)!important}
.fx-mt{display:flex;gap:6px;align-items:center;padding:6px 12px;border-radius:999px;background:rgba(0,0,0,.72);color:#fff;font:500 .75rem InterV,Inter,sans-serif;cursor:pointer}
.fx-adding,.fx-adding .leaflet-interactive{cursor:crosshair!important}
.fx-pp{display:grid;gap:8px;font-family:InterV,Inter,sans-serif;min-width:200px}.fx-pp b{font:400 1.15rem/1.2 'Playfair Display',serif}.fx-pp p{margin:0!important}.fx-pp small{color:#8d8983}
.fx-pf input,.fx-pf select,.fx-pf textarea{min-height:40px!important;font-size:16px!important;padding:8px 12px!important}
/* admin */
.fx-adm{display:grid;gap:18px}.fx-ad h3{display:flex;gap:10px;align-items:center}
.fx-ar{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--fx-l);flex-wrap:wrap}.fx-ar:last-child{border-bottom:0}.fx-ar>div:not(.fx-row){flex:1;min-width:200px}.fx-ar p{margin:4px 0!important}.fx-ar img{width:72px;height:72px;object-fit:cover;border-radius:12px}.fx-ar.off{opacity:.5}
.fx-scr{max-height:420px;overflow:auto}
.fx-login{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.fx-login p{margin:0 auto 0 0!important;flex:1 1 220px}
@media(max-width:760px){.fx-ch{grid-template-columns:1fr}.fx-f2{grid-template-columns:1fr}.fx-pod{gap:8px}.fx-pd{padding:16px 6px!important}.fx-pd .fx-av{width:44px;height:44px}.fx-pd.p1 .fx-av{width:56px;height:56px}.fx-pd b{font-size:.85rem;word-break:break-all}
 .fx-chat{height:calc(100svh - 230px);min-height:380px;border-radius:16px}.fx-m{max-width:92%}.fx-fg{grid-template-columns:1fr 1fr;gap:10px}.fx-fa figcaption{padding:10px}.fx-fa figcaption b{font-size:1rem}
 .fx-cd li b{font-size:2.6rem}.fx-row .fx-btn{flex:1 1 auto}.fx-mc .fx-btn{font-size:.78rem!important}}
@media(prefers-reduced-motion:reduce){.fx-fa img,.fx-gc{transition:none}}
/* carte : la barre de régions occupe toute la largeur au-dessus de la carte (corrige la grille .mapui) */
html body:not(#arz) .mapui>.mchips{grid-column:1/-1;align-self:start;height:auto!important;display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.mapui>.mchips::-webkit-scrollbar{display:none}
html body:not(#arz) .mapui>.mchips .chip{height:38px!important;min-height:0!important;flex:none;padding:0 16px!important;border-radius:999px!important;display:inline-flex;align-items:center}

.fx-pod.n1{grid-template-columns:minmax(0,320px)}.fx-pod.n2{grid-template-columns:1fr 1fr;max-width:640px}.fx-pod.n1 .fx-pd,.fx-pod.n2 .fx-pd{order:0}
html body:not(#arz):not(#arx) .fx-hd h2{border:0!important;padding:0!important}
html body:not(#arz) .fx-cd{overflow:hidden;padding-left:16px;padding-right:16px}
html body:not(#arz):not(#arx) .fx-cd h2{border:0!important;padding:0!important}
html body:not(#arz) .fx-cd ol{flex-wrap:nowrap;justify-content:center;max-width:100%}html body:not(#arz) .fx-cd li{min-width:0!important;width:auto!important;padding:0!important;border:0!important;background:none!important}
@media(max-width:760px){html body:not(#arz) .fx-cd ol{gap:16px}html body:not(#arz) .fx-cd li b{font-size:2.5rem}.fx-cd .fx-row{width:100%}#fxcv{width:100%}}
.fx-ar small{display:block;color:var(--fx-m)}
.fx-gc .fx-tag{justify-self:start}html body:not(#arz) .fx-n,html body:not(#arz) .fx-pts{color:var(--fx-p)!important;-webkit-text-fill-color:var(--fx-p)!important}
/* Retour Jack : fond #0C0C0C, Kanit, titres dégradés, pilules dégradées, cartes très arrondies */
:root{--fx-bg:#0C0C0C;--fx-c:#ECF1F5;--fx-m:#98a3ae;--fx-l:rgba(215,226,234,.35);--fx-p:#E8309E;--fx-card:#141218}
html body:not(#a1):not(#a2) .fx,html body:not(#a1):not(#a2) .fx :is(p,li,span,small,b,label,input,select,textarea,button,a,figcaption,strong){font-family:Kanit,sans-serif!important}
html body:not(#a1):not(#a2) .fx :is(h2,h3),html body:not(#a1):not(#a2) .fx :is(.fx-n,.fx-cc b,.fx-pn,.fx-rk,.fx-gc b,.fx-cd li b,.fx-pp b,.fx-me b){font-family:Kanit,sans-serif!important;font-style:normal!important}
html body:not(#a1):not(#a2) .fx :is(h2,h3){font-weight:800!important;text-transform:uppercase;letter-spacing:-.01em!important;background:linear-gradient(180deg,#646973 0%,#BBCCD7 100%)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important}
html.light body:not(#a1):not(#a2) .fx :is(h2,h3){background:linear-gradient(180deg,#18011F,#7621B0 60%,#BE4C00)!important;-webkit-background-clip:text!important;background-clip:text!important}
html body:not(#a1):not(#a2) .fx-cd li b{font-weight:900!important}
html body:not(#a1):not(#a2) .fx-btn:not(.ghost){background:linear-gradient(123deg,#18011F 7%,#B600A8 37%,#7621B0 72%,#BE4C00 100%)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border:0!important;outline:2px solid #fff;outline-offset:-3px;box-shadow:0 4px 4px rgba(181,1,167,.25),inset 4px 4px 12px #7721B1!important;text-transform:uppercase;letter-spacing:.1em}
html body:not(#a1):not(#a2) .fx-btn.ghost{border:2px solid #D7E2EA!important;color:#D7E2EA!important;-webkit-text-fill-color:#D7E2EA!important;text-transform:uppercase;letter-spacing:.1em}
html.light body:not(#a1):not(#a2) .fx-btn.ghost{border-color:#0C0C0C!important;color:#0C0C0C!important;-webkit-text-fill-color:#0C0C0C!important}
html body:not(#a1):not(#a2) .fx :is(.fx-gc,.fx-cc,.fx-pd,.fx-fa,.fx-chat,.fx-form,.fx-mem,.fx-pod,.fx-row){border-radius:32px!important;border:2px solid rgba(215,226,234,.5)!important}
