/* polices hébergées avec le site : aucun appel à un service extérieur */
@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;src:url(fonts/manrope.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:100 800;font-display:swap;src:url(fonts/jetbrains-mono.woff2) format("woff2")}
@font-face{font-family:"Chakra Petch";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/chakra-petch-600.woff2) format("woff2")}
@font-face{font-family:"Chakra Petch";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/chakra-petch-700.woff2) format("woff2")}
html,body{margin:0}
[hidden]{display:none!important}

:root{
  color-scheme:dark;
  --ground:#05060f;
  --surface:#0c1022; --surface-2:#111731; --panel:#090d1c;
  --line:#1f2848; --line-strong:#3a4a86;
  --accent:#5b8cff; --accent-2:#8f6bff; --cyan:#22d3ee; --magenta:#c65bff;
  --text:#eef1ff; --muted:#aab3d8; --dim:#7e88b4;
  --ok:#34d399; --warn:#fbbf24; --bad:#fb7185;
  --grad:linear-gradient(100deg,var(--accent),var(--accent-2));
  --neon:linear-gradient(100deg,var(--cyan),var(--accent) 40%,var(--accent-2) 75%,var(--magenta));
  --display:"Chakra Petch","Avenir Next",system-ui,sans-serif;
  --body:"Manrope","Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --rail:232px; --r-lg:16px; --r-md:12px; --r-sm:9px;
}
html{scroll-behavior:smooth}
body{background:radial-gradient(1100px 620px at 88% -12%,rgba(143,107,255,.13),transparent 62%),radial-gradient(900px 560px at -10% 110%,rgba(91,140,255,.10),transparent 60%),var(--ground);background-attachment:fixed;color:var(--text);font-family:var(--body);font-size:16px;line-height:1.6;min-height:100%;overflow-x:hidden;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:6px}
::selection{background:rgba(143,107,255,.5)}

#burst{position:fixed;inset:0;z-index:60;pointer-events:none;width:100%;height:100%}
.progress{position:fixed;left:0;top:0;height:2px;width:100%;z-index:70;transform-origin:0 50%;transform:scaleX(0);background:var(--neon)}

/* rail */
.rail{position:fixed;z-index:40;left:0;top:0;bottom:0;width:var(--rail);padding:calc(22px + env(safe-area-inset-top,0px)) 14px 18px;display:flex;flex-direction:column;gap:6px;background:rgba(7,9,20,.96);border-right:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 22px}
.brand-mark{width:36px;height:36px;flex:none;border-radius:11px;background:var(--neon);display:grid;place-items:center;box-shadow:0 6px 22px rgba(91,140,255,.35)}
.brand-mark i{width:12px;height:12px;border-radius:3px;background:var(--ground);transform:rotate(45deg)}
.brand b{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:.01em;line-height:1.15;display:block}
.brand small{color:var(--dim);font-size:12px}
.nav{display:flex;flex-direction:column;gap:3px}
.nav button{all:unset;cursor:pointer;display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:var(--r-md);color:var(--muted);font-weight:600;font-size:15px;position:relative;transition:color .15s,background .15s}
.nav button svg{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.nav button:hover{color:var(--text);background:var(--surface)}
.nav button[aria-current="page"]{color:#fff;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line-strong)}
.nav button[aria-current="page"] svg{color:var(--cyan)}
.nav button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.nav .short{display:none}
.nav button[hidden]{display:none}
.nav-sep{height:1px;background:var(--line);margin:8px 6px}
.rail-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px}
.who{all:unset;cursor:pointer;display:flex;align-items:center;gap:10px;padding:10px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);transition:border-color .15s}
.who:hover{border-color:var(--line-strong)}
.who:focus-visible{outline:2px solid var(--cyan)}
.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:12.5px;font-weight:800;background:var(--grad);color:#fff;flex:none}
.who .who-t>span{display:block;font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px}
.who small{color:var(--dim);font-size:12.5px}

