:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#eff5ff;background:#0a1431;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 60% 0,#29437a 0,transparent 36%),#0a1431}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #b3a4ff;outline-offset:2px}[hidden]{display:none!important}.app-shell{display:flex;min-height:100vh}.sidebar{width:96px;flex:none;background:linear-gradient(165deg,#101b43,#121f4b);border-right:1px solid #ffffff20;display:flex;flex-direction:column;align-items:center;padding:27px 10px;gap:80px}.logo{font-size:38px;font-weight:950;letter-spacing:-2px;text-align:center;line-height:.75}.logo span{display:block;font-size:19px;letter-spacing:2px;margin-top:12px}.logo-accent{display:inline!important;color:#bb92ff}.sidebar-links{width:100%;display:grid;gap:10px}.side-link{color:#b5c3e3;background:none;border:0;border-radius:16px;width:100%;padding:15px 4px;display:flex;flex-direction:column;align-items:center;gap:6px}.side-link span{font-size:25px}.side-link small{font-size:10px}.side-link:hover,.side-link.active{background:#9e75fa35;color:white}.admin-shortcut{margin-top:auto}main{width:calc(100% - 96px);max-width:2000px;margin:0 auto;padding:34px clamp(20px,3.4vw,60px) 18px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.eyebrow{color:#bca9ff;font-size:11px;font-weight:900;letter-spacing:2px}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#5ef2c7;box-shadow:0 0 13px #5ef2c7;margin-right:8px}h1{font-size:clamp(31px,3.2vw,52px);line-height:1.1;margin:10px 0 8px;letter-spacing:-2px;font-weight:950}h1 span{color:#c4a0ff}.brand p{color:#aebddf;margin:0;font-size:16px}.header-actions{display:flex;gap:13px;align-items:center}.edition-pill,.outline-btn{border:1px solid #ffffff35;border-radius:15px;padding:12px 17px;background:#ffffff10;color:#eff5ff;font-size:12px;font-weight:800;white-space:nowrap}.outline-btn:hover{background:#ffffff23}.edition-pill{color:#bfd0f6}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:23px}.stat{background:linear-gradient(132deg,#ffffff18,#ffffff09);border:1px solid #ffffff21;border-radius:20px;min-height:100px;padding:20px 22px;display:flex;gap:18px;align-items:center;box-shadow:0 12px 40px #050c2529}.stat-icon{display:grid;place-items:center;background:#b6a2fc28;border-radius:14px;color:#d6c5ff;width:52px;height:52px;font-size:28px;flex:none}.stat-big{font-size:clamp(19px,2vw,29px);font-weight:950;letter-spacing:-.8px}.stat-desc{color:#aab9d9;font-size:12px;margin-top:5px}.truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:185px}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 344px;gap:20px}.mountain-card,.ranking-card{background:#15244d;border:1px solid #ffffff22;border-radius:23px;overflow:hidden;box-shadow:0 19px 65px #02081965}.mountain-card{padding:20px 20px 0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.section-heading h2,.ranking-header h2{margin:7px 0 0;font-size:22px;letter-spacing:-.7px}.section-heading h2 span{color:#b994ff}.section-hint{color:#b4c1dc;font-size:11px}.mountain-scroll{overflow-x:auto;border-radius:15px}.mountain-stage{position:relative;min-width:880px;width:100%;aspect-ratio:1080/610;overflow:hidden;border-radius:15px;background:#6086bd}.mountain-backdrop,.piste-svg{position:absolute;inset:0;width:100%;height:100%}.piste-svg{overflow:visible}.finish-gate{position:absolute;top:8.7%;left:50%;transform:translateX(-50%);background:linear-gradient(100deg,#7350c5,#aa71f1);padding:11px 25px;border-radius:50px;box-shadow:0 10px 22px #2c186e75;border:2px solid #d8c6ff;color:white;font-size:14px;font-weight:950;letter-spacing:1px;z-index:2;white-space:nowrap}.finish-gate span{padding:0 12px}.lane-labels{position:absolute;bottom:2%;left:0;right:0;display:grid;grid-template-columns:repeat(9,1fr);padding:0 1.5%;pointer-events:none}.lane-label{text-align:center;font-weight:850;font-size:clamp(10px,.83vw,13px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#162757;text-shadow:0 1px #ffffffaa}.lane-label span{background:#eaf3ffdf;padding:7px 4px;border-radius:10px;display:inline-block;max-width:98%;overflow:hidden;text-overflow:ellipsis}.mountain-footer{padding:16px 1px;display:flex;justify-content:space-between;gap:10px;color:#bdcdec;font-size:11px}.legend-skier{display:inline-block;width:9px;height:9px;background:#a991ff;border-radius:50%;margin-right:5px}.ranking-card{display:flex;flex-direction:column;padding:23px 17px}.ranking-header{padding:3px 6px 20px}.ranking-header h2{font-size:26px}.ranking-header p{color:#a5b5d6;font-size:13px;margin:6px 0 0}.ranking-table-head{display:flex;justify-content:space-between;color:#8e9fc7;font-size:10px;font-weight:900;letter-spacing:1px;border-top:1px solid #ffffff1e;border-bottom:1px solid #ffffff1e;padding:13px 8px}.ranking-rows{display:flex;flex-direction:column;gap:7px;margin-top:12px}.ranking-row{display:grid;grid-template-columns:31px minmax(0,1fr) 89px;gap:9px;align-items:center;padding:12px 9px;background:#ffffff0b;border:1px solid #ffffff09;border-radius:13px}.ranking-row.top-1{background:linear-gradient(110deg,#a982423b,#ffffff08);border-color:#e6b86f60}.ranking-row.top-2{border-color:#e5eaf544}.ranking-row.top-3{border-color:#bc89533f}.rank-badge{height:29px;width:29px;border-radius:50%;display:grid;place-items:center;background:#ffffff1b;color:#d3dff5;font-weight:950;font-size:13px}.top-1 .rank-badge{background:#f5bd55;color:#49300b}.top-2 .rank-badge{background:#c6d2ea;color:#35435b}.top-3 .rank-badge{background:#cc956f;color:#4e2b17}.seller-name{font-size:12px;font-weight:850;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seller-points{color:#9eaed0;font-size:10px;margin-top:4px}.progress-val{font-size:12px;text-align:right;font-weight:900}.bar{height:5px;border-radius:20px;background:#ffffff2a;margin-top:7px;overflow:hidden}.bar span{display:block;height:100%;background:linear-gradient(90deg,#718aff,#bc81f9);border-radius:20px}.ranking-footer{margin-top:auto;display:flex;align-items:center;gap:14px;background:linear-gradient(115deg,#a989fd33,#5688dc26);padding:16px 12px;border-radius:16px;position:relative;top:10px}.ranking-footer>span{font-size:33px}.ranking-footer strong,.ranking-footer small{display:block}.ranking-footer small{margin-top:5px;color:#b4c1df;font-size:11px}.global-footer{display:flex;justify-content:center;gap:12px;color:#758bb7;font-size:10px;padding:24px}.status{margin-bottom:14px;background:#f8c9d32c;border:1px solid #f8c9d3a6;color:#ffe2e8;padding:15px;border-radius:12px}.overlay{position:fixed;inset:0;background:#030a1bd9;backdrop-filter:blur(5px)}.modal-wrap{position:fixed;inset:0;display:grid;place-items:center;z-index:20;padding:16px}.modal{background:#15234a;color:white;border:1px solid #ffffff35;box-shadow:0 28px 100px #000a;border-radius:22px;padding:25px;width:min(900px,100%);max-height:92vh;overflow:auto;position:relative}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.modal-header h2{margin:5px 0 0}.close-btn{border:0;background:#ffffff15;color:white;font-size:24px;width:37px;height:37px;border-radius:10px}.login-form{max-width:400px;margin:0 auto 20px}.login-form p,.edit-intro{font-size:13px;color:#b4c4e6;line-height:1.7}.modal label{display:block;font-size:12px;color:#c6d5ef;font-weight:750}.modal input{width:100%;display:block;background:#081635;color:white;border:1px solid #ffffff37;border-radius:10px;padding:12px;margin-top:8px;margin-bottom:14px;min-width:0}.primary-btn{background:linear-gradient(100deg,#8463ea,#b484ff);border:0;color:white;border-radius:12px;padding:13px 19px;font-size:13px;font-weight:900}.primary-btn:disabled{opacity:.5;cursor:wait}.edit-settings{display:grid;grid-template-columns:1fr 1.4fr 160px;gap:15px}.edit-table-wrap{overflow-x:auto}.edit-table{width:100%;border-collapse:collapse;min-width:600px;font-size:12px}.edit-table th{text-align:left;color:#99acd1;letter-spacing:.7px;font-size:10px}.edit-table td,.edit-table th{border-bottom:1px solid #ffffff1d;padding:4px 8px}.edit-table td:first-child{color:#beadff;font-weight:900}.edit-table input{margin:5px 0;padding:8px}.edit-table .percent-cell{font-weight:900;color:#b7a1fa}.edit-actions{display:flex;justify-content:space-between;margin-top:22px;gap:14px}.admin-message{margin-top:12px;color:#ffb7cb;font-size:12px}.admin-message.success{color:#7eeabf}@media(max-width:1280px){.content-grid{grid-template-columns:1fr}.ranking-card{min-height:0}.ranking-rows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.ranking-footer{margin-top:10px}.stats{gap:10px}}@media(max-width:800px){.sidebar{width:58px;padding:18px 4px;gap:40px}.logo{font-size:23px}.logo span{font-size:12px}.side-link{padding:12px 0}.side-link small{font-size:8px}main{width:calc(100% - 58px);padding:20px 10px}.topbar{align-items:flex-start}.header-actions{flex-direction:column;align-items:flex-end}.edition-pill{display:none}.outline-btn{padding:9px;font-size:11px}.stats{grid-template-columns:repeat(2,1fr)}.stat{padding:12px;min-height:78px;gap:8px}.stat-icon{width:36px;height:36px;font-size:20px}.section-hint{display:none}.mountain-card{padding:12px 10px 0}.ranking-rows{grid-template-columns:1fr}.edit-settings{grid-template-columns:1fr}.global-footer{flex-wrap:wrap}.mountain-footer{flex-wrap:wrap}}@media(prefers-reduced-motion:no-preference){.skier-group{transition:transform 1.2s ease}.live-dot{animation:pulse 2s infinite}@keyframes pulse{50%{box-shadow:0 0 17px #5ef2c7,0 0 1px 5px #5ef2c72a}}}

