:root{--bg:#09090b;--s1:#0e0e11;--s2:#141418;--s3:#1a1a1f;--line:rgba(255,255,255,.08);--line2:rgba(255,255,255,.15);--txt:#f4f4f5;--mut:#a1a1aa;--dim:#71717a;--a:#ff5a1f;--vip:#f5b942;--ok:#4ade80;--bad:#f87171;--r:14px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--txt);font:400 15px/1.6 'Geist','Inter',system-ui,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
h1,h2,h3,h4,.btn,.logo{font-family:'Geist','Inter',system-ui,sans-serif}
h1,h2,h3,h4{font-weight:600;letter-spacing:-.025em;line-height:1.1}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--a);color:#fff}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#26262c;border-radius:10px}::-webkit-scrollbar-track{background:transparent}
body::before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(60% 45% at 50% -8%,rgba(255,255,255,.07),transparent 70%)}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.mut{color:var(--mut)}.dim{color:var(--dim)}
.mono{font-family:'Geist Mono',ui-monospace,Menlo,monospace}

/* --- navigation flottante --- */
nav.top{position:sticky;top:12px;z-index:60;padding:0 12px}
.navp{max-width:1180px;margin:12px auto 0;height:58px;display:flex;align-items:center;gap:6px;padding:0 10px 0 16px;border:1px solid var(--line);border-radius:18px;background:rgba(14,14,17,.72);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4)}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.14em;font-size:.95rem;margin-right:14px}
.logo i{width:24px;height:24px;background:url(/logo-mark.svg) center/contain no-repeat}
.links{display:flex;gap:2px;flex:1}
.links>a,.dd>a{display:flex;align-items:center;gap:5px;padding:8px 12px;border-radius:10px;color:var(--mut);font-size:.88rem;font-weight:500;transition:.15s}
.links>a:hover,.dd>a:hover,.links .on{color:var(--txt);background:var(--s3)}
.car{font-style:normal;font-size:.62rem;opacity:.6;transition:transform .2s}
.dd{position:relative}.dd:hover .car,.dd.open .car{transform:rotate(180deg)}
.dd::after{content:"";position:absolute;left:0;right:0;top:100%;height:12px}
.menu{display:none;position:absolute;top:calc(100% + 8px);left:0;min-width:240px;max-height:70vh;overflow:auto;padding:8px;border:1px solid var(--line2);border-radius:14px;background:rgba(18,18,22,.96);backdrop-filter:blur(18px);box-shadow:0 24px 60px -12px #000;animation:pop .16s both}
@keyframes pop{from{opacity:0;transform:translateY(-4px) scale(.98)}}
.dd:hover .menu,.dd:focus-within .menu,.dd.open .menu{display:block}
.menu a{display:flex;justify-content:space-between;gap:16px;padding:8px 10px;border-radius:9px;color:var(--mut);font-size:.88rem}
.menu a:hover{background:var(--s3);color:var(--txt)}
.menu a small{display:block;color:var(--dim);font-size:.72rem}
.menu a.v{color:var(--vip)}
.ml{padding:10px 10px 4px;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.nright{display:flex;align-items:center;gap:8px}
.kbd{border:1px solid var(--line2);border-radius:6px;padding:0 6px;font-size:.7rem;color:var(--dim);font-family:'Geist Mono',monospace}
.avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1px solid var(--line2)}
.vbadge{font-size:.62rem;font-weight:700;letter-spacing:.1em;padding:2px 7px;border-radius:99px;background:rgba(245,185,66,.14);color:var(--vip);border:1px solid rgba(245,185,66,.35)}
.burger{display:none;background:none;border:1px solid var(--line2);width:38px;height:38px;border-radius:10px;cursor:pointer}

/* --- boutons --- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 16px;border-radius:10px;border:1px solid transparent;background:#fff;color:#09090b;font-weight:550;font-size:.88rem;cursor:pointer;transition:transform .15s,background .15s,border-color .15s;white-space:nowrap}
.btn:hover{background:#e4e4e7;transform:translateY(-1px)}
.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}
.btn.ghost{background:transparent;color:var(--txt);border-color:var(--line2)}.btn.ghost:hover{background:var(--s3)}
.btn.accent{background:var(--a);color:#fff}.btn.accent:hover{background:#ff6f3c}
.btn.vip{background:var(--vip);color:#1a1200}.btn.vip:hover{background:#ffc75c}
.btn.discord{background:#5865f2;color:#fff}.btn.discord:hover{background:#6b77f5}
.btn.danger{background:transparent;color:var(--bad);border-color:rgba(248,113,113,.35)}.btn.danger:hover{background:rgba(248,113,113,.1)}
.btn.sm{height:32px;padding:0 12px;font-size:.8rem;border-radius:9px}.btn.full{width:100%}
.btn.plus{width:38px;padding:0;font-size:1.2rem}

/* --- champs --- */
input,select,textarea{background:var(--s1);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:.92rem;outline:0;width:100%;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:var(--line2);box-shadow:0 0 0 3px rgba(255,255,255,.05)}
select option{background:#15151a}
textarea{min-height:160px;resize:vertical}
input[type=checkbox]{width:auto}input[type=color]{padding:3px;height:40px}
.fld{margin-bottom:18px}.fld label{display:block;font-size:.84rem;font-weight:550;margin-bottom:6px}.fld small{display:block;color:var(--dim);font-size:.76rem;margin-top:5px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.84rem;color:var(--mut);margin-top:18px}.check input{margin-top:4px}
.bar{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.bar input{flex:1;min-width:200px}.bar select{width:200px}

/* --- typographie de page --- */
.eb{display:inline-flex;align-items:center;gap:8px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);margin-bottom:12px}
.eb::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--a)}
h1.t{font-size:clamp(1.9rem,3.6vw,2.7rem)}
.crumb{margin:32px 0 18px;font-size:.84rem;color:var(--dim)}.crumb a:hover{color:var(--txt)}