/* contenu */
.main{position:relative;z-index:10;margin-left:var(--rail);padding-inline:clamp(16px,4vw,56px);padding-block:34px 90px;min-height:100vh}
.wrap{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:24px}
.eyebrow{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);font-weight:700}
h1,h2,h3{margin:0;text-wrap:balance}
h1{font-family:var(--display);font-weight:700;font-size:clamp(28px,4.2vw,50px);line-height:1.08;letter-spacing:-.005em}
h1 em{font-style:normal;background:var(--neon);-webkit-background-clip:text;background-clip:text;color:transparent}
h2{font-weight:800;font-size:clamp(19px,2vw,22px);letter-spacing:-.01em}
h3{font-size:17px;font-weight:700}
p{margin:0}
.lead{color:var(--muted);font-size:17.5px;max-width:64ch}
.muted{color:var(--muted)} .dim{color:var(--dim)} .mono{font-family:var(--mono)} .num{font-variant-numeric:tabular-nums}
.head{display:flex;flex-direction:column;gap:12px;padding-block:6px 2px}
.head-row{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;justify-content:space-between}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;position:relative}
.card.glow{border-color:var(--line-strong);background:linear-gradient(180deg,var(--surface-2),var(--surface))}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:16px}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.col{display:flex;flex-direction:column;gap:12px}
.between{justify-content:space-between}
.tilt{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s ease-out,border-color .2s}
.tilt:hover{border-color:var(--line-strong)}

/* boutons */
.btn{all:unset;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 20px;min-height:20px;border-radius:var(--r-md);font-weight:700;font-size:15px;color:var(--text);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line-strong);transition:transform .15s,background .15s,box-shadow .15s;text-align:center}
.btn:hover{background:#18204a;transform:translateY(-1px)}
.btn:active{transform:translateY(0) scale(.985)}
.btn:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.btn.primary{background:var(--grad);box-shadow:0 8px 24px rgba(91,140,255,.28);color:#fff}
.btn.primary:hover{filter:brightness(1.1);box-shadow:0 10px 30px rgba(143,107,255,.4)}
.btn.ghost{background:transparent}
.btn.sm{padding:8px 14px;font-size:13.5px;border-radius:var(--r-sm)}
.btn.ok{color:var(--ok);box-shadow:inset 0 0 0 1px rgba(52,211,153,.55);background:rgba(52,211,153,.08)}
.btn.danger{color:var(--bad);box-shadow:inset 0 0 0 1px rgba(251,113,133,.5);background:rgba(251,113,133,.07)}
.btn[disabled]{opacity:.4;cursor:not-allowed;transform:none;filter:grayscale(.4)}
.chip{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border-radius:999px;max-width:100%;font-size:12.5px;font-weight:700;border:1px solid var(--line-strong);color:var(--muted);background:var(--panel);white-space:nowrap}
.chip.blue{color:#9dc0ff;border-color:rgba(91,140,255,.55)}
.chip.violet{color:#c9b3ff;border-color:rgba(143,107,255,.55)}
.chip.ok{color:var(--ok);border-color:rgba(52,211,153,.5)}
.chip.warn{color:var(--warn);border-color:rgba(251,191,36,.5)}
.chip.bad{color:var(--bad);border-color:rgba(251,113,133,.5)}
.chip::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}

/* accueil */
.hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.95fr);gap:24px;align-items:stretch}
.hero-copy{display:flex;flex-direction:column;gap:18px;justify-content:center;padding-block:14px}
.now{display:flex;flex-direction:column;gap:12px}
.timeline{display:flex;flex-direction:column}
.tl{display:grid;grid-template-columns:108px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line);align-items:baseline}
.tl:first-child{border-top:0}
.tl time{font-size:13.5px;color:var(--dim);font-variant-numeric:tabular-nums;font-weight:600}
.tl.live time{color:var(--cyan)}
.tl.live b::after{content:"en cours";margin-left:10px;font-size:11.5px;color:var(--ground);background:var(--cyan);padding:2px 9px;border-radius:999px;font-weight:800}

