/* Composants originaux de suivi de la chasse : étapes, adversaires et activité. */
.treasure-match-preview { padding:8px 20px;border-bottom:1px solid #425775;color:#E4C07B;font-size:12px;font-weight:700; }
.treasure-map-layer { transition:transform .16s ease-out; }
.treasure-map-viewport.is-dragging .treasure-map-layer { transition:none; }
.treasure-stage-controls,.treasure-map-rivals { position:absolute;inset:0;pointer-events:none; }
.treasure-stage-button,.treasure-rival { position:absolute;pointer-events:auto;min-width:44px;min-height:44px;cursor:pointer;font:700 14px/1.25 Manrope,'Segoe UI',sans-serif; }
button.treasure-stage-button { transform:translate(-50%,-50%);padding:8px!important;border-radius:50%;background:#0A2039!important;border:2px solid #7E91A8!important;color:#F5F0E7!important; }
button.treasure-stage-button.is-found { background:#E4C07B!important;border-color:#E4C07B!important;color:#07182B!important; }
button.treasure-stage-button.is-current { border-color:#FFE3A1!important;box-shadow:0 0 0 8px #E4C07B20; }
button.treasure-stage-button[aria-pressed=true] { outline:3px solid #F5F0E7!important;outline-offset:4px; }
button.treasure-rival { transform:translate(-50%,24px);padding:8px 12px!important;border-radius:12px;background:#152E49!important;color:#F5F0E7!important;border:1px solid #A0B3C8!important;max-width:120px;overflow-wrap:anywhere;box-shadow:0 4px 16px #0005; }
button.treasure-rival.is-me { background:#E4C07B!important;color:#07182B!important;border-color:#FFE3A1!important; }
.treasure-journey button.treasure-rival { transform:translate(-50%,-110%);min-width:44px;max-width:88px;padding:4px 8px!important;font-size:10px; }
.treasure-map-dialog { width:min(1160px,calc(100% - 32px));padding:24px; }
.treasure-map-explanation { max-width:840px;line-height:1.6; }
.treasure-match-metrics { display:grid;grid-template-columns:2fr repeat(3,1fr);gap:8px;margin:16px 0; }
.treasure-match-metrics>div { background:#152E49;border:1px solid #425775;border-radius:8px;padding:12px 16px;min-width:0; }
.treasure-match-metrics span { display:block;color:#BECBDD;font-size:11px;line-height:1.4; }
.treasure-match-metrics strong { display:block;color:#E4C07B;font-size:20px;line-height:1.5;overflow-wrap:anywhere; }
.treasure-match-metrics>div:first-child strong { font-size:14px; }
.treasure-explore-layout { display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px; }
.treasure-explore-main,.treasure-match-sidebar { min-width:0; }
.treasure-map-controls { display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap; }
.treasure-map-controls>div { display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
.treasure-map-controls button { padding:8px 12px!important;min-width:44px;min-height:44px;font-size:12px; }
.treasure-map-controls [data-zoom-value] { min-width:44px;text-align:center;color:#BECBDD;font-size:11px; }
.treasure-map-dialog .treasure-map-viewport { height:clamp(320px,44vh,480px);margin:16px 0;background:#081B31;border:1px solid #617793; }
.treasure-stage-detail { padding:16px;background:#152E49;border:1px solid #A38B5E;border-radius:12px; }
.treasure-stage-detail h3 { font-size:18px;margin:0 0 8px;color:#F5F0E7;line-height:1.5; }
.treasure-stage-detail p { margin:8px 0 0;overflow-wrap:anywhere; }
.treasure-stage-detail .treasure-stage-people { font-size:12px;color:#E4C07B; }
.treasure-match-sidebar { display:grid;gap:24px;align-content:start; }
.treasure-match-sidebar h3 { margin:0 0 8px;color:#F5F0E7;font-size:18px;line-height:1.4; }
.treasure-match-sidebar .treasure-sidebar-help { font-size:12px;margin:0 0 12px; }
.treasure-live-board,.treasure-live-feed { list-style:none;margin:0;padding:0; }
.treasure-live-board { max-height:264px;overflow:auto;overscroll-behavior:contain;border-block:1px solid #425775; }
.treasure-live-board li { border-bottom:1px solid #425775; }
.treasure-live-board button { display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0!important;border-radius:0;background:#0D223A!important;color:#F5F0E7!important;padding:12px 8px!important; }
.treasure-live-board .is-me button { background:#203956!important;box-shadow:inset 3px 0 #E4C07B; }
.treasure-live-board button>b { display:grid;place-items:center;min-width:28px;color:#E4C07B; }
.treasure-live-board button>span { flex:1;min-width:0;overflow-wrap:anywhere;font-size:12px; }
.treasure-live-board small { display:block;margin-top:4px;font-size:10px;color:#BECBDD;font-weight:500; }
.treasure-live-board strong { color:#E4C07B;text-align:right;font-size:16px;font-variant-numeric:tabular-nums; }
.treasure-live-feed li { display:flex;gap:8px;border-top:1px solid #425775;padding:12px 0;font-size:12px;line-height:1.6;overflow-wrap:anywhere;color:#F5F0E7; }
.treasure-live-feed time { display:block;color:#BECBDD;font-size:10px;margin-top:4px;font-variant-numeric:tabular-nums; }
.treasure-event-dot { width:6px;height:6px;flex-shrink:0;background:#E4C07B;border-radius:50%;margin-top:8px; }
.treasure-empty { font-size:12px;padding:16px 8px!important;color:#BECBDD; }
.room-live-band { margin:12px 0;padding:12px 16px;background:#0D223AF5;border:1px solid #8F754C!important;border-radius:12px;display:grid;grid-template-columns:152px minmax(0,1fr);gap:16px;align-items:start; }
.room-live-band .room-section-head { display:block; }
[data-theme=cap] .room-live-band h2 { font:500 26px/1.2 Georgia,serif;margin:0 0 8px; }
.room-live-label { display:block;color:#BECBDD;font-size:10px;line-height:1.5;letter-spacing:.08em; }
.room-live-band ol { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-height:104px;overflow:auto;overscroll-behavior:contain;margin:0;padding:0 4px; }
.room-live-band li,.room-live-band li:first-child { min-width:0;display:flex;padding:8px;border:1px solid #425775;background:#152E49;border-radius:8px; }
.room-live-band p { font-size:12px;line-height:1.6;color:#F5F0E7!important; }
.room-live-band time { font-size:10px; }
.room-ranking-scroll { overflow:auto;overscroll-behavior:contain;max-height:480px;scrollbar-color:#E4C07B #152E49; }
.room-ranking-scroll thead { position:sticky;top:0;z-index:2;background:#0D223A; }
.room-ranking-scroll:focus-visible { outline-offset:-4px!important; }
body.results .event-masthead { display:flex;align-items:center;gap:16px;padding:8px 24px; }
body.results .event-organizers { width:320px;max-width:40%;flex-shrink:0;margin:0; }
body.results .event-banner { max-height:80px;object-fit:contain;min-width:0; }
body.results>header { display:none!important; }
[data-theme=cap] body.results main { padding:16px 24px; }
.room-heading { margin:16px 0 12px; }
[data-theme=cap] .room-heading h1 { font-size:clamp(28px,3vw,40px);margin:0 0 4px; }
.room-heading p { font-size:13px; }
.room-code { padding:8px 16px; }
.room-metrics { gap:12px;margin:12px 0; }
.room-metrics>div { padding:8px 16px;min-height:56px;gap:12px; }
.room-metrics svg { width:20px;height:20px; }
.room-metrics strong { font-size:24px;line-height:1.3; }
.room-metrics span { font-size:11px; }
.room-podium { margin:12px 0 16px;gap:12px; }
.room-place,.room-place.room-place-1 { padding:12px 16px; }
.room-place-empty { min-height:132px; }
.room-place-top svg { width:18px;height:18px; }
.room-place .room-avatar { width:28px;height:28px;margin-top:8px;font-size:11px; }
[data-theme=cap] .room-place h2 { font-size:20px;margin:8px 0;line-height:1.3; }
.room-place-score { font-size:32px;line-height:1.2; }
.room-place p { margin:8px 0 0;font-size:11px; }
.room-grid { gap:16px; }
.room-board,.room-join { padding:16px; }
[data-theme=cap] .room-board .room-section-head h2 { font-size:24px;margin:0; }
.room-rule { font-size:12px;margin:8px 0; }
.room-board th,.room-board td { padding:12px 8px; }
.room-score-col strong { font-size:20px; }
.room-player-name { font-size:15px; }
.room-join .room-qr { max-width:120px;padding:8px; }
[data-theme=cap] .room-join h2 { font-size:22px;margin:8px 0 12px; }
.room-join p { margin:8px 0;font-size:12px; }
body.results .event-footer { margin-top:16px;padding:12px 24px;gap:16px; }
body.results .event-footer-brand strong { font-size:18px; }
body.results .event-partner { width:240px; }
@media(min-width:1024px) { .room-join p:first-of-type { display:none; } }
@media(max-width:1023px) {
  .treasure-explore-layout { grid-template-columns:minmax(0,1fr); }
  .treasure-match-sidebar { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .room-live-band { grid-template-columns:120px minmax(0,1fr); }
  .room-live-band ol { grid-template-columns:repeat(2,minmax(0,1fr));max-height:144px; }
  .room-sidebar { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:600px) {
  .treasure-map-dialog { padding:16px;width:calc(100% - 24px); }
  .treasure-map-dialog h2 { font-size:28px; }
  .treasure-map-dialog-head { gap:12px; }
  .treasure-map-dialog-head>button { width:100%; }
  .treasure-match-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .treasure-match-metrics>div { padding:12px; }
  .treasure-match-sidebar { grid-template-columns:minmax(0,1fr);gap:20px; }
  .treasure-map-dialog .treasure-map-viewport { height:360px; }
  .treasure-map-controls>div { flex:1;justify-content:space-between; }
  .treasure-match-preview { padding:8px 16px;font-size:11px; }
  button.treasure-rival { max-width:88px;font-size:11px;padding:8px!important; }
  body.results .event-masthead { padding:8px;gap:8px; }
  body.results .event-organizers { max-width:44%; }
  [data-theme=cap] body.results main { padding:16px; }
  .room-live-band { display:block;padding:16px; }
  .room-live-band .room-section-head { display:flex;align-items:center;margin-bottom:12px;gap:8px; }
  .room-live-band .room-section-head h2 { margin:0; }
  .room-live-band ol { grid-template-columns:minmax(0,1fr);max-height:184px; }
  .room-metrics>div { padding:12px 8px;gap:8px; }
  .room-place,.room-place.room-place-1 { padding:12px 8px; }
  [data-theme=cap] .room-place h2 { font-size:14px; }
  .room-place-score { font-size:24px; }
  .room-place-empty { min-height:132px; }
  .room-heading h1 { overflow-wrap:anywhere; }
  body.results .event-footer { flex-direction:column;align-items:flex-start;padding:16px; }
  body.results .event-partner { width:100%; }
}
@media(prefers-reduced-motion:reduce) { .treasure-map-layer { transition:none; } }
.treasure-motion-off .treasure-map-layer { transition:none; }

.app-language {min-width:44px;min-height:44px;cursor:pointer;flex-shrink:0;}
.treasure-route path {vector-effect:non-scaling-stroke;}
.treasure-journey .treasure-stage-button {pointer-events:none;}

/* Original luminous expedition, designed for the gala's room quiz. */
.treasure-route-glow {filter:blur(3px);}
button.treasure-stage-button {display:flex;flex-direction:column;align-items:center;justify-content:center;width:52px;height:52px;gap:2px;padding:4px!important;border-width:1px!important;font-size:10px;box-shadow:0 0 0 6px #07182B90;}
.treasure-stage-button svg {width:18px!important;height:18px!important;}
button.treasure-stage-button.is-found {box-shadow:0 0 0 6px #E4C07B12,0 0 28px #E4C07B70;}
button.treasure-stage-button.is-current {box-shadow:0 0 0 8px #E4C07B15,0 0 24px #E4C07B40;}
.treasure-map-dialog .treasure-map-viewport {border-radius:20px;}
.treasure-map-legend {position:absolute;bottom:12px;left:12px;display:flex;gap:12px;padding:8px 12px;border:1px solid #425775;border-radius:12px;background:#061427F2;font-size:10px;color:#D2DBE7;pointer-events:none;}
.treasure-map-legend span::before {content:'';display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;background:#64788D;}
.treasure-map-legend span:first-child::before {background:#E4C07B;box-shadow:0 0 8px #E4C07B;}
.treasure-map-legend span:nth-child(2)::before {background:#F5F0E7;}
.treasure-stage-detail {position:relative;padding-right:116px;min-height:126px;}
.treasure-stage-chest {position:absolute;right:12px;top:50%;transform:translateY(-50%);width:88px;height:auto;}
.treasure-map-dialog .treasure-stage-controls {z-index:2;}
.treasure-map-dialog .treasure-map-rivals {z-index:3;}
.treasure-map-dialog .treasure-map-legend {z-index:4;}
/* Room screen: leaderboard is the main surface; compact podium sits beside it. */
.room-grid {grid-template-columns:minmax(0,1fr) 288px;align-items:start;}
.room-sidebar {display:grid;gap:12px;}
.room-sidebar .room-podium {grid-template-columns:repeat(2,minmax(0,1fr));margin:0;gap:8px;}
.room-sidebar .room-place {padding:12px!important;border-radius:12px;}
.room-sidebar .room-place-1 {grid-column:1/-1;order:-1;display:grid;grid-template-columns:40px minmax(0,1fr) auto;column-gap:12px;text-align:left;align-items:center;}
.room-sidebar .room-place-1 .room-place-top {grid-column:1/-1;}
.room-sidebar .room-place-1 .room-avatar {margin:8px 0 0;}
.room-sidebar .room-place-1 h2 {margin:8px 0 0;font-size:22px;}
.room-sidebar .room-place-1 .room-place-score {margin-top:8px;}
.room-sidebar .room-place-1 p {grid-column:2/-1;}
.room-sidebar .room-place-1 .room-gain {grid-column:2/-1;}
.room-sidebar .room-place-empty {min-height:76px;}
.room-sidebar .room-place h2 {font-size:16px;}
.room-sidebar .room-place .room-avatar {width:28px;height:28px;}
.room-sidebar .room-place-score {font-size:24px;}
.room-sidebar .room-place-rank {font-size:10px;}
.room-sidebar .room-place p {font-size:10px;}
.room-hunt-recap {padding:12px;background:#0D223A;border:1px solid #425775;border-radius:12px;}
.room-hunt-recap>.room-label {font-size:9px;letter-spacing:.08em;}
.room-hunt-recap>div {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px;}
.room-hunt-recap span {font-size:10px;color:#BECBDD;}
.room-hunt-recap strong {display:block;font-size:22px;color:#E4C07B;}
.room-board .room-player-name {font-size:clamp(16px,1.5vw,22px);}
.room-board .room-rank-number {width:40px;height:40px;font-size:18px;}
.room-board .room-score-col strong {font-size:clamp(22px,2vw,30px);color:#E4C07B;}
.room-board .room-progress-col {min-width:132px;}
.room-board .room-progress-track {height:6px;max-width:160px;margin-top:8px;}
.room-board th,.room-board td {padding:16px 12px;}
.room-live-band {grid-template-columns:132px minmax(0,1fr);padding:8px 12px;}
.room-live-band ol {max-height:72px;}
.room-metrics>div {padding:8px 12px;}
@media(min-width:1024px){.room-sidebar .room-join {padding:12px;}.room-sidebar .room-join h2 {font-size:20px;margin:4px 0 8px;}.room-sidebar .room-join .room-label {font-size:9px;}.room-sidebar .room-join .room-qr {max-width:100px;padding:6px;}.room-sidebar .room-join .room-code-small {display:none;}}
@media(max-width:1023px){.room-grid {grid-template-columns:minmax(0,1fr);}.room-sidebar {grid-template-columns:repeat(2,minmax(0,1fr));}.room-sidebar .room-hunt-recap {grid-column:1/-1;order:2;}.room-sidebar .room-podium {align-content:start;}.room-ranking-scroll {max-height:480px;}}
@media(max-width:600px){.room-sidebar {grid-template-columns:minmax(0,1fr);}.room-sidebar .room-hunt-recap {grid-column:auto;}.treasure-stage-detail {padding-right:16px;padding-bottom:88px;}.treasure-stage-chest {width:64px;top:auto;bottom:4px;transform:none;}.treasure-map-legend {gap:8px;font-size:9px;padding:8px;}}

/* Activity alongside the race, as requested; compact projection at 1440 × 900. */
body.results .event-masthead {padding:4px 24px;}
body.results .event-organizers {width:240px;}
body.results .event-banner {max-height:48px;}
.room-sidebar .room-live-band {display:block;margin:0;padding:12px;}
.room-sidebar .room-live-band .room-section-head {display:flex;align-items:center;gap:8px;margin-bottom:8px;}
[data-theme=cap] .room-sidebar .room-live-band h2 {font-size:22px;margin:0;}
.room-sidebar .room-live-label {font-size:8px;max-width:80px;}
.room-sidebar .room-live-band ol {grid-template-columns:minmax(0,1fr);max-height:140px;padding:0;gap:8px;}
.room-sidebar .room-live-band li {padding:8px;}
.room-sidebar .room-live-band time {font-size:9px;}
.room-hunt-recap {padding:8px 0;background:transparent;border:0;border-bottom:1px solid #425775;border-radius:0;margin-bottom:8px;}
.room-hunt-recap>.room-label {display:none;}
.room-hunt-recap>div {display:flex;gap:24px;margin:0;}
.room-hunt-recap span {display:flex;align-items:center;gap:8px;font-size:11px;}
.room-hunt-recap strong {display:inline;font-size:16px;}
@media(min-width:1024px){
 [data-theme=cap] body.results main {padding:12px 24px;}
 .room-heading {margin:12px 0;}
 [data-theme=cap] .room-heading h1 {font-size:28px;}
 .room-heading p {font-size:12px;}
 .room-metrics {margin:8px 0 12px;}
 .room-metrics>div {min-height:48px;}
 .room-sidebar .room-place-1 {padding:8px 12px!important;}
 .room-sidebar .room-place-1 p {margin-top:4px;}
 .room-sidebar .room-place-1 .room-gain {display:none;}
 .room-sidebar .room-place:not(.room-place-1) {display:grid;grid-template-columns:1fr auto;gap:4px;text-align:left;align-items:center;padding:8px!important;}
 .room-sidebar .room-place:not(.room-place-1) .room-place-top {grid-column:1/-1;}
 .room-sidebar .room-place:not(.room-place-1) .room-avatar {display:none;}
 .room-sidebar .room-place:not(.room-place-1) h2 {font-size:13px;margin:4px 0;}
 .room-sidebar .room-place:not(.room-place-1) p {grid-column:1/-1;margin:0;}
 .room-sidebar .room-place:not(.room-place-1) .room-place-score {font-size:20px;}
 .room-sidebar .room-place:not(.room-place-1) .room-place-score small {font-size:8px;}
 .room-sidebar .room-join {display:grid;grid-template-columns:100px minmax(0,1fr);gap:8px;align-items:center;text-align:left;}
 .room-sidebar .room-join>.room-label {display:none;}
 [data-theme=cap] .room-sidebar .room-join h2 {grid-column:1/-1;font-size:18px;margin:0;}
 .room-sidebar .room-join #room-qr {margin:0;}
 .room-sidebar .room-join a {font-size:12px;min-height:64px;padding:8px!important;}
 .room-sidebar .room-join a svg {width:16px;}
 .room-board th,.room-board td {padding:12px;}
}
@media(max-width:1023px){.room-sidebar .room-live-band {grid-column:1/-1;}.room-hunt-recap>div {flex-wrap:wrap;}}
.treasure-destination {position:absolute;width:36px;height:36px;color:#F4CE75;transform:translate(-50%,-50%);pointer-events:none;}
.treasure-destination svg {display:block;width:100%;height:100%;}
.room-spectator-controls {display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0;}
.room-spectator-controls>span {color:#BECBDD;font-size:12px;}
.room-spectator-controls button {min-height:44px;font-size:12px;padding:8px 12px!important;}
@media(min-width:1024px){
  .room-player-name {font-size:clamp(20px,1.65vw,28px);line-height:1.3;}
  .room-score-col strong {font-size:clamp(28px,2.25vw,36px);}
  .room-rank-number {font-size:22px;}
  .room-live-band p {font-size:14px;line-height:1.45;}
  .room-ranking-scroll {scroll-behavior:smooth;}
}
@media(prefers-reduced-motion:reduce){.room-ranking-scroll {scroll-behavior:auto;}}
@media(max-width:600px){
  .treasure-map-dialog-head {display:grid;grid-template-columns:60px minmax(0,1fr);gap:8px;}
  .treasure-map-dialog-head {position:sticky;top:-16px;z-index:5;background:#0D223A;padding:8px 0;box-shadow:0 8px 12px #0D223A;}
  .treasure-map-dialog-head>div {grid-column:1/-1;}
  .treasure-map-dialog-head>button {width:100%;min-height:44px;padding:8px;}
  .treasure-map-dialog h2 {font-size:28px;line-height:1.2;}
  .treasure-map-explanation {line-height:1.4;margin:12px 0;}
  .treasure-match-metrics {margin:12px 0;gap:8px;}
  .treasure-match-metrics>div {padding:8px;}
  .treasure-match-metrics strong {font-size:18px;line-height:1.4;}
  .treasure-map-dialog .treasure-map-viewport {height:280px;margin:12px 0;}
}