/* --- accueil --- */
.hero{padding:84px 0 46px;text-align:center}
.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid var(--line2);border-radius:99px;font-size:.78rem;color:var(--mut);background:rgba(255,255,255,.03)}
.pill b{color:var(--a);font-weight:600}
.big{font-size:clamp(2.6rem,6.6vw,5rem);letter-spacing:-.045em;line-height:1;margin:22px auto 18px;max-width:14ch}
.big em{font-style:normal;color:var(--a)}
.lead{max-width:540px;margin:0 auto 28px;color:var(--mut);font-size:1.05rem}
.searchbox{display:flex;align-items:center;gap:12px;max-width:520px;margin:0 auto 14px;height:50px;padding:0 16px;border:1px solid var(--line2);border-radius:14px;background:var(--s1);color:var(--dim);cursor:pointer;transition:.15s;text-align:left}
.searchbox:hover{border-color:rgba(255,255,255,.28);background:var(--s2)}.searchbox span{flex:1}
.cta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}
.stats3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:44px 0 70px}
.stat{padding:22px;border:1px solid var(--line);border-radius:var(--r);background:var(--s1)}
.stat b{display:block;font-size:2rem;letter-spacing:-.03em}.stat span{color:var(--dim);font-size:.84rem}
.sec{display:flex;justify-content:space-between;align-items:flex-end;margin:0 0 18px}
.sec h2{font-size:1.5rem}.sec a{color:var(--mut);font-size:.88rem}.sec a:hover{color:var(--txt)}
.space{margin-bottom:64px}
.gtitle{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:0 0 10px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-bottom:22px}
.tile{display:flex;flex-direction:column;gap:2px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--s1);transition:.18s}
.tile:hover{border-color:var(--line2);background:var(--s2);transform:translateY(-2px)}
.tile b{font-weight:550;font-size:.92rem}.tile small{color:var(--dim)}
.tile.v{border-color:rgba(245,185,66,.3)}.tile.v b{color:var(--vip)}
.bento{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:90px}
.bx{position:relative;overflow:hidden;padding:30px;border:1px solid var(--line);border-radius:18px;background:var(--s1);display:flex;flex-direction:column;gap:10px;min-height:190px;transition:.2s}
.bx:hover{border-color:var(--line2)}
.bx h3{font-size:1.4rem}.bx p{color:var(--mut);max-width:38ch}.bx .btn{margin-top:auto;align-self:flex-start}
.bx.v{border-color:rgba(245,185,66,.28);background:linear-gradient(0deg,var(--s1),var(--s1))}
.bx.v::after{content:"★";position:absolute;right:22px;top:6px;font-size:6rem;color:rgba(245,185,66,.08)}

