@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,600;0,700;0,800;0,900&family=Inter:wght@400;500;600;700;800&display=swap');

:root{--ink:#f7f8ff;--muted:#a9add0;--panel:#171735;--panel2:#20204a;--line:rgba(255,255,255,.11);--cyan:#25d9ff;--pink:#ff4fd8;--purple:#7928ff;--yellow:#ffd43b;--danger:#ff3d64;--ok:#61ff9c;--shadow:0 24px 70px rgba(0,0,0,.38)}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;min-height:100%;font-family:Inter,system-ui,sans-serif}
body{color:var(--ink);background:#09091d}
button,input,select{font:inherit}
button,a{transition:transform .18s ease,filter .18s ease,background .18s ease}
button:active,.btn:active{transform:translateY(1px) scale(.985)}
.eyebrow{margin:0;color:var(--cyan);font:800 .74rem/1 Inter,sans-serif;letter-spacing:.18em;text-transform:uppercase}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:1px solid var(--line);border-radius:11px;padding:.72rem 1rem;background:#262650;color:#fff;font-weight:800;text-decoration:none;cursor:pointer}
.btn:hover{filter:brightness(1.15)}
.btn.primary{border:0;background:linear-gradient(135deg,var(--purple),var(--pink));box-shadow:0 10px 28px rgba(162,49,255,.28)}
.btn.soft{background:#252556;border-color:rgba(84,218,255,.3)}
.btn.ghost{background:transparent}
.btn.danger{background:rgba(255,61,100,.14);border-color:rgba(255,61,100,.5);color:#ff8da6}
.btn.tiny{padding:.48rem .66rem;border-radius:8px;font-size:.75rem}
.btn.giant{padding:1rem 1.35rem;font-size:1rem}
.alert{padding:.8rem 1rem;border-radius:10px;margin:1rem 0}.alert.danger{background:rgba(255,61,100,.13);border:1px solid rgba(255,61,100,.4);color:#ffb1c1}
.mini-logo{font:900 1.55rem/1 'Barlow Condensed',sans-serif;letter-spacing:.05em}.mini-logo span{color:var(--pink)}

/* Écran public */
.public-screen{height:100vh;overflow:hidden;background:radial-gradient(circle at 50% -10%,#4d1780 0,transparent 38%),linear-gradient(180deg,#11113a 0,#08091d 72%);position:relative}
.public-screen:before{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(#000,transparent 85%);pointer-events:none}
.stage-lights{position:fixed;inset:0 0 auto;height:56vh;display:flex;justify-content:space-around;pointer-events:none;overflow:hidden}
.stage-lights i{width:9vw;height:70vh;transform-origin:50% 0;background:linear-gradient(180deg,rgba(71,225,255,.22),transparent 72%);clip-path:polygon(43% 0,57% 0,100% 100%,0 100%);filter:blur(5px);animation:sweep 6s ease-in-out infinite alternate}
.stage-lights i:nth-child(2n){background:linear-gradient(180deg,rgba(255,51,212,.18),transparent 72%);animation-delay:-2s}.stage-lights i:nth-child(3){animation-delay:-4s}
@keyframes sweep{to{transform:rotate(16deg) translateX(4vw)}}
.show-header{height:10vh;min-height:70px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:1.2vh 2.3vw;position:relative;z-index:5;background:linear-gradient(180deg,rgba(4,5,19,.84),rgba(4,5,19,0));border-bottom:1px solid rgba(255,255,255,.08)}
.show-logo{display:flex;align-items:center;font:900 clamp(2rem,4.3vw,4.3rem)/.8 'Barlow Condensed',sans-serif;letter-spacing:.02em;text-shadow:0 0 24px rgba(40,215,255,.55)}
.show-logo .logo-note{font-size:.45em;color:var(--cyan);margin-right:.18em}.show-logo b{color:var(--pink);transform:rotate(8deg);display:inline-block}
.round-chip{text-align:center;border:1px solid rgba(255,255,255,.15);background:rgba(20,20,61,.78);padding:.7vh 2.4vw;border-radius:999px;box-shadow:inset 0 0 25px rgba(106,45,255,.15)}
.round-chip small{display:block;font:800 clamp(.55rem,.7vw,.74rem)/1 Inter;letter-spacing:.2em;color:#aab0d6}.round-chip strong{display:block;margin-top:.35vh;font:800 clamp(.9rem,1.4vw,1.4rem)/1 'Barlow Condensed';text-transform:uppercase}
.timer-orb{justify-self:end;width:clamp(58px,6.5vw,92px);aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;background:radial-gradient(circle,#272857 0,#12132f 64%);border:3px solid var(--cyan);box-shadow:0 0 28px rgba(37,217,255,.4),inset 0 0 18px rgba(37,217,255,.16)}
.timer-orb span{font:900 clamp(1.5rem,2.5vw,2.7rem)/.8 'Barlow Condensed'}.timer-orb small{font-size:.47rem;letter-spacing:.15em;color:var(--cyan);margin-top:.4rem}.timer-orb.urgent{border-color:var(--danger);box-shadow:0 0 35px rgba(255,61,100,.7);animation:urgent .7s ease-in-out infinite alternate}
@keyframes urgent{to{transform:scale(1.06)}}
.game-stage{height:86vh;display:grid;grid-template-columns:19vw 1fr;grid-template-rows:48% 52%;position:relative;z-index:2;padding:0 2vw}
.host-zone{grid-row:1/3;position:relative;align-self:stretch;min-width:0}
.host-aura{position:absolute;inset:10% -10% 5%;background:radial-gradient(ellipse,rgba(119,40,255,.42),transparent 68%);filter:blur(10px)}
.buzzy-host{position:absolute;z-index:2;left:-3%;bottom:6%;width:125%;height:87%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 18px 28px rgba(0,0,0,.5))}
.host-bubble{position:absolute;z-index:3;top:4%;left:6%;width:105%;padding:1.1vh 1.1vw;background:rgba(13,14,42,.91);border:1px solid rgba(72,220,255,.35);border-radius:13px 13px 13px 3px;box-shadow:var(--shadow)}
.host-bubble strong{font:800 1rem 'Barlow Condensed';text-transform:uppercase;letter-spacing:.08em;color:var(--cyan)}.host-bubble p{margin:.3rem 0 0;font-size:clamp(.68rem,.9vw,.95rem);line-height:1.35}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#ff3f6b;box-shadow:0 0 10px #ff3f6b;margin-right:.35rem;animation:urgent 1s infinite alternate}
.question-zone{position:relative;display:flex;align-items:center;justify-content:center;padding:2vh 3vw 0}
.equalizer{position:absolute;inset:3vh 2vw 1vh;display:flex;align-items:flex-end;gap:.55%;opacity:.32;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent)}
.equalizer i{flex:1;height:calc(10% + (var(--n) % 7) * 7%);background:linear-gradient(var(--pink),var(--cyan));border-radius:999px;transform-origin:bottom}
.equalizer.playing i{animation:eq calc(.4s + (var(--n) % 5)*.09s) ease-in-out infinite alternate}@keyframes eq{to{height:calc(25% + (var(--n) % 9)*8%)}}
.question-card{position:relative;text-align:center;width:min(790px,80%);padding:3.4vh 3vw 3vh;border-radius:24px;background:linear-gradient(135deg,rgba(40,35,103,.92),rgba(14,16,52,.9));border:1px solid rgba(255,255,255,.17);box-shadow:0 25px 60px rgba(0,0,0,.35),inset 0 0 55px rgba(135,53,255,.13);overflow:hidden}
.question-card:before{content:"";position:absolute;left:12%;right:12%;top:0;height:3px;background:linear-gradient(90deg,transparent,var(--cyan),var(--pink),transparent);box-shadow:0 0 17px var(--pink)}
.question-card h1{margin:.65vh 0;font:900 clamp(1.7rem,3.6vw,4.2rem)/.95 'Barlow Condensed';letter-spacing:.025em;text-transform:uppercase;text-shadow:0 3px 0 rgba(0,0,0,.26)}.question-card>p:last-child{margin:.8vh 0 0;color:#c4c8e9;font-size:clamp(.72rem,1vw,1rem)}
.answer-card{position:relative;display:flex;align-items:center;gap:2vw;width:min(780px,83%);padding:2vh 2vw;border-radius:24px;background:linear-gradient(135deg,#5422ad,#17174b);border:2px solid var(--pink);box-shadow:0 0 50px rgba(255,79,216,.3);animation:answerIn .45s cubic-bezier(.2,.8,.2,1)}
@keyframes answerIn{from{opacity:0;transform:scale(.82) rotate(-2deg)}}
.cover-shell{width:clamp(86px,10vw,145px);aspect-ratio:1;border-radius:14px;background:linear-gradient(135deg,var(--pink),var(--cyan));display:grid;place-items:center;overflow:hidden;flex:none;box-shadow:0 12px 28px rgba(0,0,0,.35)}.cover-shell img{width:100%;height:100%;object-fit:cover}.cover-shell span{font-size:4rem}
.answer-card h2{margin:.45vh 0;font:900 clamp(1.6rem,3.2vw,3.7rem)/.94 'Barlow Condensed';text-transform:uppercase}.answer-card div>p{margin:.3rem 0;font-size:clamp(1rem,1.6vw,1.7rem);font-weight:700;color:#fff}.answer-card small{color:#c6c8e6}
.buzz-flash{position:absolute;right:2vw;bottom:2vh;z-index:7;padding:1.1vh 1.3vw;border:2px solid var(--buzz,#fff);background:rgba(8,9,30,.94);border-radius:14px;box-shadow:0 0 30px var(--buzz,#fff);animation:buzzIn .28s cubic-bezier(.2,1.7,.4,1)}@keyframes buzzIn{from{transform:scale(.4) rotate(8deg)}}.buzz-flash small{display:block;font-size:.52rem;letter-spacing:.16em;color:#b9bddf}.buzz-flash strong{font:900 clamp(1.2rem,2vw,2.2rem) 'Barlow Condensed';text-transform:uppercase;color:var(--buzz,#fff)}
.chaos-card{position:absolute;z-index:10;width:min(520px,72%);padding:2vh 2vw;text-align:center;border:3px solid var(--yellow);border-radius:18px;background:linear-gradient(135deg,#571786,#171848);box-shadow:0 0 65px rgba(255,212,59,.45);transform:rotate(-1deg);animation:chaosIn .5s cubic-bezier(.1,1.5,.3,1)}@keyframes chaosIn{from{opacity:0;transform:scale(.1) rotate(-16deg)}}.chaos-card small{letter-spacing:.2em;color:var(--yellow);font-weight:900}.chaos-card strong{display:block;margin:.45rem 0;font:900 clamp(1.8rem,3vw,3.2rem) 'Barlow Condensed';text-transform:uppercase}.chaos-card p{margin:.4rem 0;color:#e1e2f5}
.contestants{display:flex;grid-column:2;align-items:end;justify-content:center;gap:2.8vw;padding:1vh 1.5vw 3vh;perspective:1200px}
.contestant{position:relative;width:min(17%,215px);height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;filter:drop-shadow(0 18px 24px rgba(0,0,0,.4));transition:transform .25s,filter .25s}.contestant:nth-child(2n){transform:translateY(1.4vh)}.contestant.buzzed{transform:translateY(-2.5vh) scale(1.05);filter:drop-shadow(0 0 30px var(--team))}
.contestants[data-count="1"] .contestant{width:min(27%,280px)}.contestants[data-count="2"] .contestant{width:min(23%,245px)}.contestants[data-count="3"] .contestant{width:min(20%,225px)}.contestants[data-count="4"] .contestant{width:min(17%,210px)}.contestants[data-count="5"]{gap:1.8vw}.contestants[data-count="5"] .contestant{width:min(15%,185px)}.contestants[data-count="6"]{gap:1.35vw}.contestants[data-count="6"] .contestant{width:min(13.5%,165px)}.contestants[data-count="7"]{gap:.95vw}.contestants[data-count="7"] .contestant{width:12%}.contestants[data-count="8"]{gap:.7vw;padding-inline:.5vw}.contestants[data-count="8"] .contestant{width:10.7%}.contestants[data-count="7"] .contestant,.contestants[data-count="8"] .contestant{height:91%}
.contestants[data-count="6"] .character,.contestants[data-count="7"] .character,.contestants[data-count="8"] .character{width:86%}.contestants[data-count="7"] .podium,.contestants[data-count="8"] .podium{min-height:98px;border-radius:13px 13px 7px 7px}.contestants[data-count="7"] .team-name,.contestants[data-count="8"] .team-name{font-size:clamp(.5rem,.68vw,.78rem)}.contestants[data-count="7"] .score,.contestants[data-count="8"] .score{font-size:clamp(1.3rem,2vw,2.25rem)}.contestants[data-count="7"] .join-panel .qr-code,.contestants[data-count="8"] .join-panel .qr-code{width:clamp(48px,4.5vw,67px)}.contestants[data-count="7"] .join-panel small,.contestants[data-count="8"] .join-panel small{display:none}
.character{height:47%;width:75%;position:relative;z-index:1}.character-head{position:absolute;left:24%;top:0;width:52%;aspect-ratio:1;border-radius:46% 46% 50% 50%;background:linear-gradient(135deg,#ffd2ae,#d88d6e);border:3px solid rgba(255,255,255,.22);box-shadow:inset -9px -7px 15px rgba(106,35,35,.2);transition:transform .25s}.face-eye{position:absolute;top:38%;width:13%;aspect-ratio:1;border-radius:50%;background:#1b1220;box-shadow:inset 0 0 0 2px #fff8}.face-eye:after{content:"";position:absolute;left:22%;top:16%;width:28%;aspect-ratio:1;border-radius:50%;background:#fff}.eye-left{left:24%}.eye-right{right:24%}.face-nose{position:absolute;left:47%;top:49%;width:9%;height:15%;border-right:2px solid rgba(91,46,49,.55);border-bottom:2px solid rgba(91,46,49,.55);border-radius:0 0 55% 0;transform:rotate(12deg)}.face-mouth{position:absolute;left:36%;top:70%;width:28%;height:4%;border-radius:999px;background:#743546;transition:.2s}
.contestant.leading .face-mouth,.contestant.answer-correct .face-mouth{top:65%;height:17%;border-radius:0 0 999px 999px;background:#8e2941;border-bottom:3px solid #fff8}.contestant.trailing .face-mouth,.contestant.answer-wrong .face-mouth{top:72%;height:14%;border-radius:999px 999px 0 0;background:transparent;border-top:4px solid #743546}.contestant.buzzed .face-mouth{left:42%;top:65%;width:16%;height:18%;border-radius:50%;background:#6d283b;border:2px solid #4b1b2a}.contestant.buzzed .face-eye{transform:scale(1.24)}.contestant.answer-correct{animation:teamCelebrate .55s ease-in-out 2}.contestant.answer-correct .character-head{box-shadow:inset -9px -7px 15px rgba(106,35,35,.2),0 0 30px var(--team)}.contestant.answer-wrong{animation:teamNope .22s linear 3}.contestant.answer-wrong .face-eye{height:4px;border-radius:999px;box-shadow:none}.contestant.answer-wrong .face-eye:after{display:none}@keyframes teamCelebrate{50%{transform:translateY(-3vh) rotate(-2deg)}}@keyframes teamNope{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.character-hair{position:absolute;z-index:2;left:23%;top:-3%;width:54%;height:21%;border-radius:60% 60% 20% 20%;background:linear-gradient(135deg,#2f1839,#09091a)}
.character-body{position:absolute;left:10%;right:10%;bottom:-16%;height:73%;border-radius:46% 46% 16% 16%;background:linear-gradient(135deg,var(--team),var(--accent));clip-path:polygon(24% 0,76% 0,100% 100%,0 100%);box-shadow:inset 0 0 20px #fff4}.character-body:after{content:"";position:absolute;left:48%;top:0;bottom:0;width:4%;background:#fff6}
.podium{position:relative;z-index:3;width:100%;height:53%;min-height:120px;border-radius:18px 18px 8px 8px;background:linear-gradient(165deg,color-mix(in srgb,var(--team) 65%,#fff 5%),color-mix(in srgb,var(--accent) 55%,#09091d));border:2px solid color-mix(in srgb,var(--team) 70%,white);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:1.2vh .6vw 1.1vh;box-shadow:inset 0 0 28px rgba(255,255,255,.12),0 0 22px color-mix(in srgb,var(--team) 20%,transparent)}
.podium:before{content:"";position:absolute;inset:14% 8% 12%;background:linear-gradient(180deg,rgba(5,7,25,.55),rgba(2,3,16,.84));border:1px solid #fff3;border-radius:10px}
.buzzer-dome{position:absolute;z-index:3;top:-12px;width:31%;aspect-ratio:1.5;border:0;border-radius:50% 50% 18% 18%;background:linear-gradient(#ff7992,#db0735);box-shadow:0 7px 0 #75031d,0 0 18px #ff365c;padding:0;pointer-events:none}.buzzer-dome i{position:absolute;inset:17% 24% auto;height:20%;border-radius:50%;background:#fff8}
.team-name,.score,.podium small{position:relative;z-index:2}.team-name{width:90%;text-align:center;font:800 clamp(.68rem,1vw,1.12rem) 'Barlow Condensed';text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score{font:900 clamp(1.7rem,3vw,3.5rem)/.9 'Barlow Condensed';color:#fff;text-shadow:0 0 15px var(--team)}.podium small{font-size:.43rem;letter-spacing:.16em;color:#bac0df;margin-top:.3rem}
.score-panel{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}.join-panel{position:relative;z-index:3;display:flex;min-height:74%;width:88%;flex-direction:column;align-items:center;justify-content:center;margin-top:.35vh}.join-panel .qr-code{width:clamp(58px,6.3vw,92px);aspect-ratio:1;padding:4px;border-radius:8px;background:#fff;box-shadow:0 0 20px color-mix(in srgb,var(--team) 55%,transparent)}.join-panel .qr-code svg{display:block;width:100%;height:100%}.join-panel small{margin-top:.45vh;color:#fff;font-size:clamp(.32rem,.42vw,.48rem);line-height:1.2;text-align:center}.contestant.join-mode .team-name{margin-bottom:.2vh}.contestant.join-mode .podium{padding-bottom:.75vh}
.show-footer{position:fixed;z-index:8;left:0;right:0;bottom:0;height:4vh;display:flex;align-items:center;justify-content:space-between;padding:0 2vw;background:rgba(4,5,18,.92);border-top:1px solid #fff2;font-size:clamp(.52rem,.75vw,.74rem);color:#b5b9d9}.show-footer b{color:var(--cyan);letter-spacing:.12em}
.sound-gate{position:fixed;z-index:50;inset:0;background:rgba(3,4,18,.92);backdrop-filter:blur(16px);display:grid;place-items:center;text-align:center}.sound-gate>div{width:min(520px,90vw);padding:2.2rem;border:1px solid #fff2;border-radius:24px;background:linear-gradient(135deg,#28245f,#131431);box-shadow:var(--shadow)}.sound-gate span{font-size:3rem}.sound-gate h2{font:900 2.2rem 'Barlow Condensed';text-transform:uppercase;margin:.8rem 0}.sound-gate p{color:var(--muted);line-height:1.55}

/* Régie */
.admin-screen{min-height:100vh;background:radial-gradient(circle at 15% 0,#29205c 0,transparent 30%),#0a0b20;color:#eef0ff}
.admin-topbar{height:72px;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:2rem;padding:0 1.4rem;background:rgba(12,13,35,.93);backdrop-filter:blur(15px);border-bottom:1px solid var(--line)}
.admin-topbar .mini-logo{font-size:2rem}.live-status{display:flex;align-items:center;gap:.6rem;margin-right:auto}.live-status i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 12px var(--ok)}.live-status span{font-size:.68rem;font-weight:900;letter-spacing:.12em}.live-status small{color:var(--muted)}.top-actions{display:flex;gap:.6rem}
.admin-shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:calc(100vh - 72px)}
.admin-nav{position:sticky;top:72px;align-self:start;height:calc(100vh - 72px);padding:1.4rem .8rem;background:rgba(14,15,40,.78);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:.35rem}
.nav-button{border:0;background:transparent;color:#aeb2d1;padding:.9rem .8rem;border-radius:10px;text-align:left;font-weight:700;cursor:pointer}.nav-button span{margin-right:.7rem}.nav-button:hover,.nav-button.active{background:linear-gradient(90deg,rgba(89,58,255,.34),rgba(89,58,255,.08));color:#fff}.nav-button.active{box-shadow:inset 3px 0 var(--pink)}
.nav-tip{margin-top:auto;padding:1rem;border-radius:12px;background:linear-gradient(135deg,rgba(37,217,255,.11),rgba(121,40,255,.12));border:1px solid rgba(37,217,255,.18)}.nav-tip b{font-size:.6rem;letter-spacing:.12em;color:var(--cyan)}.nav-tip p{font-size:.72rem;line-height:1.5;color:#afb4d5;margin:.5rem 0 0}
.admin-main{padding:1.7rem clamp(1rem,2vw,2.4rem);max-width:1700px;width:100%}.tab-panel{display:none}.tab-panel.active{display:block;animation:panelIn .25s ease}@keyframes panelIn{from{opacity:.2;transform:translateY(5px)}}
.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.panel-heading h1{font:900 clamp(2rem,3vw,3.1rem)/1 'Barlow Condensed';text-transform:uppercase;margin:.4rem 0 0}.question-pill{padding:.7rem 1rem;background:#17183a;border:1px solid var(--line);border-radius:12px;color:var(--muted)}.question-pill strong{color:#fff;font-size:1.35rem;margin-left:.4rem}
.admin-card{background:linear-gradient(145deg,rgba(31,32,73,.95),rgba(19,20,51,.96));border:1px solid var(--line);border-radius:16px;padding:1.15rem;box-shadow:0 16px 38px rgba(0,0,0,.16)}.admin-card h2{font:800 1.55rem 'Barlow Condensed';margin:.2rem 0 .6rem}.admin-card>p{color:var(--muted);line-height:1.55;font-size:.87rem}.card-title{display:flex;align-items:center;justify-content:space-between;padding-bottom:.8rem;margin-bottom:.85rem;border-bottom:1px solid var(--line)}.card-title>span{font-weight:800}.card-title>b{font-size:.62rem;letter-spacing:.12em;color:var(--ok);padding:.38rem .55rem;border-radius:999px;background:rgba(97,255,156,.08)}.card-title small{color:var(--cyan)}
.control-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(350px,.8fr);gap:1rem}.track-answer{min-height:100px;display:flex;align-items:center;gap:1rem}.answer-icon{width:74px;aspect-ratio:1;border-radius:14px;display:grid;place-items:center;font-size:2.3rem;background:linear-gradient(135deg,var(--purple),var(--pink));box-shadow:0 9px 26px rgba(132,43,255,.33)}.track-answer small{color:var(--cyan);font-size:.62rem;letter-spacing:.16em}.track-answer h2{font:900 clamp(1.4rem,2vw,2.2rem) 'Barlow Condensed';text-transform:uppercase;margin:.3rem 0}.track-answer p{margin:0;color:var(--muted)}
.transport{display:grid;grid-template-columns:1.35fr repeat(3,1fr);gap:.55rem;margin:1rem 0}.transport-btn{border:1px solid var(--line);background:#292a5d;color:#fff;border-radius:12px;padding:.62rem .45rem;font-size:1.1rem;cursor:pointer}.transport-btn span{display:block;margin-top:.28rem;font-size:.65rem;font-weight:800}.transport-btn kbd{display:inline-block;margin-top:.28rem;padding:.12rem .3rem;border:1px solid #fff3;border-radius:4px;background:#08091c55;color:#d8dbef;font-size:.48rem;font-family:Inter,sans-serif}.transport-btn.play{background:linear-gradient(135deg,#087cff,#20d4ff)}.transport-btn.reveal{background:linear-gradient(135deg,#7424e8,#f143d2)}
.buzz-monitor{display:flex;align-items:center;gap:.8rem;padding:.75rem;border-radius:12px;background:#11122e;border:1px solid var(--line)}.buzz-monitor .pulse-ring{width:32px;height:32px;border-radius:50%;background:#35375e;border:6px solid #222442}.buzz-monitor.active{border-color:var(--pink);box-shadow:0 0 22px rgba(255,79,216,.18)}.buzz-monitor.active .pulse-ring{background:var(--pink);box-shadow:0 0 18px var(--pink);animation:urgent .5s infinite alternate}.buzz-monitor div{flex:1}.buzz-monitor small{display:block;font-size:.56rem;color:var(--muted)}
.buzz-monitor.connected{border-color:rgba(97,255,156,.38)}.buzz-monitor.connected .pulse-ring{background:var(--ok);box-shadow:0 0 15px rgba(97,255,156,.65)}.buzz-monitor #presenceSummary{color:var(--ok);letter-spacing:.08em}
.buzz-judge{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:.65rem}.judge-button{border:0;border-radius:12px;padding:.85rem .7rem;color:#fff;font-weight:900;cursor:pointer}.judge-button.correct{background:linear-gradient(135deg,#098559,#12c77e);box-shadow:0 8px 20px rgba(18,199,126,.18)}.judge-button.wrong{background:linear-gradient(135deg,#8f1c3a,#e8385f);box-shadow:0 8px 20px rgba(232,56,95,.18)}
.score-options,.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.score-options label{font-size:.68rem;color:var(--muted)}.score-options input,.score-options select{margin-top:.35rem;width:100%;padding:.6rem;background:#101129;border:1px solid var(--line);border-radius:8px;color:#fff}
.score-help-intro{margin:.65rem 0 0!important;font-size:.65rem!important}.team-score-list{display:grid;gap:.55rem;margin-top:.8rem}.team-score-row{display:grid;grid-template-columns:38px minmax(0,1fr) 34px 34px 38px;align-items:center;gap:.5rem;padding:.55rem;border-radius:11px;background:#13142f;border-left:3px solid var(--team)}.team-mini-face{position:relative;width:34px;aspect-ratio:1;border-radius:46% 46% 50% 50%;background:linear-gradient(135deg,#ffd2ae,#d88d6e);box-shadow:0 0 13px color-mix(in srgb,var(--team) 40%,transparent)}.team-mini-face i{position:absolute;top:38%;width:5px;height:5px;border-radius:50%;background:#1b1220}.team-mini-face i:first-child{left:8px}.team-mini-face i:nth-child(2){right:8px}.team-mini-face b{position:absolute;left:11px;right:11px;bottom:7px;height:5px;border-bottom:2px solid #78384a;border-radius:0 0 50% 50%}.team-score-row strong{font-size:.8rem}.team-score-row small{display:block;color:var(--team);margin-top:.15rem}.score-button{position:relative;width:34px;aspect-ratio:1;border:0;border-radius:8px;color:#fff;font-weight:900;cursor:pointer}.score-button.minus{background:#922040}.score-button.custom{background:#48496c}.score-button.plus{background:#0a9360}.score-button[data-tooltip]:after{content:attr(data-tooltip);position:absolute;z-index:40;right:0;bottom:calc(100% + 9px);width:220px;padding:.62rem .7rem;border:1px solid #fff3;border-radius:9px;background:#08091d;color:#fff;font-size:.66rem;font-weight:600;line-height:1.4;text-align:left;box-shadow:0 12px 30px #0008;opacity:0;pointer-events:none;transform:translateY(5px);transition:.16s}.score-button[data-tooltip]:hover:after,.score-button[data-tooltip]:focus:after{opacity:1;transform:none}
.bottom-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:1rem;margin-top:1rem}.compact-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:132px}.compact-card>p{margin:0}.compact-card small{font-size:.58rem;letter-spacing:.14em;color:var(--muted)}.compact-card h2{margin:.35rem 0}.compact-card p{font-size:.74rem;color:var(--muted);margin:0;line-height:1.4}.chaos-launcher{border-color:rgba(255,212,59,.3)}.chaos-button{width:78px;aspect-ratio:1;border-radius:50%;border:7px solid #6f4b00;background:radial-gradient(circle at 38% 32%,#fff6a0,#ffbd00 55%,#e66500);color:#4c2500;font:900 2.7rem 'Barlow Condensed';box-shadow:0 7px 0 #4f3200,0 0 25px rgba(255,194,28,.35);cursor:pointer}
.rounds-grid{display:grid;gap:.8rem}.round-card{position:relative;display:grid;grid-template-columns:60px minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1.2rem;border:1px solid var(--line);border-radius:14px;background:#17183a}.round-card.active{border-color:var(--cyan);box-shadow:inset 3px 0 var(--cyan)}.round-number{font:900 2.8rem 'Barlow Condensed';color:#5c608d;text-align:center}.round-card small{color:var(--pink);text-transform:uppercase;letter-spacing:.13em}.round-card h2{font:900 1.5rem 'Barlow Condensed';text-transform:uppercase;margin:.22rem 0}.round-card p{margin:.3rem 0;color:var(--muted);font-size:.82rem}.rule-maths{font-size:.7rem;color:#bfc3e1}.rule-maths b{color:var(--cyan)}
.music-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.source-badge{display:inline-block;padding:.4rem .55rem;border-radius:6px;font-weight:900;font-size:.65rem;letter-spacing:.12em}.source-badge.deezer{background:#a72df4}.source-badge.local{background:#087cff}.inline-form{display:flex;gap:.5rem}.inline-form input{flex:1}.technical-note{margin-top:.8rem;padding:.7rem;border-radius:8px;background:#11122c;color:#979cbe;font-size:.68rem;line-height:1.45}.stack-form{display:grid;gap:.8rem}.stack-form label,.settings-grid label{font-size:.75rem;font-weight:700;color:#c5c9e4}.stack-form input,.settings-grid input,.inline-form input,.settings-grid select{display:block;width:100%;margin-top:.35rem;padding:.72rem .75rem;background:#0f1028;border:1px solid var(--line);border-radius:9px;color:#fff;outline:none}.stack-form input:focus,.settings-grid input:focus,.inline-form input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(37,217,255,.08)}.file-drop{padding:.8rem;border:1px dashed rgba(37,217,255,.4);border-radius:9px}.file-drop input{border:0;padding:0;background:none}.playlist-list{display:grid;gap:.65rem;margin-top:1rem}.playlist-row{display:grid;grid-template-columns:54px minmax(0,1fr) auto auto;align-items:center;gap:.8rem;padding:.75rem;background:#17183a;border:1px solid var(--line);border-radius:12px}.playlist-art{width:54px;aspect-ratio:1;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,#4a28ad,#d436b7);font-size:1.5rem;overflow:hidden}.playlist-art img{width:100%;height:100%;object-fit:cover}.playlist-row strong,.playlist-row span{display:block}.playlist-row small{font-size:.55rem;color:var(--cyan)}.playlist-row span{margin-top:.2rem;color:var(--muted);font-size:.7rem}.switch input{display:none}.switch i{display:block;width:42px;height:23px;border-radius:999px;background:#393a5c;padding:3px;cursor:pointer}.switch i:before{content:"";display:block;width:17px;height:17px;border-radius:50%;background:#fff;transition:.2s}.switch input:checked+i{background:#0c9d68}.switch input:checked+i:before{transform:translateX(19px)}.empty-library{padding:2rem;text-align:center;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}
.buzzer-links{display:grid;gap:.7rem;margin-top:1rem}.buzzer-link{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:.7rem;border-radius:10px;background:#11122d;border-left:4px solid var(--team)}.team-initials{width:38px;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--team) 22%,#151633);border:1px solid color-mix(in srgb,var(--team) 65%,white);color:#fff;font:900 .75rem Inter!important}.buzzer-link a{display:block;margin-top:.25rem;color:#8ddfff;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.library-managers{display:grid;grid-template-columns:minmax(320px,.75fr) minmax(0,1.25fr);gap:1rem;margin-top:1rem}.category-list,.local-track-list{display:grid;gap:.55rem;margin-top:.85rem}.category-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.55rem;padding:.62rem;border-radius:10px;background:#11122d;border-left:3px solid var(--category)}.category-row strong,.category-row small{display:block}.category-row small{margin-top:.15rem;color:var(--muted);font-size:.66rem}.field-caption{display:block;margin-bottom:.45rem;color:var(--muted);font-size:.58rem;font-weight:800;letter-spacing:.11em}.category-checks{display:flex;flex-wrap:wrap;gap:.38rem}.category-checks.compact{padding:.45rem;border-radius:9px;background:#101129}.category-chip input{position:absolute;opacity:0;pointer-events:none}.category-chip span{display:block;padding:.35rem .55rem;border:1px solid var(--line);border-radius:999px;background:#181a3e;color:#afb4d2;font-size:.66rem;cursor:pointer}.category-chip input:checked+span{border-color:var(--cyan);background:rgba(37,217,255,.15);color:#fff;box-shadow:0 0 0 2px rgba(37,217,255,.06)}.muted-hint{color:var(--muted);font-size:.68rem}.local-track-row{display:grid;grid-template-columns:155px minmax(120px,.75fr) minmax(190px,1.25fr) auto;align-items:center;gap:.7rem;padding:.7rem;border:1px solid var(--line);border-radius:11px;background:#11122d}.track-play audio{display:block;width:155px;height:34px}.track-identity strong,.track-identity span{display:block}.track-identity strong{font-size:.8rem}.track-identity span{margin-top:.2rem;color:var(--muted);font-size:.7rem}.compact-empty{padding:1rem}.managed-badge{padding:.35rem .5rem;border-radius:7px;background:#101129;color:var(--muted)!important;font-size:.62rem!important}.buzzer-link{grid-template-columns:42px minmax(0,1fr) auto auto}.connection-badge{padding:.34rem .52rem;border-radius:999px;background:#292b4a;color:#8f93af!important;font-size:.6rem!important;font-weight:800}.buzzer-link.online{background:linear-gradient(90deg,rgba(97,255,156,.08),#11122d 32%)}.buzzer-link.online .connection-badge{background:rgba(97,255,156,.12);color:var(--ok)!important}.connected-buzzer .mini-logo:after{content:" CONNECTÉ";display:inline-block;margin-left:.5rem;padding:.3rem .45rem;border-radius:999px;background:rgba(97,255,156,.13);color:var(--ok);font:800 .55rem Inter;letter-spacing:.1em;vertical-align:middle}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.settings-grid .admin-card:nth-child(3){grid-column:1/3}.save-settings{grid-column:1/3;justify-self:start}.setting-note{margin:.2rem 0!important;padding:.65rem .75rem;border:1px solid rgba(37,217,255,.18);border-radius:9px;background:#101129;color:#aeb4d6!important;font-size:.68rem!important}.team-setting{display:grid;grid-template-columns:34px minmax(0,1fr) 74px;align-items:end;gap:.55rem;padding:.58rem;border:1px solid var(--line);border-radius:10px;background:#11122d}.team-setting label{font-size:.62rem}.team-setting input{margin-top:.28rem!important}.team-setting input[type=color]{padding:3px}.team-index{width:30px;aspect-ratio:1;display:grid;place-items:center;align-self:center;border-radius:50%;background:linear-gradient(135deg,var(--purple),var(--pink));font:900 .75rem Inter}
.toast{position:fixed;z-index:100;right:1.2rem;bottom:1.2rem;max-width:420px;padding:.9rem 1.1rem;border-radius:10px;background:#20224b;border:1px solid var(--line);box-shadow:var(--shadow);opacity:0;transform:translateY(18px);pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:none}.toast.ok{border-color:rgba(97,255,156,.5)}.toast.error{border-color:rgba(255,61,100,.55);color:#ffb1c1}

/* Installation, connexion et buzzers */
.auth-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 50% 0,#4b1f7a,transparent 42%),#090a20;padding:1.2rem}.auth-card{width:min(440px,100%);padding:2rem;border-radius:20px;background:linear-gradient(145deg,#22234f,#14152f);border:1px solid var(--line);box-shadow:var(--shadow)}.auth-card h1{font:900 2.4rem 'Barlow Condensed';text-transform:uppercase;margin:.55rem 0}.auth-card>p:not(.eyebrow){color:var(--muted);line-height:1.55}
.phone-buzzer{min-height:100vh;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at 50% 20%,color-mix(in srgb,var(--team) 38%,transparent),transparent 48%),#08091b;overflow:hidden}.phone-buzzer main{width:min(480px,94vw);padding:1.3rem}.phone-buzzer h1{font:900 clamp(2.2rem,11vw,4rem) 'Barlow Condensed';text-transform:uppercase;margin:.3rem 0 1.2rem}.phone-buzzer main>p{font-weight:800;color:#bdc1df}.mobile-buzzer{position:relative;width:min(74vw,330px);aspect-ratio:1;border-radius:50%;border:18px solid color-mix(in srgb,var(--accent) 70%,#050611);background:radial-gradient(circle at 38% 30%,#fff8,transparent 12%),radial-gradient(circle at 45% 38%,var(--team),var(--accent) 66%);box-shadow:0 17px 0 color-mix(in srgb,var(--accent) 55%,#05050e),0 22px 35px #0008,0 0 55px color-mix(in srgb,var(--team) 45%,transparent);color:#fff;cursor:pointer}.mobile-buzzer strong{font:900 clamp(2rem,12vw,4.5rem) 'Barlow Condensed';text-shadow:0 4px 0 #0005}.mobile-buzzer:disabled{filter:grayscale(.75) brightness(.55);cursor:not-allowed}.mobile-buzzer:not(:disabled){animation:buzzerReady 1s ease-in-out infinite alternate}@keyframes buzzerReady{to{box-shadow:0 17px 0 color-mix(in srgb,var(--accent) 55%,#05050e),0 22px 35px #0008,0 0 85px var(--team)}}.mobile-buzzer.pressed{transform:translateY(13px);box-shadow:0 4px 0 #310b24}.won-buzz{animation:won .4s alternate 3}@keyframes won{to{background-color:var(--team)}}.lost-buzz .mobile-buzzer{filter:grayscale(1)}

@media(max-width:1050px){.admin-shell{grid-template-columns:82px 1fr}.admin-nav{padding:.9rem .5rem}.nav-button{font-size:0;text-align:center}.nav-button span{font-size:1.25rem;margin:0}.nav-tip{display:none}.control-grid,.bottom-grid,.library-managers{grid-template-columns:1fr}.music-grid{grid-template-columns:1fr}.local-track-row{grid-template-columns:150px minmax(0,1fr) auto}.local-track-row .category-checks{grid-column:1/4}.game-stage{grid-template-columns:16vw 1fr}.buzzy-host{width:150%;left:-25%}.host-bubble{width:135%;left:0}}
@media(max-width:760px){.admin-topbar{gap:.7rem;padding:.7rem;height:auto;flex-wrap:wrap}.live-status small{display:none}.top-actions{width:100%}.top-actions .btn{flex:1}.admin-shell{display:block}.admin-nav{position:sticky;top:116px;z-index:20;width:100%;height:auto;flex-direction:row;overflow-x:auto;background:#11122e}.nav-button{min-width:56px}.admin-main{padding:1rem}.control-grid,.bottom-grid,.music-grid,.library-managers,.settings-grid{grid-template-columns:1fr}.settings-grid .admin-card:nth-child(3),.save-settings{grid-column:auto}.round-card{grid-template-columns:45px 1fr}.round-card .btn{grid-column:2}.score-options,.two-fields{grid-template-columns:1fr}.playlist-row{grid-template-columns:46px 1fr auto}.playlist-row>.btn{grid-column:2/4}.category-row{grid-template-columns:auto 1fr}.category-row .btn{grid-row:2}.local-track-row{grid-template-columns:1fr}.local-track-row .category-checks{grid-column:auto}.track-play audio{width:100%}.buzzer-link{grid-template-columns:38px minmax(0,1fr) auto}.buzzer-link .connection-badge{grid-column:2}.public-screen{overflow:auto}.show-header{grid-template-columns:1fr 1fr;height:auto}.round-chip{display:none}.game-stage{height:auto;min-height:calc(100vh - 75px);grid-template-columns:1fr;grid-template-rows:42vh auto auto;padding:0 1rem}.host-zone{display:none}.question-zone{grid-column:1;min-height:38vh}.contestants{grid-column:1;flex-wrap:wrap;min-height:50vh}.contestants[data-count] .contestant{width:40%;height:280px}.show-footer{display:none}}
