/* Chargé après les styles desktop : mêmes commandes, disposition tactile. */
.mobile-viewer-tools { display:none; }
body.viewer-mobile #review .replay-dimension { display:none; }
body.viewer-mobile.reviewing { --muted:#a9b5c9; padding-left:0; padding-bottom:calc(130px + env(safe-area-inset-bottom)); }
body.viewer-mobile.reviewing .app-shell { display:block; }
body.viewer-mobile.reviewing .rail {
  position:static; flex-direction:row; height:56px; width:100%; gap:6px;
  padding:6px max(8px,env(safe-area-inset-left)); overflow-x:auto; overflow-y:hidden;
  border-right:0; border-bottom:1px solid var(--line);
}
body.viewer-mobile.reviewing .rail-brand { margin:0 8px 0 0; }
body.viewer-mobile.reviewing .rail-btn { width:44px; height:44px; flex-shrink:0; }
body.viewer-mobile.reviewing :is(.rail-tip,.rail-spacer,.download-actions) { display:none; }
body.viewer-mobile.reviewing .content { height:auto; min-height:100dvh; }
body.viewer-mobile.reviewing .content>header { display:none; }
body.viewer-mobile.reviewing main {
  display:block; padding:8px max(8px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
}
body.viewer-mobile.reviewing #review { display:block; }
body.viewer-mobile #review .review-head {
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; padding:0 0 12px;
}
body.viewer-mobile #review .review-head>div:nth-of-type(1) { min-width:0; grid-column:2; grid-row:1; max-width:48vw; }
body.viewer-mobile #review .review-head h2 { font-size:16px; margin:0; overflow-wrap:anywhere; }
body.viewer-mobile #review .review-head #backHome { grid-column:1; grid-row:1; justify-self:start; }
body.viewer-mobile #review .review-head :is(button,summary) { min-height:44px; font-size:14px; }
body.viewer-mobile #review :is(.pane-tabs,.heatmap-controls,.level-control) { grid-column:1/-1; width:100%; order:0; }
body.viewer-mobile #review .pane-tabs { display:flex; }
body.viewer-mobile #review .pane-tabs button { flex:1; min-width:0; padding:8px; }
body.viewer-mobile #review .view-tabs { width:auto; margin:0; order:0; display:flex; }
body.viewer-mobile #review .view-tabs[hidden] { display:none; }
body.viewer-mobile #review .view-tabs button { flex:1; padding:8px; }
body.viewer-mobile #review .mobile-viewer-tools { display:block; position:relative; grid-column:2; grid-row:3; }
body.viewer-mobile #review .mobile-viewer-tools summary {
  display:flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid var(--line);
  border-radius:8px; background:var(--panel2); cursor:pointer; list-style:none;
}
body.viewer-mobile #review .mobile-viewer-tools summary::-webkit-details-marker { display:none; }
body.viewer-mobile #review .mobile-viewer-tools-panel {
  position:absolute; top:calc(100% + 8px); right:0; z-index:40;
  width:min(360px,calc(100vw - 24px)); max-height:65dvh; overflow:auto;
  display:flex; flex-wrap:wrap; gap:10px; padding:16px; border:1px solid #52617a;
  border-radius:12px; background:#141c29; box-shadow:0 12px 32px #0009;
}
body.viewer-mobile #review .mobile-viewer-tools-panel :is(.live-bar,.live-active,.live-tools) { flex-wrap:wrap; min-width:0; }
body.viewer-mobile #review .mobile-viewer-tools-panel :is(.live-bar,.replay-3d-controls) { width:100%; }
body.viewer-mobile #review .heatmap-controls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding:12px; }
body.viewer-mobile #review .heatmap-controls[hidden] { display:none; }
body.viewer-mobile #review .heatmap-controls label { font-size:13px; min-width:0; }
body.viewer-mobile #review .heatmap-controls span { grid-column:1/-1; font-size:13px; margin:0; }
body.viewer-mobile #review select { min-height:44px; font-size:16px; width:100%; min-width:0; }
body.viewer-mobile #review .review-layout { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto; }
body.viewer-mobile #review .review-layout[hidden] { display:none; }
body.viewer-mobile #review .replay-column { display:block; }
body.viewer-mobile #review .canvas-wrap {
  display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto auto;
  height:auto; min-height:0; padding:0; gap:10px; overflow:visible; border:0; background:transparent;
}
body.viewer-mobile #review .map-stage { height:auto; aspect-ratio:1; width:100%; align-self:start; }
body.viewer-mobile #review .map-stage>#canvas { position:absolute; inset:0; touch-action:none; }
body.viewer-mobile #review .map-zoom-controls { bottom:8px; right:8px; }
body.viewer-mobile #review .map-zoom-controls button { height:44px; min-width:44px; font-size:20px; }
body.viewer-mobile #review .map-zoom-controls #mapZoomReset { font-size:13px; min-width:68px; }
body.viewer-mobile #review .round-clock { top:8px; left:8px; padding:6px 10px; transform:none; }
body.viewer-mobile #review .round-clock small { font-size:11px; }
body.viewer-mobile #review .round-clock strong { font-size:24px; }
body.viewer-mobile #review .player-sound { top:8px; right:8px; }
body.viewer-mobile #review .player-sound summary { min-height:44px; font-size:14px; padding:8px 12px; }
body.viewer-mobile #review .player-sound-panel { width:min(300px,calc(100vw - 36px)); max-height:55dvh; }
body.viewer-mobile #review .player-sound input[type=range] { min-height:44px; }
body.viewer-mobile #review .kill-feed { top:66px; right:8px; width:calc(100% - 16px); }
body.viewer-mobile #review .kill-feed-row { font-size:12px; min-height:28px; }
body.viewer-mobile #review .kill-feed-player { max-width:100px; }
body.viewer-mobile #review .subtitle-bubble { font-size:13px; max-width:180px; }
body.viewer-mobile #review .canvas-wrap .player-bar {
  display:grid; grid-template-columns:minmax(0,1fr); gap:8px; padding:10px;
}
body.viewer-mobile #review .round-nav { gap:6px; padding:0; touch-action:pan-x; }
body.viewer-mobile #review .round-button { flex:0 0 44px; width:44px; height:44px; font-size:14px; }
body.viewer-mobile #review .round-arrow { min-width:44px; height:44px; }
body.viewer-mobile #review .round-timeline { height:44px; padding-top:22px; }
body.viewer-mobile #review #timeline { height:12px; }
body.viewer-mobile #review #timeline::-webkit-slider-thumb { width:28px; height:28px; }
body.viewer-mobile #review #timeline::-moz-range-thumb { width:24px; height:24px; }
body.viewer-mobile #review .player-bar>.transport {
  display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; overflow:visible;
  position:fixed; z-index:50; left:0; right:0; bottom:0; margin:0;
  padding:10px max(10px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));
  border-top:1px solid #52617a; background:#101825; box-shadow:0 -6px 24px #0006;
}
body.viewer-mobile #review .mobile-viewer-tools-panel :is(.clip-cluster,#roundStrategyControls) {
  position:static; transform:none; display:flex; flex-wrap:wrap!important; width:100%; margin:0; padding:0; gap:8px;
}
body.viewer-mobile #review .mobile-viewer-tools-panel .clip-cluster[hidden] { display:none; }
body.viewer-mobile #review .transport>button { width:100%; height:48px; padding:4px; font-size:14px; }
body.viewer-mobile #review .transport #previousRound { grid-column:1; grid-row:2; }
body.viewer-mobile #review .transport #nextRound { grid-column:5; grid-row:2; }
body.viewer-mobile #review .transport #time { grid-column:2/5; grid-row:2; width:auto; text-align:center; font-size:13px; margin:0; }
body.viewer-mobile #review .transport .play-button { background:#547bec; font-size:22px; }
body.viewer-mobile #review .transport :is(.clip-cluster,#roundStrategyControls) {
  grid-column:1/-1; width:100%; margin:0; padding:0; border:0; flex-wrap:wrap!important;
}
body.viewer-mobile #review #roundStrategyControls select { height:44px; font-size:16px; max-width:100%!important; }
body.viewer-mobile #review #roundStrategyControls button { min-height:44px; font-size:14px; }
body.viewer-mobile #review .transport .clip-button { min-height:44px; font-size:14px; }
body.viewer-mobile #review .clip-duree-label { font-size:13px; }
body.viewer-mobile #review .clip-duree { width:auto; }
body.viewer-mobile #review .player-bar>.playback-options { display:flex; flex-wrap:wrap; width:100%; gap:8px; }
body.viewer-mobile #review .speed-control { display:flex; flex:1; }
body.viewer-mobile #review .speed-control button { flex:1; min-width:44px; height:44px; font-size:13px; padding:4px; }
body.viewer-mobile #review .player-options-menu summary { height:44px; font-size:14px; }
body.viewer-mobile #review .player-options-panel { right:0; max-width:calc(100vw - 40px); font-size:14px; }
body.viewer-mobile #review .player-options-panel :is(label,button) { min-height:44px; font-size:14px; }
body.viewer-mobile #review .player-options-panel input[type=checkbox] { width:22px; height:22px; flex-shrink:0; }
body.viewer-mobile #review #teamRoster {
  position:static; display:grid; grid-column:1; grid-row:3; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px; padding:0; margin:0; border:0; max-height:none; overflow:visible; pointer-events:auto;
}
body.viewer-mobile #review #teamRoster .team-block { width:auto; min-width:0; padding:8px; margin:0; background:var(--panel); border:1px solid var(--line); border-radius:10px; }
body.viewer-mobile #review #teamRoster .roster-player { height:auto; min-height:88px; padding:10px 6px; }
body.viewer-mobile #review .roster-player-name { font-size:14px; }
body.viewer-mobile #review :is(.roster-hp,.roster-economy,.roster-role) { font-size:11px; }
body.viewer-mobile #review #viewerAside { height:auto; min-height:0; max-height:none; padding:14px; }
body.viewer-mobile #review #viewerAside :is(button,.insight-card,.event) { min-height:44px; font-size:14px; }
body.viewer-mobile #review #viewerAside :is(small,em,.trade-card-detail) { font-size:13px; }
body.viewer-mobile .heatmap-zone-tooltip { font-size:14px; }
body.viewer-mobile .heatmap-zone-tooltip strong { font-size:14px; }
body.viewer-mobile #review :is(button,summary,select,input,[role=button]):focus-visible { outline:2px solid #a7c9ff; outline-offset:2px; }
@media (orientation:landscape) {
  body.viewer-mobile #review .map-stage { aspect-ratio:auto; height:min(75dvh,600px); }
}