/* --- cartes ressources (tilt + zoom + lueur) --- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;perspective:1200px}
.card{position:relative;border:1px solid var(--line);border-radius:16px;background:var(--s1);overflow:hidden;cursor:pointer;transform-style:preserve-3d;transition:transform .15s ease-out,border-color .25s,box-shadow .25s;will-change:transform;animation:up .45s both}
@keyframes up{from{opacity:0;transform:translateY(12px)}}
.card:hover{border-color:var(--a);box-shadow:0 0 0 1px var(--a),0 30px 60px -22px #000,0 0 44px -14px rgba(255,90,31,.55)}
.th{position:relative;aspect-ratio:16/10;overflow:hidden;isolation:isolate;background:var(--s3) center/cover;display:grid;place-items:center;font-size:2.6rem;font-weight:700;color:#232329;border-bottom:1px solid var(--line)}
.th::before{content:"";position:absolute;inset:0;background:inherit;z-index:-1;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.card:hover .th::before{transform:scale(1.12)}
.chip{position:absolute;left:10px;top:10px;padding:3px 10px;border-radius:99px;background:rgba(9,9,11,.72);backdrop-filter:blur(8px);border:1px solid var(--line2);font-size:.7rem;font-weight:500;color:var(--txt);font-family:'Geist',sans-serif}
.lock{position:absolute;right:10px;top:10px;padding:3px 9px;border-radius:99px;background:rgba(245,185,66,.16);border:1px solid rgba(245,185,66,.4);color:var(--vip);font-size:.66rem;font-weight:700;letter-spacing:.08em;font-family:'Geist',sans-serif}
.cb{padding:14px 16px 16px;transform:translateZ(22px)}
.cb h3{font-size:1rem;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s}.card:hover .cb h3{color:var(--a)}
.by{color:var(--dim);font-size:.82rem}
.cm{display:flex;gap:14px;margin-top:10px;color:var(--dim);font-size:.78rem}
.empty{grid-column:1/-1;border:1px dashed var(--line2);border-radius:16px;padding:56px 20px;text-align:center;color:var(--mut)}
.hscroll{display:grid;grid-auto-flow:column;grid-auto-columns:262px;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 2px 16px}
.hscroll .card{scroll-snap-align:start}

/* --- catalogue + sidebar --- */
.layout{display:grid;grid-template-columns:260px 1fr;gap:28px;align-items:start;margin:0 0 90px}
.side{position:sticky;top:92px;border:1px solid var(--line);border-radius:16px;background:var(--s1);padding:10px;max-height:calc(100vh - 110px);overflow:auto}
.sgh{width:100%;display:flex;justify-content:space-between;align-items:center;padding:10px 10px 6px;background:none;border:0;cursor:pointer;color:var(--dim);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase}
.sgh i{font-style:normal;transition:transform .2s}.sg.shut .sgh i{transform:rotate(-90deg)}.sg.shut .sgb{display:none}
.cl{display:flex;justify-content:space-between;padding:8px 10px;border-radius:9px;color:var(--mut);font-size:.9rem;cursor:pointer;transition:.12s}
.cl:hover{background:var(--s3);color:var(--txt)}.cl.on{background:var(--s3);color:var(--txt);box-shadow:inset 2px 0 var(--a)}
.cl b{font-weight:500;color:var(--dim);font-size:.82rem}.cl.v{color:var(--vip)}