/* v2 : piste immersive et contribution collective */
body{background:radial-gradient(ellipse at 30% -10%,#3b4798 0,transparent 47%),linear-gradient(155deg,#0a1330,#10173a 55%,#0b1832)}
.mountain-card{background:linear-gradient(145deg,#28396a,#1b2a50);border-color:#a3b9ff45}
.mountain-stage{border:1px solid #ecf8ff59;box-shadow:inset 0 0 60px #fff5,0 18px 42px #020a2240}
.finish-gate{background:linear-gradient(105deg,#8050dd,#a96efb);box-shadow:0 0 28px #aa8affbb,0 12px 25px #35206873}
.piste-svg .skier-group:hover{filter:drop-shadow(0 2px 13px #7b50ef);outline:none}
.lane-label{cursor:pointer}.lane-label span{background:#f3f7ffec;box-shadow:0 3px 12px #15396833;border:1px solid #fff}
.lane-label:hover span{background:#dfcbff;color:#3d236c}
.ranking-row{cursor:pointer;transition:background .2s,transform .2s}.ranking-row:hover{background:#a48bfb35;transform:translateX(-2px)}
.ranking-row:focus-visible,.lane-label:focus-visible{outline:3px solid #c5a8ff;outline-offset:3px}
.history-section{margin-top:25px;padding-top:16px;border-top:1px solid #ffffff22}
.history-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.history-heading h3{margin:6px 0;font-size:18px}.history-section p{font-size:12px;color:#aabbd8}
.history-rows{max-height:240px;overflow:auto;display:grid;gap:6px;padding:5px 2px}
.history-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(140px,2fr) auto;align-items:center;gap:9px;background:#ffffff0d;border:1px solid #ffffff10;border-radius:10px;padding:8px;font-size:12px}
.history-row span{color:#b9c9ec}.delete-event{border:1px solid #ed8ca75e;border-radius:8px;color:#ffd5df;background:#8e315637;padding:7px 12px;font-size:11px;font-weight:750}.delete-event:hover{background:#a34160aa}
.edit-settings{grid-template-columns:1fr 1fr 1.4fr 150px}
@media(max-width:900px){.edit-settings{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.edit-settings{grid-template-columns:1fr}.history-row{grid-template-columns:1fr auto}.history-row span{grid-column:1;grid-row:2}.history-row button{grid-column:2;grid-row:1/3}}

/* v3 : pistes pleine largeur, classement accessible depuis le menu gauche */
.content-grid{display:block}.ranking-view{max-width:1050px;margin:0 auto}.ranking-view .ranking-card{min-height:580px}.ranking-view .ranking-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.mountain-card{width:100%}.mountain-stage{aspect-ratio:1080/600}.sidebar{position:relative;z-index:5}.sidebar-links{position:relative}.side-submenu{position:absolute;left:calc(100% + 10px);top:62px;background:#162754;border:1px solid #ffffff44;box-shadow:0 20px 55px #030b24bb;border-radius:16px;min-width:185px;padding:9px;z-index:8}.submenu-item{width:100%;display:block;text-align:left;color:#f3f2ff;background:transparent;border:0;border-radius:9px;padding:13px 12px;font-size:13px;font-weight:800}.submenu-item:hover{background:#b6a2fc33}.seller-modal{max-width:570px}.seller-modal>p{color:#c3d3f0;line-height:1.55;font-size:14px}.seller-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.seller-choice{background:#283b69;border:1px solid #ffffff35;color:white;border-radius:14px;min-height:67px;padding:10px 8px;font-weight:800}.seller-choice:hover,.seller-choice:focus-visible{background:#7659c8}.seller-choice.selected{background:#644abd;border-color:#d5c6ff}.seller-warning{font-size:11px!important;color:#b9c5df!important}.lane-label.not-selected,.skier-group.not-selected{opacity:.76}.lane-label.mine span{background:#cdb3ff!important;color:#251b56!important;box-shadow:0 0 0 3px #a47eff88}.piste-svg .skier-group.mine{filter:drop-shadow(0 1px 12px #9564ff)}.lane-label.not-selected,.skier-group.not-selected{cursor:default!important}.ranking-row{cursor:default!important}.ranking-row:hover{transform:none}.header-actions{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:800px){.side-submenu{left:calc(100% + 3px)}.seller-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.ranking-view .ranking-rows{grid-template-columns:1fr}.mountain-stage{min-width:880px}}
