/* 24/10 : soirées Tryhard — l'affiche (page « soiree ») et le salon de la soirée (volet à droite des Banques et de la cabine).
   Repris de la maquette SOIREES_TRYHARD_FRONTEND (ChatGPT), classes préfixées st- (affiche) et ss- (salon) pour ne rien toucher ailleurs.
   Police des grands titres : Oswald (licence libre OFL, servie par le site) ; la Gill Sans de la maquette n'a pas de licence web. */
@font-face{font-family:'Oswald Studio';src:url('polices/oswald-700-latin.woff2') format('woff2');font-weight:700;font-display:swap}
.st-page{--st-a:#b7ff67;--st-a2:#63d6af;--st-ink:#13220e;margin:0;color:#f7f5f0;background:#0b0e15;min-height:100%;overflow:hidden}
.st-hero{position:relative;min-height:min(680px,calc(100dvh - 120px));display:flex;flex-direction:column;overflow:hidden;background:#191f2b;isolation:isolate}
.st-art,.st-voiles{position:absolute;inset:0;z-index:-2}
.st-art{background:var(--st-art) 70% center/cover no-repeat;transform:scale(1.035);animation:stReveal 1s cubic-bezier(.2,.8,.2,1) both}
.st-voiles{z-index:-1;background:linear-gradient(90deg,#080b14f5 0%,#080b14de 21%,#080b1480 47%,#080b1412 82%),linear-gradient(0deg,#0b0e15 0%,#0b0e15b6 13%,transparent 45%,#080b144a 100%)}
@keyframes stReveal{from{transform:scale(1.08);opacity:.55}}
.st-haut{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px clamp(20px,5vw,64px);font-size:10px;letter-spacing:.17em;font-weight:900;text-shadow:0 2px 6px #000}
.st-haut span{display:flex;align-items:center;gap:9px}
.st-point{display:inline-block;width:7px;height:7px;background:var(--st-a);border-radius:50%;box-shadow:0 0 0 4px color-mix(in srgb,var(--st-a) 17%,transparent),0 0 14px var(--st-a);flex:none}
.st-fin .st-point{background:#8b95a5;box-shadow:none}
.st-contenu{width:min(700px,95%);margin:auto 0 20px clamp(20px,5vw,64px);padding-top:34px}
.st-categorie{font-size:10px;font-weight:950;letter-spacing:.22em;color:var(--st-a)}
.st-contenu h1{margin:14px 0 14px;font:700 clamp(64px,8.6vw,150px)/.8 'Oswald Studio','Arial Narrow',Impact,sans-serif;text-transform:uppercase;letter-spacing:-.012em;text-shadow:0 8px 22px #0009;color:#f7f5f0}
.st-contenu h1 span,.st-contenu h1 strong{display:block;overflow-wrap:anywhere}
.st-contenu h1 strong{color:var(--st-a);font-size:1.1em;text-shadow:0 4px 0 #0008,0 12px 36px #000a}
.st-titre{margin:22px 0 6px;font-size:clamp(18px,2vw,26px);font-weight:900;color:#fff;text-shadow:0 2px 12px #000}
.st-desc{max-width:600px;margin:0 0 18px;color:#f0f2ef;font-size:clamp(15px,1.6vw,20px);line-height:1.35;font-weight:700;text-shadow:0 2px 12px #000}
.st-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 13px;color:#cbd3d9;font-size:10px;font-weight:900;letter-spacing:.11em}
.st-pill{display:flex;align-items:center;gap:8px;border-radius:30px;border:1px solid #ffffff47;background:#0d101aad;padding:8px 10px;color:#fff}
.st-actions{display:flex;gap:11px;align-items:center;flex-wrap:wrap;margin-top:26px}
.st-btn{min-height:50px;padding:0 22px;border-radius:11px;font-size:13px;font-weight:950;letter-spacing:.025em;cursor:pointer;transition:transform .2s,box-shadow .2s;display:inline-flex;align-items:center;gap:10px}
.st-btn:hover{transform:translateY(-2px)}
.st-btn.pri{border:1px solid var(--st-a);background:var(--st-a);color:var(--st-ink);box-shadow:0 13px 34px color-mix(in srgb,var(--st-a) 26%,transparent)}
.st-btn.sec{border:1px solid #ffffff4c;background:#ffffff16;color:#fff;backdrop-filter:blur(9px)}
.st-pied{width:min(610px,calc(100% - 40px));margin:12px auto 30px clamp(20px,5vw,64px)}
.st-pied-titre{display:flex;justify-content:space-between;color:#e4e9e7;font-size:10px;font-weight:900;letter-spacing:.16em}
.st-pied-titre b{font-size:12px;color:var(--st-a)}
.st-jauge{height:8px;border-radius:50px;background:#ffffff38;border:1px solid #ffffff50;margin:9px 0;overflow:hidden}
.st-jauge i{display:block;height:100%;background:linear-gradient(90deg,var(--st-a2),var(--st-a));box-shadow:0 0 22px var(--st-a)}
.st-pied p{margin:0;color:#c2cbd1;font-size:11px}
.st-format{display:grid;grid-template-columns:minmax(220px,.85fr) minmax(0,1.8fr);gap:44px;align-items:start;padding:40px clamp(20px,5vw,64px) 48px}
.st-format h2{font:700 clamp(40px,4.6vw,64px)/.95 'Oswald Studio','Arial Narrow',Impact,sans-serif;margin:12px 0 16px;text-transform:uppercase;color:#f7f5f0}
.st-format h2 em{font-style:normal;color:var(--st-a)}
.st-format p{font-size:13px;color:#aeb7c2;line-height:1.6}
.st-etapes{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
.st-etapes>div{padding:20px 18px;background:#191f2b;border:1px solid #354050;border-radius:16px}
.st-etapes b{font-size:11px;color:var(--st-a);letter-spacing:.18em}
.st-etapes h3{font-size:15px;margin:20px 0 6px;color:#fff}
.st-etapes p{font-size:12px;line-height:1.5;color:#acb6c2;margin:0}
.st-mission{padding:clamp(32px,5vw,70px) clamp(18px,4vw,64px);background:radial-gradient(circle at 80% 0%,color-mix(in srgb,var(--st-a) 10%,transparent),transparent 35%),#0b0e15;scroll-margin-top:58px}
.st-mission-head{display:flex;align-items:end;justify-content:space-between;gap:24px;flex-wrap:wrap;max-width:1600px;margin:0 auto 38px}
.st-mission-head h2{font:700 clamp(37px,4.4vw,70px)/1 'Oswald Studio','Arial Narrow',Impact,sans-serif;text-transform:uppercase;letter-spacing:-.02em;margin:10px 0}
.st-mission-head h2 em{font-style:normal;color:var(--st-a)}
.st-mission-head p{color:#b8c3cf;max-width:72ch;line-height:1.5;margin:0;font-size:14px}
.st-groupe{max-width:1600px;margin:0 auto 38px}
.st-groupe-head{display:flex;align-items:center;gap:12px;margin-bottom:15px}
.st-groupe-line{width:28px;height:3px;background:var(--st-a);box-shadow:0 0 16px var(--st-a)}
.st-groupe-head h3{margin:0;text-transform:uppercase;letter-spacing:.04em;font:700 25px/1 'Oswald Studio','Arial Narrow',Impact,sans-serif}
.st-groupe-head small{color:#8996a6;font-size:11px;font-weight:800}
.st-voix-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:14px}
.st-voix-card{padding:0;text-align:left;border:1px solid #384454;border-radius:16px;overflow:hidden;background:#1a222e;color:#f5f7f8;cursor:pointer;min-width:0;transition:transform .22s,border-color .22s,box-shadow .22s}
.st-voix-card:hover,.st-voix-card:focus-visible{transform:translateY(-5px);border-color:var(--st-a);box-shadow:0 12px 32px #0007,0 0 0 1px var(--st-a);outline:none}
.st-voix-art{display:grid;place-items:end center;height:180px;overflow:hidden;position:relative;background:radial-gradient(circle at 50% 95%,color-mix(in srgb,var(--st-a) 26%,transparent),transparent 65%),linear-gradient(150deg,#243448,#101823)}
.st-voix-art:before{content:'';position:absolute;width:100px;height:24px;border:2px solid color-mix(in srgb,var(--st-a) 70%,transparent);border-radius:50%;bottom:9px;left:calc(50% - 50px);opacity:.5;transform:rotateX(65deg)}
.st-voix-art img{position:relative;max-width:96%;width:auto;height:172px;object-fit:contain;object-position:bottom;filter:drop-shadow(0 10px 9px #0009)}
.st-voix-code{align-self:center;font:700 38px/1 'Oswald Studio',Impact,sans-serif;color:var(--st-a);opacity:.75}
.st-voix-body{display:flex;flex-direction:column;gap:6px;padding:15px}
.st-voix-top{display:flex;justify-content:space-between;color:var(--st-a);font-size:9px;letter-spacing:.12em;font-weight:950;text-transform:uppercase}
.st-voix-top small{color:#d3d9e0;font-size:10px;letter-spacing:0}
.st-voix-body strong{font:700 24px/1 'Oswald Studio',Impact,sans-serif;text-transform:uppercase;overflow-wrap:anywhere}
.st-voix-desc{color:#9facba;font-size:11px;line-height:1.4;min-height:30px}
.st-voix-jauge{height:5px;border-radius:8px;background:#3b4859;overflow:hidden;margin-top:3px}
.st-voix-jauge i{display:block;height:100%;background:var(--st-a);box-shadow:0 0 14px var(--st-a)}
.st-voix-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#b3bfca;font-size:10px;min-height:24px}
.st-voix-foot b{color:var(--st-a);white-space:nowrap;font-size:9px;letter-spacing:.07em}
.st-mission-vide{color:#a9b7c4;font-size:14px}
@media(max-width:1000px){.st-format{grid-template-columns:1fr;gap:12px}}
@media(max-width:1400px){body.ss-ouvert .st-format{grid-template-columns:1fr;gap:12px}}
@media(max-width:1180px){body.ss-ouvert .st-etapes{grid-template-columns:1fr}}
@media(max-width:780px){
  .st-page{margin:0;border-radius:0;padding-bottom:82px}
  .st-hero{min-height:620px}
  .st-art{background-position:65% center}
  .st-voiles{background:linear-gradient(0deg,#0b0e15 0%,#0b0e15db 26%,#0b0e1588 56%,#0b0e151f 100%)}
  .st-contenu{margin:auto 18px 30px;width:auto;padding-top:150px}
  .st-contenu h1{font-size:clamp(58px,16vw,110px)}
  .st-haut{padding:16px 18px}.st-haut .st-edition{display:none}
  .st-pied{margin:0 18px 26px}
  .st-etapes{grid-template-columns:1fr}
  .st-btn{min-height:44px;padding:0 16px}
}
@media(prefers-reduced-motion:reduce){.st-art{animation:none}.st-btn{transition:none}}

/* ---------- salon de la soirée : volet frère, à droite (ordinateur) ou par-dessus (téléphone) ---------- */
.ss-panel{--st-a:#b7ff67;--st-a2:#63d6af;--st-ink:#13220e;position:fixed;top:0;right:0;bottom:0;width:340px;z-index:900;display:flex;flex-direction:column;background:#131923;color:#e8eef2;border-left:1px solid #34404e;box-shadow:-16px 0 30px #0004;font-size:12px}
.ss-panel[hidden],.ss-jointe[hidden],.ss-choix[hidden],.ss-epingle[hidden]{display:none}
@media(min-width:901px){body.ss-ouvert #root{margin-right:340px}}
@media(max-width:900px){.ss-panel{width:min(390px,100%);box-shadow:-20px 0 70px #000b}}
.ss-tete{padding:16px 14px 12px;border-bottom:1px solid #2e3948;display:flex;align-items:start;justify-content:space-between;gap:6px}
.ss-tete small{font-size:9px;color:var(--st-a);font-weight:950;letter-spacing:.14em;display:flex;align-items:center;gap:8px}
.ss-tete h2{font-size:17px;margin:6px 0 0;color:#fff;white-space:nowrap}
.ss-tete h2 span{font-size:10px;color:#8f9cad;margin-left:4px;font-weight:600}
.ss-x{width:28px;height:28px;border-radius:7px;border:1px solid #3a4656;background:none;color:#cbd5e1;font-size:18px;line-height:1;cursor:pointer}
.ss-presents{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#1c2530;border-bottom:1px solid #344151;font-size:10px;color:#a8b4c3;min-height:20px}
.ss-presents .avs{display:flex}.ss-presents .avs>*{margin-right:-6px;border:2px solid #1c2530;border-radius:50%}
.ss-epingle{margin:9px 10px 0;padding:10px 12px;border:1px solid color-mix(in srgb,var(--st-a) 44%,#33404b);border-radius:11px;background:linear-gradient(115deg,color-mix(in srgb,var(--st-a) 14%,#17202a),#19232f)}
.ss-epingle span{display:block;color:var(--st-a);font-size:9px;font-weight:950;letter-spacing:.12em}
.ss-epingle p{margin:5px 0 0;color:#ecf2ea;font-size:11px;font-weight:700;line-height:1.42}
.ss-fil{flex:1;overflow:auto;padding:12px 13px;scrollbar-color:#405166 transparent}
.ss-vide{color:#7f8da0;font-size:11px;text-align:center;margin:24px 8px}
.ss-msg{margin-bottom:14px;display:grid;grid-template-columns:26px minmax(0,1fr);gap:8px;align-items:start}
.ss-msg .ss-ligne{display:flex;gap:6px;align-items:center}
.ss-msg .ss-nom{font-size:11px;color:#d8e2eb;font-weight:900}
.ss-msg.moi .ss-nom{color:var(--st-a)}
.ss-msg time{font-size:9px;color:#6e7d8f}
.ss-msg .ss-retirer{margin-left:auto;border:0;background:none;color:#6e7d8f;cursor:pointer;font-size:12px;opacity:0;transition:opacity .15s}
.ss-msg:hover .ss-retirer,.ss-msg .ss-retirer:focus-visible{opacity:1}
.ss-msg p{margin:3px 0 0;color:#c8d2de;font-size:12px;line-height:1.45;overflow-wrap:anywhere;white-space:pre-wrap}
.ss-prise{display:grid;grid-template-columns:30px minmax(0,1fr) 30px;gap:9px;align-items:center;margin-top:7px;padding:8px 9px;border:1px solid #47546a;border-radius:11px;background:#1d2633}
.ss-prise .ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--st-a);color:var(--st-ink);font-size:15px}
.ss-prise small{display:block;color:var(--st-a);font-size:8px;font-weight:950;letter-spacing:.1em}
.ss-prise b{display:block;font-size:11px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ss-prise span{display:block;font-size:10px;color:#9eabbb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ss-prise button{width:30px;height:30px;border-radius:50%;border:1px solid #6b7a8c;background:#26313f;color:#fff;cursor:pointer}
.ss-prise.off{opacity:.6}
.ss-compo{position:relative;padding:10px 11px 13px;border-top:1px solid #35404f;background:#17202a}
.ss-compo-haut{display:flex;justify-content:space-between;margin-bottom:7px;font-size:9px;font-weight:950;letter-spacing:.12em;color:#bbc6d5}
.ss-compo-haut small{letter-spacing:0;color:#6f8192;font-weight:600}
.ss-form{border:1px solid #465365;border-radius:11px;background:#232e3a;overflow:hidden}
.ss-form textarea{width:100%;resize:none;border:0;background:none;color:#f5f6f1;padding:9px 11px 4px;outline:none;font:inherit;font-size:12px;line-height:1.4;display:block}
.ss-form textarea::placeholder{color:#8492a3}
.ss-jointe{display:flex;align-items:center;gap:8px;margin:0 8px 6px;padding:6px 9px;border:1px solid #6b7a8c;border-radius:8px;background:#1b2531;font-size:10px;color:#e5edf5}
.ss-jointe span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ss-jointe button{border:0;background:none;color:#cbd5e1;cursor:pointer;font-size:14px}
.ss-actions{display:flex;justify-content:space-between;align-items:center;gap:7px;padding:0 8px 7px 8px}
.ss-joindre{border:1px solid #4a586a;border-radius:8px;background:#1b2531;color:#d6e0ea;font-size:10px;font-weight:800;padding:5px 9px;cursor:pointer}
.ss-envoyer{width:30px;height:30px;border:0;border-radius:8px;background:var(--st-a);color:var(--st-ink);font-size:17px;font-weight:950;cursor:pointer}
.ss-envoyer:disabled,.ss-joindre:disabled{opacity:.45;cursor:not-allowed}
.ss-ferme{padding:12px;color:#9eabbb;font-size:11px;text-align:center}
.ss-choix{position:absolute;left:9px;right:9px;bottom:calc(100% - 4px);border:1px solid #6b7a8c;border-radius:14px;background:#24303e;box-shadow:0 -14px 50px #000b;max-height:min(360px,55vh);overflow:auto;z-index:2}
.ss-choix-tete{display:flex;justify-content:space-between;align-items:start;padding:11px 12px;border-bottom:1px solid #3a4758;position:sticky;top:0;background:#24303e}
.ss-choix-tete b{display:block;font-size:12px;color:#fff}.ss-choix-tete small{font-size:10px;color:#9eabbb}
.ss-option{display:flex;gap:9px;align-items:center;padding:9px 12px;border-bottom:1px solid #2f3b4a}
.ss-option div{flex:1;min-width:0}.ss-option b{display:block;font-size:11px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ss-option small{display:block;font-size:10px;color:#9eabbb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ss-option em{font-style:normal;color:var(--st-a);font-size:9px;font-weight:900;letter-spacing:.08em}
.ss-option button{border:1px solid var(--st-a);border-radius:7px;background:none;color:var(--st-a);font-size:10px;font-weight:900;padding:5px 9px;cursor:pointer}
.ss-onglet{position:fixed;right:0;top:42%;z-index:899;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border:1px solid #34404e;border-right:0;border-radius:12px 0 0 12px;background:#131923;color:#fff;cursor:pointer;box-shadow:-8px 8px 24px #0005;font-size:11px;font-weight:900}
.ss-onglet[hidden]{display:none}
.ss-onglet span{writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.08em}
.ss-onglet i{position:absolute;top:6px;left:6px;width:8px;height:8px;border-radius:50%;background:var(--st-a);box-shadow:0 0 8px var(--st-a)}

/* 25/10 : la cabine de la soirée prend l'illustration et les couleurs du thème (la soirée est un « live doublage ») */
.cabine.cb-page.cab-soiree{--brand:var(--st-a2);--brand-d:var(--st-a2);--brand-t:var(--st-a2);--brand-s:rgba(255,255,255,.08)}
.cab-soiree .cab-top{background:linear-gradient(90deg,#07090e,#121722)!important;box-shadow:inset 0 -2px 0 var(--st-a)!important;color:#fff}
.cab-soiree .cab-top *{color:inherit}
.cab-soiree .cab-top .faint,.cab-soiree .cab-top .t-xs{color:var(--st-a)!important}
/* l'affiche en plein écran pour les doubleurs (sans le menu du site) */
#root > .st-page{min-height:100vh}
/* la cabine se resserre quand le salon est ouvert (elle prenait toute la largeur de l'écran, sous le salon) */
@media(min-width:901px){body.ss-ouvert .cabine.cb-page{right:340px!important;width:auto!important}}
/* 25/10 : le bandeau de l'aperçu (l'admin voit la soirée comme un doubleur) */
.soiree-apercu-bandeau{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:1200;display:flex;gap:12px;align-items:center;max-width:calc(100% - 24px);
  padding:10px 10px 10px 16px;border-radius:14px;background:#0d1118;color:#fff;border:2px solid #ffd34d;box-shadow:0 12px 34px #000a;font-size:13px;line-height:1.35}
.soiree-apercu-bandeau button{flex:none;background:#ffd34d;color:#1a1000;border:0;border-radius:10px;padding:8px 14px;font-weight:800;font-size:13px;cursor:pointer}
@media(max-width:600px){.soiree-apercu-bandeau{flex-wrap:wrap;bottom:10px;justify-content:center;text-align:center}}
/* 25/10 : affiche CJ calée en haut (sa tête est tout en haut de l'illustration : au milieu, elle était coupée sur grand écran) */
.st-th-cj .st-art{background-position:72% 0%}
@media(max-width:780px){.st-th-cj .st-art{background-position:68% 0%}}
/* 25/10 : « Joindre une de mes prises » rangé en deux : prêtes en voix FOCKSTAR / en traitement */
.ss-choix .ss-sec{display:block;margin:10px 12px 4px;font-style:normal;font-size:9px;font-weight:900;letter-spacing:.14em;color:var(--st-a)}
/* 25/10 : les cartes à gagner sur l'affiche, bien floutées, et juste « 2 CARTES À GAGNER ! » posé dessus */
.st-cartes{position:absolute;right:5%;bottom:14%;z-index:2;display:flex;align-items:flex-end;pointer-events:none}
.st-cartes img{width:clamp(96px,11vw,180px);aspect-ratio:1062/1480;object-fit:cover;border-radius:12px;filter:blur(11px) saturate(1.35) brightness(.95);
  opacity:.92;box-shadow:0 24px 44px #000b;transform:rotate(-8deg) translateY(8px)}
.st-cartes img + img{margin-left:-42px;transform:rotate(7deg) translateY(-14px)}
.st-cartes-txt{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-4deg);white-space:nowrap;
  font:700 clamp(26px,2.9vw,46px)/.9 'Oswald Studio','Arial Narrow',Impact,sans-serif;text-transform:uppercase;letter-spacing:.01em;
  color:var(--st-a);text-shadow:0 3px 0 #000a,0 10px 30px #000d}
@media(max-width:780px){.st-cartes{top:84px;bottom:auto;right:34px}.st-cartes img{width:84px}.st-cartes img + img{margin-left:-30px}
  .st-cartes-txt{font-size:18px}}
/* 25/10 : l'onglet SALON clignote quand un message attend (surtout sur téléphone, où le salon est replié) */
.ss-onglet:has(i:not([hidden])){animation:ssAppel 1.2s ease-in-out infinite}
@keyframes ssAppel{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--st-a) 70%,transparent)}50%{box-shadow:0 0 0 9px transparent;filter:brightness(1.35)}}
@media(prefers-reduced-motion:reduce){.ss-onglet:has(i:not([hidden])){animation:none;outline:2px solid var(--st-a)}}

/* 26/10 : le calendrier des soirées sur le Dashboard */
.scal{margin:0 0 22px;padding:18px 20px;border:1px solid var(--line);border-radius:18px;background:var(--card)}
.scal-tete{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px}
.scal-tete h2{font:650 24px/1.2 'Space Grotesk',sans-serif;letter-spacing:-.04em;margin:5px 0 0}
.scal-semaine{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.scal-j{display:flex;flex-direction:column;gap:3px;min-height:104px;padding:10px;border:1px solid var(--line);border-radius:12px;color:var(--ink3);min-width:0}
.scal-j.auj{border-color:var(--ink3)}
.scal-jn{font:600 10px/1.4 'Montserrat',sans-serif;text-transform:capitalize}
.scal-jd{font:650 22px/1.1 'Space Grotesk',sans-serif;color:var(--ink)}
.scal-j.on{border:0;color:var(--ink);background:linear-gradient(150deg,var(--a),var(--a2));box-shadow:0 8px 20px -12px var(--a2)}
.scal-j.on .scal-jn,.scal-j.on .scal-jd,.scal-j.on .scal-jh,.scal-j.on .scal-jt{color:var(--ink)}
.scal-jh{margin-top:auto;font:700 12px/1.3 'Montserrat',sans-serif}
.scal-jt{font:600 11px/1.3 'Montserrat',sans-serif;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.scal-liste{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.scal-s{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px}
.scal-pastille{flex:none;width:12px;height:12px;border-radius:50%;background:linear-gradient(150deg,var(--a),var(--a2))}
.scal-s-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:13px}
.scal-s-txt span{color:var(--ink3)}
.scal-s-quand{font:600 11px/1.4 'Montserrat',sans-serif}
.scal-court{display:none}
.scal-s-cartes{font-weight:600}
.scal-s .btn{flex:none;text-decoration:none}
.scal-vide{margin:12px 0 0;font-size:13px;color:var(--ink3)}
.scal-adm{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
.scal-adm.on{border-color:var(--brand,#0a63c9)}
@media(max-width:760px){.scal{padding:14px}.scal-semaine{grid-template-columns:repeat(7,minmax(62px,1fr));overflow-x:auto;scrollbar-width:thin;padding-bottom:4px}
  .scal-j{min-height:92px;padding:8px}.scal-long{display:none}.scal-court{display:inline}.scal-s{flex-wrap:wrap}.scal-s .btn{width:100%;justify-content:center}}

/* 26/10 : la CABINE aux couleurs de la soirée — les couleurs du site sont remplacées par celles du thème (flics = bleus foncés,
   boutons en bleus, gangs = verts, CJ = ors…). Restent dans leurs couleurs de sens : le bouton REC (rouge), la jauge de durée
   (vert / jaune / rouge) et « à refaire » (rouge). */
.cabine.cb-page.cab-soiree{--paper:var(--st-f2);--paper2:color-mix(in srgb,var(--st-f) 70%,var(--st-f2));--card:var(--st-f2);
  --line:var(--st-b);--line2:color-mix(in srgb,var(--st-b) 65%,var(--st-a2));
  --ink:#f4f7fb;--ink2:color-mix(in srgb,var(--st-a) 30%,#b9c1cc);--ink3:color-mix(in srgb,var(--st-a) 22%,#7f8896);
  --brand:var(--st-a2);--brand-d:color-mix(in srgb,var(--st-a2) 80%,#000);--brand-t:var(--st-a);--brand-s:color-mix(in srgb,var(--st-a2) 20%,var(--st-f));
  --blue:var(--st-a);--blue-s:color-mix(in srgb,var(--st-a2) 22%,var(--st-f));--green-s:color-mix(in srgb,var(--st-a) 14%,var(--st-f2));
  color-scheme:dark;color:var(--ink);
  background:linear-gradient(90deg,color-mix(in srgb,var(--st-f) 95%,transparent) 0%,color-mix(in srgb,var(--st-f) 84%,transparent) 45%,color-mix(in srgb,var(--st-f) 62%,transparent) 100%),var(--evt-fond,none) 70% 30%/cover no-repeat,var(--st-f)!important}
@media(max-width:900px){.cabine.cb-page.cab-soiree{background:linear-gradient(0deg,color-mix(in srgb,var(--st-f) 97%,transparent) 0%,color-mix(in srgb,var(--st-f) 88%,transparent) 55%,color-mix(in srgb,var(--st-f) 62%,transparent) 100%),var(--evt-fond-m,none) 50% 0/cover no-repeat,var(--st-f)!important}}
.cab-soiree .cab-top{background:linear-gradient(90deg,var(--st-f),color-mix(in srgb,var(--st-a2) 26%,var(--st-f2)))!important;box-shadow:inset 0 -2px 0 var(--st-a)!important}
.cab-soiree .cb-case.orange{background:color-mix(in srgb,var(--st-a2) 55%,var(--st-f2))}
.cab-soiree .cb-case.vert{background:var(--st-a)}
.cab-soiree .cb-case.ici{outline-color:var(--st-a)}
.cab-soiree .cb-take{background:color-mix(in srgb,var(--st-f2) 88%,transparent);border-color:var(--st-b)}
.cab-soiree .cb-take.ok{border-color:var(--st-a);background:color-mix(in srgb,var(--st-a) 12%,var(--st-f2))}
.cab-soiree .btn.line,.cab-soiree .cb-star,.cab-soiree .cb-aide{background:var(--st-f2);border-color:var(--st-b);color:var(--ink)}
.cab-soiree .btn.line:hover{border-color:var(--st-a2)}
.cab-soiree .btn.pri{background:var(--st-a2);border-color:var(--st-a2);color:#fff}
.cab-soiree .cb-bas{background:color-mix(in srgb,var(--st-f2) 92%,transparent);border-color:var(--st-b)}
.cab-soiree .cb-jauge{background:var(--st-f)}
/* le SALON aux couleurs de la soirée */
.ss-panel.ss-th{background:var(--st-f);border-left-color:var(--st-b)}
.ss-th .ss-tete{border-bottom-color:var(--st-b)}
.ss-th .ss-x{border-color:var(--st-b)}
.ss-th .ss-presents{background:var(--st-f2);border-bottom-color:var(--st-b)}
.ss-th .ss-presents .avs>*{border-color:var(--st-f2)}
.ss-th .ss-prise{background:var(--st-f2);border-color:var(--st-b)}
.ss-th .ss-prise button{background:var(--st-a2);border-color:var(--st-a2)}
.ss-th .ss-compo{background:var(--st-f2);border-top-color:var(--st-b)}
.ss-th .ss-form{background:var(--st-f);border-color:var(--st-b)}
.ss-th .ss-jointe,.ss-th .ss-joindre{background:var(--st-f2);border-color:var(--st-b)}
.ss-th .ss-choix{background:var(--st-f2);border-color:var(--st-b)}
.ss-th .ss-fil{scrollbar-color:var(--st-b) transparent}
/* 26/10 : mentions et réactions */
.ss-msg .ss-nom{border:0;background:none;padding:0;cursor:pointer;font:inherit;font-size:11px;font-weight:900}
.ss-msg .ss-nom:hover{text-decoration:underline}
.ss-at{color:var(--st-a);font-weight:800}
.ss-at.moi{color:var(--st-ink);background:var(--st-a);border-radius:4px;padding:0 3px}
.ss-msg.pour-moi>div{border-left:2px solid var(--st-a);padding-left:8px;margin-left:-2px}
.ss-reac{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:5px}
.ss-r{display:inline-flex;align-items:center;gap:3px;height:22px;padding:0 7px;border-radius:999px;border:1px solid var(--st-b,#3a4656);background:var(--st-f2,#1c2530);color:#e8eef2;font-size:12px;cursor:pointer}
.ss-r b{font-size:10px}
.ss-r.on{border-color:var(--st-a);background:color-mix(in srgb,var(--st-a) 22%,var(--st-f2,#1c2530))}
.ss-r-plus{opacity:0;font-size:11px;color:#9eabbb;transition:opacity .15s}
.ss-msg:hover .ss-r-plus,.ss-r-plus:focus-visible,.ss-reac:has(.ss-picker) .ss-r-plus{opacity:1}
@media(hover:none){.ss-r-plus{opacity:.7}}
.ss-picker{display:inline-flex;gap:2px;padding:2px 4px;border-radius:999px;border:1px solid var(--st-a);background:var(--st-f2,#1c2530)}
.ss-picker button{border:0;background:none;font-size:16px;line-height:1;padding:3px;cursor:pointer;border-radius:6px}
.ss-picker button:hover{background:color-mix(in srgb,var(--st-a) 25%,transparent)}
.ss-at-liste{position:absolute;left:9px;right:9px;bottom:calc(100% - 4px);z-index:3;display:flex;flex-direction:column;padding:4px;border:1px solid var(--st-b,#3a4656);border-radius:12px;background:var(--st-f2,#24303e);box-shadow:0 -14px 40px #000a}
.ss-at-liste[hidden]{display:none}
.ss-at-liste button{display:flex;align-items:center;gap:8px;padding:6px 8px;border:0;border-radius:8px;background:none;color:#eef2f6;font-size:12px;text-align:left;cursor:pointer}
.ss-at-liste button:hover,.ss-at-liste button:first-child{background:color-mix(in srgb,var(--st-a) 16%,transparent)}
.ss-at-liste small{margin-left:auto;color:var(--st-a);font-size:9px;font-weight:800}

/* 26/10 : « Le studio en direct » : un seul panneau à droite (salon, messages, assistant), sombre, aux couleurs de la soirée en cours */
.sd-panel{--paper:var(--st-f);--paper2:var(--st-f);--card:var(--st-f2);--line:var(--st-b);--line2:color-mix(in srgb,var(--st-b) 75%,#fff);
  --ink:#eef2f7;--ink2:#b9c3cf;--ink3:#8995a6;--brand:var(--st-a2);--brand-d:var(--st-a2);--brand-t:var(--st-a);--brand-s:color-mix(in srgb,var(--st-a2) 22%,var(--st-f));
  --scrim:rgba(0,0,0,.6);color-scheme:dark;color:var(--ink)}
.sd-onglets{display:flex;gap:4px;padding:8px 10px;border-bottom:1px solid var(--st-b);background:var(--st-f)}
.sd-onglets button{flex:1;position:relative;display:flex;align-items:center;justify-content:center;gap:6px;height:34px;border:1px solid transparent;border-radius:9px;background:none;color:#b9c3cf;font:800 11px/1 Montserrat,sans-serif;cursor:pointer}
.sd-onglets button:hover{color:#fff}
.sd-onglets button.on{background:var(--st-f2);border-color:var(--st-b);color:#fff}
.sd-pastille{position:absolute;top:6px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--st-a)}
.sd-pastille[hidden],.sd-compte[hidden]{display:none}
.sd-compte{min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#e5484d;color:#fff;font-size:9px;line-height:16px;text-align:center}
.sd-pane{flex:1;min-height:0;display:flex;flex-direction:column}
.sd-pane[hidden]{display:none}
#ssNb[hidden]{display:none}
/* la messagerie, dans le panneau */
#ssPanel #studioSocialHost{position:static!important;inset:auto!important;flex:1;min-height:0;display:flex;flex-direction:column;align-items:stretch;gap:0;max-width:none!important;pointer-events:auto}
#ssPanel #studioSocialHost[hidden]{display:none!important}
#ssPanel .ss-dock{width:auto;height:auto;flex:1;min-height:0;border:0;border-radius:0;box-shadow:none;animation:none;background:transparent}
#ssPanel .ss-dock-head,#ssPanel .ss-launcher,#ssPanel .ss-quick-reprise{display:none!important}
#ssPanel .ss-arrival{position:fixed;right:356px;bottom:20px;z-index:950}
@media(max-width:900px){#ssPanel .ss-arrival{right:12px;bottom:90px}}
/* l'assistant, dans le panneau */
#ssPanel #compagnonHost{position:static!important;inset:auto!important;flex:1;min-height:0;display:flex;flex-direction:column;align-items:stretch;gap:0;pointer-events:auto}
body.ss-dock-open #ssPanel #compagnonHost:not([hidden]){display:flex}
#ssPanel #compagnonHost[hidden]{display:none!important}
#ssPanel .cp-bulle,#ssPanel .cp-tete button{display:none!important}
#ssPanel .cp-fenetre{width:auto;height:auto;flex:1;min-height:0;border:0;border-radius:0;box-shadow:none;background:transparent}
.sd-repos{display:none;margin:34px 18px;text-align:center;color:#8995a6;font-size:12px;line-height:1.5}
#sdAssistant:has(#compagnonHost[hidden]) .sd-repos{display:block}
/* l'assistant épinglé en tête des messages, avec l'emblème FOCKSTAR */
.sd-bot{flex:none;display:flex;align-items:center;gap:10px;margin:8px 10px 2px;padding:9px 10px;border:1px solid var(--st-b);border-radius:12px;background:var(--st-f2);color:inherit;text-align:left;cursor:pointer}
.sd-bot:hover{border-color:var(--st-a2)}
.sd-bot b{display:block;font-size:12px;color:#fff}.sd-bot small{display:block;margin-top:2px;color:#9aa7b8;font-size:10px}
.sd-bot-av{flex:none;width:34px;height:34px;border-radius:50%;background:#fff url(../fockstar-embleme.svg) center/68% no-repeat;box-shadow:0 0 0 2px var(--st-a2,#3d7bff)}
.sd-bot-av.mini{width:18px;height:18px;box-shadow:none}
/* le bord droit : « EN DIRECT » et « AIDE » */
.sd-bords{position:fixed;right:0;top:40%;z-index:899;display:flex;flex-direction:column;gap:8px}
.sd-bords[hidden]{display:none}
.sd-bords .ss-onglet{position:relative;top:auto;right:auto}
.sd-bords .ss-onglet i{position:absolute;top:6px;left:6px;width:9px;height:9px;border-radius:50%;background:#ff5a52}
.sd-bords .ss-onglet i[hidden]{display:none}
.sd-onglet-aide{display:flex;flex-direction:column;align-items:center;gap:5px;padding:9px 7px;border:1px solid #34404e;border-right:0;border-radius:12px 0 0 12px;background:#131923;color:#fff;font:900 9px Montserrat,sans-serif;letter-spacing:.1em;cursor:pointer;box-shadow:-8px 8px 24px #0005}
.sd-onglet-aide .sd-bot-av{width:28px;height:28px}
@media(max-width:900px){.sd-bords{top:auto;bottom:calc(90px + env(safe-area-inset-bottom,0px))}}

/* 26/10 (2) : le panneau glisse comme le menu de gauche (même courbe, même durée) ; le bord droit pulse une seule fois */
.ss-panel.sd-panel{transition:transform .44s cubic-bezier(.22,1,.36,1),visibility 0s}
.ss-panel.sd-panel[hidden]{display:flex!important;transform:translateX(100%);visibility:hidden;pointer-events:none;
  transition:transform .44s cubic-bezier(.22,1,.36,1),visibility 0s .44s}
@media(min-width:901px){#root{transition:margin-right .44s cubic-bezier(.22,1,.36,1)}.cabine.cb-page{transition:right .44s cubic-bezier(.22,1,.36,1)}}
.sd-bords{transition:opacity .3s ease .15s}
.sd-bords[hidden]{display:flex!important;opacity:0;pointer-events:none;transition:opacity .15s}
.sd-bords.sd-nouveau>button{animation:sdPulse 1.2s ease-out 2}
@keyframes sdPulse{0%{box-shadow:-8px 8px 24px #0005,0 0 0 0 color-mix(in srgb,var(--st-a2,#3d7bff) 70%,transparent)}
  70%{box-shadow:-8px 8px 24px #0005,0 0 0 14px transparent}100%{box-shadow:-8px 8px 24px #0005,0 0 0 0 transparent}}
@media(prefers-reduced-motion:reduce){.ss-panel.sd-panel,.ss-panel.sd-panel[hidden],#root,.cabine.cb-page{transition:none}.sd-bords.sd-nouveau>button{animation:none}}
/* la petite flèche à côté du logo F : le menu de gauche se rabat */
.brand-toggle{position:relative}
.brand-fleche{position:absolute;right:-7px;bottom:-5px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;
  background:var(--card,#fff);border:1px solid var(--line,#e5e5ea);color:var(--ink2,#555);box-shadow:0 1px 3px #0002;
  transition:transform .44s cubic-bezier(.22,1,.36,1)}
.brand-toggle:hover .brand-fleche{color:var(--brand,#0055A4);border-color:var(--brand,#0055A4)}
html.nav-collapsed .brand-fleche{transform:rotate(180deg)}
@media(max-width:900px){.brand-fleche{display:none}}

/* 26/10 : les soirées de la semaine dans la barre du haut (aucun encadré : du texte, une pastille, une ×) */
.tb-soirees{flex:1;min-width:0;display:flex;align-items:center;gap:16px;margin-left:18px;overflow:hidden;white-space:nowrap}
.tb-soiree{display:inline-flex;align-items:center;gap:6px;min-width:0;border:0;background:none;padding:4px 2px;color:var(--ink2);font:600 12px/1.2 Montserrat,sans-serif;cursor:pointer}
.tb-soiree i{flex:none;width:8px;height:8px;border-radius:50%}
.tb-soiree b{flex:none;color:var(--ink);font-weight:800}
.tb-soiree span{overflow:hidden;text-overflow:ellipsis}
.tb-soiree:hover span{color:var(--ink);text-decoration:underline}
.tb-soirees-x{flex:none;border:0;background:none;color:var(--ink3);font-size:16px;line-height:1;padding:3px 7px;border-radius:6px;cursor:pointer}
.tb-soirees-x:hover{color:var(--ink);background:var(--line)}
@media(max-width:1100px){.tb-soiree~.tb-soiree{display:none}}
@media(max-width:600px){.tb-soirees{display:none}}

/* 26/10 : « on est N doubleurs, X connectés » sur le Dashboard */
.kd-equipe{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin:0 0 18px;padding:22px 26px;border-radius:19px;color:#fff;
  background:radial-gradient(120% 140% at 0% 0%,#1d4f8a 0%,#0a1c30 55%,#07121f 100%);box-shadow:0 8px 22px -16px #10263b99;position:relative;overflow:hidden}
.kd-equipe::after{content:'';position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,#d6aa5b33,transparent 70%);pointer-events:none}
.kd-equipe.vide{min-height:118px;padding:0;background:var(--line);box-shadow:none}
.kd-eq-sur{display:block;font:700 9px/1.5 Montserrat,sans-serif;letter-spacing:.14em;color:#d6aa5b}
.kd-eq-total p{display:flex;align-items:flex-end;gap:12px;margin:6px 0 0}
.kd-eq-total b{font:700 64px/0.9 'Space Grotesk',sans-serif;letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.kd-eq-total span{font:600 13px/1.25 Montserrat,sans-serif;color:#c8d6e6;padding-bottom:6px}
.kd-eq-live{position:relative;z-index:1;display:flex;align-items:center;gap:14px;padding:12px 16px;border:1px solid #ffffff22;border-radius:14px;background:#ffffff0d}
.kd-eq-live b{display:block;font:700 18px/1.2 'Space Grotesk',sans-serif}
.kd-eq-live small{display:block;font:500 11px/1.4 Montserrat,sans-serif;color:#aebccd}
.kd-eq-point{flex:none;width:12px;height:12px;border-radius:50%;background:#34c77b;box-shadow:0 0 0 0 #34c77b99;animation:kdEqPouls 2s ease-out infinite}
@keyframes kdEqPouls{0%{box-shadow:0 0 0 0 #34c77b99}80%,100%{box-shadow:0 0 0 12px transparent}}
.kd-eq-avs{display:flex;align-items:center}
.kd-eq-avs>*{margin-left:-8px;border:2px solid #0d2340;border-radius:50%}
.kd-eq-avs>*:first-child{margin-left:0}
.kd-eq-avs i{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#1d4f8a;font:700 10px Montserrat,sans-serif;font-style:normal}
@media(max-width:600px){.kd-equipe{padding:18px}.kd-eq-total b{font-size:48px}.kd-eq-live{width:100%}}
@media(prefers-reduced-motion:reduce){.kd-eq-point{animation:none}}