/* --- fiche ressource --- */
.prod{display:grid;grid-template-columns:1fr 340px;gap:28px;align-items:start;margin-bottom:90px}
.hero-img{aspect-ratio:16/9;border:1px solid var(--line);border-radius:18px;background:var(--s3) center/cover;overflow:hidden;transition:transform .2s ease-out;transform-style:preserve-3d}
.hero-img img{width:100%;height:100%;object-fit:cover;display:block}
.gal{display:flex;gap:8px;margin-top:10px}.gal img{width:86px;height:56px;object-fit:cover;border:1px solid var(--line);border-radius:8px;cursor:pointer;opacity:.55;transition:.15s}.gal img.on,.gal img:hover{opacity:1;border-color:var(--a)}
.panel{border:1px solid var(--line);border-radius:16px;background:var(--s1);padding:22px}
.desc{white-space:pre-wrap;color:#c9c9d0;margin-top:22px}
.info{position:sticky;top:92px;display:grid;gap:12px}
.info dl div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:.86rem}.info dl div:last-child{border:0}.info dt{color:var(--dim)}
.flash{padding:12px 14px;border:1px solid var(--line2);border-radius:10px;background:var(--s2);font-size:.86rem;color:var(--mut)}
.flash.ok{color:var(--ok);border-color:rgba(74,222,128,.3)}.flash.err{color:var(--bad);border-color:rgba(248,113,113,.3)}.flash.vip{color:var(--vip);border-color:rgba(245,185,66,.35);background:rgba(245,185,66,.06)}

