/* Viewer focus tools reuse the spectator palette, type and stable map viewport. */
.public-viewer-shell .viewer-page .viewer-mode-badge { flex-shrink:0; white-space:nowrap; }
.public-viewer-shell .viewer-page .viewer-replay-dock > .viewer-strip-primary { z-index:852; }
.public-viewer-shell .viewer-page .viewer-time-jump { position:relative; min-width:0; z-index:4; }
.public-viewer-shell .viewer-page .viewer-time-jump > summary { display:flex; align-items:center; gap:5px; padding:5px 0; border:0; list-style:none; cursor:pointer; white-space:nowrap; }
.public-viewer-shell .viewer-page .viewer-time-jump > summary::-webkit-details-marker { display:none; }
.public-viewer-shell .viewer-page .viewer-time-jump > summary > .viewer-icon { width:14px; height:14px; flex-basis:14px; color:var(--public-muted); }
.public-viewer-shell .viewer-page .viewer-time-jump[open] > summary { color:var(--public-accent); }
.public-viewer-shell .viewer-page .viewer-time-jump-popover { position:absolute; bottom:calc(100% + 12px); right:0; z-index:5; width:320px; max-width:calc(100vw - 24px); max-height:calc(100dvh - 180px); overflow:auto; overscroll-behavior:contain; padding:16px; border:1px solid var(--public-line); border-radius:10px; background:var(--public-surface); box-shadow:0 12px 36px color-mix(in srgb,var(--public-text) 12%,transparent); }
.public-viewer-shell .viewer-page .viewer-time-jump-popover h3 { margin:0 0 12px; font-size:16px; }
.public-viewer-shell .viewer-page .viewer-time-jump-popover form { display:block; }
.public-viewer-shell .viewer-page .viewer-time-jump-popover label { display:block; margin:10px 0 5px; font-size:12px; color:var(--public-muted); font-weight:600; }
.public-viewer-shell .viewer-page .viewer-time-jump-popover :is(input,select) { display:block; width:100%; max-width:100%; min-width:0; min-height:42px; padding:8px 10px; border:1px solid var(--public-line); border-radius:6px; background:var(--public-surface); color:var(--public-text); font-size:14px; font-variant-numeric:tabular-nums; color-scheme:light dark; }
html[data-theme="light"] .public-viewer-shell .viewer-page .viewer-time-jump-popover :is(input,select) { color-scheme:light; }
html[data-theme="dark"] .public-viewer-shell .viewer-page .viewer-time-jump-popover :is(input,select) { color-scheme:dark; }
.public-viewer-shell .viewer-page .viewer-jump-context { margin:10px 0; font-size:11px; line-height:1.5; color:var(--public-muted); }
.public-viewer-shell .viewer-page .viewer-jump-error { margin:8px 0; font-size:12px; line-height:1.5; color:var(--public-text); }
.public-viewer-shell .viewer-page .viewer-jump-error:empty { display:none; }
.public-viewer-shell .viewer-page #viewer-jump-submit { width:100%; margin-top:6px; }
.public-viewer-shell .viewer-page :is(#viewer-jump-clock-fields,#viewer-jump-elapsed-fields)[hidden] { display:none; }
.public-viewer-shell .viewer-page .viewer-strip-timeline,
.public-viewer-shell .viewer-page.is-history-open .viewer-strip-timeline { grid-template-columns:minmax(0,1fr) auto; align-items:center; column-gap:12px; }
.public-viewer-shell .viewer-page .viewer-timeline-wrap { position:relative; grid-column:1/-1; min-width:0; }
.public-viewer-shell .viewer-page .viewer-timeline-gaps { position:absolute; top:calc(50% + 7px); left:8px; right:8px; height:3px; transform:translateY(-50%); pointer-events:none; z-index:1; border-radius:2px; overflow:hidden; }
.public-viewer-shell .viewer-page .viewer-timeline-gap { position:absolute; top:0; height:100%; background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--public-text) 65%,transparent) 0 1px,var(--public-surface) 1px 4px); opacity:.75; }
.public-viewer-shell .viewer-page .viewer-timeline-gap.is-unavailable { opacity:.5; }
.public-viewer-shell .viewer-page .viewer-timeline-gap.is-segment { background:var(--public-muted); opacity:.8; }
.public-viewer-shell .viewer-page .viewer-timeline { position:relative; z-index:2; background:transparent; }
.public-viewer-shell .viewer-page .viewer-timeline-hover { position:absolute; z-index:4; bottom:calc(100% + 3px); transform:translateX(-50%); padding:6px 9px; border:1px solid var(--public-line); border-radius:5px; background:var(--public-surface); color:var(--public-text); font-size:11px; font-weight:650; white-space:nowrap; pointer-events:none; box-shadow:0 2px 8px color-mix(in srgb,var(--public-text) 10%,transparent); font-variant-numeric:tabular-nums; }
.public-viewer-shell .viewer-page .viewer-timeline-hover[hidden] { display:none; }
.public-viewer-shell .viewer-page .viewer-timeline-metadata { display:flex; align-items:center; gap:6px; min-width:0; min-height:16px; color:var(--public-muted); }
.public-viewer-shell .viewer-page .viewer-timeline-metadata p { margin:0; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; }
.public-viewer-shell .viewer-page .viewer-timeline-metadata button { flex:none; min-height:20px; padding:0; border:0; background:transparent; color:var(--public-accent); font-size:10px; }
.public-viewer-shell .viewer-page .viewer-timeline-metadata button[hidden] { display:none; }
.public-viewer-shell .viewer-page .viewer-strip-timeline .timeline-summary { grid-column:2; grid-row:2; white-space:nowrap; font-size:10px; }
.public-viewer-shell .viewer-page .focused-card { gap:7px; }
.public-viewer-shell .viewer-page .focused-card-quality { gap:6px 8px; }
.public-viewer-shell .viewer-page .focused-card-signal { font-variant-numeric:tabular-nums; }
.public-viewer-shell .viewer-page .viewer-focus-details { display:grid; gap:7px; padding:10px 0; border-top:1px solid var(--public-line); border-bottom:1px solid var(--public-line); }
.public-viewer-shell .viewer-page .viewer-focus-details[hidden] { display:none; }
.public-viewer-shell .viewer-page .viewer-focus-details p { display:block; margin:0; font-size:12px; line-height:1.5; color:var(--public-text); }
.public-viewer-shell .viewer-page .viewer-focus-details p > span { color:var(--public-muted); margin-right:5px; }
.public-viewer-shell .viewer-page .focused-card-actions { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.public-viewer-shell .viewer-page .focused-card-actions button { min-width:0; padding:7px 10px; font-size:12px; }
.public-viewer-shell .viewer-page .viewer-focus-details-action { min-height:40px; padding:7px 9px; font-size:12px; }
.public-viewer-shell .viewer-page.is-map-only .viewer-stage[data-layout="night-stage-scene"] { grid-template-columns:minmax(0,1fr); }
.public-viewer-shell .viewer-page.is-map-only :is(.viewer-roster-rail,.viewer-mobile-sheet,.viewer-desktop-focus) { display:none; }
.public-viewer-shell .viewer-page.is-map-only .viewer-map-column { width:100%; }
.public-viewer-shell .viewer-page .viewer-map-only-action[aria-pressed="true"] { border-color:var(--public-accent); color:var(--public-accent); background:var(--dm-accent-soft); }
.public-viewer-shell .viewer-page .viewer-map-only-legend { position:absolute; bottom:12px; left:12px; max-width:min(260px,calc(100% - 24px)); padding:8px; border:1px solid var(--public-line); border-radius:8px; background:var(--public-surface); pointer-events:auto; box-shadow:0 2px 8px color-mix(in srgb,var(--public-text) 8%,transparent); }
.public-viewer-shell .viewer-page .viewer-map-only-legend[hidden] { display:none; }
.public-viewer-shell .viewer-page .viewer-map-only-legend > p { margin:0 4px 4px; font-size:10px; color:var(--public-muted); }
.public-viewer-shell .viewer-page .viewer-map-only-legend-list { max-height:120px; overflow:auto; overscroll-behavior:contain; }
.public-viewer-shell .viewer-page .viewer-map-only-legend button { display:flex; width:100%; min-height:30px; justify-content:flex-start; gap:7px; padding:5px 6px; border:0; border-radius:4px; background:transparent; font-size:11px; color:var(--public-text); }
.public-viewer-shell .viewer-page .viewer-map-only-legend button > span:last-child { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.public-viewer-shell .viewer-page .viewer-map-only-legend button[aria-pressed="true"] { background:var(--dm-accent-soft); }
@media (max-width:1023px) {
  .public-viewer-shell .viewer-page .viewer-map-only-action { width:44px; padding:8px; }
  .public-viewer-shell .viewer-page .viewer-map-only-action .viewer-action-label { display:none; }
  .public-viewer-shell .viewer-page .viewer-time-jump { position:absolute; right:12px; bottom:3px; }
  .public-viewer-shell .viewer-page .viewer-time-jump > summary { padding:0; min-height:24px; gap:2px; }
  .public-viewer-shell .viewer-page .viewer-time-jump .timeline-current-time { position:static; margin:0; font-size:10px; }
  .public-viewer-shell .viewer-page .viewer-time-jump > summary > .viewer-icon { width:12px; height:12px; flex-basis:12px; }
  .public-viewer-shell .viewer-page .viewer-time-jump-popover { position:fixed; right:12px; left:12px; bottom:calc(var(--viewer-sheet-height) + var(--viewer-dock-height) + 8px); width:auto; max-width:none; max-height:calc(100dvh - var(--viewer-header-height) - var(--viewer-sheet-height) - var(--viewer-dock-height) - 24px); }
  .public-viewer-shell .viewer-page .viewer-timeline-metadata { max-width:90px; }
  .public-viewer-shell .viewer-page .viewer-mobile-focus .focused-card { display:grid; grid-template-columns:minmax(0,1fr); gap:6px; }
  .public-viewer-shell .viewer-page .viewer-mobile-focus :is(.focused-card-head,.focused-card-quality,.focused-card-actions,.viewer-focus-details) { grid-column:1; grid-row:auto; width:100%; }
  .public-viewer-shell .viewer-page .viewer-mobile-focus .focused-card-actions { display:grid; grid-template-columns:minmax(0,1fr) auto; margin-top:0; }
  .public-viewer-shell .viewer-page .viewer-mobile-focus .focused-card-actions button { min-height:36px; }
  .public-viewer-shell .viewer-page .viewer-mobile-focus .viewer-focus-details .focused-category { display:block; }
  .public-viewer-shell .viewer-page .viewer-mobile-focus .viewer-focus-details p { grid-column:auto; grid-row:auto; }
  .public-viewer-shell .viewer-page .viewer-mobile-focus .focused-card-head { align-items:center; }
  .public-viewer-shell .viewer-page .viewer-mobile-focus .focused-card-status { flex-direction:row; align-items:center; }
  .public-viewer-shell .viewer-page .viewer-mobile-sheet-strip #viewer-mobile-sheet-toggle { min-width:0; }
  .public-viewer-shell .viewer-page .viewer-mobile-sheet-strip #viewer-mobile-sheet-toggle .viewer-action-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .public-viewer-shell .viewer-page .viewer-mobile-sheet-strip .viewer-sheet-expand { flex:none; width:36px; padding:6px; }
  .public-viewer-shell .viewer-page .viewer-mobile-sheet-strip .viewer-sheet-expand .viewer-action-label { display:none; }
  .public-viewer-shell .viewer-page .viewer-map-only-legend { bottom:calc(var(--viewer-dock-height) + 12px); }
  .public-viewer-shell .viewer-page.is-map-only .viewer-replay-dock { bottom:0; }
  .public-viewer-shell .viewer-page .viewer-map-only-legend button { min-height:36px; }
}
@media (max-width:1023px) and (max-height:550px) and (orientation:landscape) {
  .public-viewer-shell .viewer-page .viewer-time-jump-popover { left:12px; right:calc(var(--viewer-landscape-panel) + 12px); bottom:calc(var(--viewer-dock-height) + 8px); max-height:calc(100dvh - var(--viewer-header-height) - var(--viewer-dock-height) - 24px); }
  .public-viewer-shell .viewer-page.is-map-only .viewer-time-jump-popover { right:12px; }
}
@media (max-width:1023px) {
  .public-locked-shell .viewer-page .viewer-time-jump-popover { bottom:calc(var(--viewer-dock-height) + 8px); max-height:calc(100dvh - var(--viewer-dock-height) - 24px); }
}
