/* ---------- Organisateur ---------- */
.hero-empty{text-align:center;padding:44px 28px;max-width:720px;margin:0 auto}
.hero-empty h2{font-size:22px;margin:14px 0 8px}
.he-ic{width:76px;height:76px;border-radius:22px;background:rgba(var(--accent-rgb),.12);color:var(--accent);display:inline-flex;align-items:center;justify-content:center}
.he-points{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;margin:18px 0 22px;font-size:13.5px;color:var(--text-2)}.he-points span{display:inline-flex;gap:6px;align-items:center}.he-points .ic{color:var(--accent)}
.hunt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.hunt-card{display:flex;flex-direction:column;gap:6px;color:var(--text);text-decoration:none!important;margin:0}
.hunt-card:hover{box-shadow:var(--shadow-m)}
.hc-top{display:flex;justify-content:space-between;align-items:flex-start}
.hc-emoji{font-size:36px;line-height:1}.hc-title{font-size:17px;margin-top:6px}
.hc-meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--text-2);margin-top:6px}.hc-meta span{display:inline-flex;gap:4px;align-items:center}
.hc-code{margin-top:10px;padding-top:10px;border-top:1px dashed var(--border);font-size:12.5px;color:var(--muted)}.hc-code strong{font-family:var(--mono);letter-spacing:.12em;color:var(--text);font-size:14px}
.grid-title{display:grid;grid-template-columns:90px 1fr;gap:14px}
.nav-pick{display:grid;gap:8px;margin-bottom:16px}
.nav-pick input{position:absolute;opacity:0}
.nav-pick span{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center;border:1.5px solid var(--border);border-radius:12px;padding:10px 12px;cursor:pointer}
.nav-pick span .ic{grid-row:span 2;color:var(--muted)}
.nav-pick small{color:var(--muted);font-size:12px;line-height:1.35}
.nav-pick input:checked+span{border-color:var(--accent);background:rgba(var(--accent-rgb),.06)}.nav-pick input:checked+span .ic{color:var(--accent)}
.map{height:460px;width:100%;z-index:1}.map-sm{height:260px;border-radius:10px}.map-live{height:calc(100vh - 170px);min-height:420px;border-radius:var(--radius)}
.map-card{overflow:hidden}
.map-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border)}.map-tools span{display:inline-flex;gap:6px;align-items:center}
.step-pin{background:none;border:0}
.step-pin span{position:relative;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#d97706;color:#fff;font-weight:700;font-size:13px;line-height:1;border:2px solid #fff;box-shadow:0 3px 8px rgba(0,0,0,.3)}
.step-pin span::after{content:"";position:absolute;bottom:-11px;left:50%;margin-left:-6px;border:6px solid transparent;border-top:8px solid #d97706}
.step-pin.ghost span{background:#98a2b3;width:26px;height:26px;font-size:11px}.step-pin.ghost span::after{border-top-color:#98a2b3}
.step-n{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.riddle-prev{color:var(--text-2);font-style:italic;margin-top:4px}
.join-card{text-align:center}
.join-code{font-family:var(--mono);font-size:34px;font-weight:700;letter-spacing:.18em;margin:2px 0 10px}
.qr{width:190px;margin:0 auto 12px}.qr svg{width:100%;height:auto;display:block}
.step-photo{display:flex;gap:12px;align-items:center;margin-bottom:8px}.step-photo img{width:120px;height:90px;object-fit:cover;border-radius:8px}
.live-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.live-grid>.card{margin:0}
.rk{width:22px;font-weight:700;color:var(--muted);text-align:center}
.team-dot{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.2)}
#rank .bar{margin-top:6px}
.team-pin{background:none;border:0}.team-pin span{display:flex;width:34px;height:34px;border-radius:50%;align-items:center;justify-content:center;font-size:18px;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.35)}
.feed{list-style:none;margin:0;padding:0;max-height:360px;overflow:auto}.feed li{display:flex;gap:10px;font-size:13px;padding:6px 0;border-bottom:1px solid var(--border)}.fe-t{color:var(--muted);font-variant-numeric:tabular-nums}
/* Impression */
.print-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:14px 0 24px}
.poster{max-width:640px;margin:0 auto;text-align:center;border:3px dashed #d97706;border-radius:28px;padding:40px 36px;background:#fffbeb}
.poster-emoji{font-size:64px}.poster h1{font-size:38px;letter-spacing:-.02em;margin:6px 0}.poster-ev{font-size:18px;color:#b45309;font-weight:600}
.poster-intro{font-size:16px;line-height:1.6;margin:18px auto;max-width:480px;color:#44403c}
.poster-qr{width:280px;margin:16px auto;background:#fff;padding:12px;border-radius:18px}.poster-qr svg{width:100%;height:auto;display:block}
.poster-how{font-size:14px;color:#57534e}.poster-code{font-family:var(--mono);font-size:44px;font-weight:800;letter-spacing:.2em;margin:10px 0 18px}
.poster-tips{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;font-size:14px;color:#57534e}
.code-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.code-card{border:2px dashed #a8a29e;border-radius:18px;padding:26px 18px;text-align:center;break-inside:avoid;background:#fff}
.cc-n{font-weight:700;color:#b45309}.cc-word{font-size:46px;font-weight:800;letter-spacing:.08em;margin:12px 0;word-break:break-word}.cc-help{font-size:13px;color:#57534e}.cc-place{font-size:11px;color:#a8a29e;margin-top:10px}
.sheet h1{font-size:24px}
@media print{.no-print{display:none!important}body{background:#fff!important}.bare-main{padding:0!important;max-width:none!important}.poster{border-width:2px}}
@media (max-width:900px){.live-grid{grid-template-columns:1fr}.map-live{height:60vh}}

/* ---------- Joueurs ---------- */
body.bare:has(.player){background:linear-gradient(180deg,#fffbeb,#fff 50%)}
.bare-main:has(.player){max-width:none;padding:0}
.player{max-width:560px;margin:0 auto;padding:16px 16px 40px;--tc:#d97706}
.pl-brand{text-align:center;padding:6vh 0 22px}.pl-brand h1{font-size:28px;letter-spacing:-.02em;margin:10px 0 4px}.pl-brand p{color:var(--muted);margin:0}
.pl-logo{width:72px;height:72px;border-radius:22px;background:#d97706;color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 10px 24px -10px #d97706}
.pl-emoji{font-size:64px;line-height:1}
.pl-card{background:#fff;border-radius:22px;padding:20px;box-shadow:0 2px 0 rgba(0,0,0,.03),0 12px 32px -18px rgba(0,0,0,.25);margin-bottom:14px}
.pl-card.center{text-align:center}
.pl-story{font-size:16px;line-height:1.6;color:#44403c;font-style:italic;border-left:4px solid #d97706}
.code-input{width:100%;text-align:center;font-family:var(--mono);font-size:34px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;padding:14px;border-radius:16px;margin-bottom:12px;height:auto}
.pl-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:54px;border:0;border-radius:16px;background:#d97706;color:#fff;font:inherit;font-weight:700;font-size:17px;cursor:pointer;text-decoration:none!important;box-shadow:0 8px 20px -10px #d97706}
.pl-btn.ghost{background:#fff7ed;color:#b45309;box-shadow:none;margin-top:12px}.pl-btn:disabled{opacity:.6}
.pl-btn.pulse{animation:pulse 1.2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(217,119,6,.55)}50%{box-shadow:0 0 0 12px rgba(217,119,6,0)}}
.pl-mini{display:inline-flex;align-items:center;gap:6px;border:1.5px solid #fcd34d;background:#fffbeb;color:#92400e;border-radius:12px;padding:8px 12px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.pl-lbl{display:flex;flex-direction:column;gap:6px;font-weight:650;margin-bottom:12px}.pl-lbl input{font-size:17px;padding:13px 14px;border-radius:14px;height:auto}
.pl-emojis{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:12px}
.pl-emojis input,.pl-colors input{position:absolute;opacity:0}
.pl-emojis span{display:flex;align-items:center;justify-content:center;height:50px;border-radius:14px;background:#f4f5f7;font-size:26px;cursor:pointer;border:2px solid transparent}
.pl-emojis input:checked+span{border-color:#d97706;background:#fffbeb}
.pl-colors{display:flex;gap:10px;justify-content:center;margin:4px 0 18px}
.pl-colors span{display:block;width:34px;height:34px;border-radius:50%;cursor:pointer}
.pl-colors input:checked+span{box-shadow:0 0 0 3px #fff,0 0 0 5px #1f2937}
.pl-note{font-size:12.5px;color:var(--muted);text-align:center;margin:12px 0 0;display:flex;gap:4px;justify-content:center;align-items:center}
.pl-err{display:flex;gap:8px;align-items:center;background:var(--red-bg);color:var(--red-tx);border-radius:14px;padding:12px 14px;margin-bottom:12px;font-weight:600}
.pl-rank{list-style:none;counter-reset:r;margin:14px 0 0;padding:0;text-align:left}
.pl-rank li{counter-increment:r;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px}
.pl-rank li::before{content:counter(r);width:24px;height:24px;border-radius:50%;background:#f4f5f7;font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center}
.pl-rank li span{flex:1;font-weight:600}.pl-rank li small{color:var(--muted)}
.pl-rank li.me{background:#fffbeb}
.pl-top{display:flex;align-items:center;gap:10px;margin-bottom:8px}.pl-top .grow{flex:1;min-width:0}
.pl-team{width:44px;height:44px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;font-size:24px;color:#fff;flex-shrink:0}
.pl-tn{font-weight:750;font-size:17px;line-height:1.2}.pl-ts{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-prog{font-size:15px;color:var(--muted)}.pl-prog strong{font-size:22px;color:var(--text)}
.pl-timer{font-variant-numeric:tabular-nums;font-weight:700;background:#fff;border-radius:999px;padding:6px 12px;box-shadow:0 4px 14px -8px rgba(0,0,0,.3)}
.pl-dots{display:flex;gap:5px;margin:4px 0 12px}.pl-dots span{flex:1;height:6px;border-radius:3px;background:#e7e5e4}.pl-dots span.on{background:var(--tc)}
.pl-mapwrap{position:relative;margin-bottom:8px}
.pl-map{height:42vh;min-height:260px;border-radius:22px;overflow:hidden;z-index:1}
.pl-nav{position:relative;margin:-38px 12px 0;z-index:5;background:#fff;border-radius:18px;padding:14px 16px;box-shadow:0 12px 30px -12px rgba(0,0,0,.35)}
.thermo-bar{height:16px;border-radius:999px;background:linear-gradient(90deg,#60a5fa,#a5f3fc 30%,#fde68a 55%,#fb923c 78%,#dc2626);position:relative}
.thermo-bar span{position:absolute;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:#fff;border:4px solid #1f2937;transition:left .8s cubic-bezier(.3,1.3,.5,1);left:0}
.thermo-l{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px}.thermo-l strong{font-size:20px}.thermo-l small{color:var(--muted);font-weight:600}
body[data-temp=burning] .thermo-l strong{color:#dc2626}body[data-temp=hot] .thermo-l strong{color:#ea580c}body[data-temp=cold] .thermo-l strong,body[data-temp=frozen] .thermo-l strong{color:#2563eb}
.compass{display:flex;align-items:center;gap:16px}.arrow{transition:transform .4s ease;flex-shrink:0}
.compass-t{display:flex;flex-direction:column;gap:2px}.compass-t strong{font-size:26px}.compass-t small{color:var(--muted)}
.maptxt{display:flex;gap:12px;align-items:center}.maptxt .ic{color:#d97706}.maptxt div{display:flex;flex-direction:column}.maptxt strong{font-size:18px}.maptxt small{color:var(--muted)}
.pl-gps{font-size:12.5px;color:var(--muted);display:flex;gap:5px;align-items:center;justify-content:center;margin:6px 0 12px}.pl-gps.bad{color:var(--red-tx)}
.pl-sn{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#b45309;margin-bottom:8px}
.pl-riddle{font-size:18px;line-height:1.55;font-weight:500;color:#292524}
.pl-photo{width:100%;border-radius:14px;margin-top:12px}
.pl-hints{display:flex;flex-direction:column;gap:8px;margin:14px 0}.pl-hints:empty{display:none}
.pl-hint{background:#fffbeb;border-radius:12px;padding:10px 12px;font-size:15px;color:#78350f;display:flex;gap:6px}
.pl-check{display:flex;flex-direction:column;gap:10px}
.pl-answer{font-size:20px;text-align:center;letter-spacing:.08em;text-transform:uppercase;padding:13px;border-radius:14px;height:auto;font-weight:700}
.pl-msg{margin-top:10px;background:#fef3f2;color:#b42318;border-radius:12px;padding:10px 12px;font-weight:600;text-align:center}
.shake{animation:shake .4s}
@keyframes shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.pl-found .pl-sn{color:var(--muted)}.pl-found div{display:flex;flex-wrap:wrap;gap:6px}
.pl-chip{background:#fff;border-radius:999px;padding:6px 12px;font-size:13.5px;font-weight:600;box-shadow:0 4px 12px -8px rgba(0,0,0,.3)}
.pl-success{position:fixed;inset:0;background:rgba(28,25,23,.55);z-index:50;display:flex;align-items:center;justify-content:center;padding:16px}
.pl-sbox{background:#fff;border-radius:26px;padding:28px 24px;max-width:360px;width:100%;text-align:center;animation:pop .35s cubic-bezier(.2,1.4,.4,1)}
@keyframes pop{from{transform:scale(.85);opacity:0}to{transform:none;opacity:1}}
.pl-trophy{font-size:64px;line-height:1.1}.pl-sbox h2{margin:8px 0}.pl-sbox p{color:var(--text-2)}
.pl-finish h2{font-size:26px;margin:8px 0}.pl-final{font-size:17px;line-height:1.55;background:#fffbeb;border-radius:14px;padding:14px}
.pl-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.pl-stats div{background:#fafaf9;border-radius:14px;padding:12px 6px;display:flex;flex-direction:column}.pl-stats strong{font-size:19px}.pl-stats small{color:var(--muted);font-size:12px}
.found-pin{background:#16a34a;color:#fff;border-radius:50%;display:flex!important;align-items:center;justify-content:center;font-weight:800;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.3)}