/* --- assistant de publication --- */
.up{max-width:980px;margin:0 auto;padding:40px 24px 90px}
.upgrid{display:grid;grid-template-columns:210px 1fr;gap:22px;align-items:start;margin-top:26px}
.steps{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:16px;background:var(--s1);padding:10px;position:sticky;top:92px}
.step{display:flex;align-items:center;gap:12px;padding:10px;border-radius:10px;color:var(--dim);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
.step b{display:block;font-size:.88rem;text-transform:none;letter-spacing:0;color:inherit}
.step .ic{width:34px;height:34px;border:1px solid var(--line2);border-radius:10px;display:grid;place-items:center;background:var(--s3);font-weight:600;flex:none}
.step.on{color:var(--txt);background:var(--s3)}.step.on .ic{background:var(--a);border-color:var(--a);color:#fff}.step.done .ic{color:var(--ok)}
.form{border:1px solid var(--line);border-radius:16px;background:var(--s1);padding:26px}
.form h3{font-size:1.15rem}.form .sub{color:var(--mut);font-size:.88rem;margin-bottom:22px}
.drop{border:1.5px dashed var(--line2);border-radius:14px;padding:36px;text-align:center;color:var(--mut);cursor:pointer;transition:.2s;background:var(--bg)}.drop:hover,.drop.over{border-color:var(--a);color:var(--txt)}
.previews{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-top:14px}
.previews div{position:relative;aspect-ratio:16/10;border:1px solid var(--line);border-radius:10px;overflow:hidden}.previews img{width:100%;height:100%;object-fit:cover}
.previews button{position:absolute;top:5px;right:5px;width:22px;height:22px;border-radius:50%;border:0;background:rgba(0,0,0,.75);color:#fff;cursor:pointer}
.fileok{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding:12px 14px;background:var(--bg);border:1px solid var(--line);border-radius:10px;font-size:.86rem}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:12px}
.cpick{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);cursor:pointer;font-size:.88rem;text-align:center;transition:.15s}
.cpick:hover{border-color:var(--line2)}.cpick.on{border-color:var(--a);background:var(--s3)}.cpick.v{color:var(--vip)}
.nav2{display:flex;justify-content:space-between;margin-top:26px}
.prog{height:6px;background:var(--s3);border-radius:4px;overflow:hidden;margin-top:14px}.prog i{display:block;height:100%;width:0;background:var(--a);transition:width .2s}

/* --- classement --- */
.rk-tabs{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--s1);margin:24px 0}
.rk-tab{background:none;border:0;padding:8px 16px;color:var(--mut);cursor:pointer;font-weight:500;border-radius:9px;font-size:.88rem}.rk-tab.on{background:var(--s3);color:var(--txt)}
.wchip{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;background:var(--s1);padding:10px 16px;font-size:.84rem;color:var(--mut);margin-bottom:30px;width:fit-content}.wchip b{color:var(--txt)}
.pav{border-radius:50%;object-fit:cover;background:var(--s3);border:1px solid var(--line2);display:grid;place-items:center;font-weight:700;color:var(--mut)}
.pod2{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:14px;align-items:end;margin-bottom:26px}
.pcol{text-align:center}.pcol .pw{position:relative;display:inline-block;margin-bottom:10px}.pcol .pav{margin:0 auto}
.medal{position:absolute;right:-6px;bottom:-4px;width:26px;height:26px;border-radius:50%;background:var(--bg);border:1px solid var(--line2);display:grid;place-items:center;font-size:.72rem;font-weight:700}
.p1 .medal{background:var(--a);border-color:var(--a);color:#fff}
.pcol h3{font-size:1rem}.pcol small{display:block;color:var(--dim);margin:3px 0 12px}
.ped{background:var(--s1);border:1px solid var(--line);border-bottom:0;border-radius:14px 14px 0 0;display:grid;place-items:center;font-size:2.4rem;font-weight:700;color:rgba(255,255,255,.07)}
.p1 .ped{height:150px;border-top:2px solid var(--a)}.p2 .ped{height:104px}.p3 .ped{height:78px}
.badge2{display:inline-block;font-size:.6rem;padding:1px 7px;border:1px solid var(--line2);border-radius:99px;color:var(--mut);margin-left:6px;letter-spacing:.08em;vertical-align:middle}
.rlist{border:1px solid var(--line);border-radius:16px;background:var(--s1);overflow:hidden}
.rrow{display:grid;grid-template-columns:44px 1fr 200px 70px 70px;align-items:center;gap:14px;padding:12px 18px;border-bottom:1px solid var(--line);transition:.12s}.rrow:hover{background:var(--s2)}.rrow:last-child{border:0}
.rrow .n{color:var(--dim);font-weight:600}.rrow .num{text-align:right;font-weight:500}.who{display:flex;align-items:center;gap:12px}
.bar2{height:4px;background:var(--s3);border-radius:4px;overflow:hidden}.bar2 i{display:block;height:100%;background:var(--a)}

/* --- outils / accordeon --- */
.ls{display:grid;grid-template-columns:1fr 340px;gap:20px;align-items:start}
.lsview{aspect-ratio:16/9;border:1px solid var(--line);border-radius:16px;background:#000;overflow:hidden}.lsview iframe{width:100%;height:100%;border:0;display:block}
.lsbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--s1)}
.lsside{border:1px solid var(--line);border-radius:16px;background:var(--s1);padding:4px 20px}
.lsside code,.flash code{background:var(--s3);padding:1px 6px;border-radius:5px;font-size:.85em;color:#ddd}
.acc{border-bottom:1px solid var(--line)}.acc:last-child{border:0}
.acch{width:100%;display:flex;justify-content:space-between;align-items:center;padding:16px 2px;background:none;border:0;color:var(--txt);font-weight:600;cursor:pointer}
.acch i{font-style:normal;font-size:.7rem;color:var(--dim);transition:transform .25s}.acc.open .acch{color:var(--a)}.acc.open .acch i{transform:rotate(180deg);color:var(--a)}
.accb{padding:2px 2px 20px;animation:pg .25s both}

/* --- palette de recherche --- */
.pal{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);display:none;align-items:flex-start;justify-content:center;padding-top:14vh}.pal.open{display:flex}
.palb{width:min(580px,92vw);border:1px solid var(--line2);border-radius:18px;background:#121216;box-shadow:0 40px 100px -20px #000;overflow:hidden;animation:pop .16s both}
.palb input{border:0;border-bottom:1px solid var(--line);border-radius:0;height:56px;background:transparent;padding:0 20px;font-size:1rem}.palb input:focus{box-shadow:none}
.pall{max-height:50vh;overflow:auto;padding:8px}
.pali{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;cursor:pointer}.pali.on,.pali:hover{background:var(--s3)}
.pali .fth{width:44px;height:30px;border-radius:6px;background:var(--s3) center/cover;border:1px solid var(--line)}.pali small{color:var(--dim);margin-left:auto}
.palh{padding:8px 12px;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}

footer{border-top:1px solid var(--line);padding:36px 0;color:var(--dim);font-size:.85rem}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px}footer a:hover{color:var(--txt)}

