/* Sports service (approved concept A): compact typography, quiet surfaces, blue selection.
   Shared appearance tokens and map geometry stay canonical; embeds keep their own composition. */
.public-viewer-shell:not(.public-embed-shell) .viewer-page :is(.viewer-toggle,.viewer-strip-link,.viewer-extras-menu > summary,.roster-favorite,.viewer-speed,.viewer-map-chip,.viewer-camera-button) { border-radius:4px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-core-actions > .viewer-toggle,
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-extras-menu > summary { width:44px; height:44px; min-height:44px; padding:10px; border-radius:6px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-roster-meta { margin-left:0; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-roster-topline #viewer-rail-toggle { margin-left:auto; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-roster-meta .viewer-chip { font-size:11px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-favorite .viewer-icon { width:17px; height:17px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main .viewer-step-action { border:0; background:transparent; color:var(--public-muted); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main .viewer-step-action:hover { color:var(--public-text); background:var(--public-surface-soft); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-map-name { border-radius:4px; box-shadow:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-map-name.is-focused { font-weight:650; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-map-name.is-muted { background:color-mix(in srgb,var(--public-surface) 90%,transparent); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-map-zoom-controls { border-radius:4px; box-shadow:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-map-control-button { background:var(--public-surface); color:var(--public-muted); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-extras-menu .viewer-strip-actions { border-radius:4px; box-shadow:0 4px 16px color-mix(in srgb,var(--public-text) 8%,transparent); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-time-jump-popover { border-radius:4px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page {
  --viewer-header-height:74px;
  --viewer-dock-height:112px;
}
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-control-deck { min-height:74px; padding:10px 24px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-control-strip { grid-template-columns:164px minmax(0,1fr) auto 44px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-strip-nav { display:grid; justify-items:start; gap:6px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-strip-nav .viewer-strip-link { min-height:30px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-strip-nav .viewer-catalog-back { min-height:0; font-size:10px; font-weight:450; letter-spacing:0; color:var(--public-muted); text-decoration:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-strip-nav .viewer-catalog-back:hover { color:var(--public-accent); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-catalog-mobile-back { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-title-compact { font-size:18px; font-weight:700; letter-spacing:-.025em; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mode-badge { color:var(--public-muted); font-size:12px; font-weight:500; white-space:nowrap; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mode-badge.status-live::before { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-stage[data-layout="night-stage-scene"] { grid-template-columns:290px minmax(0,1fr); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-roster-rail[data-slot="viewer-overlay-rail"] { width:290px; padding-top:16px; gap:12px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-entry { grid-template-columns:minmax(0,1fr) 44px; min-height:64px; border:0; border-bottom:1px solid var(--public-line); border-radius:0; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-row { display:block; height:auto; min-height:64px; padding:12px 0 12px 16px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-name { grid-column:2; grid-row:1; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; white-space:normal; font-size:14px; font-weight:600; letter-spacing:0; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-avatar { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-bib { grid-column:3; grid-row:1; font-size:12px; font-weight:450; font-variant-numeric:tabular-nums; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-roster-topline { padding:0 16px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-roster-topline > .summary-label { font-size:14px; font-weight:700; letter-spacing:0; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-roster-tabs { margin:0; padding:0 16px; gap:16px; border:0; border-bottom:1px solid var(--public-line); border-radius:0; background:transparent; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-roster-tab { flex:none; min-height:40px; margin:0 0 -1px; padding:8px 0 12px; border:0; border-bottom:2px solid transparent; border-radius:0; background:transparent; font-size:12px; font-weight:500; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-roster-tab:is(.is-active,[aria-pressed="true"]) { color:var(--public-text); border-bottom-color:var(--public-accent); background:transparent; font-weight:700; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-search { width:calc(100% - 32px); margin:0 16px; min-height:44px; padding:10px 12px; font-size:14px; border-radius:6px; background:var(--public-surface); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-list { padding:0; gap:0; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-entry.is-active { background:color-mix(in srgb,var(--public-accent) 9%,var(--public-surface)); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-row-head { display:grid; grid-template-columns:6px minmax(0,1fr) auto; gap:4px 8px; align-items:center; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-row-head > .viewer-participant-swatch { grid-column:1; grid-row:1; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-row-head:not(:has(.roster-bib)) { grid-template-columns:6px minmax(0,1fr); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-row-head:not(:has(.roster-bib)) .roster-name { grid-column:2; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-row-meta { margin-left:14px; gap:4px 8px; font-size:12px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-signal-pill { font-family:inherit; font-size:12px; font-weight:450; color:var(--public-muted); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-row-meta:not(:has(.viewer-stream-label,.roster-team)) { margin-top:0; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-row[data-signal-state="live"] .roster-row-meta:not(:has(.viewer-stream-label,.roster-team)) { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-desktop-focus { padding:16px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .focused-card .summary-label { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .focused-card .panel-title { font-size:14px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .focused-card-signal { color:var(--public-muted); font-size:12px; line-height:1.4; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-person-details { display:flex; align-items:center; gap:8px; min-width:0; max-width:100%; margin:0; padding:0; border:0; background:none; text-align:left; color:inherit; font:inherit; cursor:pointer; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-person-details:hover { color:var(--public-accent); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .focused-card-actions { display:flex; gap:8px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .focused-card-actions > [data-mobile-action="follow"] { flex:1; min-height:38px; padding:8px 12px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-focus-details-action { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-camera-menu { position:relative; display:block; padding:0; border:0; background:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-camera-menu > summary { display:flex; align-items:center; justify-content:center; gap:8px; min-height:40px; padding:8px 12px; border:1px solid var(--public-line); border-radius:4px; background:var(--public-surface); font-size:12px; font-weight:600; list-style:none; cursor:pointer; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-camera-menu > summary::-webkit-details-marker { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-camera-options { position:absolute; top:calc(100% + 8px); right:0; z-index:10; display:grid; width:220px; max-width:calc(100vw - 32px); padding:6px; border:1px solid var(--public-line); border-radius:4px; background:var(--public-surface); box-shadow:0 4px 16px color-mix(in srgb,var(--public-text) 8%,transparent); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-camera-menu:not([open]) > .viewer-camera-options { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-camera-options .viewer-camera-button { width:100%; justify-content:flex-start; min-height:42px; padding:10px; border:0; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-camera-options > label { padding:10px 10px 6px; margin-top:4px; border-top:1px solid var(--public-line); color:var(--public-muted); font-size:12px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page #viewer-label-mode { width:100%; min-height:40px; padding:8px; border:1px solid var(--public-line); border-radius:6px; background:var(--public-surface); color:var(--public-text); font-size:12px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-timeline-scale { display:flex; justify-content:space-between; gap:8px; padding:0 8px; min-height:16px; color:var(--public-muted); font-size:10px; font-variant-numeric:tabular-nums; line-height:16px; white-space:nowrap; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-timeline-scale > span { position:relative; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-timeline-scale > span::before { content:''; position:absolute; top:-3px; left:50%; height:3px; border-left:1px solid var(--public-line); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-timeline-scale > span:first-child::before { left:0; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-timeline-scale > span:last-child::before { left:auto; right:0; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-timeline { min-height:24px; height:24px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page:not(.is-map-only) #viewer-camera-selected { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-map-command-bar { gap:8px; align-items:flex-start; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-map-zoom-controls { min-height:44px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-replay-dock { display:grid; min-height:56px; padding:8px 20px; gap:8px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-timeline-metadata { visibility:hidden; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-timeline-metadata { position:absolute; right:20px; bottom:calc(100% + 8px); height:auto; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-timeline-metadata:has(button:not([hidden])) { visibility:visible; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-timeline-metadata:has(button:not([hidden])) p { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-strip-timeline .timeline-summary { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-time-jump .timeline-current-time { font-size:12px; }
@media (max-width:1023px) {
  .public-viewer-shell:not(.public-embed-shell) .viewer-page { --viewer-header-height:64px; --viewer-dock-height:112px; --viewer-sheet-height:140px; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-control-deck { min-height:64px; padding:10px 12px; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-stage[data-layout="night-stage-scene"] { grid-template-columns:minmax(0,1fr); }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-title-compact { font-size:15px; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-map-command-bar { top:12px; right:12px; max-width:calc(100% - 24px); }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-camera-menu > summary { width:44px; padding:10px; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-camera-menu > summary > span:not(.viewer-icon) { display:none; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-camera-menu .viewer-camera-options .viewer-action-label { display:inline; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-replay-dock { padding:6px 12px; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 12px; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card-head { grid-column:1; grid-row:1; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card-quality { grid-column:1; grid-row:2; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card-actions { grid-column:2; grid-row:1/3; margin:0; align-self:center; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card-actions > button { min-height:42px; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .viewer-focus-details { grid-column:1/-1; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card-status { flex-wrap:wrap; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card-head { display:block; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card-status { margin-top:4px; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card-status { align-items:flex-start; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-sheet .viewer-roster-tabs { margin:0; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-sheet > .viewer-search { width:100%; margin:0; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page.is-map-only .viewer-mobile-sheet { display:none; }
}
@media (max-width:1023px) and (orientation:landscape) and (max-height:550px) {
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-stage[data-layout="night-stage-scene"] { grid-template-columns:minmax(0,1fr); }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card { display:flex; flex-direction:column; }
  .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card-actions { align-self:stretch; margin-top:4px; }
}
/* A single persistent player, using the existing replay controls. */
/* Collapsing the roster frees map space; its reopen control remains on the map. */
@media(min-width:1024px){
 .public-viewer-shell:not(.public-embed-shell) .viewer-page.is-rail-collapsed .viewer-stage[data-layout="night-stage-scene"] { grid-template-columns:0 minmax(0,1fr); }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page.is-rail-collapsed .viewer-roster-rail[data-slot="viewer-overlay-rail"] { position:relative; z-index:810; width:0; min-width:0; padding:0; border:0; overflow:visible; background:transparent; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page.is-rail-collapsed .viewer-roster-topline { position:absolute; top:20px; left:20px; width:max-content; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page.is-rail-collapsed #viewer-rail-toggle { display:flex; align-items:center; gap:8px; width:auto; height:44px; padding:0 14px; border:1px solid var(--public-line); border-radius:4px; background:var(--public-surface); color:var(--public-text); font-size:12px; font-weight:600; box-shadow:none; }
}
@media(max-width:1023px){
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-sheet-strip { height:48px; min-height:48px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page #viewer-mobile-sheet-toggle { display:flex; width:100%; justify-content:space-between; height:48px; min-height:48px; font-weight:600; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page #viewer-mobile-sheet-toggle::after { content:none; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-sheet-heading { display:flex; align-items:center; gap:8px; font-size:14px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-sheet-count { display:grid; place-items:center; min-width:24px; height:22px; padding:0 6px; border-radius:5px; background:var(--public-surface-soft); color:var(--public-muted); font-size:12px; font-variant-numeric:tabular-nums; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-sheet-action { display:flex; align-items:center; gap:6px; color:var(--public-muted); font-size:12px; font-weight:500; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-sheet { border-radius:10px 10px 0 0; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus { padding-bottom:4px; }
}
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-replay-dock > .viewer-replay-controls { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-bar { display:flex; align-items:center; gap:8px; min-height:44px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main { display:flex; flex:1; min-width:0; align-items:center; gap:12px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main #viewer-play-toggle { flex:none; display:grid; place-items:center; width:44px; height:44px; padding:0; border-radius:6px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main #viewer-play-toggle .viewer-action-label { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main .viewer-time-jump { position:relative; flex:1; min-width:0; right:auto; bottom:auto; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main .viewer-time-jump > summary { min-height:44px; justify-content:flex-start; padding:0; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main .timeline-current-time { position:static; flex:none; font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main #viewer-jump-live { flex:none; min-height:40px; margin-left:auto; padding:8px 10px; max-width:none; font-size:13px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main #viewer-jump-live[hidden] { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main #viewer-jump-live .viewer-action-label { display:inline; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-status { position:absolute; left:20px; right:80px; bottom:calc(100% + 8px); width:max-content; max-width:calc(100% - 100px); margin:0; padding:8px 10px; border:1px solid var(--public-line); border-radius:6px; background:var(--public-surface); font-size:11px; line-height:1.4; color:var(--public-muted); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-status[hidden] { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-timeline-metadata:has(button:not([hidden])) { justify-content:flex-end; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .focused-card { display:grid; grid-template-columns:minmax(0,1fr) 44px; gap:6px 12px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .focused-card-head { grid-column:1; grid-row:1; display:flex; align-items:center; gap:8px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .focused-card-title { flex:1; min-width:0; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-person-details { display:grid; width:100%; grid-template-columns:6px minmax(0,1fr) auto; align-items:center; gap:8px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-person-details > .viewer-participant-swatch { grid-column:1; grid-row:1; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-person-details > .viewer-person-name { grid-column:2; grid-row:1; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-person-name { min-width:0; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-person-details .focused-bib { grid-column:3; grid-row:1; font-size:12px; font-weight:450; white-space:nowrap; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .focused-card-quality { grid-column:1; grid-row:2; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .focused-card-actions { grid-column:2; grid-row:1/3; align-self:center; margin:0; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .focused-card-actions > [data-mobile-action="follow"] { display:grid; place-items:center; flex:none; width:44px; height:44px; padding:10px; border:1px solid var(--public-line); background:var(--public-surface); color:var(--public-muted); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .focused-card-actions > [data-mobile-action="follow"][aria-pressed="true"] { color:var(--dm-text-inverse); border-color:var(--public-accent); background:var(--public-accent); }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .focused-card-actions .viewer-action-label { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-focus-details { grid-column:1/-1; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-map-control-button { width:44px; min-width:44px; height:44px; min-height:44px; padding:10px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-camera-resume { min-height:44px; font-size:13px; }
@media(max-width:1023px){
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main { gap:8px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main .timeline-current-time { font-size:12px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card { display:grid; grid-template-columns:minmax(0,1fr) 44px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card-actions { margin:0; align-self:center; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card-head { display:flex; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card-status { margin-top:0; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-status { left:12px; }
}
@media(max-width:1023px) and (orientation:landscape) and (max-height:550px){
}
/* Primary track controls stay beside the player, without a settings menu. */
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-quick-controls { display:flex; align-items:center; gap:12px; flex:none; }
.public-viewer-shell .viewer-page .viewer-trail-control { display:flex; align-items:center; gap:8px; min-width:0; }
.public-viewer-shell .viewer-page #viewer-track-extent { width:114px; min-height:40px; padding:6px 8px; border:1px solid var(--public-line); border-radius:4px; background:var(--public-surface-soft); color:var(--public-text); font-size:12px; }
.public-viewer-shell .viewer-page #viewer-speed[hidden],.public-viewer-shell .viewer-page #viewer-track-load-status[hidden],.public-viewer-shell .viewer-page #viewer-track-retry[hidden] { display:none; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main .viewer-step-action { flex:none; width:32px; min-height:40px; padding:6px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page #viewer-track-load-status { position:absolute; bottom:calc(100% + 8px); right:20px; max-width:min(360px,calc(100vw - 24px)); margin:0; padding:8px 12px; border:1px solid var(--public-line); border-radius:6px; background:var(--public-surface); color:var(--public-muted); font-size:12px; }
.public-viewer-shell:not(.public-embed-shell) .viewer-page #viewer-track-retry { position:absolute; bottom:calc(100% + 68px); right:20px; background:var(--public-surface); }
@media(max-width:1023px){
 .public-viewer-shell:not(.public-embed-shell) .viewer-page { --viewer-dock-height:156px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-bar { flex-wrap:wrap; gap:2px 8px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main { flex-basis:100%; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-quick-controls { width:100%; justify-content:space-between; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-quick-controls .viewer-speed { width:64px; height:44px; min-height:44px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page :is(#viewer-track-extent,#viewer-jump-live,.viewer-sheet-expand) { min-width:44px; min-height:44px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page :is(.viewer-roster-tab,.viewer-camera-options .viewer-camera-button,.viewer-strip-actions .viewer-toggle,#viewer-label-mode,.viewer-time-jump-popover input,.viewer-time-jump-popover select,.viewer-time-jump-popover button) { min-height:44px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main .viewer-step-action { width:44px; min-height:44px; }
}

/* A compact player and a shallow participant drawer leave the mobile map usable. */
.public-viewer-shell .viewer-focus-details-action { display:none; }
@media(max-width:600px){
 .public-viewer-shell:not(.public-embed-shell) .viewer-page { --viewer-dock-height:128px; --viewer-sheet-height:112px; --viewer-header-height:56px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page[data-playback-mode="live"] { --viewer-dock-height:112px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main .viewer-step-action { display:none; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page[data-playback-mode="live"] .viewer-player-bar { flex-wrap:nowrap; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page[data-playback-mode="live"] .viewer-player-main { flex-basis:auto; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page[data-playback-mode="live"] .viewer-player-quick-controls { width:auto; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page #viewer-track-extent { width:106px; min-height:44px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main #viewer-play-toggle { min-width:44px; width:44px; height:44px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-sheet-strip { min-height:44px; height:44px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .panel-title { font-size:14px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-sheet[data-sheet="peek"] { gap:4px; padding:0 12px max(8px,env(safe-area-inset-bottom)); }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card-actions button { min-height:44px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-focus .focused-card-quality { margin:0; font-size:11px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-timeline-scale { font-size:10px; }
}

/* Keep the timeline in a stable bottom position while the roster overlays the map. */
@media(max-width:1023px) and (min-height:551px){
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-replay-dock { bottom:0; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-sheet { bottom:var(--viewer-player-height,var(--viewer-dock-height)); }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-mobile-roster { overscroll-behavior:contain; }
}

/* Anchor the time form to the clock, not the far end of its flexible player slot. */
@media(min-width:1024px){
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-player-main .viewer-time-jump-popover { left:0; right:auto; }
}
/* Reserve the same name geometry in every row; selecting changes only its treatment. */
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-name {
 width:fit-content; max-width:100%; padding:0; border:0; border-radius:0;
}
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-entry.is-active {
 background:color-mix(in srgb,var(--public-accent) 8%,var(--public-surface)); box-shadow:inset 3px 0 var(--public-accent);
}
.public-viewer-shell:not(.public-embed-shell) .viewer-page .roster-entry.is-active .roster-name {
 background:transparent;
 border-color:transparent;
 color:var(--public-text); font-weight:650;
}
.public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-map-name.is-focused {
 background:var(--public-surface);
 border-color:color-mix(in srgb,var(--viewer-participant-color) 55%,var(--public-line));
 color:var(--public-text);
}

.public-viewer-shell:not(.public-embed-shell) .viewer-page .focused-card .viewer-person-name {
 width:fit-content; max-width:100%; padding:0; border:0;
 border-radius:0; background:transparent; color:var(--public-text);
}

@media(max-width:1100px) and (min-width:1024px){
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-control-strip { grid-template-columns:120px minmax(0,1fr) auto 44px; gap:12px; }
}
@media(max-width:1023px){
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-control-strip { grid-template-columns:minmax(0,1fr) auto 44px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-strip-nav { display:none; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-strip-nav .viewer-catalog-back { display:none; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-strip-context { grid-template-columns:44px minmax(0,1fr); gap:4px 8px; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-catalog-mobile-back { display:flex; align-items:center; justify-content:center; grid-column:1; grid-row:1/3; min-height:44px; color:var(--public-muted); }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page :is(.viewer-title-compact,.viewer-event-meta) { grid-column:2; }
 .public-viewer-shell:not(.public-embed-shell) .viewer-page .viewer-title-compact { font-size:15px; }
}