/* indicateurs */
.kpi{display:flex;align-items:center;gap:16px}
.ring{width:76px;height:76px;flex:none;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:8}
.ring .bg{stroke:var(--line)}
.ring .fg{stroke:url(#ringgrad);stroke-linecap:round;transition:stroke-dashoffset .9s cubic-bezier(.2,.8,.2,1)}
.kpi b{font-family:var(--display);font-size:30px;font-weight:700;line-height:1;display:block}
.kpi small{color:var(--muted);font-size:14px}
.counter{display:flex;align-items:center;gap:8px}
.counter button{all:unset;cursor:pointer;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--line-strong);font-weight:800;font-size:18px;color:var(--text);transition:background .15s}
.counter button:hover{background:var(--surface-2)}
.counter button:focus-visible{outline:2px solid var(--cyan)}
.counter button[disabled]{opacity:.3;cursor:not-allowed}
.bar{height:7px;border-radius:999px;background:var(--line);overflow:hidden}
.bar i{display:block;height:100%;border-radius:999px;background:var(--grad);transition:width .8s cubic-bezier(.2,.8,.2,1)}

/* onglets */
.tabs{display:flex;gap:4px;flex-wrap:wrap;padding:4px;border-radius:14px;border:1px solid var(--line);background:var(--panel);width:fit-content;max-width:100%}
.tabs button{all:unset;cursor:pointer;padding:9px 16px;border-radius:10px;font-weight:700;font-size:14.5px;color:var(--muted);transition:color .15s,background .15s}
.tabs button:hover{color:var(--text)}
.tabs button[aria-selected="true"]{background:var(--surface-2);color:#fff;box-shadow:inset 0 0 0 1px var(--line-strong)}
.tabs button:focus-visible{outline:2px solid var(--cyan)}

/* formulaires */
label.f{display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--muted);font-weight:600}
.in,select.in,textarea.in{width:100%;padding:12px 13px;border-radius:var(--r-sm);border:1px solid var(--line-strong);background:#070a18;color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s;font-weight:500;font-size:16px}
.in:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(91,140,255,.25)}
.in::placeholder{color:#5d678f}
textarea.in{min-height:96px;resize:vertical;line-height:1.5}
select.in{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:34px}
.check{display:flex;gap:12px;align-items:flex-start;cursor:pointer;padding:10px;border-radius:var(--r-sm);transition:background .15s}
.check:hover{background:var(--surface-2)}
.check input{appearance:none;flex:none;width:22px;height:22px;margin:2px 0 0;border-radius:6px;border:1.5px solid var(--line-strong);background:#070a18;display:grid;place-items:center;cursor:pointer;transition:background .15s,border-color .15s}
.check input:checked{background:var(--accent);border-color:var(--accent)}
.check input:checked::after{content:"";width:10px;height:5px;border-left:2.4px solid #fff;border-bottom:2.4px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.check input:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}

/* étapes */
.steps{display:flex;flex-direction:column;gap:12px}
.step{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);position:relative;transition:border-color .2s}
.step.active{border-color:var(--accent);box-shadow:0 0 0 1px rgba(91,140,255,.25),0 18px 50px rgba(20,30,90,.45)}
.step.locked{opacity:.5}
.step-h{all:unset;cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;padding:16px 20px;width:100%;box-sizing:border-box}
.step-h:focus-visible{outline:2px solid var(--cyan);outline-offset:-3px;border-radius:var(--r-lg)}
.step-n{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-weight:800;font-size:14px;flex:none;color:var(--muted);background:var(--surface-2);font-variant-numeric:tabular-nums}
.step.active .step-n{background:var(--grad);color:#fff}
.step.done .step-n{background:rgba(52,211,153,.16);color:var(--ok)}
.step-t{flex:1;min-width:200px}
.step-t b{display:block;font-size:17px}
.step-t small{color:var(--muted);font-size:14px}
.step-b{padding:0 20px 20px;display:flex;flex-direction:column;gap:16px}
.phase{display:flex;align-items:center;gap:10px;font-weight:800;font-size:15px;color:var(--text);padding-top:4px}
.phase i{font-style:normal;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:13px;flex:none}
.prompt{position:relative;border-radius:var(--r-md);border:1px solid var(--line-strong);background:#070a18;overflow:hidden}
.prompt-h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px 9px 16px;border-bottom:1px solid var(--line);font-size:13.5px;color:var(--muted);font-weight:700;background:var(--panel)}
.prompt pre{margin:0;padding:16px;font-family:var(--mono);font-size:13px;line-height:1.65;white-space:pre-wrap;word-break:break-word;max-height:340px;overflow:auto;color:#dbe2ff}
.prompt pre mark{background:rgba(251,191,36,.16);color:var(--warn);border-radius:4px;padding:0 3px}
.humanbox{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;padding:12px 14px;border-radius:var(--r-md);border:1px solid rgba(251,191,36,.5);background:rgba(251,191,36,.07);color:#fde9b3}
.humanbox b{color:var(--warn);white-space:nowrap}

/* tableaux */
.scroll-x{overflow-x:auto;border-radius:var(--r-md);border:1px solid var(--line);background:var(--panel)}
table{border-collapse:collapse;width:100%;min-width:680px;font-size:15px}
th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
th{font-size:12.5px;color:var(--dim);font-weight:700;background:var(--surface)}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:rgba(91,140,255,.06)}
tr.me td{background:rgba(91,140,255,.08)}
.rank{font-family:var(--display);font-weight:700;font-size:18px;color:var(--dim)}
tbody tr:first-child .rank{color:var(--cyan)}

details.acc{border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel)}
details.acc summary{cursor:pointer;padding:14px 16px;font-weight:700;list-style:none;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 12px;align-items:center;position:relative;padding-right:44px}
details.acc summary::-webkit-details-marker{display:none}
details.acc summary::after{content:"+";color:var(--accent);font-size:20px;font-weight:700;transition:transform .2s;position:absolute;right:16px;top:12px}
details.acc[open] summary::after{transform:rotate(45deg)}
details.acc .acc-b{padding:0 16px 16px;color:var(--muted);display:flex;flex-direction:column;gap:10px}
details.acc .acc-b b{color:var(--text)}
ul.clean,ol.clean{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px}
ol.clean li::marker{color:var(--accent);font-weight:800}
.quote{border-left:3px solid var(--accent-2);padding:4px 0 4px 14px;color:var(--text)}
.say{background:rgba(91,140,255,.08);border:1px solid rgba(91,140,255,.3);border-radius:var(--r-md);padding:14px 16px;font-size:16.5px;line-height:1.6}
.say small{display:block;color:#9dc0ff;font-weight:800;font-size:12.5px;margin-bottom:4px}
.do{border-left:3px solid var(--ok)} .dont{border-left:3px solid var(--bad)}

.toast{position:fixed;z-index:90;left:50%;bottom:calc(26px + env(safe-area-inset-bottom,0px));transform:translate(-50%,40px);opacity:0;padding:12px 20px;border-radius:999px;background:#151c3e;border:1px solid var(--line-strong);font-weight:700;box-shadow:0 18px 50px rgba(0,0,0,.6);transition:transform .3s cubic-bezier(.2,.9,.2,1.15),opacity .25s;pointer-events:none;max-width:calc(100% - 32px);text-align:center}
.toast.show{transform:translate(-50%,0);opacity:1}
.modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:16px;background:rgba(3,4,12,.8)}
.modal .card{width:min(520px,100%);max-height:calc(100vh - 32px);overflow:auto;animation:pop .3s cubic-bezier(.2,.9,.2,1.1) both}
@keyframes pop{from{transform:translateY(20px) scale(.97);opacity:0}}
.view-in{animation:viewin .4s ease both}
@keyframes viewin{from{transform:translateY(12px);opacity:0}}
.banner{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:14px 18px;border-radius:var(--r-md);border:1px dashed rgba(251,191,36,.55);background:rgba(251,191,36,.07);color:#fde9b3}
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.people .btn{justify-content:flex-start;padding:10px 12px}

/* en-têtes illustrés */
.head.ill{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-lg);padding:28px 30px;min-height:250px;justify-content:center;background:#060b22}
.head.ill::after{content:"";position:absolute;right:-6px;top:50%;transform:translateY(-50%);height:118%;aspect-ratio:720/576;max-width:50%;background:var(--ill,none) center/contain no-repeat;-webkit-mask-image:radial-gradient(ellipse 62% 64% at 50% 50%,#000 55%,transparent 100%);mask-image:radial-gradient(ellipse 62% 64% at 50% 50%,#000 55%,transparent 100%);pointer-events:none}
.head.ill>*{position:relative;z-index:1;max-width:min(56%,620px)}
.head.ill>.tabs{max-width:100%}
/* entrée */
body[data-view="login"] .rail{display:none}
body[data-view="login"] .main{margin-left:0}
.people.big{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.person{justify-content:flex-start!important;padding:14px 16px!important;gap:12px;text-align:left}
.person small{font-weight:500;color:var(--muted);font-size:13px;display:block}
.person.primary small{color:#eef2ff}
.person .avatar{width:40px;height:40px;font-size:14px;background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
/* charte non signée : tout est verrouillé sauf la charte */
body[data-locked="1"] #nav button:not([data-view="charte"]){opacity:.35}
body[data-locked="1"] #nav button:not([data-view="charte"])::after{content:"";margin-left:auto;width:12px;height:14px;background:currentColor;-webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14"><path d="M2.500 6V4.200a3.500 3.500 0 0 1 7 0V6H11v8H1V6zm1.500 0h4V4.200a2 2 0 0 0-4 0z"/></svg>') center/contain no-repeat;mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14"><path d="M2.500 6V4.200a3.500 3.500 0 0 1 7 0V6H11v8H1V6zm1.500 0h4V4.200a2 2 0 0 0-4 0z"/></svg>') center/contain no-repeat}

@supports (animation-timeline: view()){
  @media (prefers-reduced-motion:no-preference){
    body[data-view="home"] .rv{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 35%}
    @keyframes rise{from{opacity:.3;transform:translateY(34px) scale(.98)}to{opacity:1;transform:none}}
  }
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .tilt{transform:none!important}
}

@media (max-width:900px){
  .rail{top:auto;right:0;width:auto;flex-direction:row;align-items:center;background:#070914;padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));border-right:0;border-top:1px solid var(--line);gap:0}
  .brand,.who .who-t,.nav-sep{display:none}
  .nav{flex-direction:row;flex:1;justify-content:space-between;gap:0;min-width:0}
  .nav button{flex:1;flex-direction:column;gap:3px;font-size:10.5px;font-weight:700;padding:9px 2px;min-width:0;min-height:44px;white-space:nowrap;justify-content:center;text-align:center}
  .nav .full{display:none}.nav .short{display:none}
  .nav button[aria-current="page"] .short{display:inline}
  .nav button[hidden]{display:none}
  .tabs{width:100%}.tabs button{flex:1;text-align:center;padding:10px 6px;font-size:13.5px}
  .toast{bottom:calc(92px + env(safe-area-inset-bottom,0px))}
  .chip{white-space:normal;border-radius:12px}
  html{scroll-behavior:auto}
  .nav button[aria-current="page"]{flex:1.7}
  .head.ill{padding:188px 18px 20px;min-height:0}
  .head.ill::after{right:50%;top:4px;transform:translateX(50%);height:190px;max-width:92%}
  .head.ill>*{max-width:100%}
  body[data-locked="1"] #nav button:not([data-view="charte"])::after{display:none}
  .nav button[aria-current="page"]{box-shadow:none;background:var(--surface-2)}
  .rail-foot{margin:0 0 0 4px}
  .who{padding:4px;border:0;background:none}
  .main{margin-left:0;padding-block:20px 104px}
  .hero{grid-template-columns:1fr}
  .tl{grid-template-columns:96px 1fr}
  .card{padding:18px}
  .step-h{padding:14px 16px}.step-b{padding:0 16px 16px}
  .btn{padding:13px 18px}
  /* tableaux en fiches */
  .scroll-x{border:0;background:none;overflow:visible}
  table{min-width:0;display:block}
  thead{display:none}
  tbody{display:flex;flex-direction:column;gap:12px}
  tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;padding:14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel)}
  tbody tr.me{border-color:var(--accent)}
  tr.me td{background:none}
  td{display:flex;flex-direction:column;gap:3px;padding:0;border:0;min-width:0}
  td[data-label]::before{content:attr(data-label);font-size:12px;color:var(--dim);font-weight:700}
  td.wide{grid-column:1/-1}
  td .in{min-width:0!important;width:100%}
}


/* ============ personnage, XP, niveaux ============ */
.avf{display:inline-grid;place-items:center;width:var(--s,48px);height:var(--s,48px);border-radius:50%;padding:max(2px,calc(var(--s,48px)*.04));background:var(--fr,linear-gradient(135deg,#d9a066,#8a5a2b));flex:none;position:relative;vertical-align:middle}
.avf svg{width:100%;height:100%;border-radius:50%;display:block;background:#0c1022}
.fr-bronze{--fr:linear-gradient(135deg,#e2ad78,#8a5a2b)}
.fr-argent{--fr:linear-gradient(135deg,#f4f7fb,#8b95a8)}
.fr-or{--fr:linear-gradient(135deg,#fde68a,#d4a017)}
.fr-platine{--fr:linear-gradient(135deg,#e0fbff,#5eead4 50%,#67a3ff)}
.fr-diamant{--fr:linear-gradient(135deg,#22d3ee,#5b8cff 45%,#c65bff)}
.fr-legende{--fr:conic-gradient(from 20deg,#fde68a,#fb7185,#c65bff,#5b8cff,#22d3ee,#fde68a)}
.avl{position:absolute;right:-3px;bottom:-3px;min-width:clamp(17px,calc(var(--s,48px)*.3),38px);height:clamp(17px,calc(var(--s,48px)*.3),38px);padding:0 4px;border-radius:999px;display:grid;place-items:center;font:700 clamp(10px,calc(var(--s,48px)*.17),20px)/1 var(--display);color:#fff;background:#0c1022;box-shadow:0 0 0 2px var(--accent)}


.avl{right:max(-3px,calc(var(--s,48px)*.06 - 8px));bottom:max(-3px,calc(var(--s,48px)*.04 - 6px))}
/* carte « moi » du menu */
.who #whoAv{display:grid;flex:none}
.who-t{min-width:0}
.whobar{display:block;height:4px;border-radius:99px;background:var(--line);overflow:hidden;margin-top:6px;width:124px}
.whobar i{display:block;height:100%;width:0;background:var(--neon);border-radius:99px;transition:width .6s cubic-bezier(.2,.8,.2,1)}
.switch{all:unset;cursor:pointer;font-size:12.5px;color:var(--dim);font-weight:600;padding:5px 10px;text-align:center;border-radius:8px}
.switch:hover{color:var(--text)}
.switch:focus-visible{outline:2px solid var(--cyan)}
body[data-view="perso"] .who{border-color:var(--line-strong);background:var(--surface-2)}
.only-mobile{display:none!important}
/* +XP */
.xpfly{position:fixed;z-index:95;right:22px;top:18px;display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding:9px 16px;border-radius:14px;background:#151c3e;border:1px solid var(--accent);box-shadow:0 10px 30px rgba(0,0,0,.45);font-family:var(--display);font-weight:700;font-size:20px;color:#fff;opacity:0;transform:translateY(-16px);pointer-events:none;transition:opacity .25s,transform .25s;max-width:min(340px,calc(100vw - 32px))}
.xpfly small{font:600 12.5px/1.35 var(--body);color:var(--muted);text-align:right}
.xpfly b{background:var(--neon);-webkit-background-clip:text;background-clip:text;color:transparent}
.xpfly.show{opacity:1;transform:none}
.lvup{display:grid;place-items:center;padding-top:6px}
/* barres d'XP */
.xpbar{display:block;height:9px;border-radius:999px;background:var(--line);overflow:hidden}
.xpbar i{display:block;height:100%;border-radius:999px;background:var(--neon);transition:width .8s cubic-bezier(.2,.8,.2,1)}
.xpbar.big{height:12px;max-width:520px}
/* bandeau du Cockpit */
.lvlstrip{display:grid;grid-template-columns:minmax(300px,1fr) minmax(0,1.25fr);gap:18px;align-items:center;padding:16px 20px}
.lv-me{all:unset;cursor:pointer;display:flex;align-items:center;gap:16px;border-radius:var(--r-md);padding:4px;min-width:0}
.lv-me:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.lv-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}
.lv-t{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.lv-t b{font-family:var(--display);font-size:20px}
.lv-ch{display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:0}
.chal{display:flex;flex-direction:column;gap:7px;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--panel);min-width:0}
.chal.done{border-color:rgba(52,211,153,.5)}
.chal-h{display:flex;justify-content:space-between;gap:8px;align-items:baseline;font-size:14px;font-weight:700}
.chal-h small{color:var(--dim);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:11px;flex:none}
/* page Personnage */
.perso-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:28px;align-items:center;border:1px solid var(--line);border-radius:var(--r-lg);padding:26px 30px;background:radial-gradient(620px 320px at 0% 0%,rgba(143,107,255,.18),transparent 70%),radial-gradient(520px 300px at 100% 100%,rgba(34,211,238,.08),transparent 70%),#060b22}
.ph-t{gap:12px;min-width:0}
.ph-actions{margin-top:4px}
.look-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:start}
.look-prev{position:sticky;top:18px;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}
.look-prev label.f{text-align:left}
.opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.opts.colors{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}
.opt{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:7px;padding:12px 6px 10px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--panel);font-size:12.5px;line-height:1.25;font-weight:700;color:var(--muted);text-align:center;position:relative;transition:border-color .15s,background .15s,color .15s}
.opt:hover{border-color:var(--line-strong);color:var(--text)}
.opt.sel{border-color:var(--accent);background:var(--surface-2);color:#fff;box-shadow:0 0 0 1px var(--accent)}
.opt.locked{cursor:not-allowed}
.opt.locked .avf,.opt.locked .sw{opacity:.62;filter:saturate(.7)}
.opt .lock{position:absolute;top:6px;right:6px;font-size:10.5px;padding:2px 7px;border-radius:99px;background:#0c1022;border:1px solid rgba(251,191,36,.5);color:var(--warn)}
.opt:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.sw{display:block;width:46px;height:46px;border-radius:50%;box-shadow:inset 0 0 0 2px rgba(255,255,255,.2);flex:none}
.road{display:flex;flex-direction:column;gap:10px}
.road-row{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:16px;align-items:center;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel)}
.road-row.got{border-color:rgba(52,211,153,.35)}
.road-row.next{border-color:var(--accent);background:var(--surface-2)}
.road-l{font-family:var(--display);font-weight:700;font-size:22px;text-align:center;line-height:1.1}
.road-l small{display:block;font:600 11px var(--body);color:var(--dim);margin-top:3px}
.road-items{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;min-width:0}
.road-it{display:inline-flex;align-items:center;gap:9px;font-size:14.5px;font-weight:600;min-width:0}
.road-it .sw{box-shadow:inset 0 0 0 2px rgba(255,255,255,.2)}
.troph .medal{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:none;background:var(--surface-2);color:var(--dim)}
.troph.got .medal{background:linear-gradient(135deg,#fde68a,#d4a017);color:#3b2a06}
.troph.got{border-color:rgba(253,230,138,.4)}
.person .avf{flex:none}
@media (max-width:900px){
  .who-t,.switch{display:none}
  .only-mobile{display:inline-flex!important}
  .nav button[data-view="perso"]{display:none}
  body[data-view="perso"] .who .avf{box-shadow:0 0 0 2px var(--cyan)}
  .xpfly{right:50%;top:calc(10px + env(safe-area-inset-top,0px));transform:translate(50%,-16px);align-items:center}
  .xpfly.show{transform:translate(50%,0)}
  .xpfly small{text-align:center}
  .lvlstrip{grid-template-columns:1fr;padding:16px}
  .lv-ch{grid-template-columns:1fr}
  .perso-head{grid-template-columns:1fr;justify-items:center;text-align:center;padding:22px 18px;gap:16px}
  .perso-head .row{justify-content:center}
  .perso-head .xpbar.big{width:100%}
  .ph-actions{flex-direction:column;align-items:stretch;width:100%}
  .perso-head .tabs button{font-size:13px;padding:10px 4px;white-space:nowrap}
  .look-grid{grid-template-columns:1fr}
  .look-prev{top:8px;z-index:6;flex-direction:row;text-align:left;padding:12px 14px;align-items:center;box-shadow:0 12px 30px rgba(0,0,0,.55)}
  .look-prev>.avf{--s:92px!important}
  .look-prev small.dim{display:none}
  .opts{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
  .road-row{grid-template-columns:54px minmax(0,1fr);gap:12px}
  .road-row>div:last-child{grid-column:1/-1}
}