/* --- admin --- */
.tabs{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--s1);margin:0 0 24px;flex-wrap:wrap}
.tab{background:none;border:0;padding:8px 16px;color:var(--mut);cursor:pointer;font-weight:500;border-radius:9px;font-size:.88rem}.tab.on{background:var(--s3);color:var(--txt)}
.row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;margin-bottom:8px;border:1px solid var(--line);border-radius:12px;background:var(--s1)}
.acts{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.tag{font-size:.68rem;padding:2px 9px;border-radius:99px;border:1px solid var(--line2);color:var(--mut)}.tag.pending{color:#fbbf24;border-color:rgba(251,191,36,.35)}.tag.approved{color:var(--ok);border-color:rgba(74,222,128,.3)}.tag.rejected{color:var(--bad);border-color:rgba(248,113,113,.3)}.tag.vip{color:var(--vip);border-color:rgba(245,185,66,.4)}
.gbox{border:1px solid var(--line);border-radius:16px;background:var(--s1);padding:18px;margin-bottom:16px}
.ghead{display:flex;gap:8px;align-items:center;margin-bottom:12px}.ghead input{font-weight:600;max-width:320px}
.crow{display:flex;gap:8px;align-items:center;padding:6px 0;border-top:1px solid var(--line)}.crow input[type=text]{flex:1}.crow label{display:flex;gap:6px;align-items:center;font-size:.8rem;color:var(--mut);white-space:nowrap}
.sug{display:grid;gap:4px;margin-top:8px}.sug button{display:flex;align-items:center;gap:10px;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--s1);cursor:pointer}.sug button:hover{border-color:var(--line2)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}

#app{animation:pg .35s both}@keyframes pg{from{opacity:0}}

@media(max-width:900px){
 .links{display:none;position:absolute;top:66px;left:0;right:0;flex-direction:column;padding:10px;border:1px solid var(--line2);border-radius:16px;background:rgba(14,14,17,.97)}.links.open{display:flex}
 .burger{display:block}.menu{position:static;box-shadow:none;border:0;background:none;min-width:0;animation:none;padding:0 0 0 12px}.dd:hover .menu{display:none}.dd.open .menu{display:block}
 .stats3,.bento,.layout,.prod,.ls,.upgrid,.grid2{grid-template-columns:1fr}.side,.info,.steps{position:static;max-height:none}
 .steps{flex-direction:row;overflow:auto}.step b{display:none}.pod2{grid-template-columns:1fr}
 .rrow{grid-template-columns:36px 1fr 60px 60px}.rrow .bar2{display:none}.hero{padding-top:50px}.kbd{display:none}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* --- menus deroulants personnalises --- */
.sel{position:relative;width:100%}
.sel select{display:none}
.selb{width:100%;height:40px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--s1);color:var(--txt);cursor:pointer;font-size:.9rem;text-align:left;transition:border-color .15s,box-shadow .15s,background .15s}
.selb:hover{border-color:var(--line2);background:var(--s2)}
.sel.open .selb{border-color:var(--line2);box-shadow:0 0 0 3px rgba(255,255,255,.05)}
.selb:disabled{opacity:.5;cursor:not-allowed}
.selb i{font-style:normal;font-size:.65rem;color:var(--dim);transition:transform .2s}.sel.open .selb i{transform:rotate(180deg)}
.selm{display:none;position:absolute;left:0;top:calc(100% + 6px);min-width:100%;width:max-content;max-width:320px;max-height:270px;overflow:auto;z-index:80;padding:6px;border:1px solid var(--line2);border-radius:14px;background:rgba(20,20,24,.98);backdrop-filter:blur(16px);box-shadow:0 24px 60px -12px #000;animation:pop .16s both}
.sel.open .selm{display:block}.sel.up .selm{top:auto;bottom:calc(100% + 6px)}
.selo{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:9px 10px;border-radius:9px;font-size:.88rem;color:var(--mut);cursor:pointer;transition:background .1s,color .1s}
.selo:hover{background:var(--s3);color:var(--txt)}.selo.on{color:var(--txt)}.selo em{font-style:normal;color:var(--a);font-size:.8rem}
.bar .sel{width:200px}

/* --- barre du haut : se reduit en icones au defilement --- */
.ic{width:17px;height:17px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.lbl{display:inline-block;max-width:150px;overflow:hidden;white-space:nowrap;vertical-align:middle;transition:max-width .4s cubic-bezier(.2,.7,.2,1),opacity .25s}
.navp{transition:max-width .45s cubic-bezier(.2,.7,.2,1),background .3s,box-shadow .3s,padding .3s}
.links>a,.dd>a{gap:8px}
nav.compact .navp:not(:hover){max-width:500px;padding:0 10px;background:rgba(14,14,17,.9);box-shadow:0 14px 44px -14px #000}
nav.compact .navp:not(:hover) .lbl{max-width:0;opacity:0}
nav.compact .navp:not(:hover) .car{display:none}
nav.compact .navp:not(:hover) .logo{margin-right:6px;gap:0}
nav.compact .navp:not(:hover) .links{justify-content:center}
nav.compact .navp:not(:hover) .links>a,nav.compact .navp:not(:hover) .dd>a{gap:0;padding:9px 11px}
nav.compact .navp:not(:hover) .btn{gap:0;padding:0 11px}
nav.compact .navp:not(:hover) .vbadge{display:none}
nav.top .btn .ic{width:16px;height:16px}
@media(max-width:900px){nav.compact .navp:not(:hover){max-width:none}.lbl{max-width:none!important;opacity:1!important}.links>a,.dd>a{gap:10px}}

/* --- barre du haut v2 : animation plus lente, sans artefacts --- */
/* le flou d'arriere-plan sur un element qui change de taille laisse des traces : on le retire de la barre */
.navp{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(14,14,17,.92);
  transition:max-width .8s cubic-bezier(.22,.8,.24,1) .12s,padding .8s cubic-bezier(.22,.8,.24,1) .12s,background .3s,box-shadow .5s}
/* ouverture : la barre s'elargit un peu AVANT que les textes apparaissent (plus de debordement) */
nav.top .lbl,nav.top .car{transition:max-width 1s cubic-bezier(.22,.8,.24,1) .12s,opacity .6s ease .25s}
nav.top .car{display:inline-block;max-width:12px;overflow:hidden}
nav.top .links>a,nav.top .dd>a,nav.top .btn,nav.top .logo{transition:gap .8s cubic-bezier(.22,.8,.24,1) .12s,padding .8s cubic-bezier(.22,.8,.24,1) .12s,margin .8s cubic-bezier(.22,.8,.24,1) .12s,background .15s,color .15s,border-color .15s,transform .15s}
/* fermeture : les textes disparaissent AVANT que la barre se referme */
nav.compact .navp:not(:hover){transition:max-width .9s cubic-bezier(.22,.8,.24,1),padding .9s cubic-bezier(.22,.8,.24,1),background .3s,box-shadow .5s}
nav.compact .navp:not(:hover) .lbl,nav.compact .navp:not(:hover) .car{max-width:0;opacity:0;display:inline-block;transition:max-width .55s cubic-bezier(.22,.8,.24,1),opacity .3s ease}
nav.compact .navp:not(:hover) .links>a,nav.compact .navp:not(:hover) .dd>a,nav.compact .navp:not(:hover) .btn,nav.compact .navp:not(:hover) .logo{transition:gap .55s cubic-bezier(.22,.8,.24,1),padding .55s cubic-bezier(.22,.8,.24,1),margin .55s cubic-bezier(.22,.8,.24,1),background .15s,color .15s,border-color .15s,transform .15s}
@media(max-width:900px){.navp,nav.top .lbl,nav.top .car{transition:none}}
