:root {
  --court-blue: #176da8;
  --court-blue-dark: #0e527f;
  --court-blue-soft: #e7f2f9;
  --surround-green: #0f6a4a;
  --surround-green-dark: #084c35;
  --surround-green-soft: #e8f4ee;
  --ink: #17211d;
  --muted: #66716c;
  --line: #dce4e0;
  --surface: #ffffff;
  --page: #f3f7f5;
  --danger: #b82d2d;
  --danger-soft: #fae8e8;
  --shadow: 0 14px 40px rgba(17, 53, 39, .08);
  --ease: cubic-bezier(.2,.8,.2,1);
  --operation-panel-space: 0px;
}

/* v1.3.0 Alpha 33 — Hopper stabilization. */
.hopper-empty-state{display:grid;align-content:center;gap:7px;min-height:110px;width:100%}.hopper-empty-state strong{font-size:18px}.hopper-empty-state .hint{margin:0;color:var(--muted)}

/* v1.3.0 Alpha 32 — multi-select Hopper filters and stable mobile card geometry. */
.hopper-multiselect{position:relative;min-width:0}
.hopper-filter-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:10px 13px;border:1px solid #cad9d4;border-radius:7px;background:#fff;color:var(--ink);text-align:left}.hopper-filter-trigger::after{content:"⌄";font-size:18px;font-weight:900;transition:transform .15s ease}.hopper-filter-trigger[aria-expanded="true"]::after{transform:rotate(180deg)}
.hopper-filter-popover{position:absolute;z-index:30;top:calc(100% + 5px);left:0;width:max(100%,260px);padding:8px;border:1px solid #bfd5df;border-radius:12px;background:#fff;box-shadow:0 12px 30px #123e501f}
.hopper-filter-popover>input{width:100%;margin-bottom:6px}.hopper-filter-options{display:flex;flex-direction:column;max-height:260px;overflow:auto}.hopper-filter-option{display:flex;align-items:center;flex:0 0 auto;gap:9px;min-height:40px;margin:0;padding:7px;border-radius:7px;cursor:pointer}.hopper-filter-option:hover{background:#edf7fb}.hopper-filter-option input{flex:0 0 auto;width:18px;height:18px;margin:0}.hopper-filter-option span{min-width:0;text-align:left}
.hopper-filter-chips{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:10px}.hopper-filter-chip,.hopper-filter-back,.hopper-filter-clear{min-height:34px;padding:6px 10px;border:1px solid #b9d4e2;border-radius:999px;background:#edf7fb;color:#075d89;font-size:12px;font-weight:800}.hopper-filter-chip span{margin-left:5px;font-size:16px}.hopper-filter-clear{border-color:transparent;background:transparent}.hopper-filter-back{background:#fff}
.player-view-more{display:block;margin:12px auto 0;padding:6px;border:0;background:transparent;color:var(--court-blue);font-weight:850;text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){
  .hopper-filter-popover{position:fixed;z-index:100;top:auto;right:16px;bottom:max(16px,env(safe-area-inset-bottom));left:16px;width:auto;max-height:70dvh;padding:12px;border-radius:18px}.hopper-filter-options{max-height:50dvh}
  #activityResults .activity-card h3{display:-webkit-box;min-height:2.5em;max-height:2.5em;overflow:hidden;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:2}
}

/* v1.3.0 Alpha 62 — stabilization follow-through. */
.activity-dock.away-from-court .active-banner-actions button{box-sizing:border-box!important;min-height:42px!important;height:42px!important;margin:0!important;padding:0 15px!important;border-radius:12px!important;font-size:13px!important;line-height:1!important}
.finalize-player-editor .player-picker-preview .player-avatar{box-sizing:border-box!important;flex:none!important;width:82px!important;height:82px!important;min-width:82px!important;min-height:82px!important;max-width:82px!important;max-height:82px!important;aspect-ratio:1/1!important;border-radius:50%!important;overflow:hidden!important}
.finalize-player-editor .player-picker-preview .player-avatar img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important}
@media(min-width:761px){
  #matchFormatsCard #matchFormatList{max-height:min(58vh,720px)!important;overflow-y:auto!important;overscroll-behavior:contain!important;scrollbar-gutter:stable!important;padding-right:5px!important}
  .current-match-scoreboard:has(>.readonly-score-panel){width:fit-content!important;max-width:650px!important}
  .current-match-scoreboard>.readonly-score-panel{width:fit-content!important;max-width:650px!important;margin:0!important}
  .current-match-scoreboard>.readonly-score-panel .readonly-score-frame{width:fit-content!important;max-width:650px!important}
  .current-match-scoreboard>.readonly-score-panel .readonly-score-scroll .tennis-scoreboard{width:max-content!important;min-width:0!important}
  .current-match-scoreboard>.readonly-score-panel .scoreboard-toolbar{width:100%!important;justify-content:flex-end!important}
}
@media(max-width:760px){
  #matchFormatList>.mobile-format-page.partial-page{height:100%!important;grid-template-rows:none!important;grid-auto-rows:max-content!important;align-content:start!important}
  #matchFormatList>.mobile-format-page.partial-page .match-format-row{height:auto!important;min-height:88px!important}
  #matchFormatList>.mobile-format-page.full-page{height:100%!important;grid-template-rows:repeat(3,minmax(0,1fr))!important;grid-auto-rows:unset!important;align-content:stretch!important}
  #historyResults>.mobile-replay-page.partial-page{height:100%!important;grid-template-rows:none!important;grid-auto-rows:max-content!important;align-content:start!important}
  #historyResults>.mobile-replay-page.partial-page>.history-card{height:auto!important;min-height:0!important}
  #historyResults>.mobile-replay-page.partial-page>.history-card>.history-top{flex:0 1 auto!important}
  #historyResults>.mobile-replay-page.full-page{height:100%!important;grid-template-rows:repeat(3,minmax(0,1fr))!important;align-content:stretch!important}
  .finalize-player-editor .player-picker-preview .player-avatar{width:64px!important;height:64px!important;min-width:64px!important;min-height:64px!important;max-width:64px!important;max-height:64px!important}
}

/* Alpha 11: unified activity cards, viewer, and media management. */
.activity-card-top-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}.activity-card-top-actions .share-icon-button,.activity-card-top-actions .favorite-button{width:38px;height:38px}.activity-media-status{display:flex;align-items:center;gap:15px;color:#17678f;font-size:15px}.activity-media-status span{display:inline-flex;align-items:center;gap:4px}.activity-media-status svg{width:21px;height:21px}.activity-location-icon{font-size:22px;line-height:1}
.tennis-scoreboard{display:grid;gap:3px;margin:15px 0;padding:10px 12px;border-top:2px solid #26332f;border-bottom:2px solid #26332f;background:#fff}.score-player{display:grid;grid-template-columns:minmax(130px,1fr) repeat(5,34px);gap:4px;align-items:center}.score-player>span{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-player strong{text-align:center;font-size:17px}.score-player sup{font-size:9px;margin-left:1px}
.activity-view-modal{width:min(1050px,calc(100vw - 32px))}.activity-view-summary{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.activity-view-summary>div{min-width:210px;display:grid;gap:5px;padding:13px;border-radius:12px;background:#eff5f3}.activity-view-summary span{color:var(--muted)}.activity-view-players{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0}.activity-view-player{display:flex;align-items:center;gap:8px;padding:6px;border:0;background:transparent;color:inherit;text-align:left}.activity-view-player span{display:grid}.activity-view-player small{color:var(--muted)}.activity-notes{white-space:pre-wrap}
.activity-video-shell{position:relative;margin:14px 0}.activity-video-shell video{display:block;width:100%;max-height:62vh;background:#071013;border-radius:18px}.activity-media-message{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;border-radius:18px;background:rgba(7,16,19,.78);color:#fff;font-weight:800;text-align:center;pointer-events:none}.activity-media-message.working::before{content:"";width:28px;height:28px;border:3px solid #ffffff55;border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;margin-right:10px}.activity-angle-list{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 18px}.activity-angle-button.selected{outline:3px solid #7ca9ef}.activity-media-list{display:grid;gap:9px}.activity-media-button,.add-media-row{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:13px 16px;border:1px solid #c7dcd5;border-radius:12px;background:#edf6fb;color:#125d86;text-align:left}.activity-media-button span,.add-media-row span{display:grid}.activity-media-button small,.add-media-row small{color:var(--muted)}.activity-media-button.selected{outline:3px solid #7ca9ef}.add-media-results{display:grid;gap:8px;max-height:50vh;overflow:auto;margin:16px 0}.add-media-row input{flex:0 0 auto}
.recommend-card{position:relative;padding-right:46px!important}.remove-recommendation{position:absolute;right:9px;top:9px;width:28px;height:28px;min-height:0;padding:0;border:1px solid #d4dfdb;border-radius:50%;background:#f1f5f3;color:#34413c;font-size:20px;line-height:1;display:grid;place-items:center;z-index:2}.remove-recommendation:hover{background:#e3ebe8}
@media(max-width:700px){.activity-card-top{align-items:flex-start}.activity-card-top-actions{gap:4px}.activity-card-top-actions .share-icon-button,.activity-card-top-actions .favorite-button{width:34px;height:34px}.activity-card-footer{align-items:flex-end}.activity-card-footer .compact-recommend{max-width:42%;padding:8px 10px;font-size:13px}.activity-media-status{gap:10px}.score-player{grid-template-columns:minmax(105px,1fr) repeat(5,27px)}.activity-view-modal .modal-head{align-items:flex-start}.activity-view-modal .player-head-actions{flex-wrap:wrap;justify-content:flex-end}.activity-view-summary>div{min-width:0;flex:1 1 42%}}
* { box-sizing: border-box; }
html { background: var(--page); color: var(--ink); font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif; }
body { margin: 0; min-height: 100vh; background:
  radial-gradient(circle at 8% -10%, rgba(23,109,168,.10), transparent 30%),
  radial-gradient(circle at 100% 0%, rgba(15,106,74,.09), transparent 26%),
  var(--page); }
.auth-gate{padding-left:max(12px,env(safe-area-inset-left))!important;padding-right:max(12px,env(safe-area-inset-right))!important;overflow-x:hidden}
.auth-card{max-width:calc(100vw - 24px)!important;min-width:0}
.auth-card #clerkSignIn,.auth-card #clerkSignIn>*{max-width:100%;min-width:0}
.auth-card .cl-rootBox,.auth-card .cl-cardBox,.auth-card .cl-card{width:100%!important;max-width:100%!important;min-width:0!important}
.auth-card .cl-card{box-shadow:none!important}
.auth-gate{min-height:100dvh;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) 18px max(24px,env(safe-area-inset-bottom))}.auth-card{width:min(440px,100%);padding:28px;border:1px solid rgba(200,216,208,.92);border-radius:24px;background:rgba(255,255,255,.97);box-shadow:var(--shadow)}.auth-card>h1{margin:5px 0 12px}.auth-mark{width:58px;height:58px;margin-bottom:14px}.auth-onboarding{display:grid;gap:10px;margin-top:18px}.auth-onboarding h2,.auth-onboarding p{margin-bottom:0}.activity-log-list{display:grid;gap:8px;margin-top:12px;max-height:360px;overflow:auto}.activity-log-entry{padding:10px 0;border-top:1px solid var(--line);font-size:12px;line-height:1.4}.activity-log-entry time{display:block;color:var(--muted);margin-top:3px}
button, input, select, textarea { font: inherit; }
button, .button-link { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .5; }
.hidden { display: none !important; }
.subtle { color: var(--muted); }
.optional { color: #7a8580; font-size: .76em; font-weight: 600; }
.shell { width: min(1180px, 100%); margin: 0 auto; padding: 24px 20px calc(44px + env(safe-area-inset-bottom)); }
.app-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.brand-lockup { display: flex; align-items: center; gap: 12px; min-width: 0; }
.brand-lockup > div { min-width: 0; }
#householdHeader { text-transform: uppercase; overflow-wrap: anywhere; line-height: 1.3; }
.brand-title { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.beta-badge { display: inline-block; flex: 0 0 auto; padding: 4px 7px; border-radius: 5px; background: #bc2636; color: #fff; font-size: 11px; font-weight: 900; letter-spacing: .08em; line-height: 1.1; vertical-align: middle; }
.brand-mark { width: 48px; height: 48px; flex: 0 0 48px; filter: drop-shadow(0 5px 9px rgba(22,83,61,.09)); }
.eyebrow, .card-kicker { color: var(--surround-green); letter-spacing: .16em; font-size: 11px; font-weight: 850; }
h1, h2, p { margin-top: 0; }
h1 { margin-bottom: 0; font-size: clamp(29px, 4vw, 38px); line-height: 1; letter-spacing: -.035em; }
h2 { margin-bottom: 0; font-size: 20px; letter-spacing: -.025em; }
.badge { flex: 0 0 auto; border-radius: 999px; padding: 8px 11px; background: var(--surround-green-soft); color: var(--surround-green-dark); font-size: 11px; font-weight: 800; }
.badge.muted { background: #ecefed; color: #65706b; }
.badge.error { background: var(--danger-soft); color: #902828; }
.card { background: rgba(255,255,255,.96); border: 1px solid rgba(200,216,208,.92); border-radius: 20px; padding: 18px; box-shadow: var(--shadow); }
.hero-card { border-color: #bfd8cc; }

/* Smooth reveal primitives used by the active banner and custom duration. */
.reveal-shell, .collapsible-reveal { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .28s var(--ease), opacity .22s ease, margin .28s var(--ease); }
.reveal-shell > .reveal-inner, .collapsible-reveal > .collapsible-inner { min-height: 0; overflow: hidden; }
.reveal-shell.open, .collapsible.open .collapsible-reveal { grid-template-rows: 1fr; opacity: 1; }
#activeBannerReveal { margin: 0; }
#activeBannerReveal.open { margin-bottom: 14px; }
.compact-reveal.open { margin-top: 9px; }

.active-banner { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 16px 18px; border-radius: 18px; color: #fff; background: linear-gradient(135deg, var(--court-blue-dark), var(--court-blue)); box-shadow: 0 12px 32px rgba(14,82,127,.2); }
.active-info { min-width: 0; }
.active-title { display: flex; align-items: center; gap: 8px; font-weight: 850; font-size: 16px; }
.live-dot { width: 10px; height: 10px; border-radius: 50%; background: #ff5555; box-shadow: 0 0 0 5px rgba(255,255,255,.12); animation: pulse 1.8s infinite; }
@keyframes pulse { 0%,100% { transform: scale(1); opacity: 1; } 50% { transform: scale(.82); opacity: .75; } }
.active-meta { display: flex; align-items: baseline; gap: 12px; margin-top: 6px; }
.active-banner .subtle { color: rgba(255,255,255,.8); }
.timer { font-size: 25px; line-height: 1; font-weight: 850; font-variant-numeric: tabular-nums; letter-spacing: -.03em; }
.active-name { margin-top: 8px; font-weight: 750; }
.active-banner .tag { background: rgba(255,255,255,.14); color: #fff; }

.view-tabs { display: flex; gap: 5px; padding: 4px; width: max-content; max-width: 100%; background: #e7edea; border-radius: 14px; margin-bottom: 15px; }
.view-tab { border: 0; min-height: 42px; padding: 10px 18px; border-radius: 11px; background: transparent; color: #59635f; font-weight: 800; }
.view-tab.active { color: #fff; background: var(--court-blue); box-shadow: 0 3px 9px rgba(23,109,168,.18); }
.view { animation: view-in .22s ease both; }
@keyframes view-in { from { opacity: .25; transform: translateY(3px); } to { opacity: 1; transform: none; } }

.capture-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 14px; align-items: start; }
.capture-card { padding: 20px; }
label { display: block; margin-bottom: 7px; color: #3b4641; font-size: 13px; font-weight: 800; }
input, select, textarea { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid #cfdad4; border-radius: 12px; background: #fff; color: var(--ink); outline: none; transition: border-color .16s ease, box-shadow .16s ease, background .16s ease; }
textarea { min-height: 96px; resize: vertical; line-height: 1.45; }
input:focus, select:focus, textarea:focus { border-color: var(--court-blue); box-shadow: 0 0 0 3px rgba(23,109,168,.12); }

.collapsible { margin-top: 10px; border-top: 1px solid #e7ece9; }
.collapsible-toggle { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 45px; padding: 11px 2px 8px; border: 0; background: transparent; color: #3b4641; font-size: 13px; font-weight: 800; text-align: left; }
.chevron { color: var(--court-blue); font-size: 19px; line-height: 1; transition: transform .28s var(--ease); }
.collapsible.open .chevron { transform: rotate(180deg); }
.details-body { display: grid; gap: 9px; padding: 4px 1px 8px; }
.details-body label { margin: 4px 0 0; }
.details-body .hint { margin-top: -4px; }
.advanced-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.advanced-head label { margin: 0; }

.capture-modes { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(230px, .8fr); gap: 12px; margin-top: 15px; }
.capture-mode { border: 1px solid #dfe7e3; border-radius: 16px; padding: 16px; background: #fff; }
.instant-mode { border-color: #b9d3e3; background: linear-gradient(180deg, #fff, #f8fbfd); }
.live-mode { display: flex; flex-direction: column; border-color: #c8ded4; }
.capture-mode h2 { margin: 0 0 12px; }
.mode-title { color: var(--court-blue-dark); }
.live-mode .mode-title { color: var(--surround-green-dark); }
.mode-copy { line-height: 1.45; margin-bottom: 16px; }
.action-button { width: 100%; margin-top: 12px; min-height: 56px; font-size: 16px; box-shadow: 0 7px 18px rgba(15,106,74,.12); }
.duration-options { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.duration-option { margin: 0; cursor: pointer; }
.duration-option input { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.duration-option span { min-height: 38px; display: flex; align-items: center; justify-content: center; text-align: center; border: 1px solid #d7e0e5; border-radius: 10px; padding: 7px 8px; font-size: 12px; font-weight: 800; background: #f6f9fb; color: #46555e; transition: .15s ease; }
.duration-option input:checked + span { background: var(--court-blue-soft); border-color: #8bbbd7; color: var(--court-blue-dark); box-shadow: inset 0 0 0 1px rgba(23,109,168,.08); }
.duration-option input:focus-visible + span { outline: 3px solid rgba(23,109,168,.18); outline-offset: 2px; }
.custom-duration { display: grid; grid-template-columns: 1fr 1.2fr; gap: 8px; padding-top: 1px; }

button, .button-link { border: 0; border-radius: 13px; padding: 14px 16px; font-weight: 800; min-height: 50px; text-decoration: none; text-align: center; display: inline-flex; align-items: center; justify-content: center; transition: transform .08s ease, filter .14s ease, background .14s ease; }
button:active:not(:disabled), .button-link:active { transform: translateY(1px); }
.primary { background: var(--surround-green); color: white; }
.primary:hover { filter: brightness(1.03); }
.primary:active { background: var(--surround-green-dark); }
.secondary { background: var(--court-blue-soft); color: var(--court-blue-dark); }
.danger { background: var(--danger); color: white; }
.large { min-width: 135px; }
.compact { min-height: 44px; padding: 10px 13px; }
.text-button { background: transparent; color: var(--court-blue); padding: 3px 4px; min-height: auto; font-weight: 780; }
.hint { margin-top: 8px; color: var(--muted); font-size: 12px; line-height: 1.4; }

.camera-list { display: grid; gap: 8px; }
.camera-mode { display: grid; gap: 8px; margin-bottom: 12px; }
.camera-mode-option { display: flex; align-items: flex-start; gap: 11px; margin: 0; padding: 12px; border: 1px solid #e0e5e2; border-radius: 13px; cursor: pointer; }
.camera-mode-option:has(input:checked) { border-color: #8ebfd8; background: #f0f7fb; }
.camera-mode-option input { width: 21px; height: 21px; min-height: 0; margin: 1px 0 0; padding: 0; flex: 0 0 auto; accent-color: var(--court-blue); }
.camera-mode-option span { display: grid; gap: 2px; }
.camera-mode-option small { color: var(--muted); font-weight: 400; }
.camera-list-disabled { opacity: .48; }
.single-camera-note { color: var(--muted); font-size: 12px; margin-bottom: 4px; }
.camera { display: flex; align-items: center; justify-content: space-between; padding: 9px 2px; border-bottom: 1px solid #eef1ef; }
.camera:last-child { border-bottom: 0; }
.camera label { display: flex; align-items: center; gap: 10px; margin: 0; font-weight: 600; }
.camera input { width: 22px; height: 22px; min-height: 0; padding: 0; accent-color: var(--court-blue); }
.camera .offline, .offline { color: var(--danger); font-size: 12px; }

.section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 13px; }
.recent-card { margin-top: 4px; }
.jobs { display: grid; gap: 9px; }
.recent-item { border: 1px solid #e0e5e2; border-radius: 13px; padding: 12px; background: #fff; }
.recent-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 9px; }
.recent-title { font-weight: 800; overflow-wrap: anywhere; }
.recent-date { color: var(--muted); font-size: 11px; margin-top: 3px; }
.recent-status { flex: 0 0 auto; font-size: 11px; font-weight: 850; color: #65706b; }
.recent-status.complete { color: var(--surround-green); }
.recent-status.failed { color: var(--danger); }
.recent-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
.recent-actions button { min-height: 39px; padding: 8px 12px; border-radius: 10px; font-size: 12px; }
.view-more { width: 100%; margin-top: 13px; padding: 8px; }
.tag-row { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.tag { display: inline-flex; border-radius: 999px; background: var(--surround-green-soft); color: var(--surround-green-dark); padding: 4px 8px; font-size: 11px; font-weight: 700; }

/* Video Library header intentionally looks different from video cards. */
.library-header { margin: 3px 0 14px; padding: 18px; border-radius: 20px; border: 1px solid #b9d3e3; background: linear-gradient(135deg, rgba(231,242,249,.98), rgba(255,255,255,.98) 55%, rgba(232,244,238,.72)); box-shadow: 0 10px 28px rgba(23,109,168,.07); }
.library-heading-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.library-heading-row h2 { color: var(--court-blue-dark); font-size: 24px; }
.history-intro { margin: 5px 0 0; line-height: 1.4; }
.library-count { flex: 0 0 auto; padding: 6px 9px; border-radius: 999px; background: rgba(255,255,255,.75); border: 1px solid rgba(23,109,168,.14); color: var(--court-blue-dark); font-size: 11px; font-weight: 800; }
.library-search-panel { margin-top: 15px; padding-top: 13px; border-top: 1px solid rgba(23,109,168,.16); }
.search-label { margin-bottom: 6px; color: var(--court-blue-dark); }
.search-wrap { position: relative; }
.search-wrap input { min-height: 52px; padding-left: 42px; border-color: #9fc4d9; background: rgba(255,255,255,.9); box-shadow: 0 3px 10px rgba(23,109,168,.05); }
.search-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--court-blue); font-size: 21px; pointer-events: none; }
.search-hint { margin-top: 5px; }
.history-list { display: grid; gap: 12px; }
.history-card { margin: 0; }
.history-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.history-title-row { display: flex; gap: 7px; align-items: center; flex-wrap: wrap; }
.history-title { font-size: 18px; font-weight: 830; letter-spacing: -.015em; overflow-wrap: anywhere; }
.type-badge, .duration-badge { display: inline-flex; align-items: center; gap: 5px; border-radius: 999px; padding: 4px 8px; font-size: 10px; font-weight: 800; white-space: nowrap; }
.type-badge { background: var(--court-blue-soft); color: var(--court-blue-dark); }
.type-badge.live { background: #f8eded; color: #8c2626; }
.type-badge.imported { background: #eeeff1; color: #5c6260; }
.type-icon { width: 15px; height: 15px; display: block; }
.duration-badge { background: #eef7f2; color: var(--surround-green-dark); border: 1px solid #d4e8de; font-size: 11px; }
.history-date { color: var(--muted); font-size: 12px; margin-top: 5px; }
.history-status { padding: 5px 8px; border-radius: 999px; font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .05em; background: #ecefed; color: #5f6864; }
.history-status.complete { background: #e5f3eb; color: var(--surround-green); }
.history-status.failed { background: var(--danger-soft); color: var(--danger); }
.history-summary { margin-top: 10px; color: #4d5954; font-size: 13px; }
.history-notes { margin-top: 9px; padding: 10px 12px; background: #f6f8f7; border-radius: 11px; font-size: 13px; line-height: 1.45; white-space: pre-wrap; }
.file-list { display: grid; gap: 8px; margin-top: 12px; }
.file-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: center; border-top: 1px solid #edf0ee; padding-top: 10px; }
.file-row:first-child { border-top: 0; }
.file-name { display: flex; align-items: center; gap: 6px; font-weight: 750; font-size: 13px; overflow-wrap: anywhere; }
.camera-icon { width: 15px; height: 15px; color: var(--court-blue); flex: 0 0 auto; }
.file-meta { color: var(--muted); font-size: 11px; margin-top: 3px; line-height: 1.45; }
.file-path { color: #79827e; font-size: 10px; margin-top: 4px; overflow-wrap: anywhere; }
.file-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.file-actions button, .file-actions .button-link { min-height: 40px; padding: 9px 12px; border-radius: 10px; font-size: 12px; }
.share-button { background: var(--court-blue); color: #fff; }
.history-card-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 10px; }
.history-card-actions button { min-height: 38px; padding: 8px 10px; }
.delete-history { color: var(--danger); }
.history-footer-actions { display: flex; justify-content: space-between; align-items: center; padding: 12px 4px 2px; gap: 10px; }
.library-footer-path { max-width: 70%; overflow-wrap: anywhere; text-align: right; font-size: 10px; }

.toast { position: fixed; left: 50%; bottom: max(24px, env(safe-area-inset-bottom)); transform: translateX(-50%); width: min(520px, calc(100% - 28px)); background: #17211d; color: white; border-radius: 14px; padding: 13px 15px; box-shadow: 0 8px 30px rgba(0,0,0,.18); z-index: 1000; animation: toast-in .18s ease both; }
.toast[popover]{top:auto;right:auto;margin:0;border:0}
@keyframes toast-in { from { opacity: 0; transform: translate(-50%, 7px); } to { opacity: 1; transform: translate(-50%, 0); } }
.modal { width: min(650px, calc(100% - 24px)); border: 0; border-radius: 20px; padding: 18px; color: var(--ink); box-shadow: 0 20px 70px rgba(0,0,0,.28); }
.modal[open] { animation: dialog-in .18s var(--ease); }
@keyframes dialog-in { from { opacity: .4; transform: translateY(5px) scale(.99); } to { opacity: 1; transform: none; } }
.modal::backdrop { background: rgba(9,25,18,.55); backdrop-filter: blur(2px); }
.modal-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 14px; }
.icon-button { width: 38px; height: 38px; min-height: 38px; padding: 0; border-radius: 50%; background: #eef2f0; color: #34413b; font-size: 24px; font-weight: 500; }
.player-modal video { display: block; width: 100%; max-height: 65vh; background: black; border-radius: 13px; }
.player-actions { display: flex; align-items: center; gap: 9px; margin-top: 12px; }
.player-actions > * { flex: 1; }
.share-status { margin-top: 10px; padding: 10px 12px; border-radius: 11px; background: var(--court-blue-soft); color: var(--court-blue-dark); font-size: 12px; font-weight: 750; line-height: 1.4; }
.share-status.ready { background: var(--surround-green-soft); color: var(--surround-green-dark); }
.search-wrap { position: relative; }
.search-wrap input { padding-right: 42px; }
.search-clear { position: absolute; right: 7px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; min-height: 30px; padding: 0; border-radius: 50%; background: transparent; color: var(--muted); font-size: 20px; line-height: 1; }
.edit-modal label { margin-top: 12px; }
.edit-tag-hint { margin-top: 5px; }
.modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.delete-modal-title { color: var(--danger); font-size: 23px; font-weight: 880; letter-spacing: -.025em; margin-bottom: 13px; }
.delete-video-name { font-weight: 800; margin-bottom: 10px; }
.delete-warning { line-height: 1.5; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* v1.3.0 Alpha 41 — resilient camera previews and press-and-hold PTZ. */
.live-angle-thumb-preview img[data-camera-thumbnail]{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;background:#090d11}
.camera-thumbnail-state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;background:#090d11;color:rgba(255,255,255,.78);font-size:.72rem;font-weight:750;text-align:center}
.camera-thumbnail-spinner{width:22px;height:22px;border:3px solid rgba(255,255,255,.2);border-top-color:#69d6a6;border-radius:50%;animation:cc-spin .8s linear infinite}
.camera-thumbnail-state.unavailable .camera-thumbnail-spinner{display:none}
.simulated-camera-two img[data-camera-thumbnail]{transform:scaleX(-1)}
.simulated-camera-three img[data-camera-thumbnail]{transform:scaleY(-1)}
.ptz-toggle{position:absolute;top:12px;right:12px;z-index:18;width:44px;height:44px;min-height:44px;padding:9px;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(5,19,23,.70);color:#fff;box-shadow:0 4px 18px rgba(0,0,0,.24);backdrop-filter:blur(5px)}
.ptz-toggle svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ptz-toggle[aria-expanded="true"]{background:rgba(23,109,168,.9);border-color:#fff}
.ptz-paused-notice{position:absolute;z-index:20;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;gap:7px;width:min(88%,390px);padding:16px 18px;border:1px solid rgba(255,255,255,.46);border-radius:14px;background:rgba(5,19,23,.9);color:#fff;text-align:center;box-shadow:0 8px 28px rgba(0,0,0,.35);backdrop-filter:blur(7px)}
.ptz-paused-notice span{color:rgba(255,255,255,.8);line-height:1.35}.ptz-paused-notice button{justify-self:center;margin-top:2px}
.ptz-overlay{position:absolute;inset:0;z-index:16;display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);align-items:center;justify-items:center;padding:clamp(7px,1.4vw,15px);background:radial-gradient(circle,rgba(4,18,22,.16),rgba(4,18,22,.03) 48%,rgba(4,18,22,.18));touch-action:none;user-select:none;-webkit-user-select:none}
.ptz-direction,.ptz-zoom button{pointer-events:auto;width:clamp(44px,6vw,62px);height:clamp(44px,6vw,62px);min-height:44px;padding:0;border:1px solid rgba(255,255,255,.68);border-radius:50%;background:rgba(3,18,22,.58);color:#fff;font-size:clamp(27px,4vw,38px);font-weight:700;line-height:1;box-shadow:0 4px 16px rgba(0,0,0,.2);backdrop-filter:blur(4px);touch-action:none}
.ptz-direction.active,.ptz-zoom button.active{background:rgba(23,109,168,.94);transform:scale(.94)}
.ptz-up{grid-area:1/2;align-self:start}.ptz-left{grid-area:2/1;justify-self:start}.ptz-right{grid-area:2/3;justify-self:end}.ptz-down{grid-area:3/2;align-self:end}
.ptz-zoom{grid-area:2/2;pointer-events:auto;display:grid;grid-template-columns:1fr;gap:5px;align-items:center;justify-items:center;padding:8px;border-radius:999px;background:rgba(3,18,22,.48);backdrop-filter:blur(4px)}
.ptz-zoom span{color:#fff;font-size:9px;font-weight:900;letter-spacing:.14em;line-height:1;text-shadow:0 1px 3px #000}
.ptz-zoom button{width:clamp(42px,5vw,54px);height:clamp(42px,5vw,54px);font-size:30px}
.live-video-shell.ptz-active video{pointer-events:none}
.live-video-shell.ptz-active video::-webkit-media-controls{display:none!important}
.camera-cloudedge-fields{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;border:1px solid #cfe0d8;border-radius:12px;background:#f5faf7}
.camera-cloudedge-fields>small{grid-column:1/-1;color:var(--muted);line-height:1.4}

@media (min-width:821px), (max-width:820px) and (orientation:landscape){
  .live-media-row{display:grid!important;grid-template-columns:minmax(0,1fr) clamp(170px,22vw,260px)!important;gap:12px!important;align-items:start!important}
  .live-media-row>.live-angle-thumbnails{display:flex!important;width:auto!important;min-width:0!important;margin:0!important;box-sizing:border-box!important;flex-direction:column!important;gap:8px!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable}
  .live-media-row>.live-angle-thumbnails .live-angle-thumb{flex:0 0 auto!important;width:100%!important;height:auto!important;min-height:0!important}
}

/* A hidden camera rail must also release its desktop grid column. */
.live-media-row.single-angle{grid-template-columns:minmax(0,1fr)!important}
.live-media-row>.live-angle-thumbnails.hidden{display:none!important}

/* Alpha 44 final cascade guard. */
.activity-card-competition.no-score{grid-template-columns:minmax(0,1fr)!important}
.activity-card-competition.no-score .activity-card-lineup{display:grid!important;justify-items:center!important;width:100%!important;overflow:visible!important}
.activity-card-main .activity-card-competition.no-score .activity-match-players,
.activity-card-main .activity-card-competition.no-score .activity-match-players.doubles{justify-content:center!important;justify-items:center!important;margin-inline:auto!important}
.activity-card-competition[data-has-scoreboard="false"]{grid-template-columns:minmax(0,1fr)!important}
.activity-card-competition[data-has-scoreboard="false"] .activity-card-lineup{display:grid!important;justify-items:center!important;width:100%!important;overflow:visible!important}
.activity-card-main .activity-card-competition[data-has-scoreboard="false"] .activity-match-players,
.activity-card-main .activity-card-competition[data-has-scoreboard="false"] .activity-match-players.doubles{justify-content:center!important;justify-items:center!important;margin-inline:auto!important}

/* v1.3.0 Alpha 60 — capture reset, stable carousels, and compact responsive controls. */
.match-players-hint{display:block;margin-top:7px;color:var(--muted);font-size:12px;font-weight:650}
.activity-card-tags{margin-top:9px}
.readonly-score-frame,.live-score-frame{position:relative}
.readonly-score-frame>.score-scroll-controls,.live-score-frame>.score-scroll-controls{position:absolute;inset:0;display:block;pointer-events:none;z-index:4}
.readonly-score-frame>.score-scroll-controls .score-scroll-cue,.live-score-frame>.score-scroll-controls .score-scroll-cue{position:absolute!important;top:50%!important;pointer-events:auto;transform:translateY(-50%)!important}
.readonly-score-frame .score-scroll-cue-left,.live-score-frame .score-scroll-cue-left{left:4px!important}
.readonly-score-frame .score-scroll-cue-right,.live-score-frame .score-scroll-cue-right{right:4px!important}
.scoreboard-toolbar{justify-content:flex-end!important}
.activity-media-viewer.instant-replay-active{padding:0!important;border:0!important;box-shadow:none!important}
.activity-media-viewer.instant-replay-active>.activity-replay-context{margin:0!important;padding:14px 14px 0!important;border:2px solid #78b4d0!important;border-bottom:0!important;border-radius:16px 16px 0 0!important;background:#f4faff!important}
.activity-media-viewer.instant-replay-active>.activity-viewer-grid{margin:0 0 18px!important;padding:14px!important;border:2px solid #78b4d0!important;border-top:0!important;border-radius:0 0 16px 16px!important;background:#f4faff!important}
.activity-replay-context{grid-template-columns:minmax(0,1fr) auto!important;align-items:start!important}
.activity-replay-context-actions{grid-column:2!important;grid-row:1!important;justify-self:end!important;display:flex!important;gap:7px!important}
.activity-replay-context-metadata{grid-column:1/-1!important}
.activity-view-modal .activity-mobile-camera.hidden{display:none!important}
.activity-card-footer{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;align-items:center!important}
.activity-media-status{min-width:0!important;gap:9px!important}.activity-processing-label{white-space:nowrap}.cancel-processing-card{margin-left:0!important}
@media(max-width:760px){
  #matchFormatList>.mobile-format-page{display:grid!important;grid-template-rows:repeat(var(--format-page-count,3),minmax(0,1fr))!important;grid-auto-rows:unset!important;align-content:stretch!important;gap:10px!important}
  #matchFormatList .match-format-row{height:100%!important;min-height:0!important;padding:11px!important}
  #matchFormatList .match-format-view{align-content:center!important;text-align:left!important;text-indent:0!important;padding-left:0!important;margin-left:0!important}
  #matchFormatList .match-format-view strong,#matchFormatList .match-format-view small{text-align:left!important;text-indent:0!important;margin-left:0!important;padding-left:0!important}
  .activity-replay-context-actions{flex-wrap:wrap!important;justify-content:flex-end!important}
}
@media(max-width:520px){
  .activity-card-footer{grid-template-columns:minmax(0,1fr) auto!important;gap:6px!important;padding-inline:9px!important}
  .activity-card-footer .compact-recommend{grid-column:2!important}.activity-card-footer .cancel-processing-card{grid-column:2!important;grid-row:1!important}
  .activity-card-footer:has(.cancel-processing-card) .compact-recommend{display:none!important}
  .activity-media-status{gap:6px!important}.activity-media-status svg{width:18px!important;height:18px!important}
}

/* Alpha 59: capture separation, compact cards, and replay context. */
.match-score-field{display:grid;gap:7px;margin-top:14px}.match-score-field.hidden{display:none!important}.match-score-field>.match-players-label{font-size:15px;font-weight:850}.current-match-scoreboard{margin:0!important;padding:0!important;border:0!important}.current-score-toolbar{min-height:42px;margin-bottom:5px}
.activity-card h3{min-height:0!important;margin-bottom:3px!important}.activity-card-top>div:first-child{display:block!important}.activity-card-top .subtle{margin-top:0!important}
.activity-context-tags{margin:12px 0;gap:7px}.activity-context-tags .tag{display:inline-flex;padding:5px 9px;border-radius:999px;background:#e9f4ef;color:var(--surround-green);font-size:12px;font-weight:800}.activity-notes-metadata{margin-top:10px}.activity-media-viewer.instant-replay-active{padding:12px;border:2px solid #7fb4cf;border-radius:16px;background:#f5fbfe}.activity-replay-context{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #c9dde6}.activity-replay-context.hidden{display:none!important}.activity-replay-context h3{margin:6px 0 2px}.activity-replay-context-actions{display:flex;align-items:flex-start;gap:7px;flex-wrap:wrap;justify-content:flex-end}.activity-replay-context-metadata{grid-column:1/-1}.activity-replay-context-metadata .activity-context-tags{margin:4px 0 8px}
.activity-viewer-grid.single-angle{grid-template-columns:minmax(0,1fr)!important}.activity-angle-thumbnails.hidden,.activity-mobile-camera.hidden{display:none!important}
#matchFormatList .match-format-row>.match-format-view,#matchFormatList .match-format-row>.match-format-view strong,#matchFormatList .match-format-row>.match-format-view small{box-sizing:border-box!important;width:100%!important;margin:0!important;padding-left:0!important;text-align:left!important;justify-items:start!important;align-items:start!important}
@media(max-width:760px){#matchFormatList{transition:height .18s ease}.activity-replay-context{grid-template-columns:1fr}.activity-replay-context-actions{justify-content:flex-start}.activity-mobile-camera.hidden{display:none!important}#historyResults>.mobile-replay-page{align-items:stretch!important}#historyResults>.mobile-replay-page>.history-card>.history-top{flex:1 1 auto!important}.activity-card-main{display:flex;flex-direction:column}.activity-card-competition{flex:1 1 auto}}

/* v1.3.0 Alpha 57 — editable formats, compact camera pills, and lossless scores. */
.match-format-row{grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;overflow:hidden!important}
.match-format-row>[data-format-delete]{align-self:center!important;width:auto!important;min-width:76px!important;min-height:38px!important;margin:0!important;padding:8px 12px!important;font-size:13px!important}
.finalize-player-locked select{display:none!important}
.readonly-score-scroll-wrap{position:relative;min-width:0;max-width:100%}
.readonly-score-scroll{max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.readonly-score-scroll .tennis-scoreboard,.activity-card .readonly-score-scroll .tennis-scoreboard{grid-template-columns:minmax(170px,max-content) repeat(var(--set-count,3),42px)!important;width:max-content!important;min-width:max-content!important;max-width:none!important;overflow:visible!important}
.readonly-score-scroll .score-player>span,.activity-card .readonly-score-scroll .score-player>span{overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important}
.scoreboard-with-info>.readonly-score-scroll-wrap{flex:1 1 auto;min-width:0}.activity-card-score{min-width:0!important;max-width:100%!important;overflow:visible!important}
.activity-angle-preview>.camera-name-pill{top:7px!important;right:auto!important;bottom:auto!important;left:50%!important;width:max-content!important;height:auto!important;min-height:0!important;max-width:calc(100% - 12px)!important;padding:3px 7px!important;font-size:9px!important;line-height:1.1!important;transform:translateX(-50%)!important}
@media(max-width:760px){
  #matchFormatList .match-format-row{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;padding:10px!important}
  #matchFormatList .match-format-row>[data-format-delete]{align-self:end!important;min-width:68px!important;min-height:36px!important;padding:7px 9px!important;font-size:12px!important}
  .readonly-score-scroll .tennis-scoreboard,.activity-card .readonly-score-scroll .tennis-scoreboard{grid-template-columns:minmax(165px,max-content) repeat(var(--set-count,3),38px)!important}
  .readonly-score-scroll .score-player>span,.activity-card .readonly-score-scroll .score-player>span{min-width:165px!important}
}

/* v1.3.0 Alpha 57 — editable formats, direct finalize players, and overflow-safe viewers. */
.format-detail-actions{margin-top:16px}.format-detail-actions .primary{min-width:110px}
.match-format-row{grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;overflow:hidden}
.match-format-row>[data-format-delete]{align-self:center!important;width:auto!important;min-width:76px!important;min-height:38px!important;margin:0!important;padding:8px 12px!important;font-size:13px!important}
.finalize-player-editor{margin:16px 0}.finalize-player-editor .finalize-player-locked>select{display:none}.finalize-player-editor .finalize-player-locked .player-picker-preview{padding-top:0}
.readonly-score-scroll-wrap{position:relative;min-width:0;max-width:100%}.readonly-score-scroll{max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.readonly-score-scroll .tennis-scoreboard,.activity-card .readonly-score-scroll .tennis-scoreboard{grid-template-columns:minmax(170px,max-content) repeat(var(--set-count,3),42px)!important;width:max-content!important;min-width:max-content!important;max-width:none!important;overflow:visible!important}
.readonly-score-scroll .score-player>span,.activity-card .readonly-score-scroll .score-player>span{overflow:visible!important;text-overflow:clip!important}
.scoreboard-with-info>.readonly-score-scroll-wrap{flex:1 1 auto;min-width:0}.activity-card-score{min-width:0!important;max-width:100%!important;overflow:visible!important}
.activity-angle-preview>.camera-name-pill{top:7px!important;bottom:auto!important;width:max-content!important;height:auto!important;min-height:0!important;max-width:calc(100% - 12px)!important;padding:3px 7px!important;font-size:9px!important;line-height:1.1!important}

@media(max-width:760px){
  #matchFormatList>.mobile-format-page{grid-template-rows:repeat(3,minmax(0,auto))!important;align-content:start!important}
  #matchFormatList .match-format-row{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;padding:10px!important}
  #matchFormatList .match-format-row>[data-format-delete]{align-self:end!important;min-width:68px!important;min-height:36px!important;padding:7px 9px!important;font-size:12px!important}
  .readonly-score-scroll .tennis-scoreboard,.activity-card .readonly-score-scroll .tennis-scoreboard{grid-template-columns:minmax(165px,max-content) repeat(var(--set-count,3),38px)!important}
  .readonly-score-scroll .score-player>span,.activity-card .readonly-score-scroll .score-player>span{min-width:165px!important}
}

/* v1.3.0 Alpha 56 — optional players, responsive saved-camera rails, and compact admin carousels. */
.generic-player-avatar{display:grid!important;place-items:center;background:#e5eff2!important;color:#60777f!important}
.generic-player-avatar svg{width:72%;height:72%;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round}
.match-player-picker{display:grid;gap:8px;min-width:0}.match-player-picker>select{width:100%;min-width:0}.player-picker-preview.placeholder strong{color:#52656c}
.live-score-scroll-wrap{position:relative;max-width:100%;min-width:0}.score-scroll-cue{display:none;position:absolute;z-index:8;right:5px;top:50%;place-items:center;width:30px;height:38px;min-height:38px;padding:0!important;border:1px solid #8cbed4;border-radius:999px;background:rgba(237,247,251,.96)!important;color:#075d89!important;font-size:25px;font-weight:900;line-height:1;transform:translateY(-50%);box-shadow:0 3px 12px rgba(15,83,117,.2)}
.activity-angle-preview{box-sizing:border-box;position:relative!important;display:block!important;width:100%!important;min-height:72px;aspect-ratio:16/9!important;overflow:hidden!important;background:#071013!important}
.activity-angle-preview>.recorded-thumbnail-frame{position:absolute!important;inset:0!important;width:100%!important;height:100%!important}
.activity-angle-preview>.camera-name-pill{position:absolute!important;z-index:4!important;left:50%!important;bottom:7px!important;transform:translateX(-50%)!important;max-width:calc(100% - 14px)!important}
.activity-mobile-camera.hidden{display:none!important}
#matchFormatsCard{min-height:0}.match-format-list{max-height:min(58vh,720px);overflow-y:auto;overscroll-behavior:contain;padding-right:3px}

@media(max-width:760px){
  .score-scroll-cue.visible{display:grid}
  #historyResults>.mobile-replay-page{display:grid!important;grid-template-rows:repeat(var(--replay-page-count,3),minmax(0,1fr))!important;align-items:stretch!important;align-content:stretch!important}
  #historyResults>.mobile-replay-page>.history-card{display:flex!important;flex-direction:column!important;height:100%!important;min-height:0!important}
  #historyResults>.mobile-replay-page>.history-card>.history-top{flex:1 1 auto}
  #matchFormatList.match-format-list{display:flex!important;gap:0!important;width:100%;max-height:none!important;margin-top:14px;padding:1px 0 4px!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain}
  #matchFormatList::-webkit-scrollbar{display:none}
  #matchFormatList>.mobile-format-page{box-sizing:border-box;display:grid;grid-template-rows:repeat(3,minmax(0,auto));align-content:start;gap:10px;flex:0 0 100%;width:100%;min-width:100%;padding:1px;scroll-snap-align:start;scroll-snap-stop:always}
  #matchFormatList .match-format-row{margin:0}
}

/* v1.3.0 Alpha 55 — score editor, immutable media rails, and format polish. */
.match-format-row>.match-format-view{box-sizing:border-box;width:100%;min-width:0;margin:0;padding:0;justify-items:start;align-content:center;text-align:left!important}
.match-format-row>.match-format-view strong,.match-format-row>.match-format-view small{width:100%;margin:0;text-align:left!important}
.activity-viewer-grid.single-angle{grid-template-columns:minmax(0,1fr)!important}
.activity-viewer-grid.single-angle .activity-video-column{width:100%}
.current-activity-players:not(.hidden)+.current-match-scoreboard:not(.hidden){margin-top:14px}
.activity-view-modal.editing .activity-view-close{display:none!important}

/* Alpha 51 — keep the tiebreak score at the main score's right shoulder. */
.tennis-scoreboard .score-player>strong,
.activity-card .tennis-scoreboard .score-player>strong{position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:2px!important}
.tennis-scoreboard .set-score-main,.activity-card .tennis-scoreboard .set-score-main{display:block;line-height:1}
.tennis-scoreboard .score-player>strong>sup,
.activity-card .tennis-scoreboard .score-player>strong>sup{
  position:static!important;
  align-self:center!important;
  transform:translateY(-.68em)!important;
  margin:0!important;
  font-size:9px!important;
  font-weight:800!important;
  line-height:1!important;
  vertical-align:baseline!important
}
@media(max-width:760px){
  .tennis-scoreboard .score-player>strong>sup,
  .activity-card .tennis-scoreboard .score-player>strong>sup{font-size:8px!important;transform:translateY(-.72em)!important}
}

/* Alpha 51 — shared match-format wizard. */
.match-format-dialog{width:min(680px,calc(100vw - 24px));overflow:hidden}.format-wizard-progress{display:grid;gap:7px;margin:4px 0 18px;color:var(--muted);font-size:13px;font-weight:800}.format-wizard-progress>div{height:5px;overflow:hidden;border-radius:99px;background:#deeaee}.format-wizard-progress i{display:block;height:100%;border-radius:inherit;background:#1781b8;transition:width .2s ease}.format-wizard-viewport{min-height:340px;overflow:hidden}.format-wizard-stage{display:grid;align-content:start;gap:16px;animation:wizard-in .2s ease}.format-wizard-stage.slide-back{animation-name:wizard-back}.format-wizard-stage h3{margin:0;color:#17343f}.wizard-choices{display:grid;gap:10px}.wizard-choice{display:block}.wizard-choice input{position:absolute;opacity:0;pointer-events:none}.wizard-choice span{display:block;padding:14px 16px;border:2px solid #cbdde4;border-radius:13px;background:#f6fafb;font-weight:800;cursor:pointer}.wizard-choice input:checked+span{border-color:#1681b8;background:#e4f3fa;color:#075d89}.format-wizard-stage .entity-form-grid label,.format-wizard-stage>label{display:grid;gap:6px}.format-wizard-stage .check-row{display:flex!important;align-items:center;gap:9px}.format-wizard-stage .check-row input{width:22px;height:22px}.wizard-review{padding:18px;border:1px solid #c9dde6;border-radius:14px;background:#edf7fb}.wizard-review p{margin:8px 0 0;color:var(--muted)}.match-format-view{display:grid;gap:4px;padding:0;border:0;background:transparent;color:inherit;text-align:left}.match-format-view small{font-weight:500}@keyframes wizard-in{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}@keyframes wizard-back{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:none}}

/* Alpha 49 — progressive players and format-aware scoring. */
.match-player-picker[hidden],.participant-row[hidden]{display:none!important}
.new-match-format-row{display:grid;gap:6px;margin:14px 0}.new-match-format-row>small{color:var(--muted)}
.match-format-list{display:grid;gap:10px;margin-top:14px}.match-format-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid #c9dde6;border-radius:14px;background:#f4f9fb}.match-format-row.disabled{opacity:.62}.match-format-row>div:first-child{display:grid;gap:4px}.match-format-row small{color:var(--muted)}.match-format-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.match-format-dialog{width:min(720px,calc(100vw - 24px))}.match-format-dialog .entity-form-grid label{display:grid;gap:6px}.match-format-dialog input[type="checkbox"]{width:22px;height:22px}
.live-score-cell{display:grid;justify-items:center;gap:2px;min-width:42px}.live-score-cell>input{width:42px!important}.live-score-cell>.tiebreak-points,.set-score-row>.tiebreak-points{width:42px!important;min-height:28px!important;padding:3px!important;font-size:12px!important}.custom-set-types{display:flex;align-items:end;gap:8px;overflow-x:auto;margin-top:10px}.custom-set-types label{display:grid;gap:3px;min-width:105px;font-size:12px}.custom-set-types select{min-height:34px;padding:4px 7px}.live-score-format>small{display:block;margin-top:4px;color:var(--muted)}
.set-score-row{flex-wrap:wrap}.set-score-row>[data-score-type]{width:auto;min-width:105px}
@media(max-width:760px){.match-format-row{grid-template-columns:1fr}.match-format-actions{justify-content:flex-start}.match-format-dialog .entity-form-grid{grid-template-columns:1fr 1fr}.live-score-cell{min-width:36px}.live-score-cell>input{width:36px!important}}

/* Alpha 46 — PTZ preset controls and centered match presentation. */
.ptz-preset-picker{position:absolute;top:12px;left:12px;z-index:8;display:grid;justify-items:start;gap:7px;pointer-events:auto}
.ptz-preset-toggle{min-height:40px;padding:8px 13px;border:1px solid rgba(255,255,255,.38);border-radius:12px;background:rgba(8,28,24,.72);box-shadow:0 5px 18px rgba(0,0,0,.2);color:#fff;font-size:14px;font-weight:850;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.ptz-preset-menu{display:grid;gap:5px;width:min(230px,calc(100vw - 54px));max-height:min(45vh,310px);padding:7px;border:1px solid rgba(255,255,255,.3);border-radius:14px;background:rgba(8,28,24,.78);box-shadow:0 8px 24px rgba(0,0,0,.24);overflow-y:auto;overscroll-behavior:contain;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.ptz-preset-menu button{display:flex;align-items:center;gap:9px;width:100%;min-height:42px;padding:8px 10px;border:0;border-radius:9px;background:rgba(255,255,255,.1);color:#fff;text-align:left}
.ptz-preset-menu button:hover{background:rgba(255,255,255,.2)}
.ptz-preset-menu small{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.18);font-weight:900}
.preset-manager-dialog{position:fixed;z-index:80;top:96px;right:max(16px,env(safe-area-inset-right));left:auto;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 112px);margin:0;padding:0;border:1px solid #bad2cc;border-radius:19px;background:#fbfefd;color:var(--ink);box-shadow:0 18px 54px rgba(12,40,33,.28);overflow:hidden}
.preset-manager-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}
.preset-manager-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 17px 12px;border-bottom:1px solid #d5e3df;background:#eff8f5}
.preset-manager-head h2{margin:0;font-size:20px}.preset-manager-head p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.35}
.preset-manager-close{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;min-height:38px;padding:0;border-radius:50%;font-size:21px}
.preset-manager-body{padding:13px 15px 17px;overflow-y:auto;overscroll-behavior:contain}
.preset-manager-warning{margin:0 0 11px;padding:10px 12px;border:1px solid #e8c87c;border-radius:11px;background:#fff8df;color:#684c09;font-size:13px;line-height:1.4}
.preset-manager-slots{display:grid;gap:9px}
.preset-slot{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;gap:10px;padding:10px;border:1px solid #ceded9;border-radius:13px;background:#fff}
.preset-slot-number{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#e4f2ee;color:#075e49;font-weight:900}
.preset-slot>label{display:grid;gap:4px;min-width:0}.preset-slot>label span{color:var(--muted);font-size:12px;font-weight:800}.preset-slot>label input{width:100%;min-width:0}
.preset-slot-actions{display:flex;grid-column:2;flex-wrap:wrap;gap:6px}.preset-slot-actions button{min-height:36px;padding:7px 10px;font-size:12px}
.activity-card-competition[data-has-scoreboard="true"]{grid-template-columns:max-content max-content!important;justify-content:center!important;justify-items:center!important;gap:clamp(26px,4vw,58px)!important;width:100%}
.activity-card-competition[data-has-scoreboard="true"] .activity-card-lineup{justify-self:center!important;width:max-content;max-width:100%;overflow:visible!important}
.activity-card-competition[data-has-scoreboard="true"] .activity-card-score{justify-self:center!important;max-width:100%}
@media(max-width:800px){
  .activity-card-competition[data-has-scoreboard="true"]{grid-template-columns:minmax(0,1fr)!important;gap:16px!important}
  .activity-card-competition[data-has-scoreboard="true"] .activity-card-lineup{width:100%;overflow-x:auto!important}
}
@media(max-width:700px){
  .ptz-preset-picker{top:8px;left:8px}.ptz-preset-toggle{min-height:38px;padding:7px 11px}
  .preset-manager-dialog{top:auto;right:8px;bottom:max(8px,env(safe-area-inset-bottom));left:8px;width:auto;max-height:48dvh;border-radius:17px}
  .preset-manager-head{padding:12px 14px 10px}.preset-manager-body{padding:10px 12px 14px}
}

/* Alpha 47 — PTZ preset menu polish. */
.ptz-preset-toggle{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important}
.ptz-preset-menu button{justify-content:flex-start!important;text-align:left!important}
.ptz-preset-menu button small{display:none!important}
.live-video-shell.ptz-active .camera-name-overlay{top:auto!important;right:auto!important;bottom:12px!important;left:12px!important;z-index:17!important;opacity:1!important;transform:none!important}
.camera-source-summary{margin:4px 0;padding:13px 12px!important;border-radius:11px;background:#eaf5fb;transition:background-color .16s ease}
.camera-source-card[open]>.camera-source-summary{background:#dceef8}
@media(max-width:700px){.live-video-shell.ptz-active .camera-name-overlay{bottom:8px!important;left:8px!important}}

/* Alpha 48 — let the six-slot preset list extend beyond the video frame. */
.live-video-shell.ptz-active{overflow:visible!important}
.live-video-shell.ptz-active video,
.live-video-shell.ptz-active .live-video-loading,
.live-video-shell.ptz-active .ptz-overlay,
.live-video-shell.ptz-active .live-transition-frame{border-radius:inherit}
.live-video-shell.ptz-active .camera-name-overlay{z-index:15!important}
.ptz-preset-picker{z-index:17!important}
.ptz-preset-menu{max-height:none!important;overflow:visible!important}

/* Alpha 44 final overrides: still-image rails, scroll cues, and unscored matches. */
.recorded-thumbnail-frame{position:absolute!important;inset:0;display:block!important;padding:0!important;background:#080d10}
.recorded-thumbnail-frame>img{display:block;width:100%;height:100%;object-fit:cover}
.recorded-thumbnail-frame>.camera-thumbnail-state{position:absolute;inset:0}
.simulated-camera-two img{transform:scaleX(-1)}.simulated-camera-three img{transform:scaleY(-1)}
.activity-card-competition.no-score{grid-template-columns:minmax(0,1fr)!important}
.activity-card-competition.no-score .activity-card-lineup{display:grid!important;justify-items:center!important;width:100%!important;overflow:visible!important}
.activity-card-main .activity-card-competition.no-score .activity-match-players,
.activity-card-main .activity-card-competition.no-score .activity-match-players.doubles{justify-content:center!important;justify-items:center!important;margin-inline:auto!important}
.rail-scroll-cue{position:sticky;left:0;z-index:8;display:block;width:100%;min-height:28px;padding:5px 8px!important;border:0;border-radius:9px;background:rgba(10,31,34,.88)!important;color:#fff!important;font-size:10px!important;font-weight:850;line-height:1;opacity:0;pointer-events:none;transition:opacity .18s}
.rail-scroll-cue.visible{opacity:1;pointer-events:auto}
.rail-scroll-cue[data-rail-scroll="up"]{top:0;margin-bottom:-28px}
.rail-scroll-cue[data-rail-scroll="down"]{bottom:0;margin-top:-28px}
.live-angle-thumbnails,.player-angle-thumbnails,.activity-angle-thumbnails{box-sizing:border-box}
@media(max-width:620px){.camera-cloudedge-fields{grid-template-columns:1fr}.ptz-overlay{padding:6px}.ptz-toggle{top:8px;right:8px;width:40px;height:40px;min-height:40px}}
@media (max-width: 900px) {
  .capture-layout { grid-template-columns: 1fr; }
  .recent-card { margin-top: 0; }
}
@media (max-width: 700px) {
  .capture-modes { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .shell { padding: 16px 12px calc(32px + env(safe-area-inset-bottom)); }
  .app-header { align-items: flex-start; }
  .brand-mark { width: 42px; height: 42px; flex-basis: 42px; }
  h1 { font-size: 28px; }
  .app-header { flex-wrap: wrap; }
  .connection-badge { flex: 0 0 auto; max-width: 100%; white-space: normal; text-align: center; }
  .card, .library-header { border-radius: 16px; padding: 14px; }
  #activeBannerReveal.open { margin-bottom: 11px; }
  .active-banner { border-radius: 16px; padding: 14px; align-items: stretch; flex-direction: column; }
  .active-banner button { width: 100%; }
  .active-meta { justify-content: space-between; }
  .view-tabs { width: 100%; }
  .view-tab { flex: 1; padding-inline: 10px; }
  .capture-card { padding: 14px; }
  .duration-options { grid-template-columns: repeat(4, 1fr); gap: 5px; }
  .duration-option span { min-height: 36px; padding: 6px 4px; font-size: 11px; }
  .library-heading-row { align-items: center; }
  .library-heading-row h2 { font-size: 22px; }
  .history-top { gap: 8px; }
  .file-row { grid-template-columns: 1fr; }
  .file-actions { display: grid; grid-template-columns: repeat(3, 1fr); }
  .file-actions button, .file-actions .button-link { width: 100%; padding-inline: 8px; }
  .history-card-actions { justify-content: stretch; }
  .history-card-actions button { flex: 1; }
  .history-footer-actions { flex-direction: column; align-items: stretch; }
  .library-footer-path { max-width: none; text-align: left; }
  .recent-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .recent-actions button { width: 100%; }
  .player-actions { display: grid; grid-template-columns: 1fr 1fr; }
  body.mobile-apple .player-actions { grid-template-columns: 1fr; }
  body.mobile-apple .download-action { display: none !important; }
  .modal { width: calc(100% - 16px); padding: 14px; border-radius: 17px; }
  .modal-actions button { flex: 1; }
}
@media (max-width: 390px) {
  .duration-options { grid-template-columns: 1fr 1fr; }
  .file-actions { grid-template-columns: 1fr 1fr; }
  .file-actions .share-button { grid-column: 1 / -1; }
}
.capture-disabled { background: #fafcfb; }

/* v0.6 hybrid local/cloud controls */
.connection-badge.local { background: var(--surround-green-soft); color: var(--surround-green-dark); }
.connection-badge.remote { background: var(--court-blue-soft); color: var(--court-blue-dark); }
.history-top-actions { display: flex; align-items: center; gap: 8px; }
.favorite-button { width: 34px; height: 34px; min-height: 34px; padding: 0; border-radius: 50%; background: #f5f7f6; color: #7f8884; font-size: 21px; line-height: 1; border: 1px solid #e0e6e3; }
.favorite-button.favorite { color: #d02f49; background: #fff0f3; border-color: #f1c8d1; }
.availability { align-self: center; color: var(--muted); font-size: 11px; font-weight: 700; }
.availability.missing { color: var(--danger); }
.settings-header { margin: 3px 0 14px; padding: 2px 2px 0; }
.settings-header h2 { color: var(--court-blue-dark); font-size: 26px; margin-top: 2px; }
.settings-header p { margin: 5px 0 0; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.settings-card { display: flex; flex-direction: column; gap: 10px; }
.settings-card h3 { margin: 0 0 4px; font-size: 18px; color: var(--court-blue-dark); }
.setting-status-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 7px 0; border-bottom: 1px solid #edf1ef; font-size: 13px; }
.setting-status-row strong { text-align: right; }
.settings-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 2px; }
.settings-actions > * { flex: 1; }
.settings-path { color: var(--muted); font-size: 11px; overflow-wrap: anywhere; line-height: 1.45; }
.storage-meter { height: 12px; overflow: hidden; border-radius: 999px; background: #e8eeeb; margin-top: 2px; }
.storage-meter-fill { width: 0%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--court-blue), var(--surround-green)); transition: width .3s var(--ease); }
.unit-input { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; align-items: center; }
.unit-input span { color: var(--muted); font-weight: 800; }
.settings-warning { padding: 10px 12px; border-radius: 11px; background: #fff4df; color: #76520e; font-size: 12px; line-height: 1.4; }

@media (max-width: 760px) {
  .settings-grid { grid-template-columns: 1fr; }
  .history-top-actions { align-items: flex-start; }
}

/* v0.9 persistent global operation panel */
.operation-panel {
  position: fixed;
  left: 50%;
  bottom: max(16px, env(safe-area-inset-bottom));
  transform: translateX(-50%);
  width: min(620px, calc(100% - 24px));
  max-height: min(44vh, 360px);
  overflow: auto;
  background: rgba(23,33,29,.97);
  color: #fff;
  border-radius: 17px;
  padding: 12px 14px;
  box-shadow: 0 14px 45px rgba(0,0,0,.28);
  z-index: 1200;
  animation: toast-in .18s ease both;
}
.operation-panel-head { display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:12px; margin-bottom:8px; }
.operation-live-dot { width:8px; height:8px; border-radius:50%; background:#63d79f; box-shadow:0 0 0 4px rgba(99,215,159,.14); }
.operation-list { display:grid; gap:8px; }
.operation-item { display:grid; grid-template-columns:minmax(0,1fr) minmax(105px,180px); gap:12px; align-items:center; padding-top:8px; border-top:1px solid rgba(255,255,255,.12); }
.operation-item:first-child { border-top:0; padding-top:0; }
.operation-copy { display:grid; gap:2px; min-width:0; }
.operation-copy strong { font-size:13px; overflow-wrap:anywhere; }
.operation-copy span { color:rgba(255,255,255,.72); font-size:11px; line-height:1.3; }
.operation-meter { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; align-items:center; }
.operation-progress,.operation-indeterminate { height:7px; border-radius:999px; overflow:hidden; background:rgba(255,255,255,.17); }
.operation-progress > div { height:100%; border-radius:inherit; background:#fff; transition:width .25s ease; }
.operation-indeterminate span { display:block; width:34%; height:100%; border-radius:inherit; background:#fff; animation:operation-slide 1.15s ease-in-out infinite; }
.operation-percent { font-size:10px; min-width:30px; text-align:right; color:rgba(255,255,255,.78); }
@keyframes operation-slide { from { transform:translateX(-110%); } to { transform:translateX(310%); } }
.availability.working { color:var(--court-blue-dark); }
.availability.local-only { color:#7b5b17; max-width:250px; line-height:1.35; }

@media (max-width:560px) {
  .operation-panel { bottom:max(9px, env(safe-area-inset-bottom)); width:calc(100% - 16px); border-radius:15px; }
  .operation-item { grid-template-columns:1fr; gap:6px; }
  .operation-meter { grid-template-columns:minmax(0,1fr) 32px; }
}

/* v0.10 unified media + Live View */
.live-view-card{max-width:980px;margin:0 auto}.live-video-shell{margin-top:14px;background:#090d11;border-radius:16px;overflow:hidden;min-height:220px;display:flex;align-items:center;justify-content:center;position:relative}.live-video-shell video{display:block;width:100%;max-height:70vh;background:#090d11}.live-video-message{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:48px 20px;color:var(--muted,#77818b);text-align:center;pointer-events:none}.live-video-message:empty{display:none}.live-view-actions,.live-capture-shortcuts{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.history-card.playable{cursor:pointer;transition:transform .12s ease,border-color .12s ease}.history-card.playable:active{transform:scale(.995)}.history-card .history-status{display:none}.history-card .file-meta,.history-card .file-path{display:none}.media-unavailable{font-size:.85rem;color:var(--muted,#77818b)}#playerSourceHint{margin-top:8px}

.tab-label-narrow{display:none}

.share-icon-button{
  width:38px;height:38px;min-height:38px;padding:0;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:#eef2f0;color:#155b88;border:1px solid #dbe4e0;
}
.share-icon-button svg{width:21px;height:21px;display:block}
.recent-actions{align-items:center}
.recent-actions .share-icon-button{flex:0 0 38px;width:38px}
.history-top-actions .share-icon-button{flex:0 0 38px}
.operation-ready-action{
  border:0;background:transparent;color:#fff;text-decoration:underline;
  font-weight:800;padding:4px 0;min-height:auto;cursor:pointer;
}
.operation-item.completed .operation-copy span{color:#d7efe4}

@media (max-width:560px){
  .view-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:3px}
  .view-tab{min-width:0;padding:11px 4px;font-size:14px;line-height:1.05;white-space:nowrap}
  .tab-label-wide{display:none}
  .tab-label-narrow{display:inline}
  .recent-actions{display:flex;grid-template-columns:none}
  .recent-actions .watch-file{flex:1}
}

.media-location{
  width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;
  flex:0 0 24px;border-radius:999px;vertical-align:middle;
}
.media-location svg{width:17px;height:17px;display:block}
.media-location.cloud{color:#11784f;background:#e8f5ef}
.media-location.home{color:#5b6870;background:#edf1f2}
.media-location.home.unavailable{color:#a73a3a;background:#f9eaea}
.media-location.transferring{color:#176994;background:#e5f2f8}
.media-location.transferring .mini-spinner{width:16px;height:16px;border-width:2px;margin:0}
.share-icon-button.busy{position:relative;color:transparent}
.share-icon-button.busy svg{opacity:0}
.share-icon-button.busy::after{
  content:"";position:absolute;width:17px;height:17px;border:2px solid #aeb9b5;
  border-top-color:#155b88;border-radius:50%;animation:cc-spin .8s linear infinite;
}
@keyframes cc-spin{to{transform:rotate(360deg)}}

.player-captured-at{margin-top:3px;color:#6f7975;font-size:14px;font-weight:650}
.player-prepare{
  min-height:290px;background:#090d11;border-radius:16px;margin:14px 0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:28px;color:#eef6f2;gap:10px;
}
.player-prepare.hidden{display:none}
.player-prepare-icon{
  width:54px;height:54px;border-radius:50%;background:#153a30;color:#66dfaa;
  display:flex;align-items:center;justify-content:center;margin-bottom:4px;
}
.player-prepare-icon svg{width:31px;height:31px}
.player-prepare strong{font-size:22px}
#playerPrepareText{color:#bdc8c3;font-size:15px}
.player-prepare-progress{
  width:min(360px,90%);height:8px;background:#31413b;border-radius:999px;
  overflow:hidden;margin-top:8px;
}
#playerPrepareBar{height:100%;width:0;background:#66dfaa;border-radius:999px;transition:width .25s ease}
.player-modal.preparing #videoPlayer,
.player-modal.preparing .player-actions,
.player-modal.preparing #playerShareStatus,
.player-modal.preparing #shareHint,
.player-modal.preparing #playerSourceHint{display:none}

.live-video-loading{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;padding:32px;text-align:center;color:#edf4f0;background:#090d11;z-index:2;
}
.live-video-loading.hidden{display:none}
.live-loading-spinner{
  width:34px;height:34px;border-radius:50%;border:3px solid #33433d;border-top-color:#66dfaa;
  animation:cc-spin .8s linear infinite;margin-bottom:4px;
}
.live-video-loading strong{font-size:20px}
.live-video-loading span{color:#aebbb5;font-size:14px}
.live-video-shell video.hidden{display:none}

/* v0.10.7 unified Capture console */
.capture-console{display:grid;gap:14px}
.capture-top-card{padding:20px}
.capture-top-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);
  gap:20px;
  align-items:start;
}
.capture-preview-pane,.capture-details{min-width:0}
.capture-details-heading{margin-bottom:12px}
.capture-details-heading h2{margin:2px 0 0}
.capture-preview-shell{min-height:320px}
.capture-controls-card{padding:20px}
.capture-controls-card .capture-modes{margin-top:0}
.capture-recent-card{margin-top:0}
.view-tabs.three-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
.view-tabs.three-tabs .view-tab{white-space:nowrap}
@media (max-width:820px){
  .capture-top-grid{grid-template-columns:1fr}
  .capture-preview-shell{min-height:240px}
}
@media (max-width:560px){
  .view-tabs.three-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:3px}
  .view-tabs.three-tabs .view-tab{min-width:0;padding:11px 4px;font-size:14px;line-height:1.05;white-space:nowrap}
  .capture-top-card,.capture-controls-card{padding:14px}
  .capture-preview-shell{min-height:210px}
}

@media (max-width:560px){.tab-label-wide{display:inline}.tab-label-narrow{display:none}}

/* v0.10.8 Capture polish */
.capture-pane-kicker{font-size:15px;margin-bottom:13px}
.capture-details-heading{margin-bottom:18px}
.capture-mode{display:flex;flex-direction:column}
.capture-mode .action-button{margin-top:auto}
.live-mode .mode-copy{margin-bottom:18px}
.capture-recent-card #recentActivity{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.capture-recent-card .history-card{
  min-width:0;
  height:100%;
  display:flex;
  flex-direction:column;
}
.capture-recent-card .history-card-actions{margin-top:auto;padding-top:10px}
.capture-recent-card .history-top{gap:8px}
.capture-recent-card .history-top-actions{flex:0 0 auto}
@media (max-width:1100px){
  .capture-recent-card #recentActivity{grid-template-columns:1fr}
}

/* v0.10.8 search cleanup: use Court Capture's own clear button only */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration{
  -webkit-appearance:none;
  appearance:none;
}

/* v0.10.9 polish */

/* Instant Replay spacing */
.instant-mode .mode-title{margin-bottom:18px}
.instant-mode .duration-options{margin-bottom:16px}
.instant-mode .compact-reveal{margin-top:2px;margin-bottom:16px}
.instant-mode .action-button{margin-top:18px}
.instant-mode .compact-reveal[aria-hidden="false"] + .action-button{margin-top:18px}

/* Keep capture buttons aligned on wide screens */
.capture-modes{align-items:stretch}
.capture-mode{height:100%}
.live-mode .action-button,.instant-mode .action-button{margin-top:auto}

/* Consistent video-card action icon sizing and alignment */
.history-top-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:nowrap;
}
.history-top-actions .share-icon-button,
.history-top-actions .icon-button,
.history-top-actions .favorite-button{
  width:42px !important;
  height:42px !important;
  min-width:42px !important;
  min-height:42px !important;
  flex:0 0 42px !important;
  padding:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:50% !important;
  box-sizing:border-box;
}
.history-top-actions .share-icon-button svg,
.history-top-actions .favorite-button svg{
  width:21px;
  height:21px;
}
.history-top-actions .info-button{
  font-size:22px;
  line-height:1;
}

/* Keep metadata badges on their own row so duration never wraps unpredictably */
.history-title-row{
  display:flex;
  align-items:flex-start;
  gap:8px;
  flex-wrap:wrap;
}
.history-title{
  flex:1 1 100%;
  min-width:0;
}
.history-title-row .media-location,
.history-title-row .duration-badge{
  flex:0 0 auto;
}

/* Video Library grid */
#historyResults{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
#historyResults .history-card{
  min-width:0;
  height:100%;
  display:flex;
  flex-direction:column;
}
#historyResults .history-card-actions{
  margin-top:auto;
}

/* Right-align Edit/Delete consistently, including mobile Recent Activity */
.history-card-actions{
  display:flex;
  justify-content:flex-end !important;
  align-items:center;
  gap:20px;
  text-align:right;
}

@media (max-width:1100px){
  #historyResults{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  #historyResults{grid-template-columns:1fr}
  .capture-recent-card .history-card-actions{justify-content:flex-end !important}
}

/* v0.10.11 mobile card action alignment */
@media (max-width:720px){
  .capture-recent-card .history-card-actions,
  #historyResults .history-card-actions{
    display:flex !important;
    justify-content:flex-end !important;
    align-items:center !important;
    gap:18px !important;
    width:100% !important;
    text-align:right !important;
  }
  .capture-recent-card .history-card-actions .edit-history,
  .capture-recent-card .history-card-actions .delete-history,
  #historyResults .history-card-actions .edit-history,
  #historyResults .history-card-actions .delete-history{
    flex:0 0 auto !important;
    margin:0 !important;
  }
}

/* v0.10.12 Recent Activity responsive grid matches Video Library */
.capture-recent-card #recentActivity{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
@media (max-width:1100px){
  .capture-recent-card #recentActivity{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:720px){
  .capture-recent-card #recentActivity{
    grid-template-columns:1fr;
  }
}

/* v0.10.13 video-card title spacing */
.history-heading-block .history-title-row{
  margin-bottom:8px;
}
.history-heading-block .history-meta-row{
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:6px;
}

/* v0.10.13 Favorites filter */
.library-search-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:stretch;
}
.library-search-row .search-wrap{min-width:0}
.favorites-filter{
  min-height:46px;
  padding:0 16px;
  border:1px solid #cbd9d4;
  border-radius:14px;
  background:#f3f7f5;
  color:#36524a;
  font-weight:800;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  white-space:nowrap;
}
.favorites-filter-heart{
  font-size:22px;
  line-height:1;
}
.favorites-filter[aria-pressed="true"]{
  background:#e8f5ef;
  color:#0f6e4a;
  border-color:#b7dccb;
}
.favorites-filter[aria-pressed="true"] .favorites-filter-heart{
  font-size:0;
}
.favorites-filter[aria-pressed="true"] .favorites-filter-heart::before{
  content:"♥";
  font-size:22px;
}
@media (max-width:560px){
  .library-search-row{grid-template-columns:1fr}
  .favorites-filter{width:100%}
}

/* v0.10.14 capture-card heading alignment */
.capture-card-heading{
  margin-bottom:14px;
}
.capture-details-offset{
  padding-top:28px;
}
@media (max-width:820px){
  .capture-details-offset{
    padding-top:6px;
  }
}

/* v0.10.15 Capture Details alignment */
.capture-details-heading{
  margin:0 0 7px;
}
.capture-details-label{
  display:block;
  margin:0;
  color:#3b4641;
  font-size:13px;
  font-weight:800;
  line-height:1.25;
  letter-spacing:0;
  text-transform:none;
}
.capture-details-offset{padding-top:0 !important}

/* v0.10.16 capture workspace redesign */
.capture-workspace-card{padding:18px 20px 20px}
.capture-workspace-heading{margin-bottom:14px}
.capture-workspace-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(360px,1fr);
  grid-template-areas:
    "preview actions"
    "recent actions";
  gap:18px 20px;
  align-items:start;
}
.capture-preview-column{grid-area:preview;min-width:0}
.capture-action-column{grid-area:actions;display:grid;gap:14px;min-width:0;align-content:start}
.capture-recent-inline{grid-area:recent;min-width:0;padding-top:2px}
.capture-recent-inline .section-head{margin-bottom:10px}
.capture-recent-inline .section-head h2{font-size:16px}
.capture-recent-inline #recentActivity{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.capture-recent-inline .history-card{height:100%;display:flex;flex-direction:column;min-width:0}
.capture-recent-inline .history-card-actions{margin-top:auto}
.capture-preview-shell{min-height:0;aspect-ratio:16/9;margin-top:0}
.preview-hint{margin-top:6px}
.preview-camera-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;margin-top:6px}
.preview-camera-row label{margin:0;white-space:nowrap}
.preview-camera-row select{min-height:38px;padding:6px 10px;border-radius:8px}
.capture-action-column .capture-mode{margin:0}
.capture-action-column .instant-mode{padding:14px}
.capture-action-column .live-mode{min-height:184px;padding:16px}
.capture-action-column .mode-title{font-size:20px}
.capture-action-column .action-button{min-height:52px}
.capture-details-panel{padding:0 4px 2px}
.capture-details-heading{margin:0 0 7px}
.capture-details-label{font-size:13px;font-weight:800;color:#3b4641}

/* Diagnostic video overlays */
.live-video-shell,.player-video-shell{position:relative}
.player-video-shell video{width:100%;display:block;border-radius:14px}
.video-debug-overlay{
  position:absolute;left:10px;top:10px;z-index:4;
  margin:0;padding:8px 10px;max-width:calc(100% - 20px);
  border-radius:9px;background:rgba(5,12,10,.78);color:#eaf7f0;
  font:600 11px/1.35 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  white-space:pre-wrap;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,.18)
}
.debug-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0}
.debug-toggle-row span{display:grid;gap:3px}
.debug-toggle-row small{font-weight:400;color:var(--muted);line-height:1.35}
.debug-toggle-row input{width:22px;height:22px;min-height:0;flex:0 0 22px;accent-color:var(--court-blue)}
.camera-source-list{display:grid;gap:0;margin-top:14px;border:1px solid #dfe7e3;border-radius:12px;padding:0 12px}
.camera-source-list .debug-toggle-row{padding:12px 0;border-bottom:1px solid #e4ebe8}
.camera-source-list .debug-toggle-row:last-child{border-bottom:0}
.simulated-source-list{margin-top:12px}
.camera-source-empty{display:block;padding:12px 0}
.camera-source-card{display:block;padding:0;border-bottom:1px solid #e4ebe8}
.camera-source-card:last-child{border-bottom:0}
.camera-source-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;cursor:pointer;list-style:none}
.camera-source-summary::-webkit-details-marker{display:none}
.camera-source-chevron{width:10px;height:10px;flex:0 0 10px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .16s ease;margin:0 6px 5px 0}
.camera-source-card[open] .camera-source-chevron{transform:rotate(225deg);margin-top:7px;margin-bottom:0}
.camera-source-body{display:grid;gap:12px;padding:0 0 15px}
.camera-source-head{display:flex;align-items:center;justify-content:space-between;gap:18px}
.camera-source-identity{display:grid;gap:3px;min-width:0}
.camera-source-identity small{color:var(--muted);line-height:1.35}
.camera-source-head input[type="checkbox"]{width:22px;height:22px;min-height:0;flex:0 0 22px;accent-color:var(--court-blue)}
.camera-source-enable,.camera-order-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border-radius:10px;background:#f3f7f5}
.camera-source-enable>span,.camera-order-controls>span{display:grid;gap:2px}
.camera-source-enable small,.camera-order-controls small{font-weight:400;color:var(--muted);line-height:1.35}
.camera-source-enable input{width:22px;height:22px;min-height:0;flex:0 0 22px;accent-color:var(--court-blue)}
.camera-order-controls>div{display:flex;gap:6px;flex:0 0 auto}
.camera-order-controls button{min-height:42px;padding:8px 11px}
.camera-order-controls .camera-order-arrow{width:42px;padding:8px;font-size:20px;line-height:1}
.camera-source-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.camera-source-fields label{display:grid;gap:5px;font-size:12px;color:var(--muted)}
.camera-source-fields label.camera-stream-field{grid-column:1/-1}
.camera-source-fields select,.camera-source-fields input{width:100%;min-width:0}
.camera-source-secret-note{grid-column:1/-1;font-size:11px;color:var(--muted);line-height:1.35}
.camera-clear-stream{display:flex!important;grid-column:1/-1;grid-template-columns:auto 1fr!important;align-items:center;gap:8px!important}
.camera-clear-stream input{width:18px!important;height:18px;min-height:0}
.developer-camera-sources{margin-top:4px;color:var(--muted)}
.developer-camera-sources summary{cursor:pointer;font-size:12px;font-weight:700}
@media(max-width:680px){.camera-source-fields{grid-template-columns:1fr}}

/* v1.3 Alpha 5 — players, activities, and recommendations */
.vault-filter-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) auto;gap:9px;margin-top:10px}
.recommended-section{margin:0 0 16px}.recommended-section .section-head{display:flex;justify-content:space-between;align-items:end;gap:12px}.recommended-section h2{margin:0;font-size:18px}.recommended-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:9px}
.recommend-card{padding:13px;cursor:pointer}.recommend-card strong{display:block}.recommend-card small{display:block;color:var(--muted);margin-top:4px}
.activity-list{display:grid;gap:13px;margin-bottom:13px}.activity-card{overflow:hidden;cursor:pointer}.activity-card-main{padding:17px}.activity-card-top{display:flex;justify-content:space-between;gap:12px}.activity-type-pill{display:inline-flex;border-radius:999px;padding:5px 9px;background:#e9f4ef;color:var(--surround-green);font-weight:850;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.activity-card h3{margin:9px 0 5px;font-size:21px}.activity-player-stack{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:13px}.player-avatar{width:42px;height:42px;border-radius:50%;display:inline-grid;place-items:center;background:linear-gradient(135deg,var(--court-blue),var(--surround-green));color:#fff;font-weight:900;border:2px solid #fff;box-shadow:0 1px 4px #0002;overflow:hidden}.player-avatar.small{width:32px;height:32px;font-size:12px}.activity-score{font-weight:900;font-size:18px}.activity-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 16px;background:#edf6fb;border-top:1px solid #d7e7ef}.activity-card-actions{display:flex;gap:7px}.activity-parent-link{margin-top:9px;color:var(--court-blue);font-weight:750;font-size:13px}
.player-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.player-profile-card{padding:17px;cursor:pointer}.player-profile-head{display:flex;align-items:center;gap:12px}.player-profile-card h3{margin:0;font-size:19px}.player-rating{color:var(--muted);font-weight:700;margin-top:3px}.player-record-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.player-record{background:#f0f5f2;border-radius:10px;padding:9px}.player-record span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:800}.player-record strong{display:block;margin-top:2px}.guest-pill{font-size:10px;font-weight:850;text-transform:uppercase;color:#775b13;background:#fff3ca;padding:3px 7px;border-radius:999px}
.entity-modal{width:min(720px,calc(100vw - 24px));max-height:min(90vh,900px);overflow:auto}.entity-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.participant-editor{display:grid;gap:9px;margin:13px 0}.participant-row{display:grid;grid-template-columns:minmax(0,1fr) 110px auto;gap:8px;align-items:end}.set-score-grid{display:grid;gap:8px;margin:10px 0}.set-score-row{display:grid;grid-template-columns:auto 1fr auto 1fr auto;gap:8px;align-items:center}.set-score-row input{min-width:0}.activity-rally-picker,.recommend-member-list{display:grid;gap:0;border:1px solid #dfe7e3;border-radius:12px;margin-top:10px;max-height:250px;overflow:auto}.rally-picker-row,.recommend-member-row{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;padding:10px;border-bottom:1px solid #e6ece9}.rally-picker-row:last-child,.recommend-member-row:last-child{border-bottom:0}.activity-view-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.activity-view-summary>div{background:#f0f5f2;padding:11px;border-radius:11px}.activity-participant-sides{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin:16px 0}.activity-side{display:grid;gap:8px}.activity-side:last-child{text-align:right}.activity-rally-list{display:grid;gap:8px}.activity-rally-button{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left}.profile-activity-list{display:grid;gap:8px;margin-top:14px}.profile-activity-button{width:100%;display:flex;justify-content:space-between;gap:10px;text-align:left}
@media(max-width:700px){.vault-filter-row{grid-template-columns:1fr 1fr}.vault-filter-row #newActivity{grid-column:1/-1}.recommended-grid,.player-profile-grid{grid-template-columns:1fr}.entity-form-grid{grid-template-columns:1fr}.participant-row{grid-template-columns:minmax(0,1fr) 90px auto}.activity-view-summary{grid-template-columns:1fr}.activity-participant-sides{grid-template-columns:1fr}.activity-participant-sides>.versus{text-align:center}.activity-side:last-child{text-align:left}}
.history-loved{margin-top:4px;color:var(--surround-green);font-size:12px;font-weight:800}

@media (max-width:1100px){
  .capture-workspace-grid{grid-template-columns:minmax(0,1.2fr) minmax(330px,.9fr)}
  .capture-recent-inline #recentActivity{grid-template-columns:1fr}
}
@media (max-width:820px){
  .capture-workspace-card{padding:14px}
  .capture-workspace-grid{
    grid-template-columns:1fr;
    grid-template-areas:"preview" "actions" "recent";
    gap:14px;
  }
  .capture-action-column{gap:14px}
  .capture-recent-inline #recentActivity{grid-template-columns:1fr}
  .capture-action-column .live-mode{min-height:0}
}
@media (max-width:560px){
  .capture-workspace-heading{margin-bottom:12px}
  .preview-camera-row{grid-template-columns:auto minmax(0,1fr);gap:8px}
  .preview-camera-row select{font-size:16px}
  .capture-action-column .instant-mode,.capture-action-column .live-mode{padding:14px}
  .capture-details-panel{padding:0 4px}
}
.player-modal.preparing .player-video-shell{display:none}
@media (min-width:821px) and (max-width:1100px){
  .capture-recent-inline #recentActivity{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* v0.10.17 interface polish */
@media (min-width:821px){
  .capture-workspace-grid{
    grid-template-columns:minmax(0,1.65fr) minmax(315px,.72fr);
  }
}

/* Use the same visual hierarchy for every Capture section heading. */
.capture-workspace-heading .capture-pane-kicker,
.capture-recent-inline .section-head h2,
.capture-action-column .mode-title,
.capture-details-label{
  font-size:15px;
  font-weight:850;
  line-height:1.2;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.capture-recent-inline .section-head h2{color:var(--surround-green);margin:0}
.capture-action-column .mode-title{margin-bottom:13px}
.capture-details-label{color:var(--surround-green)}

/* A narrower Capture column without sacrificing usable controls. */
.capture-action-column{font-size:13px;gap:11px}
.capture-action-column .capture-mode{padding:13px}
.capture-action-column .live-mode{min-height:158px}
.capture-action-column .mode-copy{font-size:12px;line-height:1.35;margin-bottom:13px}
.capture-action-column label,
.capture-action-column .collapsible-toggle{font-size:12px}
.capture-action-column input,
.capture-action-column select,
.capture-action-column textarea{font-size:13px;min-height:42px;padding:9px 10px;border-radius:10px}
.capture-action-column textarea{min-height:82px}
.capture-action-column .duration-option span{font-size:11px;min-height:34px;padding:6px 5px}
.capture-action-column .action-button{font-size:14px;min-height:48px}
.capture-action-column .hint{font-size:11px}

/* Capture Details is a peer card beside Instant Replay and Live Capture. */
.capture-details-panel{
  padding:13px !important;
  border:1px solid #dfe7e3;
  border-radius:16px;
  background:#fff;
  min-width:0;
  overflow:hidden;
}
.capture-details-heading{margin:0 0 10px}

/* Recent Activity responds to its own available width rather than viewport labels. */
.capture-recent-inline{container-type:inline-size;container-name:recent-pane;min-width:0}
.capture-recent-inline #recentActivity{grid-template-columns:repeat(2,minmax(0,1fr))}
@container recent-pane (max-width:620px){
  .capture-recent-inline #recentActivity{grid-template-columns:1fr}
}

/* Video-card safety: nothing inside a card may force the card wider. */
.history-card{
  container-type:inline-size;
  container-name:video-card;
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.history-top,.history-heading-block,.history-title-row,.history-meta-row,.history-notes,.tag-row,.history-card-actions{min-width:0;max-width:100%}
.history-heading-block{flex:1 1 auto;overflow:hidden}
.history-title{max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.history-meta-row{flex-wrap:wrap}
.history-notes,.file-name,.file-path{overflow-wrap:anywhere;word-break:break-word}
.tag{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Smaller top actions leave materially more title width. */
.history-top-actions{gap:6px;flex:0 0 auto}
.history-top-actions .share-icon-button,
.history-top-actions .icon-button,
.history-top-actions .favorite-button{
  width:34px !important;
  height:34px !important;
  min-width:34px !important;
  min-height:34px !important;
  flex:0 0 34px !important;
}
.history-top-actions .share-icon-button svg{width:17px;height:17px}
.history-top-actions .info-button{font-size:18px}
.history-top-actions .favorite-button{font-size:18px}

/* Narrow-card fallback is driven by the actual card width, including landscape phones. */
@container video-card (max-width:330px){
  .history-top{display:grid;grid-template-columns:minmax(0,1fr);gap:7px}
  .history-top-actions{justify-self:end;justify-content:flex-end}
  .history-title{font-size:16px}
  .history-card-actions{gap:12px}
}

/* Recent date/time stays on one compact line. */
.capture-recent-inline .history-date{white-space:nowrap;font-size:11px;overflow:hidden;text-overflow:ellipsis}

/* Tag metadata is blue; playback location and duration are green. */
.tag{background:var(--court-blue-soft);color:var(--court-blue-dark);border:1px solid #c8dfec}
.media-location.cloud,
.media-location.home,
.duration-badge{color:var(--surround-green-dark);background:var(--surround-green-soft);border:1px solid #d4e8de}

/* Debug operations are intentionally more technical than normal status text. */
.operation-debug-detail{color:rgba(255,255,255,.55);font:600 10px/1.35 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;overflow-wrap:anywhere}
.operation-item.internal{border-top-color:rgba(99,215,159,.24)}

/* Completed action is centered at every width (desktop included). */
.operation-item.completed{grid-template-columns:1fr}
.operation-item.completed .operation-copy{justify-items:center;text-align:center}
.operation-item.completed .operation-ready-action{width:max-content;margin-inline:auto}

@media (max-width:820px){
  .capture-action-column{font-size:14px}
  .capture-action-column input,.capture-action-column select,.capture-action-column textarea{font-size:16px}
}

/* v0.10.18 capture workspace alignment refinements */
/* Instant Replay now matches the green Capture visual language. */
.instant-mode{
  border-color:#c8ded4;
  background:#fff;
}
.instant-mode .mode-title{color:var(--surround-green-dark)}

@media (min-width:821px){
  /* Keep Preview + Recent Activity as one independent left column so a taller
     Capture Details card can never push Recent Activity away from Preview Camera. */
  .capture-workspace-grid{
    grid-template-areas:"left actions";
    align-items:stretch;
  }
  .capture-left-column{
    grid-area:left;
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:16px;
    align-self:stretch;
  }
  .capture-preview-column{grid-area:auto;min-width:0}
  .capture-recent-inline{
    grid-area:auto;
    padding-top:0;
    flex:1 1 auto;
    min-height:0;
    display:flex;
    flex-direction:column;
  }
  .capture-recent-inline #recentActivity{margin-bottom:13px}
  .capture-recent-inline .view-more{
    flex:0 0 auto;
    margin-top:auto;
  }

  /* Both columns share one bottom edge. Capture Details absorbs any small
     difference, placing its bottom exactly beside View More. */
  .capture-action-column{
    grid-area:actions;
    display:flex;
    flex-direction:column;
    align-self:stretch;
    align-content:normal;
  }
  .capture-details-panel{flex:1 0 auto;min-height:max-content}

  /* JS briefly applies these classes to measure intrinsic heights without
     flex stretching affecting the Recent Activity row decision. */
  .capture-action-column.measure-natural{
    align-self:start;
  }
  .capture-action-column.measure-natural .capture-details-panel{
    flex:0 0 auto;
  }
  .capture-left-column.measure-natural{
    align-self:start;
  }
  .capture-left-column.measure-natural .capture-recent-inline{
    flex:0 0 auto;
  }
  .capture-left-column.measure-natural .capture-recent-inline .view-more{
    margin-top:0;
  }
}

@media (max-width:820px){
  /* Preserve the phone/tablet order: Preview, Capture controls, Recent Activity. */
  .capture-left-column{display:contents}
  .capture-preview-column{grid-area:preview}
  .capture-action-column{grid-area:actions}
  .capture-recent-inline{grid-area:recent}

  /* Edit Details + Delete remain a compact right-aligned group on mobile. */
  .capture-recent-inline .history-card-actions,
  #historyResults .history-card-actions{
    display:flex !important;
    justify-content:flex-end !important;
    align-items:center !important;
    width:100% !important;
    gap:18px !important;
    text-align:right !important;
  }
  .capture-recent-inline .history-card-actions .edit-history,
  .capture-recent-inline .history-card-actions .delete-history,
  #historyResults .history-card-actions .edit-history,
  #historyResults .history-card-actions .delete-history{
    flex:0 0 auto !important;
    width:auto !important;
    margin:0 !important;
  }
}

/* v0.10.19 manual cloud-cache eviction: cloud location pill is an action. */
button.media-location{border:0;padding:0;font:inherit;cursor:pointer}
button.media-location:hover{filter:brightness(.97)}
button.media-location:focus-visible{outline:2px solid var(--court-blue);outline-offset:2px}
button.media-location:disabled{cursor:wait;opacity:.55}

/* v0.10.19 refinement: when Capture Details stretches to match the left
   column, keep Advanced controls packed at the top. Any flexible whitespace
   belongs below the content, not between the camera controls. */
.capture-details-panel .details-body,
.capture-details-panel .camera-list {
  align-content: start;
}

/* v0.10.20 capture-column packing fix */
@media (min-width:821px){
  /* Legacy v0.10.9 height:100% made both action cards absorb column height.
     Keep them intrinsic; Capture Details alone owns all flexible whitespace. */
  .capture-action-column > .capture-mode{
    height:auto !important;
    min-height:0 !important;
    flex:0 0 auto !important;
    align-self:stretch;
  }
  .capture-action-column > .instant-mode,
  .capture-action-column > .live-mode{
    min-height:0 !important;
  }
  .capture-action-column > .capture-details-panel{
    flex:1 0 auto !important;
    min-height:max-content;
  }
}

/* Advanced/metadata content must remain top-packed even when Capture Details
   is substantially taller than its contents. Flex columns avoid grid auto-row
   stretching that could distribute whitespace between camera controls. */
.capture-details-panel .details-body,
.capture-details-panel .camera-list{
  display:flex !important;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  align-content:normal;
  height:auto;
  min-height:0;
}
.capture-details-panel .details-body{gap:9px}
.capture-details-panel .camera-list{gap:8px}


/* v0.10.21 stabilization */
/* Cache location is an icon pill, not a general-purpose button. Lock every
   dimension so desktop button minimums/grid stretching cannot turn it vertical. */
button.media-location{
  box-sizing:border-box !important;
  width:24px !important;
  min-width:24px !important;
  max-width:24px !important;
  height:24px !important;
  min-height:24px !important;
  max-height:24px !important;
  padding:0 !important;
  margin:0 !important;
  line-height:1 !important;
  align-self:center !important;
  flex:0 0 24px !important;
}



/* v0.10.22 final v0.10 stabilization */
/* Capture Details owns spare column height, but its accordion contents always
   remain intrinsic. Do not alter the base 0fr -> 1fr reveal grid: doing so can
   leave a collapsed panel overlaying the next header and intercepting taps. */
.capture-details-panel{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}
.capture-details-panel > *{flex:0 0 auto}
.capture-details-panel .collapsible-reveal{
  align-items:stretch;
}
.capture-details-panel .collapsible-inner.details-body{
  width:100%;
  justify-content:flex-start !important;
}
#advancedPanel .details-body{
  gap:6px !important;
  padding:4px 1px 6px !important;
}
#advancedPanel #cameraList{
  display:flex !important;
  flex-direction:column !important;
  gap:4px !important;
  margin:0 !important;
  padding:0 !important;
  height:auto !important;
  min-height:0 !important;
  flex:0 0 auto !important;
}
#advancedPanel .camera-mode{
  display:flex !important;
  flex-direction:column !important;
  gap:7px !important;
  margin:0 !important;
  padding:0 !important;
  height:auto !important;
  min-height:0 !important;
  flex:0 0 auto !important;
}
#advancedPanel #individualCameraList{
  display:flex !important;
  flex-direction:column !important;
  gap:0 !important;
  margin:0 !important;
  padding:0 !important;
  height:auto !important;
  min-height:0 !important;
  flex:0 0 auto !important;
}
#advancedPanel #individualCameraList .camera{
  padding:4px 2px !important;
  margin:0 !important;
  min-height:0 !important;
  flex:0 0 auto !important;
}
#advancedPanel .hint{
  margin:0 !important;
  padding:0 !important;
  flex:0 0 auto !important;
}

/* The cache-location control must stay circular on every breakpoint and on
   iOS Safari, regardless of generic button minimums or native appearance. */
.history-meta-row button.media-location,
button.media-location{
  -webkit-appearance:none !important;
  appearance:none !important;
  display:inline-grid !important;
  place-items:center !important;
  box-sizing:border-box !important;
  inline-size:24px !important;
  block-size:24px !important;
  width:24px !important;
  min-width:24px !important;
  max-width:24px !important;
  height:24px !important;
  min-height:24px !important;
  max-height:24px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:999px !important;
  line-height:1 !important;
  align-self:center !important;
  flex:0 0 24px !important;
}
.history-meta-row button.media-location svg,
button.media-location svg{
  width:17px !important;
  height:17px !important;
  max-width:17px !important;
  max-height:17px !important;
}


/* v0.10.23 final mobile scroll + metadata spacing fix */
/* Keep a readable beat between capture date/time and the location/duration row. */
.history-heading-block .history-date{margin-bottom:6px;}

/* v1.1 media modal + card actions */
.history-card-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:auto;padding-top:10px;min-width:0}
.history-card-footer>.info-button{flex:0 0 34px;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;padding:0!important;border-radius:50%;font-size:18px;line-height:1}
.history-card-footer .history-card-actions{margin-top:0!important;padding-top:0!important;flex:1 1 auto}
.history-top-actions .card-download-button{display:inline-flex!important}
.history-top-actions .card-download-button svg,.player-head-actions .share-icon-button svg{width:17px;height:17px;display:block}

.player-modal{width:min(1180px,96vw);max-width:1180px}
.player-modal-head{align-items:flex-start}
.player-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}
.player-head-actions .share-icon-button,.player-head-actions .favorite-button,.player-head-actions .icon-button{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;flex:0 0 38px!important;padding:0!important;border-radius:50%!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
.player-content-grid{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(235px,.8fr);gap:16px;align-items:stretch;margin-top:12px}
.player-main-column{min-width:0}
.player-metadata-panel{border:1px solid #d7e4de;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:18px;min-width:0}
.player-metadata-panel section+section{border-top:1px solid #e0e8e4;padding-top:16px}
.player-metadata-panel h3{margin:0 0 10px;font-size:15px;color:var(--ink)}
.player-metadata-panel .tag-row{margin:0;gap:7px}
.player-notes{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}
.player-video-info{border:1px solid #d7e4de;border-radius:14px;margin-top:14px;overflow:hidden}
.player-video-info summary{cursor:pointer;list-style:none;padding:14px 16px;font-weight:800;color:var(--ink);display:flex;align-items:center;justify-content:space-between}
.player-video-info summary::-webkit-details-marker{display:none}
.player-video-info summary::after{content:"⌄";font-size:18px;color:var(--court-blue-dark)}
.player-video-info[open] summary::after{content:"⌃"}
.video-info-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:0 16px 16px}
.video-info-item{padding:6px 14px;border-left:1px solid #e0e8e4;min-width:0}
.video-info-item:first-child{border-left:0;padding-left:0}
.video-info-item span{display:block;color:#6f7975;font-size:11px;font-weight:700;margin-bottom:5px}
.video-info-item strong{display:block;font-size:13px;overflow-wrap:anywhere}
.player-modal #playerShareStatus{margin-top:10px}
.edit-captured-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0 14px;margin-bottom:2px;border-bottom:1px solid #e0e8e4;color:#68736f}
.edit-captured-row strong{color:var(--ink)}
.quality-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.quality-option{text-align:left;min-height:94px;padding:16px;border:1px solid #d3e2dc;border-radius:14px;background:white;color:var(--ink)}
.quality-option strong,.quality-option span{display:block}.quality-option strong{font-size:17px;margin-bottom:6px}.quality-option span{color:#6f7975;font-size:13px}
.live-video-loading.idle-disabled .live-loading-spinner{display:none}
#liveReconnectButton{margin-top:8px;min-height:40px}

@media (max-width:720px){
  .player-modal{width:min(96vw,680px)}
  .player-content-grid{display:flex;flex-direction:column;gap:12px}
  .player-main-column{order:1}.player-metadata-panel{order:2;border:0;padding:0;gap:14px}.player-video-info{order:3}
  .player-metadata-panel section+section{padding-top:12px}
  .video-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
  .video-info-item{border-left:0;border-top:1px solid #e0e8e4;padding:10px 8px}
  .video-info-item:nth-child(1),.video-info-item:nth-child(2){border-top:0}
  .quality-options{grid-template-columns:1fr}
}


/* v1.1.1 test-pass refinements */
.history-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-width:0}
.history-meta-row .tag-row{display:contents;margin:0}
.delete-icon-button{appearance:none;border:0;background:transparent;color:var(--danger);width:27px;height:27px;padding:4px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.delete-icon-button svg{width:16px;height:16px;display:block}
.delete-icon-button:hover{background:rgba(185,48,48,.08)}

/* Keep Safari's large blue focus halo out of the media UI while retaining a subtle keyboard cue. */
.player-modal button:focus,.quality-modal button:focus,.history-card button:focus,.player-video-info summary:focus{outline:none;-webkit-focus-ring-color:transparent}
.player-modal button:focus-visible,.quality-modal button:focus-visible,.history-card button:focus-visible,.player-video-info summary:focus-visible{outline:none;box-shadow:0 0 0 2px rgba(23,109,168,.20)}
.history-card:focus{outline:none}
.history-card:focus-visible{outline:none;box-shadow:0 0 0 2px rgba(23,109,168,.16)}

/* Loading placeholder occupies the exact media slot so opening a cached or Home video never rearranges the modal. */
.player-main-column{display:grid;grid-template-areas:"media" "hint";align-content:start}
.player-video-shell,.player-prepare{grid-area:media;width:100%;aspect-ratio:16/9;min-height:0;border-radius:14px}
.player-video-shell{background:#090d11;overflow:hidden}
.player-video-shell video{width:100%;height:100%;max-height:none;object-fit:contain;background:#090d11;border-radius:14px}
.player-prepare{display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;margin:0;padding:28px 24px;background:#101715;color:#eef6f2;text-align:center}
.player-main-column #playerSourceHint{grid-area:hint}
.player-modal.preparing .player-video-shell{visibility:hidden;display:block}
.player-modal:not(.preparing) .player-prepare{display:none}
.player-modal.preparing .player-prepare.hidden{display:flex}

.metadata-heading-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:7px;color:var(--court-blue-dark);font-weight:800;font-size:14px;vertical-align:-1px}
.player-metadata-panel h3{display:flex;align-items:center}
.player-video-info summary>span{display:flex;align-items:center}

.quality-option{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px}
.quality-option strong,.quality-option span{width:100%}
.quality-option span{white-space:normal;line-height:1.35}


.player-title-line{display:flex;align-items:center;gap:7px;min-width:0}
.player-title-line h2{min-width:0;margin-bottom:0}
.player-inline-edit-button{appearance:none;border:0;background:transparent;color:#7a8580;width:28px;height:28px;border-radius:8px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer}
.player-inline-edit-button:hover,.player-inline-edit-button.active{background:var(--court-blue-soft);color:var(--court-blue-dark)}
.player-inline-name{width:min(520px,100%);font-size:22px;font-weight:800;margin-top:4px}
.player-modal.editing-metadata #playerTitle{display:none}
.player-metadata-editor{width:100%;box-sizing:border-box}
.player-modal.editing-metadata .player-metadata-display{display:none}
.player-metadata-edit-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:-4px}
.player-metadata-edit-actions.hidden{display:none}
@media(max-width:820px){.player-metadata-edit-actions{justify-content:stretch}.player-metadata-edit-actions button{flex:1}}

/* v1.1.3 Court View / Rally Vault */
.header-status-actions{display:flex;align-items:center;gap:8px}.header-settings-button{width:34px;height:34px;min-height:34px;padding:0;border-radius:999px;background:#eef3f0;color:#415049;font-size:17px}.two-tabs{grid-template-columns:repeat(2,minmax(0,1fr));max-width:520px}.capture-workspace-grid{align-items:start}.capture-left-column{display:block}.capture-action-column{gap:12px}.replay-short-options{grid-template-columns:repeat(3,minmax(0,1fr))}.match-capture-mode{display:grid;gap:12px}.match-capture-path{display:grid;gap:9px}.capture-path-head{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.capture-path-head strong{font-size:15px;color:var(--surround-green-dark)}.match-capture-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.match-capture-divider:before,.match-capture-divider:after{content:"";height:1px;flex:1;background:#e1e8e4}.always-open .collapsible-reveal{display:block!important;max-height:none!important;opacity:1!important;overflow:visible!important}.capture-details-subhead{margin-top:8px;padding-top:10px;border-top:1px solid #e7ece9;font-weight:850;color:var(--surround-green-dark);font-size:13px}.capture-details-panel .details-body{padding-top:8px}

/* Rally Vault cards */
.history-meta-row.tags-primary{display:block;margin-top:9px}.history-meta-row.tags-primary .tag-row{margin-top:0}.card-utility-icons{display:flex;align-items:center;gap:7px;min-width:0}.card-utility-icons>.icon-button,.card-utility-icons>.media-location{flex:0 0 34px;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;padding:0!important;border-radius:50%}.note-indicator{font-size:15px!important}.camera-count-indicator{display:inline-flex;align-items:center;gap:4px;height:34px;padding:0 9px;border-radius:999px;background:#f0f4f2;color:#53615b;font-size:11px;font-weight:850;white-space:nowrap}.camera-count-indicator svg{width:16px;height:16px}.delete-icon-button{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;padding:6px!important;border-radius:50%!important}.delete-icon-button svg{width:21px!important;height:21px!important}.history-top-actions{display:flex;align-items:flex-start;gap:7px;flex:0 0 auto}.history-heading-block{flex:1 1 auto;min-width:0}.history-top{align-items:flex-start}.history-card-footer{align-items:center}.history-card-actions{flex:0 0 auto!important}.history-notes{display:none!important}

/* Player polish */
.player-notes{max-height:190px;overflow:auto;padding-right:6px;white-space:pre-wrap}.player-metadata-editor#playerEditNotesInline{max-height:210px;overflow:auto}.player-edit-details-button{min-height:36px;padding:7px 11px;border-radius:999px;background:#eef3f0;color:#3f5148;font-size:11px;font-weight:850;white-space:nowrap}.player-edit-details-button.active{background:var(--court-blue-soft);color:var(--court-blue-dark)}.info-row-icon{display:inline-flex;width:20px;color:var(--court-blue);font-size:15px;font-weight:700}.video-info-grid>div>span{display:flex;align-items:center;gap:3px}

/* Operation panel lives in the browser top layer via popover=manual. */
.operation-panel[popover]{position:fixed;inset:auto auto max(14px,env(safe-area-inset-bottom)) 50%;transform:translateX(-50%);margin:0;z-index:2147483647;border:0}.operation-panel[popover]::backdrop{background:transparent}.operation-item.failed{border-color:#e8b8b8;background:#fff6f6}.operation-item.failed strong,.operation-item.failed span{color:#9a2f2f}.download-file.busy svg,.player-download-icon.busy svg{animation:cc-download-spin .8s linear infinite;transform-origin:50% 50%}@keyframes cc-download-spin{to{transform:rotate(360deg)}}

@container (max-width: 430px){.history-top{display:grid;grid-template-columns:minmax(0,1fr) auto}.history-top-actions{align-self:start}.history-card-footer{grid-column:1/-1}}
@media(max-width:820px){.capture-workspace-grid{grid-template-columns:1fr}.capture-left-column{order:0}.capture-action-column{order:1}.capture-preview-column{margin-bottom:12px}}
@media(max-width:560px){.header-status-actions{margin-left:auto}.two-tabs{max-width:none}.replay-short-options{grid-template-columns:repeat(3,1fr)}.history-top-actions{gap:5px}.player-edit-details-button{padding-inline:9px}}
.player-save-replay-button{min-height:36px;padding:7px 12px;border-radius:999px;background:var(--surround-green);color:white;font-size:11px;font-weight:850;white-space:nowrap}#playerFileSelect:not(.hidden){display:block;width:auto;min-width:190px;max-width:100%;margin:0 0 10px auto;padding:8px 34px 8px 11px;border-radius:999px;border:1px solid #cddbd4;background:#f8fbf9;font-size:12px;font-weight:750;color:#33463c}


/* v1.1.4 — Court View stabilization and visual polish */
.header-settings-button{
  width:42px!important;height:42px!important;min-height:42px!important;border-radius:12px!important;
  background:#eef6f9!important;border:1px solid #d9e8ee!important;box-shadow:none!important;color:#315867!important;
  font-size:19px!important;font-weight:700!important;
}
.court-view-workspace{padding:18px!important}
.court-live-preview{width:100%;min-width:0}
.court-view-bottom-grid{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(430px,1.28fr);gap:16px;margin-top:16px;align-items:start}
.capture-action-column,.capture-left-column,.capture-details-panel{display:contents}
.consolidated-match-capture{min-width:0}
.match-details-core{display:grid;gap:7px}
.match-detail-accordions{display:grid;grid-template-columns:1fr;gap:8px}
.capture-accordion{border:1px solid #d8e5df;border-radius:12px;overflow:hidden;background:#fbfdfc}
.capture-accordion-summary{width:100%;display:flex;align-items:center;gap:8px;min-height:42px;padding:9px 11px;border:0;background:transparent;color:var(--ink);font-weight:850;text-align:left;cursor:pointer}
.capture-accordion-summary .advanced-camera-summary{margin-left:auto;color:#63716b;font-size:11px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.capture-accordion-summary .accordion-chevron{margin-left:auto;color:var(--court-blue-dark)}
.capture-accordion-summary .advanced-camera-summary+.accordion-chevron{margin-left:4px}
.capture-accordion-body{display:none;padding:0 11px 11px}
.capture-accordion.open .capture-accordion-body{display:block}
.capture-accordion:not(.open) #refreshCameras{display:none!important}
.capture-accordion textarea{min-height:92px;max-height:150px}
.live-angle-thumbnails{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px;padding:10px;border:1px solid #d7e4de;border-radius:14px;background:#fbfdfc}
.live-angle-thumb{min-width:0;padding:0;border:2px solid transparent;background:transparent;border-radius:11px;color:var(--ink);cursor:pointer;overflow:hidden;text-align:left}
.live-angle-thumb.active{border-color:var(--court-blue)}
.live-angle-thumb-preview{aspect-ratio:16/9;background:#111;border-radius:8px;overflow:hidden}
.live-angle-thumb canvas{width:100%;height:100%;display:block;object-fit:cover}
.live-angle-thumb span{display:block;padding:5px 6px 4px;font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mobile-preview-camera-row{display:none!important}

/* Rally Vault utility bar */
.history-card{overflow:hidden;padding-bottom:0!important}
.history-card-footer.utility-bar{margin:12px -16px 0!important;padding:7px 10px!important;min-height:44px;background:#eaf5fb;border-top:1px solid #d5e9f3;align-items:center!important}
.card-utility-icons{gap:5px!important;flex:1}
.utility-tool,.card-utility-icons>.media-location,.camera-count-indicator{
  appearance:none;border:0!important;background:transparent!important;color:#315c6e!important;height:34px!important;min-height:34px!important;border-radius:8px!important;
}
.utility-tool{width:36px!important;min-width:36px!important;padding:6px!important;display:inline-flex!important;align-items:center;justify-content:center;cursor:pointer}
.utility-tool svg,.note-indicator svg{width:20px!important;height:20px!important;display:block}
.card-utility-icons>.media-location{width:36px!important;min-width:36px!important;padding:8px!important;display:inline-flex!important;align-items:center;justify-content:center}
.camera-count-indicator{padding:0 8px!important;gap:5px!important;background:rgba(255,255,255,.52)!important}
.delete-icon-button{margin-left:auto!important;color:#b63a3a!important;background:transparent!important}
.delete-icon-button:hover{background:rgba(182,58,58,.09)!important}
.card-processing-state{display:inline-flex;align-items:center;gap:7px;margin-top:9px;padding:5px 8px;border-radius:8px;background:#eef5f8;color:#526a75;font-size:11px;font-weight:800}
.mini-spinner{width:12px;height:12px;border:2px solid #b8ced8;border-top-color:#176da8;border-radius:50%;animation:cc-download-spin .8s linear infinite}
.history-card.processing{cursor:default;opacity:.96}

/* Player camera thumbnails and edit actions */
.player-angle-thumbnails{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0 0}
.player-angle-thumb{position:relative;min-width:0;padding:0;border:2px solid transparent;background:#eef3f0;border-radius:11px;overflow:hidden;cursor:pointer;color:var(--ink)}
.player-angle-thumb.active{border-color:var(--court-blue);box-shadow:0 0 0 1px rgba(23,109,168,.12)}
.player-angle-thumb video{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#111;pointer-events:none}
.player-angle-thumb span{display:block;padding:6px 8px;font-size:11px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-top-save,.player-top-cancel{min-height:36px;padding:7px 12px;border-radius:999px;font-size:11px;font-weight:850;white-space:nowrap}
.player-modal.editing-metadata .player-edit-details-button{display:none!important}
.player-notes{max-height:180px;overflow:auto}

/* Download availability is platform/capability-based, never viewport-width-based. */
@media (max-width:720px){
  .history-top-actions .card-download-button{display:inline-flex!important}
}

@media (max-width:820px){
  .court-view-bottom-grid{grid-template-columns:1fr}
  .live-angle-thumbnails{display:none!important}
  .mobile-preview-camera-row{display:flex!important}
  .player-content-grid{display:flex;flex-direction:column}
  .player-main-column{order:1}
  .player-angle-thumbnails{order:2;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:10px}
  .player-metadata-panel{order:3}
  .player-video-info{order:4}
}
@media (max-width:560px){
  .player-angle-thumbnails{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .player-head-actions{gap:5px;flex-wrap:wrap}
  .player-top-save,.player-top-cancel{padding-inline:9px}
}


/* v1.1.4 multi-angle modal layout */
.player-content-grid{grid-template-columns:minmax(0,2.1fr) minmax(235px,.8fr);grid-template-areas:"main meta" "angles meta";align-items:start}
.player-main-column{grid-area:main}
.player-angle-thumbnails{grid-area:angles}
.player-metadata-panel{grid-area:meta;align-self:stretch}
.history-meta-row.tags-primary{width:100%;padding-right:0;box-sizing:border-box}
.history-meta-row.tags-primary .tag-row{display:flex;flex-wrap:wrap;width:100%}
@media(max-width:820px){
  .player-content-grid{display:flex;flex-direction:column}
  .player-main-column{order:1}
  .player-angle-thumbnails{order:2}
  .player-metadata-panel{order:3}
}
.player-angle-thumb canvas{display:block;width:100%;aspect-ratio:16/9;background:#111;object-fit:cover;pointer-events:none}

.header-settings-button svg{width:22px;height:22px;display:block;margin:auto}


/* v1.1.5 — Court View composition, multi-angle replay, and Rally Vault footer polish */
@media (min-width:821px){
  .court-view-bottom-grid{grid-template-columns:minmax(250px,.58fr) minmax(720px,1.42fr)!important;gap:16px}
  .consolidated-match-capture{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.15fr);
    grid-template-areas:"title title title" "core accordions actions";
    gap:12px 14px!important;
    align-items:start;
  }
  .consolidated-match-capture>.mode-title{grid-area:title;margin-bottom:0}
  .consolidated-match-capture>.match-details-core{grid-area:core}
  .consolidated-match-capture>.match-detail-accordions{grid-area:accordions}
  .consolidated-match-capture>.match-capture-actions-column{grid-area:actions}
}
.match-capture-actions-column{display:grid;gap:10px;align-content:start;min-width:0}

/* Live camera previews are image-first with labels below, never beside the frame. */
.live-angle-thumb{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;overflow:hidden}
.live-angle-thumb-preview{display:block;width:100%;flex:0 0 auto}
.live-angle-thumb canvas{width:100%!important;height:100%!important;display:block!important;background:#111}
.live-angle-thumb span{width:100%;box-sizing:border-box;padding:7px 7px 5px!important;text-align:left}

/* Utility footer is the actual bottom edge of every Rally Vault card. */
#historyResults .history-card{display:flex!important;flex-direction:column!important;height:100%!important}
.history-card-footer.utility-bar{
  margin-top:auto!important;
  margin-left:-18px!important;
  margin-right:-18px!important;
  margin-bottom:0!important;
  width:auto!important;
  box-sizing:border-box;
  min-height:50px!important;
  padding:7px 13px!important;
  border-radius:0 0 19px 19px;
}
.card-utility-icons{gap:8px!important}
.utility-tool,.card-utility-icons>.media-location,.camera-count-indicator{height:40px!important;min-height:40px!important}
.utility-tool{width:40px!important;min-width:40px!important;padding:7px!important}
.utility-tool svg,.note-indicator svg{width:22px!important;height:22px!important}
.card-utility-icons>.media-location{width:40px!important;min-width:40px!important;padding:8px!important}
.card-utility-icons>.media-location svg{width:22px!important;height:22px!important}
.camera-count-indicator{padding:0 5px!important;background:transparent!important;border-radius:8px!important;font-size:12px!important}
.camera-count-indicator svg{width:22px!important;height:22px!important}
.delete-icon-button{width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;padding:7px!important}
.delete-icon-button svg{width:22px!important;height:22px!important}
@media (max-width:720px){
  .history-card-footer.utility-bar{margin-left:-14px!important;margin-right:-14px!important;border-radius:0 0 15px 15px}
}

/* Mobile Notes and Advanced are independent; layout stays stacked. */
@media (max-width:820px){
  .consolidated-match-capture{display:grid!important;grid-template-columns:1fr!important}
  .match-capture-actions-column{display:grid;gap:10px}
}

/* Match card padding-aware full-width footer. */
.history-card{--history-card-side-pad:18px}
.history-card-footer.utility-bar{margin-left:calc(-1 * var(--history-card-side-pad))!important;margin-right:calc(-1 * var(--history-card-side-pad))!important}
@media (max-width:560px){
  .history-card{--history-card-side-pad:14px}
  .history-card-footer.utility-bar{border-radius:0 0 15px 15px}
}

/* v1.1.6 — Court View lower-panel layout refinement */
@media (min-width:821px){
  /* Give Match Capture more room without squeezing Instant Replay excessively. */
  .court-view-bottom-grid{
    grid-template-columns:minmax(245px,.52fr) minmax(0,1.48fr)!important;
    gap:16px!important;
    align-items:stretch!important;
  }

  /* Instant Replay controls stay grouped at the top. Any matched-card-height
     whitespace naturally falls below the controls rather than between them. */
  .court-view-bottom-grid>.instant-mode{
    display:flex!important;
    flex-direction:column!important;
    align-self:stretch!important;
    height:auto!important;
  }
  .court-view-bottom-grid>.instant-mode .mode-title{margin-bottom:18px}
  .court-view-bottom-grid>.instant-mode .duration-options{margin-bottom:16px}
  .court-view-bottom-grid>.instant-mode .action-button{
    margin-top:0!important;
  }

  /* Match Capture: heading, then Title/Tags across the full width, then a
     compact two-column row of Notes/Advanced and capture actions. */
  .consolidated-match-capture{
    display:grid!important;
    grid-template-columns:minmax(0,.9fr) minmax(330px,1.1fr)!important;
    grid-template-areas:
      "title title"
      "core core"
      "accordions actions"!important;
    gap:12px 16px!important;
    align-items:start!important;
  }
  .consolidated-match-capture>.mode-title{grid-area:title;margin-bottom:0}
  .consolidated-match-capture>.match-details-core{grid-area:core}
  .consolidated-match-capture>.match-detail-accordions{grid-area:accordions}
  .consolidated-match-capture>.match-capture-actions-column{grid-area:actions}

  .match-details-core{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:12px 14px!important;
    align-items:start;
  }
  .match-detail-field{display:grid;gap:7px;min-width:0}
  .match-detail-field input{width:100%;min-width:0;box-sizing:border-box}

  .match-detail-accordions{align-self:start}
  .match-capture-actions-column{align-self:start}
}


/* v1.1.7 — Court View tabbed workflow */
.court-mode-tabs{
  display:flex;gap:6px;margin-top:16px;padding:8px 8px 0;
  border:1px solid #d5e1dc;border-bottom:0;border-radius:18px 18px 0 0;
  background:#f3f8f6;
}
.court-mode-tab{
  border:0;background:transparent;padding:12px 18px;border-radius:11px 11px 0 0;
  color:#5e6864;font:inherit;font-size:14px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;
  cursor:pointer;
}
.court-mode-tab.active{
  background:#fff;color:var(--surround-green);box-shadow:0 -1px 0 #d5e1dc,1px 0 0 #d5e1dc,-1px 0 0 #d5e1dc;
}
.court-mode-panels{border:1px solid #d5e1dc;border-top:0;border-radius:0 0 18px 18px;background:#fff;overflow:hidden}
.court-mode-panel{display:none;padding:20px}
.court-mode-panel.active{display:block}
.court-mode-description{margin:0 0 20px;color:#42524b;font-size:16px;font-weight:700;line-height:1.45}
.instant-replay-content{max-width:540px;display:grid;gap:14px}
.instant-replay-content .action-button{margin:0}

.match-capture-primary-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:stretch;margin-bottom:22px}
.match-capture-choice{border:1px solid #d5e4dc;border-radius:16px;padding:18px;background:#fbfdfc;display:flex;flex-direction:column;min-width:0}
.match-capture-choice .capture-path-head strong{font-size:20px;color:var(--surround-green)}
.match-capture-choice .capture-path-head{margin-bottom:14px}
.match-capture-choice .action-button{margin-top:auto}
.activity-first-choice{gap:12px}.activity-first-choice>.capture-path-head{margin-bottom:2px}.activity-first-choice>label{font-weight:850;color:var(--surround-green-dark)}.activity-first-choice>select{width:100%}.match-participant-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.match-participant-fields label{display:grid;gap:5px}.match-participant-fields label span{font-size:12px;font-weight:800;color:var(--muted)}.match-participant-fields label em{font-style:normal;font-weight:500}.activity-session-active{background:linear-gradient(rgba(224,241,249,.72),rgba(231,244,238,.76)),var(--page)}.activity-session-active .view-tabs{box-shadow:0 5px 22px rgba(14,82,127,.12)}
.match-capture-or{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#7d8581;font-size:12px;font-weight:850}
.match-capture-or::before,.match-capture-or::after{content:"";width:1px;background:#dde5e1;flex:1}
.match-capture-or span{padding:10px 0}
.match-details-frame{border:1px solid #cbdcd4;border-radius:14px;padding:16px}
.match-details-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;align-items:stretch}
.match-details-column{min-width:0;display:flex;flex-direction:column}
.title-tags-column{gap:12px}
.notes-column textarea{flex:1;min-height:180px;max-height:180px;overflow-y:auto;resize:none}
.advanced-column{padding:0!important;border:0!important;background:transparent!important}
.advanced-column .advanced-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}
.advanced-column .advanced-head>label{margin:0}
.camera-tools-head{padding-top:3px}

/* A little breathing room inside the selected camera outline. */
.live-angle-thumb{padding:7px!important}
.live-angle-thumb.active{padding:7px!important}
.live-angle-thumb-preview{overflow:hidden;border-radius:9px}
.live-angle-thumb>span{display:block;margin-top:7px}

@media (max-width:820px){
  .court-mode-tab{flex:1;padding:11px 8px;font-size:13px}
  .court-mode-panel{padding:16px}
  .court-mode-description{font-size:15px;margin-bottom:16px}
  .match-capture-primary-actions{grid-template-columns:1fr;gap:12px}
  .match-capture-or{flex-direction:row;gap:10px}
  .match-capture-or::before,.match-capture-or::after{width:auto;height:1px;flex:1}
  .match-capture-or span{padding:0}
  .match-details-grid{grid-template-columns:1fr}
  .notes-column textarea{min-height:150px;max-height:150px}
  .live-angle-thumbnails{display:none!important}
  .mobile-preview-camera-row{display:flex!important}
}
@media (min-width:821px){
  .mobile-preview-camera-row{display:none!important}
}

/* v1.1.8 rolling Instant Replay */
.buffer-replay-controls{margin-top:12px;padding:12px 14px;border:1px solid #cddff5;border-radius:14px;background:#f7fbff;display:grid;gap:9px}
.buffer-replay-controls.hidden{display:none}
.buffer-replay-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#16365c}
.buffer-replay-head strong{font-size:15px}
.buffer-replay-head span{font-variant-numeric:tabular-nums;color:#536b86;font-size:13px}
.buffer-replay-scrubber{width:100%;accent-color:#2f6fb2}
.buffer-replay-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.save-replay-camera-section{margin-top:14px;display:grid;gap:8px}
.save-replay-camera-list{display:grid;gap:7px;padding:10px;border:1px solid #d7e2ee;border-radius:12px;background:#f8fafc}
.save-replay-camera-list label{display:flex;gap:9px;align-items:center;font-weight:600}
.buffer-replay-unavailable{color:#7b4a13}
@media(max-width:820px){.buffer-replay-actions{display:grid;grid-template-columns:1fr 1fr}.buffer-replay-actions button{width:100%}}


/* v1.1.9 - rolling replay stabilization and Court View media rail */
.live-mode-splash{position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;background:rgba(5,16,20,.86);color:#fff;font-size:clamp(28px,4vw,56px);font-weight:900;letter-spacing:.03em;opacity:0;transition:opacity .22s ease;pointer-events:none}
.live-mode-splash.hidden{display:none}
.live-mode-splash.show{opacity:1}
.match-capture-choice:first-child .duration-options{margin-bottom:14px}
@media (min-width:821px){
  .court-live-preview{display:grid;grid-template-columns:minmax(0,1fr) 260px;grid-template-areas:"video rail" "hint rail" "replay rail";column-gap:16px;align-items:start}
  .court-live-preview>.live-video-shell{grid-area:video;margin-top:0}
  .court-live-preview>.preview-hint{grid-area:hint;margin-top:6px}
  .court-live-preview>.live-angle-thumbnails{grid-area:rail;margin:0;padding:10px;display:grid!important;grid-template-columns:1fr;gap:10px;align-content:start}
  .court-live-preview>.buffer-replay-controls{grid-area:replay;margin-top:10px}
  .court-live-preview>.mobile-preview-camera-row{display:none!important}
  .live-angle-thumb{padding:7px!important}
  .live-angle-thumb.active{padding:7px!important}
}
@media (max-width:820px){
  .court-live-preview{display:block}
  .live-angle-thumbnails{display:none!important}
}


/* v1.1.20 — Instant Replay controller, media rail, modal, and Match Capture polish */
.buffer-replay-controls{
  margin:0 0 12px!important;
  padding:14px 16px!important;
  border:0!important;
  border-radius:16px!important;
  background:linear-gradient(135deg,var(--court-blue-dark),var(--court-blue))!important;
  color:#fff!important;
  box-shadow:0 12px 32px rgba(14,82,127,.20);
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:"head actions" "scrub scrub" "notice notice";
  gap:10px 16px!important;
  max-height:240px;
  opacity:1;
  overflow:hidden;
  transform:translateY(0);
  transition:max-height .34s var(--ease),opacity .24s ease,transform .34s var(--ease),margin .34s var(--ease),padding .34s var(--ease);
}
.buffer-replay-controls.hidden{
  display:grid!important;
  max-height:0!important;
  opacity:0!important;
  transform:translateY(-8px);
  margin:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
  pointer-events:none;
  border-width:0!important;
}
.buffer-replay-head{grid-area:head;color:#fff!important;align-items:flex-start!important;justify-content:flex-start!important}
.buffer-replay-head>div{display:grid;gap:2px}
.buffer-replay-kicker{font-size:10px;letter-spacing:.16em;font-weight:900;color:rgba(255,255,255,.78)}
.buffer-replay-head strong{font-size:16px!important;color:#fff}
.buffer-replay-head>span{margin-left:auto;color:rgba(255,255,255,.9)!important;font-weight:800;white-space:nowrap}
.buffer-replay-actions{grid-area:actions;align-self:center}
.buffer-replay-actions .secondary{background:rgba(255,255,255,.16);color:#fff}
.buffer-replay-actions .primary{background:#fff;color:var(--surround-green-dark)}
.buffer-replay-scrubber{grid-area:scrub;appearance:none;-webkit-appearance:none;width:100%;height:24px!important;min-height:24px!important;padding:0!important;margin:0;background:transparent;border:0;border-radius:0;box-shadow:none!important;outline:none}
.buffer-replay-scrubber::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:rgba(255,255,255,.34)}
.buffer-replay-scrubber::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid rgba(14,82,127,.20);box-shadow:0 2px 7px rgba(0,0,0,.22);margin-top:-8px}
.buffer-replay-scrubber::-moz-range-track{height:6px;border-radius:999px;background:rgba(255,255,255,.34)}
.buffer-replay-scrubber::-moz-range-progress{height:6px;border-radius:999px;background:#fff}
.buffer-replay-scrubber::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid rgba(14,82,127,.20);box-shadow:0 2px 7px rgba(0,0,0,.22)}
.buffer-replay-controls .hint{grid-area:notice;color:rgba(255,255,255,.85);margin-top:0}

.live-transition-frame{position:absolute;inset:0;z-index:6;width:100%;height:100%;object-fit:cover;background:#000;opacity:0;transition:opacity .16s ease;pointer-events:none}
.live-transition-frame.show{opacity:1}
.live-replay-ended{position:absolute;inset:0;z-index:7;display:flex;align-items:center;justify-content:center;background:rgba(5,16,20,.88);color:#fff;opacity:0;transition:opacity .22s ease;pointer-events:none;text-align:center}
.live-replay-ended.show{opacity:1}
.live-replay-ended>div{display:grid;gap:7px;justify-items:center}
.live-replay-ended span{font-size:11px;letter-spacing:.18em;font-weight:900;color:rgba(255,255,255,.72)}
.live-replay-ended strong{font-size:clamp(28px,4vw,52px);line-height:1}
.live-replay-ended small{font-size:13px;color:rgba(255,255,255,.78)}

/* Camera selections stay compact and readable inside Save to Rally Vault. */
.save-replay-camera-list{gap:6px!important;padding:8px!important;overflow:hidden}
.save-replay-camera-list .save-replay-camera-row{display:flex!important;align-items:center!important;gap:10px!important;width:100%;margin:0!important;padding:9px 10px;border-radius:9px;background:#fff;font-weight:700;min-width:0}
.save-replay-camera-list .save-replay-camera-row input[type="checkbox"]{appearance:auto;-webkit-appearance:checkbox;width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;flex:0 0 22px!important;margin:0!important;padding:0!important;accent-color:var(--court-blue)}
.save-replay-camera-list .save-replay-camera-row span{display:block;min-width:0;flex:1;overflow-wrap:anywhere}

/* Advanced is permanently open now; no redundant camera-count summary. */
#advancedCameraSummary{display:none!important}
.match-details-grid{align-items:stretch!important}
.notes-column{align-self:stretch!important}
.notes-column textarea{flex:1!important;height:auto!important;min-height:0!important;max-height:none!important;overflow-y:auto!important;resize:none!important}
.advanced-column{align-self:stretch!important}

@media (min-width:821px){
  .court-live-preview{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 260px!important;
    grid-template-areas:"replay replay" "video rail" "hint hint"!important;
    column-gap:16px!important;
    row-gap:0!important;
    align-items:stretch!important;
  }
  .court-live-preview>.buffer-replay-controls{grid-area:replay!important}
  .court-live-preview>.live-video-shell{grid-area:video!important;margin:0!important}
  .court-live-preview>.preview-hint{grid-area:hint!important;margin:6px 0 0!important}
  .court-live-preview>.live-angle-thumbnails{
    grid-area:rail!important;
    height:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:8px!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:space-between!important;
    gap:8px!important;
  }
  .live-angle-thumb{flex:0 0 auto!important;margin:0!important;min-height:0!important}
  .live-angle-thumb-preview{aspect-ratio:16/9!important}
  .court-mode-tabs{margin-top:8px!important}
}
@media (max-width:820px){
  .buffer-replay-controls{grid-template-columns:1fr!important;grid-template-areas:"head" "scrub" "notice" "actions"!important}
  .buffer-replay-actions{display:grid!important;grid-template-columns:1fr 1fr!important}
  .notes-column textarea{min-height:150px!important;max-height:150px!important;height:150px!important}
}


/* v1.1.21 — blocker patch: desktop media grid containment + replay readiness */
@media (min-width:821px){
  .court-live-preview{
    width:100%!important;
    min-width:0!important;
    grid-template-columns:minmax(0,1fr) 260px!important;
    overflow:visible!important;
  }
  .court-live-preview>.live-video-shell{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }
  .court-live-preview>.live-video-shell video{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    box-sizing:border-box!important;
  }
  .court-live-preview>.live-angle-thumbnails{
    min-width:0!important;
    width:260px!important;
    max-width:260px!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  .court-live-preview>.live-angle-thumbnails .live-angle-thumb{
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
}

/* v1.1.22 — aligned media row + dynamic alternate camera rail */
@media (min-width:821px){
  .court-live-preview{
    display:block!important;
    width:100%!important;
    min-width:0!important;
  }
  .court-live-preview>.buffer-replay-controls{margin:0 0 12px!important}
  .live-media-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) 260px;
    gap:16px;
    align-items:stretch;
    width:100%;
    min-width:0;
  }
  .live-media-row>.live-video-shell{
    min-width:0!important;
    width:100%!important;
    aspect-ratio:16/9;
    height:auto!important;
    overflow:hidden!important;
    margin:0!important;
  }
  .live-media-row>.live-video-shell video,
  .live-media-row>.live-video-shell canvas.live-transition-frame{
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    object-fit:contain!important;
    background:#000;
  }
  .live-media-row>.live-angle-thumbnails{
    min-width:0!important;
    width:260px!important;
    height:100%!important;
    max-height:100%!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
    margin:0!important;
    padding:8px!important;
    display:grid!important;
    grid-template-rows:repeat(2,minmax(0,1fr));
    gap:10px!important;
    align-content:stretch!important;
  }
  .live-media-row>.live-angle-thumbnails.scrollable{
    display:flex!important;
    flex-direction:column!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
  }
  .live-media-row>.live-angle-thumbnails .live-angle-thumb{
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    height:100%!important;
    max-width:100%!important;
    margin:0!important;
    box-sizing:border-box!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
  }
  .live-media-row>.live-angle-thumbnails:not(.scrollable) .live-angle-thumb-preview{
    flex:1 1 auto!important;
    min-height:0!important;
    aspect-ratio:auto!important;
  }
  .live-media-row>.live-angle-thumbnails:not(.scrollable) .live-angle-thumb-preview canvas{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }
  .live-media-row>.live-angle-thumbnails.scrollable .live-angle-thumb{
    flex:0 0 auto!important;
    height:auto!important;
    min-height:210px!important;
  }
  .live-media-row>.live-angle-thumbnails.scrollable .live-angle-thumb-preview{
    aspect-ratio:16/9!important;
  }
  .court-live-preview>.preview-hint{margin:6px 0 0!important}
  .court-mode-tabs{margin-top:8px!important}
  .buffer-replay-actions{grid-template-columns:auto auto auto!important}
}
@media (max-width:820px){
  .live-media-row{display:block}
  .live-media-row>.live-angle-thumbnails{display:none!important}
  .buffer-replay-actions{grid-template-columns:1fr 1fr!important}
  .buffer-replay-actions .replay-audio-toggle{grid-column:1/-1}
}


/* v1.1.23 — floating activity dock + repaired alternate-camera rail */
.app-header{position:relative;z-index:30;min-height:132px}
.activity-dock{
  position:absolute;
  z-index:60;
  top:42px;
  right:0;
  width:min(520px,42vw);
  display:grid;
  gap:8px;
  pointer-events:none;
}
.activity-dock>*{pointer-events:auto}
.activity-dock .buffer-replay-controls{
  margin:0!important;
  padding:12px 14px!important;
  border-radius:15px!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"head head" "scrub scrub" "notice notice" "actions actions"!important;
  gap:7px 10px!important;
  max-height:210px;
  box-shadow:0 14px 38px rgba(10,48,73,.24)!important;
}
.activity-dock .buffer-replay-controls.hidden{
  max-height:0!important;
  margin:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
}
.activity-dock .buffer-replay-head{min-width:0}
.activity-dock .buffer-replay-head strong{font-size:15px!important}
.activity-dock .buffer-replay-head>span{font-size:12px!important}
.activity-dock .buffer-replay-scrubber{height:20px!important;min-height:20px!important}
.activity-dock .buffer-replay-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:7px!important;flex-wrap:nowrap!important}
.activity-dock .compact-action{min-height:34px!important;height:34px!important;padding:0 11px!important;border-radius:10px!important;font-size:12px!important;line-height:1!important;white-space:nowrap}
.activity-dock .replay-audio-toggle{min-width:78px}
.activity-dock #activeBannerReveal{margin:0!important}
.activity-dock #activeBannerReveal:not(.open){height:0;overflow:hidden}
.activity-dock #activeBannerReveal .reveal-inner{padding:0!important}
.activity-dock .active-banner{
  margin:0!important;
  padding:11px 13px!important;
  min-height:0!important;
  border-radius:15px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:10px!important;
  align-items:center!important;
  box-shadow:0 14px 38px rgba(10,48,73,.22);
}
.activity-dock .active-title{font-size:14px!important}
.activity-dock .active-meta{margin-top:3px!important;gap:7px!important}
.activity-dock .timer{font-size:18px!important}
.activity-dock .active-name,.activity-dock .tag-row,.activity-dock #sessionCameras{font-size:11px!important}
.activity-dock #stopSession{align-self:center}

@media (min-width:821px){
  /* The currently-selected main camera is omitted; alternate cards fill the rail width. */
  .live-media-row>.live-angle-thumbnails{
    grid-template-columns:1fr!important;
    grid-auto-flow:row!important;
    justify-items:stretch!important;
    align-items:stretch!important;
  }
  .live-media-row>.live-angle-thumbnails .live-angle-thumb{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
  }
  .live-media-row>.live-angle-thumbnails .live-angle-thumb-preview{
    width:100%!important;
    min-width:0!important;
  }
  .live-media-row>.live-angle-thumbnails .live-angle-thumb>span{
    width:100%!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
}

@media (max-width:1100px) and (min-width:821px){
  .activity-dock{width:min(470px,48vw)}
}
@media (max-width:820px){
  .app-header{min-height:0}
  .activity-dock{
    position:fixed;
    top:max(10px,env(safe-area-inset-top));
    left:10px;
    right:10px;
    width:auto;
    z-index:120;
  }
  .activity-dock .buffer-replay-controls{grid-template-columns:1fr!important;grid-template-areas:"head" "scrub" "notice" "actions"!important}
  .activity-dock .buffer-replay-actions{display:flex!important;overflow-x:auto!important;justify-content:flex-start!important;padding-bottom:1px}
  .activity-dock .compact-action{flex:0 0 auto}
  .activity-dock .active-banner{grid-template-columns:minmax(0,1fr) auto!important}
}


/* v1.1.24 — feature lock: compact shell, roller-blind activity, Rally View */
.app-header{min-height:88px!important;padding-top:10px!important;padding-bottom:6px!important}
.shell{padding-top:8px!important}
.view-tabs{margin-top:4px!important;margin-bottom:10px!important}
.capture-workspace-card{padding-top:14px!important}
.header-settings-button svg{width:21px;height:21px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.camera-name-overlay{position:absolute;left:12px;top:12px;z-index:6;padding:5px 9px;border-radius:999px;background:rgba(6,20,25,.72);color:#fff;font-size:11px;font-weight:850;letter-spacing:.01em;backdrop-filter:blur(3px);pointer-events:none}
.video-debug-overlay:not(.hidden)+.camera-name-overlay{top:100px}

/* fixed top activity 'roller blind' that never pushes page content */
.activity-dock{position:fixed!important;top:0!important;left:50%!important;right:auto!important;width:min(640px,calc(100vw - 430px))!important;min-width:360px;transform:translate(-50%,-105%);transition:transform .28s cubic-bezier(.2,.75,.25,1);z-index:2147483000!important;pointer-events:none!important;gap:0!important}
.activity-dock:has(.buffer-replay-controls:not(.hidden)),.activity-dock:has(#activeBannerReveal.open){transform:translate(-50%,0)}
.activity-dock>*{pointer-events:auto!important}
.activity-dock .buffer-replay-controls,.activity-dock .active-banner{border-radius:0 0 16px 16px!important;box-shadow:0 12px 32px rgba(10,48,73,.25)!important}
.activity-dock .buffer-replay-controls{padding:9px 12px 10px!important;grid-template-areas:"head actions" "scrub scrub" "notice notice"!important;grid-template-columns:minmax(0,1fr) auto!important}
.activity-dock .buffer-replay-actions{gap:6px!important}
.activity-dock .compact-action{height:31px!important;min-height:31px!important;padding:0 9px!important;font-size:11px!important}
.activity-dock .replay-audio-toggle{width:34px!important;min-width:34px!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}
.activity-dock .replay-audio-toggle .speaker-icon{width:19px;height:19px}.replay-audio-toggle[aria-pressed="true"] .speaker-slash{display:none}.replay-audio-toggle[aria-pressed="false"] .speaker-waves{display:none}
.activity-dock .active-banner{padding:9px 12px!important}.activity-dock .active-name,.activity-dock #sessionCameras{display:inline!important}.activity-dock #sessionTags{display:none!important}
@media(max-width:1100px) and (min-width:821px){.activity-dock{width:min(560px,calc(100vw - 330px))!important;min-width:340px}}
@media(max-width:820px){.activity-dock{left:8px!important;right:8px!important;top:0!important;width:auto!important;min-width:0!important;transform:translateY(-105%)!important}.activity-dock:has(.buffer-replay-controls:not(.hidden)),.activity-dock:has(#activeBannerReveal.open){transform:translateY(0)!important}}

/* Look Back custom spacing */
#customDurationReveal .reveal-inner,.custom-duration-row{row-gap:14px!important}.custom-duration-row+.action-button,#startReplay{margin-top:14px!important}

/* Rally Vault utility strip: compact, with breathing room above */
.history-card{padding-bottom:0!important}.history-meta-row.tags-primary{margin-bottom:12px!important}.history-card-footer{min-height:48px!important;height:48px!important;padding:6px 14px!important;margin-top:auto!important}.history-card-footer .card-utility-icons>.icon-button,.history-card-footer .card-utility-icons>.media-location,.history-card-footer .delete-icon-button{width:34px!important;height:34px!important;min-height:34px!important}.history-card.processing .history-card-footer{margin-top:12px!important}

/* Rally View mirrors Court View */
.player-modal{width:min(1240px,97vw)!important;max-width:1240px!important}
.rally-view-media-row{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:14px;align-items:stretch}
.rally-view-media-row .player-main-column{min-width:0}.rally-view-media-row .player-video-shell{height:100%;min-height:360px;position:relative}.rally-view-media-row .player-video-shell video{width:100%;height:100%;object-fit:contain;max-height:none;background:#000}
.player-angle-thumbnails{display:grid!important;grid-template-columns:1fr!important;grid-auto-rows:minmax(0,1fr);gap:10px;min-height:0;max-height:none!important;overflow-y:auto;padding:9px;border:1px solid #d6e2dc;border-radius:15px;background:#f7faf8}
.player-angle-thumbnails.hidden{display:none!important}.player-angle-thumb{width:100%!important;min-width:0!important;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:6px;padding:6px!important;border-radius:12px!important}.player-angle-thumb video,.player-angle-thumb canvas{display:block;width:100%!important;height:100%!important;min-height:0;aspect-ratio:16/9;object-fit:cover;border-radius:9px;background:#080d10}.player-angle-thumb span{font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.rally-view-metadata{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:18px;margin-top:14px;padding:14px!important;border:1px solid #d6e2dc;border-radius:15px;background:#fbfdfc}.rally-view-metadata section+section{border-top:0!important;border-left:1px solid #e1e8e4;padding-left:18px}.rally-view-metadata h3{margin-top:0}.rally-mobile-camera-picker{display:none}
@media(max-width:820px){.player-modal{width:calc(100% - 12px)!important}.rally-view-media-row{display:block}.player-angle-thumbnails{display:none!important}.rally-mobile-camera-picker{display:flex;align-items:center;gap:8px;margin:10px 0}.rally-mobile-camera-picker label{font-size:12px;font-weight:850}.rally-mobile-camera-picker select{flex:1}.rally-view-metadata{grid-template-columns:1fr}.rally-view-metadata section+section{border-left:0!important;border-top:1px solid #e1e8e4!important;padding-left:0;padding-top:12px}.rally-view-media-row .player-video-shell{min-height:220px;height:auto}.rally-view-media-row .player-video-shell video{height:auto;aspect-ratio:16/9}}
.live-angle-thumb-preview video{display:block;width:100%;height:100%;aspect-ratio:16/9;object-fit:cover;border-radius:inherit;background:#090d11}
.rally-switch-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;z-index:5;pointer-events:none}
.failed-count{color:#a33333!important}

/* v1.1.25 — Live View, compact activity, deterministic Rally states */
.camera-name-overlay{left:50%!important;right:auto!important;transform:translateX(-50%)}
.activity-dock{width:min(560px,calc(100vw - 430px))!important}
.activity-dock .active-banner{grid-template-columns:minmax(0,1fr) auto!important}
.activity-dock .buffer-replay-controls{grid-template-areas:"head actions" "timeline timeline" "notice notice"!important}
.replay-timeline{grid-area:timeline;display:grid;grid-template-columns:38px minmax(0,1fr) 38px;align-items:center;gap:8px;color:#fff;font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}
.replay-timeline>span:last-child{text-align:right}.replay-icon-action{width:34px!important;min-width:34px!important;padding:0!important}
#customDurationReveal[aria-hidden="false"]{margin-top:12px!important;margin-bottom:12px!important}
#customDurationReveal .reveal-inner{padding-block:2px!important}.custom-duration{align-items:center!important}
.history-card-footer.utility-bar{min-height:38px!important;height:38px!important;padding:2px 12px!important;border-radius:0 0 17px 17px!important}
.history-card-footer .media-location{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important}.history-card-footer .media-location svg{width:23px!important;height:23px!important}
.history-card.home-only{cursor:default}.history-card.home-only .card-processing-state{display:none!important}
.player-inline-name{font-size:inherit!important;line-height:1.15!important;font-weight:850!important}
.metadata-heading-icon svg{display:block;width:19px;height:19px}
.video-info-grid .info-row-icon{font-size:20px!important;min-width:25px!important}
@media(min-width:821px){
  .player-modal .rally-view-media-row{display:grid!important;grid-template-columns:minmax(0,1fr) 245px!important;grid-template-areas:"main rail"!important;gap:14px!important;align-items:stretch!important}
  .player-modal .player-main-column{grid-area:main!important;position:relative!important;inset:auto!important;width:auto!important;min-width:0!important}
  .player-modal .player-angle-thumbnails:not(.hidden){grid-area:rail!important;position:relative!important;inset:auto!important;width:245px!important;height:auto!important;display:grid!important;grid-template-columns:1fr!important;grid-auto-rows:minmax(0,1fr)!important;overflow-y:auto!important;z-index:auto!important}
  .player-angle-thumb{position:relative!important;inset:auto!important;width:100%!important;height:auto!important;min-height:0!important}.player-angle-thumb video{width:100%!important;height:100%!important;aspect-ratio:16/9!important;object-fit:cover!important}
}
@media(max-width:820px){.player-modal .rally-view-media-row{display:block!important}.player-modal .player-angle-thumbnails{display:none!important}.rally-mobile-camera-picker{display:flex!important}.camera-name-overlay{max-width:70%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
.court-mode-panel#matchCapturePanel.active{display:flex!important;flex-direction:column!important}
#matchCapturePanel>.court-mode-description{order:1}
#matchCapturePanel>#liveCaptureSection{order:2;margin-top:8px;margin-bottom:14px}
#matchCapturePanel>.match-capture-primary-actions{order:3}

/* v1.1.26 — stable playback controls and card work states */
.camera-name-overlay{opacity:1;transition:opacity .35s ease}.camera-name-overlay.faded{opacity:0}.live-video-shell:hover .camera-name-overlay,.live-video-shell:focus-within .camera-name-overlay{opacity:1}
.activity-dock .buffer-replay-controls{grid-template-areas:"head actions" "timeline timeline" "notice notice"!important;grid-template-columns:minmax(0,1fr) auto!important}
.buffer-replay-actions{grid-area:actions!important;display:flex!important;justify-content:flex-end!important}
.replay-timeline{grid-template-columns:auto 36px minmax(90px,1fr) 36px!important;gap:7px!important}.replay-transport{display:flex;gap:5px;align-items:center}.replay-transport .compact-action{width:31px!important;min-width:31px!important;height:31px!important;padding:0!important}.replay-transport svg{width:18px;height:18px}.replay-timeline .buffer-replay-scrubber{margin:0!important}
.custom-duration{align-items:end!important}.custom-duration>input,.custom-duration>select{margin-bottom:0!important}
.camera-tools-head .text-button{font-size:10px!important;line-height:1!important;padding:6px 8px!important;min-height:28px!important}
.history-card-footer .media-location svg{width:26px!important;height:26px!important;stroke-width:2!important}
.card-footer-work{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;font-size:12px;font-weight:850;color:#315f73}.card-footer-work>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-footer-work.complete{color:#126b4d}.work-complete{font-size:16px}.dismiss-card-work{margin-left:auto!important;width:25px!important;height:25px!important;min-width:25px!important;min-height:25px!important;padding:0!important;border-radius:50%!important;background:transparent!important;color:inherit!important;font-size:18px!important;line-height:1!important}
.video-info-grid .info-row-icon svg{width:21px;height:21px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.player-modal[open]{position:fixed!important;top:max(10px,env(safe-area-inset-top))!important;bottom:auto!important;margin:0 auto!important;max-height:calc(100dvh - 20px)!important;overflow:auto!important}
@media(max-width:820px){.activity-dock .buffer-replay-controls{grid-template-areas:"head" "actions" "timeline" "notice"!important}.buffer-replay-actions{justify-content:flex-start!important}.replay-timeline{grid-template-columns:auto 34px minmax(70px,1fr) 34px!important}.player-modal[open]{left:6px!important;right:6px!important}}

/* v1.1.27 — bounded media switching and responsive replay controls */
.history-card.processing .history-card-footer,.history-card .history-card-footer:has(.card-footer-work){margin-top:auto!important}
.history-card-footer.utility-bar{box-sizing:border-box;width:calc(100% + (2 * var(--history-card-side-pad)));flex:0 0 38px!important}
.history-card-footer .media-location svg{width:31px!important;height:31px!important;stroke-width:2.15!important}
.history-creator{margin-top:3px;color:var(--muted);font-size:11px;font-weight:750}
.buffer-status-panel{margin:12px 0;padding:10px 12px;border:1px solid #dce8e2;border-radius:12px;background:#f7faf8}
.buffer-status-panel .setting-status-row{margin:0;padding:6px 0;border-bottom:1px solid #e6eeea}
.buffer-status-panel .setting-status-row:last-of-type{border-bottom:0}
.buffer-person-row{align-items:flex-start!important}.buffer-person-row strong{max-width:64%;text-align:right;line-height:1.35}
.player-angle-thumb{display:block!important;position:relative!important;padding:6px!important;overflow:hidden!important}
.player-angle-thumb.switching .player-angle-preview::after{content:"Loading preview…";position:absolute;inset:0;display:grid;place-items:center;background:#080d10;color:#dbe7e2;font-size:11px;font-weight:800;z-index:2}
.recorded-thumbnail-frame{position:absolute!important;inset:0;display:block!important;padding:0!important;background:#080d10}.recorded-thumbnail-frame>img{display:block;width:100%;height:100%;object-fit:cover}.recorded-thumbnail-frame>.camera-thumbnail-state{position:absolute;inset:0}
.simulated-camera-two img{transform:scaleX(-1)}.simulated-camera-three img{transform:scaleY(-1)}
.activity-card-competition.no-score{grid-template-columns:minmax(0,1fr)!important}.activity-card-competition.no-score .activity-card-lineup{display:grid;justify-items:center;overflow:visible}.activity-card-competition.no-score .activity-match-players,.activity-card-competition.no-score .activity-match-players.doubles{justify-content:center!important}
.rail-scroll-cue{position:sticky;left:0;z-index:8;display:block;width:100%;min-height:28px;padding:5px 8px!important;border:0;border-radius:9px;background:rgba(10,31,34,.88)!important;color:#fff!important;font-size:10px!important;font-weight:850;line-height:1;opacity:0;pointer-events:none;transition:opacity .18s}.rail-scroll-cue.visible{opacity:1;pointer-events:auto}.rail-scroll-cue[data-rail-scroll="up"]{top:0;margin-bottom:-28px}.rail-scroll-cue[data-rail-scroll="down"]{bottom:0;margin-top:-28px}.live-angle-thumbnails,.player-angle-thumbnails,.activity-angle-thumbnails{box-sizing:border-box}
.player-angle-preview{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:9px;background:#080d10}
.player-angle-preview video,.live-angle-thumb-preview video{position:absolute;inset:0;width:100%!important;height:100%!important;aspect-ratio:auto!important;object-fit:cover!important}
.camera-name-pill{position:absolute!important;top:7px;left:50%;transform:translateX(-50%);z-index:3;display:block!important;max-width:calc(100% - 14px);padding:4px 9px!important;border-radius:999px;background:rgba(7,18,20,.78);color:#fff;font-size:10px!important;font-weight:850;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.live-angle-thumb-preview{position:relative!important;aspect-ratio:16/9!important;min-height:0!important;height:auto!important}
.player-modal[open]{top:50%!important;bottom:auto!important;transform:translateY(-50%)!important;margin:0 auto!important}
.player-modal[open].editing-metadata{top:var(--editing-top,10px)!important;transform:none!important}
.court-live-preview:fullscreen{box-sizing:border-box;width:100vw;height:100vh;padding:18px;background:#071013;display:flex;flex-direction:column;justify-content:center}
.court-live-preview:fullscreen .capture-workspace-heading,.court-live-preview:fullscreen .live-camera-picker,.court-live-preview:fullscreen .court-mode-tabs,.court-live-preview:fullscreen .capture-modes{display:none!important}
.court-live-preview:fullscreen .live-media-row{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(180px,22vw)!important;max-height:100%!important}
.court-live-preview:fullscreen .live-angle-thumbnails{display:grid!important}
.court-live-preview:fullscreen>.buffer-replay-controls{position:absolute!important;left:50%!important;bottom:max(10px,env(safe-area-inset-bottom))!important;transform:translateX(-50%)!important;width:min(720px,calc(100vw - 24px))!important;margin:0!important;z-index:20!important}
@media(max-width:820px){
  .match-participant-fields{grid-template-columns:1fr}
  .activity-dock{box-sizing:border-box!important;left:max(6px,env(safe-area-inset-left))!important;right:max(6px,env(safe-area-inset-right))!important;top:0!important;width:auto!important;max-width:none!important;min-width:0!important;margin:0!important;transform:translateY(-110%)!important}
  .activity-dock:has(.buffer-replay-controls:not(.hidden)),.activity-dock:has(#activeBannerReveal.open){transform:translateY(0)!important}
  .activity-dock .buffer-replay-controls{box-sizing:border-box!important;width:100%!important;min-width:0!important;grid-template-areas:"head" "actions" "timeline" "notice"!important;grid-template-columns:minmax(0,1fr)!important;padding:8px 10px 10px!important}
  .replay-timeline{align-self:end!important;grid-template-columns:auto minmax(0,1fr) auto!important;grid-template-areas:"transport transport transport" "current scrub total"!important;gap:5px 7px!important;width:100%!important;min-width:0!important}
  .replay-transport{grid-area:transport}.replay-timeline>span:first-of-type{grid-area:current}.replay-timeline input{grid-area:scrub}.replay-timeline>span:last-child{grid-area:total}
  .buffer-replay-head strong{font-size:13px!important}.buffer-replay-actions{justify-content:flex-end!important;min-width:0!important}.buffer-replay-actions .compact-action{padding-inline:7px!important;font-size:10px!important}
  .player-modal[open]{top:50%!important;left:6px!important;right:6px!important;transform:translateY(-50%)!important;max-height:calc(100dvh - 12px)!important}
}

/* v1.1.28 — deterministic replay timeline and app-controlled full viewport */
.replay-timeline{display:grid!important;grid-template-columns:auto auto minmax(120px,1fr) auto!important;grid-template-areas:"transport current scrub total"!important;align-items:center!important;column-gap:9px!important;width:100%!important;min-width:0!important}
.replay-transport{grid-area:transport!important}.replay-timeline>span:first-of-type{grid-area:current!important}.replay-timeline input{grid-area:scrub!important;width:100%!important;min-width:0!important}.replay-timeline>span:last-child{grid-area:total!important}
.court-live-preview.replay-fullscreen{position:fixed!important;inset:0!important;z-index:2147483000!important;box-sizing:border-box!important;width:100vw!important;height:100dvh!important;padding:12px!important;background:#071013!important;display:grid!important;grid-template-rows:minmax(0,1fr) auto!important;overflow:hidden!important}
.court-live-preview.replay-fullscreen .live-media-row{min-height:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(180px,22vw)!important;gap:12px!important;align-items:stretch!important}
.court-live-preview.replay-fullscreen .live-video-shell{height:100%!important;min-height:0!important}.court-live-preview.replay-fullscreen .live-video-shell video{width:100%!important;height:100%!important;object-fit:contain!important}
.court-live-preview.replay-fullscreen .live-angle-thumbnails{display:grid!important;grid-template-columns:1fr!important;grid-auto-rows:minmax(0,1fr)!important;margin:0!important;min-height:0!important;overflow:auto!important}
.court-live-preview.replay-fullscreen>.buffer-replay-controls{position:relative!important;inset:auto!important;transform:none!important;width:min(980px,calc(100vw - 24px))!important;margin:8px auto 0!important;box-sizing:border-box!important;grid-template-areas:"head actions" "timeline timeline" "notice notice"!important;grid-template-columns:minmax(0,1fr) auto!important}
body.replay-fullscreen-open{overflow:hidden!important}
.player-modal .rally-view-media-row{align-items:start!important}.player-modal .player-angle-thumbnails{align-self:start!important}
.history-card-footer.utility-bar{margin-top:auto!important;position:relative!important;bottom:auto!important}
.cancel-capture{margin-left:auto!important;width:25px!important;height:25px!important;min-width:25px!important;min-height:25px!important;padding:0!important;border-radius:50%!important;background:transparent!important;color:#9a2f2f!important;font-size:18px!important;line-height:1!important}
@media(max-width:820px){.replay-timeline{grid-template-columns:auto auto minmax(0,1fr) auto!important;grid-template-areas:"transport current scrub total"!important}.court-live-preview.replay-fullscreen{padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important}.court-live-preview.replay-fullscreen .live-media-row{grid-template-columns:1fr!important}.court-live-preview.replay-fullscreen .live-angle-thumbnails{display:none!important}.court-live-preview.replay-fullscreen>.buffer-replay-controls{width:100%!important;margin-top:6px!important}.court-live-preview.replay-fullscreen .preview-camera-row{display:none!important}}
@media(max-width:560px) and (orientation:portrait){.replay-timeline{grid-template-columns:auto minmax(0,1fr) auto!important;grid-template-areas:"transport transport transport" "current scrub total"!important;row-gap:6px!important}}

/* v1.2.0-beta.4 — keep both replay actions reachable in iPhone portrait. */
@media(max-width:560px) and (orientation:portrait){
  .activity-dock .buffer-replay-controls:not(.hidden){max-height:300px!important;overflow:visible!important}
  .activity-dock .buffer-replay-actions{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;width:100%!important;overflow:visible!important}
  .activity-dock .buffer-replay-actions .compact-action{box-sizing:border-box!important;width:100%!important;min-width:0!important;overflow:hidden;text-overflow:ellipsis}
}

/* v1.2.0-beta.6 — deterministic iPhone replay fullscreen. */
.replay-rotate-notice{display:none}
@media(max-width:820px) and (orientation:portrait){
  .court-live-preview.replay-fullscreen{display:flex!important;align-items:center!important;justify-content:center!important;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))!important}
  .court-live-preview.replay-fullscreen>.live-media-row,
  .court-live-preview.replay-fullscreen>.preview-camera-row,
  .court-live-preview.replay-fullscreen>.buffer-replay-controls,
  .court-live-preview.replay-fullscreen>#liveRoute{display:none!important}
  .court-live-preview.replay-fullscreen>.replay-rotate-notice{position:absolute;inset:0;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 28px;box-sizing:border-box;background:#071013;color:#fff;text-align:center;z-index:2}
  .replay-rotate-notice strong{font-size:clamp(27px,8vw,40px);line-height:1.05}
  .replay-rotate-notice>span{max-width:330px;color:rgba(255,255,255,.76);font-size:15px;line-height:1.4}
  .replay-rotate-phone{width:54px;height:92px;border:4px solid rgba(255,255,255,.9);border-radius:12px;display:grid;place-items:end center;transform:rotate(-18deg);animation:replay-phone-rotate 1.8s ease-in-out infinite alternate}
  .replay-rotate-phone span{width:18px;height:4px;margin-bottom:6px;border-radius:999px;background:rgba(255,255,255,.7)}
  .replay-rotate-exit{position:absolute;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:44px;height:44px;min-height:44px;padding:0;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font-size:30px;line-height:1}
}
@keyframes replay-phone-rotate{to{transform:rotate(72deg)}}
@media(max-width:820px) and (orientation:landscape){
  .court-live-preview.replay-fullscreen{grid-template-rows:minmax(0,1fr) auto!important;padding:max(4px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important;gap:4px!important}
  .court-live-preview.replay-fullscreen>.replay-rotate-notice{display:none!important}
  .court-live-preview.replay-fullscreen .live-media-row{display:block!important;width:100%!important;height:100%!important;min-height:0!important}
  .court-live-preview.replay-fullscreen .live-video-shell{width:100%!important;height:100%!important;min-height:0!important;border-radius:0!important}
  .court-live-preview.replay-fullscreen .live-video-shell video{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-height:none!important;object-fit:contain!important}
  .court-live-preview.replay-fullscreen>.buffer-replay-controls{width:100%!important;max-height:none!important;margin:0!important;padding:6px 9px!important;border-radius:10px!important;overflow:visible!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"head actions" "timeline timeline"!important;gap:4px 8px!important}
  .court-live-preview.replay-fullscreen>.buffer-replay-controls #bufferReplayNotice{display:none!important}
  .court-live-preview.replay-fullscreen .buffer-replay-head strong{font-size:12px!important}
  .court-live-preview.replay-fullscreen .buffer-replay-kicker{display:none!important}
  .court-live-preview.replay-fullscreen .buffer-replay-actions{display:flex!important;justify-content:flex-end!important;gap:5px!important;overflow:visible!important}
  .court-live-preview.replay-fullscreen .buffer-replay-actions .compact-action{height:28px!important;min-height:28px!important;padding:0 8px!important;font-size:10px!important}
  .court-live-preview.replay-fullscreen .replay-timeline{grid-template-columns:auto auto minmax(80px,1fr) auto!important;grid-template-areas:"transport current scrub total"!important;gap:4px 7px!important}
  .court-live-preview.replay-fullscreen .replay-transport .compact-action{width:28px!important;min-width:28px!important;height:28px!important}
}

/* v1.2.0-beta.7 — the fullscreen viewer is reparented under body so Safari's
   animated Court View container cannot constrain its fixed positioning. */
body>.court-live-preview.replay-fullscreen{position:fixed!important;inset:0!important;margin:0!important;max-width:none!important;max-height:none!important;width:100vw!important;height:100dvh!important;z-index:2147483646!important}

/* v1.2.0-beta.8 — mobile fullscreen is video-only with swipe navigation. */
.replay-mobile-exit{display:none}
@media(max-width:820px){
  body>.court-live-preview.replay-fullscreen>.buffer-replay-controls{display:none!important}
  body>.court-live-preview.replay-fullscreen .live-angle-thumbnails,
  body>.court-live-preview.replay-fullscreen .preview-camera-row,
  body>.court-live-preview.replay-fullscreen .camera-name-overlay,
  body>.court-live-preview.replay-fullscreen .video-debug-overlay,
  body>.court-live-preview.replay-fullscreen .live-mode-splash,
  body>.court-live-preview.replay-fullscreen .live-replay-ended{display:none!important}
}
@media(max-width:820px) and (orientation:landscape){
  body>.court-live-preview.replay-fullscreen{display:block!important;padding:0!important;background:#000!important}
  body>.court-live-preview.replay-fullscreen>.live-media-row{display:block!important;width:100%!important;height:100%!important}
  body>.court-live-preview.replay-fullscreen .live-video-shell{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;border-radius:0!important;background:#000!important}
  body>.court-live-preview.replay-fullscreen .live-video-shell video{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-height:none!important;object-fit:contain!important;background:#000!important}
  body>.court-live-preview.replay-fullscreen>.replay-mobile-exit{position:absolute;display:grid!important;place-items:center;top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));z-index:30;width:38px;height:38px;min-height:38px;padding:0;border:1px solid rgba(255,255,255,.38);border-radius:50%;background:rgba(5,16,20,.66);color:#fff;font-size:26px;line-height:1;backdrop-filter:blur(4px)}
}

/* v1.2.0-beta.9 — app-selected mobile fullscreen, independent of landscape
   viewport width. The primary video owns the viewport; gestures replace UI. */
body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen{
  position:fixed!important;inset:0!important;display:block!important;width:100vw!important;height:100dvh!important;
  margin:0!important;padding:0!important;overflow:hidden!important;background:#000!important;touch-action:manipulation
}
body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen>.live-media-row,
body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen .live-video-shell{
  position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;
  min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:#000!important
}
body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen .live-video-shell video{
  position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;
  max-width:none!important;max-height:none!important;margin:0!important;object-fit:contain!important;background:#000!important
}
body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen .live-angle-thumbnails,
body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen .preview-camera-row,
body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen .camera-name-overlay,
body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen .video-debug-overlay,
body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen .live-mode-splash,
body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen>.buffer-replay-controls,
body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen>#liveRoute{display:none!important}
body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen .live-replay-ended.show{
  display:flex!important;pointer-events:auto!important;cursor:pointer;z-index:25
}
body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen>.replay-mobile-exit{
  position:absolute;display:grid!important;place-items:center;top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));
  z-index:30;width:38px;height:38px;min-height:38px;padding:0;border:1px solid rgba(255,255,255,.38);border-radius:50%;
  background:rgba(5,16,20,.66);color:#fff;font-size:26px;line-height:1;backdrop-filter:blur(4px)
}

/* v1.2.0 — touch feedback for the video-only mobile replay viewer. */
.replay-gesture-overlay{position:absolute;inset:0;z-index:24;display:flex;align-items:center;justify-content:center;pointer-events:none;color:#fff;opacity:0;transition:opacity .16s ease}
.replay-gesture-overlay.hidden{display:none}
.replay-gesture-overlay.show{opacity:1}
.replay-seek-feedback,.replay-paused-feedback{display:none;align-items:center;justify-content:center;filter:drop-shadow(0 3px 12px rgba(0,0,0,.65))}
.replay-gesture-overlay.seek{width:50%;background:radial-gradient(circle at center,rgba(5,16,20,.54),rgba(5,16,20,0) 58%)}
.replay-gesture-overlay.seek.backward{right:50%}
.replay-gesture-overlay.seek.forward{left:50%}
.replay-gesture-overlay.seek .replay-seek-feedback{position:relative;display:grid;width:88px;height:88px;place-items:center}
.replay-seek-feedback svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round}
.replay-gesture-overlay.forward .replay-seek-feedback svg{transform:scaleX(-1)}
.replay-seek-feedback strong{font-size:21px;font-weight:900;letter-spacing:-.03em}
.replay-gesture-overlay.paused{background:rgba(5,16,20,.3)}
.replay-gesture-overlay.paused .replay-paused-feedback{display:grid;gap:9px;justify-items:center}
.replay-paused-feedback span{display:grid;place-items:center;width:68px;height:68px;padding-left:5px;border:2px solid rgba(255,255,255,.9);border-radius:50%;background:rgba(5,16,20,.58);font-size:32px}
.replay-paused-feedback strong{font-size:18px;letter-spacing:.02em}
body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen .replay-gesture-overlay{display:flex}
@media(orientation:portrait){
  body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen>.live-media-row,
  body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen>.replay-mobile-exit{display:none!important}
  body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen>.replay-rotate-notice{
    position:absolute;inset:0;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:12px;
    padding:48px 28px;box-sizing:border-box;background:#071013;color:#fff;text-align:center;z-index:31
  }
}
@media(orientation:landscape){
  body>.court-live-preview.replay-fullscreen.mobile-replay-fullscreen>.replay-rotate-notice{display:none!important}
}

/* v1.3.0 Alpha 9 — scoped presentation restoration */
.auth-gate{width:100%;max-width:100vw}
.auth-card{width:min(440px,calc(100vw - 24px))!important;overflow:hidden}
.auth-card #clerkSignIn,.auth-card #clerkSignIn>*,.auth-card .cl-rootBox,.auth-card .cl-cardBox,.auth-card .cl-card{box-sizing:border-box!important;min-width:0!important;max-width:100%!important}

.recommended-section{width:100%;margin:0 0 16px;padding:18px}
.recommended-grid{display:flex;grid-template-columns:none;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;padding:10px 2px 5px;margin-top:4px;-webkit-overflow-scrolling:touch}
.recommend-card{flex:0 0 min(340px,85vw);scroll-snap-align:start;padding:13px;border:1px solid #d4e0dc;border-radius:14px;background:#fff;cursor:pointer;box-shadow:0 5px 16px rgba(17,53,39,.05)}
.recommend-card strong,.recommend-card small{display:block}.recommend-card small{margin-top:4px;color:var(--muted)}
.hopper-results-section{padding:18px}.hopper-results-section>.section-head{margin-bottom:13px}.hopper-results-section .activity-list{margin-bottom:13px}.hopper-results-section>.history-list>.card{box-shadow:none}

.add-player-button{width:auto!important;min-width:0!important;min-height:38px!important;padding:8px 12px!important;border-radius:11px!important;font-size:13px!important;white-space:nowrap}
.player-profile-card h3{font-size:21px;line-height:1.12}.player-rating{font-size:13px;font-weight:650}.player-display-name{margin-top:3px;color:var(--muted);font-size:12px}.profile-full-name{display:block;font-size:20px;line-height:1.15}
.player-avatar{position:relative}.player-avatar-fallback{display:grid;place-items:center;width:100%;height:100%}.player-avatar img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}.player-photo-editor{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;margin:12px 0}.player-photo-editor>div:last-child{display:grid;gap:7px}.player-photo-editor input[type=file]{min-height:0;padding:9px}.player-photo-editor small{color:var(--muted);font-size:12px}.player-photo-preview{width:76px;height:76px;font-size:25px}.player-profile-type-row{display:grid;gap:7px;margin-bottom:10px}.player-profile-type-row .hint,#playerAssignMemberRow .hint{margin:0}.player-profile-head>div{min-width:0}.player-profile-head .guest-pill{margin-left:auto}

.compact-recommend{flex:0 0 auto!important;width:auto!important;min-width:0!important;min-height:34px!important;height:34px!important;padding:0 11px!important;border-radius:10px!important;font-size:12px!important;line-height:1!important;white-space:nowrap}
.activity-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}
.activity-card{padding:0!important;display:flex;flex-direction:column}
.activity-card-main{flex:1 1 auto}
.activity-card-footer{box-sizing:border-box;width:100%;margin-top:auto!important;border-radius:0 0 17px 17px}
.activity-replay-count{display:inline-flex;align-items:center;gap:5px;color:#315c6e}.activity-replay-count svg{width:22px;height:22px;display:block}
.history-card-footer.utility-bar{display:flex!important;flex-wrap:nowrap!important}.history-card-actions{display:flex!important;align-items:center!important;gap:6px!important;margin-left:auto!important}.card-utility-icons{overflow:visible!important}

@media(max-width:560px){
  .auth-gate{padding-left:12px!important;padding-right:12px!important}.auth-card{padding:18px!important}
  .recommended-section,.hopper-results-section{padding:14px}
  .recommend-card{flex-basis:min(300px,82vw)}
  .library-heading-row{align-items:flex-start}.add-player-button{font-size:12px!important;padding-inline:10px!important}
  .history-card-footer.utility-bar{gap:4px!important;padding-left:8px!important;padding-right:8px!important}
  .card-utility-icons{gap:2px!important;flex:1 1 auto!important}.history-card-actions{flex:0 0 auto!important;gap:2px!important}
  .compact-recommend{height:32px!important;min-height:32px!important;padding:0 8px!important;font-size:11px!important}
  .activity-card-footer .compact-recommend{max-width:none!important}
}

/* Keep Alpha 11 activity layout authoritative over legacy entity-modal rules. */
.activity-view-modal{width:min(1050px,calc(100vw - 32px))}.activity-view-summary{display:flex;grid-template-columns:none;gap:12px;flex-wrap:wrap;margin-bottom:16px}.activity-view-summary>div{min-width:210px;display:grid;gap:5px}.activity-view-players{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0}
@media(max-width:700px){.activity-view-summary{display:flex;grid-template-columns:none}.activity-view-summary>div{min-width:0;flex:1 1 42%}}

/* v1.3.0 Alpha 12 — unified cards and responsive activity playback. */
#activityResults,#historyResults{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
#activityResults .activity-card,#historyResults .history-card{min-width:0;height:100%}
#activityResults .activity-card,.activity-card-main{background:#f4faf7}
#activityResults .activity-card-footer{background:#e6f2ed}
@media(max-width:760px){#activityResults,#historyResults{grid-template-columns:1fr!important}}

.tennis-scoreboard{display:inline-grid;width:max-content;max-width:100%;overflow-x:auto;background:transparent;padding:9px 0;margin:14px 0}
.score-player{grid-template-columns:minmax(112px,max-content) repeat(var(--set-count,3),30px)}
.score-player>span{font-weight:690}.score-player.winner>span{font-weight:880}.score-player.loser>span{font-weight:650}
.score-player strong{font-weight:620}.score-player strong.set-winner{font-weight:900}.score-player strong.set-loser{font-weight:590}

.recommend-member-row{display:flex!important;align-items:center!important;gap:15px!important;padding:14px 16px!important;margin:0!important;font-size:17px!important;cursor:pointer}
.recommend-member-row input{flex:0 0 auto;width:19px!important;height:19px!important;min-height:0!important;margin:0!important}
.recommend-member-row strong{font-size:17px;line-height:1.25}

.activity-view-modal{width:min(1440px,calc(100vw - 20px))!important;max-width:none!important;max-height:calc(100dvh - 16px)!important;margin-block:8px!important;overflow:auto!important}
.activity-viewer-grid{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:14px;align-items:start}
.activity-video-column{min-width:0}.activity-video-shell{margin:14px 0 8px}.activity-video-shell video{width:100%;max-height:min(70vh,820px);aspect-ratio:16/9;object-fit:contain}
.activity-angle-thumbnails{display:grid;gap:10px;max-height:min(70vh,820px);overflow-y:auto;padding:14px 4px 4px}
.activity-angle-thumb{display:grid;width:100%;gap:6px;padding:6px;border:1px solid #c7dcd5;border-radius:13px;background:#eef6f2;color:var(--ink);text-align:left}
.activity-angle-thumb.selected{outline:3px solid #7ca9ef}.activity-angle-preview{display:grid;place-items:center;aspect-ratio:16/9;overflow:hidden;border-radius:9px;background:#071013;color:#fff;font-size:12px}
.activity-angle-preview video{width:100%;height:100%;object-fit:cover}.activity-angle-thumb strong{padding:0 4px 3px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.activity-mobile-camera{display:none;margin:0 0 16px}.activity-mobile-camera span{display:block;margin-bottom:6px}
.activity-replay-overlay{position:absolute;top:18px;left:50%;z-index:4;transform:translateX(-50%);padding:8px 14px;border-radius:999px;background:rgba(7,16,19,.78);color:#fff;font-weight:850;pointer-events:none;transition:opacity .4s ease}.activity-replay-overlay.faded{opacity:0}
.activity-replay-exit{position:absolute;z-index:5;right:14px;top:14px;min-height:38px;padding:8px 12px;border:1px solid rgba(255,255,255,.45);border-radius:10px;background:rgba(7,16,19,.76);color:#fff;font-weight:800}
.activity-media-list{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}.activity-media-button{min-width:0}.activity-media-button>span:first-child{min-width:0}.activity-media-button strong,.activity-media-button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.add-media-results{gap:12px}.add-media-row{display:grid!important;grid-template-columns:auto 150px minmax(0,1fr)!important;justify-content:stretch!important;align-items:center!important;padding:10px!important;min-height:108px;cursor:pointer;color:var(--ink)!important}
.add-media-row input{width:19px!important;height:19px!important;min-height:0!important;margin:0 4px!important}.add-media-preview{display:grid!important;place-items:center!important;width:150px;height:84px;overflow:hidden;border-radius:10px;background:#071013;color:#fff}
.add-media-preview video{width:100%;height:100%;object-fit:cover}.add-media-placeholder{display:grid!important;place-items:center;width:100%;height:100%;font-size:25px;color:#fff}
.add-media-copy{display:grid!important;gap:4px;min-width:0}.add-media-copy strong{display:block!important;color:var(--ink)!important;font-size:16px}.add-media-copy small{display:block!important;color:var(--muted)!important;font-size:13px}

@media(max-width:900px){.activity-viewer-grid{grid-template-columns:1fr}.activity-angle-thumbnails{display:none}.activity-mobile-camera{display:block}.activity-media-list{grid-template-columns:1fr}.activity-view-modal{width:calc(100vw - 12px)!important;max-height:calc(100dvh - 8px)!important;margin-block:4px!important}}
@media(max-width:560px){.add-media-row{grid-template-columns:auto 96px minmax(0,1fr)!important}.add-media-preview{width:96px;height:60px}.add-media-copy small{font-size:11px}}

/* v1.3.0 Alpha 13 — one visual language for every multi-camera viewer. */
#activityResults .activity-card,.activity-card-main{background:#eef6ff!important}
#activityResults .activity-card-footer{background:#dfeeff!important;border-top-color:#c9dfef!important}

.score-player>span{font-size:15px;font-weight:620}.score-player.winner>span{font-size:17px;font-weight:900}.score-player.loser>span{font-size:15px;font-weight:580}
.score-player strong{font-size:15px;font-weight:580}.score-player strong.set-winner{font-size:18px;font-weight:900}.score-player strong.set-loser{font-size:15px;font-weight:560}
.activity-match-players{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0 4px}.activity-match-side{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.activity-versus{color:var(--muted);font-size:14px;text-transform:none}.activity-card-player{display:inline-flex;align-items:center;gap:6px}.activity-card-player strong{font-size:14px}.activity-view-players .activity-match-players{margin:0}.activity-view-players .activity-match-side{gap:12px}

.activity-view-modal{margin:auto!important;max-height:calc(100dvh - 16px)!important}
.activity-angle-preview{position:relative}.activity-angle-thumb{position:relative;padding:7px!important}.activity-angle-thumb.active,.activity-angle-thumb.selected{border-color:var(--court-blue)!important;outline:2px solid #7ca9ef!important;outline-offset:0}.activity-angle-thumb .camera-name-pill{width:auto!important;text-align:center!important}
.activity-video-shell>video#activityMediaPlayer{position:relative;z-index:1}
.activity-staged-video{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:.001!important;pointer-events:none!important;z-index:0!important}
.activity-replay-overlay{left:18px!important;transform:none!important}

.live-angle-thumb.selected,.player-angle-thumb.selected{border-color:var(--court-blue)!important;box-shadow:0 0 0 2px #7ca9ef!important}
.live-angle-thumb .camera-name-pill,.player-angle-thumb .camera-name-pill,.activity-angle-thumb .camera-name-pill{position:absolute!important;top:7px!important;left:50%!important;transform:translateX(-50%)!important;z-index:3!important;display:block!important;max-width:calc(100% - 14px)!important;padding:4px 9px!important;border-radius:999px!important;background:rgba(7,18,20,.78)!important;color:#fff!important;font-size:10px!important;font-weight:850!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;pointer-events:none!important}

.add-media-modal[open]{display:flex!important;flex-direction:column!important;width:min(760px,calc(100vw - 24px))!important;height:min(760px,calc(100dvh - 24px))!important;max-height:calc(100dvh - 24px)!important;margin:auto!important;overflow:hidden!important}
.add-media-modal>.modal-head,.add-media-modal>.hint,.add-media-modal>label,.add-media-modal>input,.add-media-modal>.modal-actions{flex:0 0 auto}
.add-media-modal .add-media-results{flex:1 1 auto;min-height:0;max-height:none!important;overflow-y:auto;margin:14px 0!important;padding:1px 4px 1px 1px}
.add-media-modal>.modal-actions{position:relative;z-index:2;margin-top:0;padding-top:13px;border-top:1px solid var(--line);background:var(--surface)}
.add-media-row{grid-template-columns:auto minmax(0,1fr)!important;min-height:82px!important;padding:12px 14px!important}
.add-media-preview,.add-media-placeholder{display:none!important}

@media(max-width:900px){.activity-view-modal{margin:auto!important}.activity-match-players{gap:8px}.activity-match-side{gap:6px}}
@media(max-width:560px){.add-media-modal[open]{width:calc(100vw - 12px)!important;height:calc(100dvh - 12px)!important;max-height:calc(100dvh - 12px)!important}.add-media-row{grid-template-columns:auto minmax(0,1fr)!important}}

/* v1.3.0 Alpha 14 — bounded angle rails and viewer feedback refinements. */
.simulated-camera-two video{transform:scaleX(-1)}
.simulated-camera-three video{transform:scaleY(-1)}
.score-player{align-items:center!important}
.score-player>span,.score-player>strong{display:flex;align-items:center;min-height:23px;line-height:1.05}
.score-player>strong{justify-content:center}
.activity-media-status .media-location{background:transparent!important;color:#315c6e!important}

@media(min-width:821px){
  .live-media-row{align-items:start!important}
  .live-media-row>.live-angle-thumbnails{
    display:flex!important;flex-direction:column!important;align-content:start!important;gap:8px!important;
    height:auto;max-height:none;overflow-y:auto!important;overflow-x:hidden!important;padding:6px!important;overscroll-behavior:contain
  }
  .live-media-row>.live-angle-thumbnails .live-angle-thumb,
  .live-media-row>.live-angle-thumbnails.scrollable .live-angle-thumb{flex:0 0 auto!important;height:auto!important;min-height:0!important}
  .live-media-row>.live-angle-thumbnails .live-angle-thumb-preview,
  .live-media-row>.live-angle-thumbnails:not(.scrollable) .live-angle-thumb-preview,
  .live-media-row>.live-angle-thumbnails.scrollable .live-angle-thumb-preview{flex:none!important;aspect-ratio:16/9!important}

  .player-modal .rally-view-media-row{align-items:start!important}
  .player-modal .player-angle-thumbnails:not(.hidden){
    display:flex!important;flex-direction:column!important;align-content:start!important;gap:8px!important;
    height:auto;max-height:none;overflow-y:auto!important;overflow-x:hidden!important;padding:6px!important
  }
  .player-modal .player-angle-thumb{flex:0 0 auto!important;height:auto!important}
}

.activity-viewer-grid{align-items:start!important}
.activity-video-shell{margin-bottom:4px!important}
.activity-angle-thumbnails{display:flex;flex-direction:column;align-content:start;gap:8px!important;height:auto;max-height:none;overflow-y:auto;overflow-x:hidden;padding:6px!important}
.activity-angle-thumb{flex:0 0 auto;height:auto!important}
.activity-media-viewer>h3{margin-top:12px}

/* v1.3.0 Alpha 15 — replay controls and responsive viewer corrections. */
.live-replay-ended.show{pointer-events:auto!important;cursor:pointer}
.activity-media-status .media-location{border:0!important;box-shadow:none!important;outline:0!important}

.add-media-modal[open]{
  display:grid!important;
  grid-template-rows:auto auto auto auto minmax(0,1fr) auto!important;
  align-content:stretch!important;
  overflow:hidden!important
}
.add-media-modal .add-media-results{min-height:0!important;height:auto!important;overflow-y:auto!important;overscroll-behavior:contain}
.add-media-modal>.modal-actions{position:sticky!important;bottom:0!important;z-index:5!important;margin:0!important;padding:13px 0 0!important;background:var(--surface)!important}

@media(max-width:900px){
  .activity-view-modal .activity-angle-thumbnails{display:none!important}
  .activity-view-modal .activity-mobile-camera{display:block!important}
}

@media(max-width:560px){
  .activity-view-modal{box-sizing:border-box!important;width:calc(100vw - 12px)!important;max-width:calc(100vw - 12px)!important;padding:16px!important}
  .activity-view-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;gap:10px!important;align-items:start!important}
  .activity-view-heading{grid-column:1;grid-row:1;min-width:0}
  .activity-view-heading h2{overflow-wrap:anywhere}
  .activity-view-actions{display:contents!important}
  .activity-view-utility-actions{grid-column:2;grid-row:1}
  .activity-view-management-actions{grid-column:1/-1;grid-row:2;justify-content:flex-start}
  .activity-view-close{grid-column:3;grid-row:1}
}

/* v1.3.0 Alpha 16 — ordered replay transport and compact activity summaries. */
.activity-view-utility-actions,.activity-view-management-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.activity-view-overview{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap;margin:12px 0 14px}
.activity-view-overview .activity-view-summary{flex:0 1 auto;margin:0!important}
.activity-view-overview .activity-view-players{flex:0 1 auto;margin:4px 0!important}
.activity-view-overview .activity-view-score{flex:0 1 auto}
.activity-view-overview .tennis-scoreboard{margin:0!important}

@media(max-width:900px){
  .activity-view-overview{display:grid;gap:10px}
  .activity-view-overview .activity-view-players{margin:0!important}
}

/* v1.3.0 Alpha 17 — balanced activity metadata and reliable desktop transport target. */
@media(min-width:901px){
  .activity-view-overview{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    align-items:center!important;
    width:100%;
    gap:clamp(22px,4vw,72px)
  }
  .activity-view-overview .activity-view-summary{justify-self:start}
  .activity-view-overview .activity-view-players{justify-self:center}
  .activity-view-overview .activity-view-score{justify-self:end}
}

@media(max-width:900px){
  .activity-view-overview{grid-template-columns:minmax(0,1fr)!important}
  .activity-view-overview .activity-view-summary{justify-self:stretch}
  .activity-view-overview .activity-view-players{justify-self:center;justify-content:center;width:100%;text-align:center}
  .activity-view-overview .activity-match-players{justify-content:center}
  .activity-view-overview .activity-view-score{justify-self:center}
}

/* v1.3.0 Alpha 18 — player-first Activity Viewer hierarchy. */
.activity-view-date{margin-top:3px;color:var(--muted);font-size:14px;font-weight:650}
.activity-view-overview{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr))!important;
  align-items:center!important;
  gap:clamp(18px,3vw,44px)!important;
  width:100%
}
.activity-view-overview .activity-view-players,.activity-view-overview .activity-view-score{justify-self:center!important}
.activity-view-overview .activity-view-players{justify-content:center;width:100%;text-align:center}
.activity-view-overview .activity-match-players{justify-content:center}
.activity-view-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:14px}
.activity-view-footer strong{color:var(--ink)}
.activity-view-footer .danger{margin-left:auto}

@media(max-width:900px){
  .activity-view-overview{grid-template-columns:minmax(0,1fr)!important;gap:24px!important;margin-block:18px 22px!important}
  .activity-view-overview .activity-view-score{padding-top:4px}
}

/* v1.3.0 Alpha 20 — player ownership, profile imagery, and lifecycle UI. */
.player-form-field{display:grid;gap:7px;margin-bottom:16px}
.player-photo-editor{margin:14px 0 20px}
.player-photo-preview{padding:0;border:2px solid #fff;cursor:pointer}
.player-photo-preview:hover{outline:3px solid #7ca9ef}
.crop-modal{width:min(560px,calc(100vw - 24px))}
.crop-stage{width:min(480px,100%);aspect-ratio:1;margin:0 auto 14px;border-radius:50%;overflow:hidden;background:#14211d;touch-action:none}
.crop-stage canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}
.crop-stage canvas:active{cursor:grabbing}
.my-profile-pill{font-size:10px;font-weight:850;text-transform:uppercase;color:#0d5d88;background:#e3f2fb;padding:4px 8px;border-radius:999px}
.player-card-pills{display:flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
.inactive-players-section{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
.inactive-players-section h3{margin-bottom:4px}.player-profile-card.inactive{opacity:.78}
.reactivate-player{margin-top:12px;width:100%}
.account-player-profile{display:flex;align-items:center;gap:10px;width:100%;padding:10px;border:1px solid var(--line);border-radius:12px;background:#f3f8f6;color:inherit;text-align:left}
.account-player-profile>span{display:grid;min-width:0}.account-player-profile small,.account-player-profile em{color:var(--muted);font-style:normal}.account-player-profile>b{margin-left:auto;font-size:22px}
.member-admin-list{display:grid;gap:8px}.member-admin-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);border-radius:11px}.member-admin-row>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}.member-admin-row small{flex-basis:100%;color:var(--muted)}.member-admin-row select{min-width:110px}.member-admin-row button{white-space:nowrap}
.member-invitation-row strong{overflow-wrap:anywhere}.member-invitation-row .invitation-role{font-size:13px;color:var(--muted)}.member-invitation-row .invitation-status{justify-self:end;white-space:nowrap}
.player-avatar.activity-card-avatar{width:48px;height:48px;font-size:16px}.player-avatar.activity-view-avatar{width:64px;height:64px;font-size:20px}
.add-player-button{max-width:100%;overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){.player-avatar.activity-view-avatar{width:56px;height:56px}.member-admin-row{grid-template-columns:1fr 1fr}.member-admin-row>div{grid-column:1/-1}.library-heading-row{flex-wrap:wrap}.add-player-button{font-size:11px!important;padding-inline:8px!important;flex:0 1 auto}.library-heading-row>div{min-width:0;flex:1 1 180px}.activity-view-overview .activity-view-players,.activity-view-overview .activity-view-score{margin-inline:auto!important}.activity-view-overview .activity-match-players{justify-content:center!important}}

/* v1.3.0 Alpha 21 — account enforcement, player polish, and doubles alignment. */
.player-avatar:not(.small),
.player-avatar.activity-card-avatar,
.player-avatar.activity-view-avatar,
.player-photo-preview{width:88px!important;height:88px!important}
.player-photo-preview{font-size:28px!important}
.crop-stage{background:linear-gradient(135deg,var(--court-blue),var(--surround-green))!important}
.player-profile-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}
.player-profile-details>div{display:grid;gap:3px;padding:10px 12px;border-radius:11px;background:#f0f5f2}
.player-profile-details span{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.player-profile-details strong{font-size:15px}
.member-admin-row .compact-action{min-height:34px!important;height:34px!important;padding:0 10px!important;border-radius:9px!important;font-size:12px!important;line-height:1!important}
.activity-match-players.doubles{display:grid!important;grid-template-columns:minmax(0,1fr)!important;justify-items:center;gap:9px}
.activity-match-players.doubles .activity-match-side{justify-content:center}
.tennis-scoreboard{grid-template-columns:minmax(140px,max-content) repeat(var(--set-count,3),30px)!important;gap:4px!important}
.tennis-scoreboard .score-player{display:contents!important}
@media(max-width:700px){
  .player-avatar:not(.small),
  .player-avatar.activity-card-avatar,
  .player-avatar.activity-view-avatar,
  .player-photo-preview{width:64px!important;height:64px!important}
  .player-profile-details{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tennis-scoreboard{grid-template-columns:minmax(112px,max-content) repeat(var(--set-count,3),28px)!important}
}

/* v1.3.0 Alpha 25 — capture clarity, responsive player previews, and live activity readiness. */
body .activity-dock{position:static!important;inset:auto!important;width:100%!important;min-width:0!important;max-width:none!important;transform:none!important;transition:none!important;z-index:auto!important;display:grid!important;gap:10px!important;pointer-events:auto!important;margin:0 0 12px!important}
body .activity-dock .active-banner,body .activity-dock .buffer-replay-controls{border-radius:16px!important}
body.activity-session-active #captureView{box-sizing:border-box;border:3px solid #2583bc;border-radius:22px;padding:12px;background:#e6f4fc!important;box-shadow:0 0 0 4px rgba(37,131,188,.12)}
body.activity-session-active #activityDock{margin-bottom:12px!important}
.live-dot{animation:recordingPulse 1.45s ease-in-out infinite}@keyframes recordingPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.42;transform:scale(.72)}}
@media(prefers-reduced-motion:reduce){.live-dot{animation:none}}
.replay-association-note{grid-column:1/-1;color:rgba(255,255,255,.88);font-size:12px;font-weight:700}
#instantReplayActivityNotice{margin-bottom:13px}
.match-details-grid{grid-template-columns:minmax(0,1fr) minmax(320px,1fr)!important;gap:20px}.capture-metadata-column{display:flex;min-height:0;flex-direction:column;gap:12px}.capture-notes-field{display:flex;min-height:120px;flex:1;flex-direction:column}.capture-notes-field textarea{min-height:0;height:100%;flex:1;resize:none;overflow:auto}.match-detail-field .hint{margin-top:3px}
.pre-record-heading{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.pre-record-heading output{color:var(--court-blue);font-weight:850}.pre-record-scale{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin-top:-5px}.advanced-column input[type=range]{min-height:28px;padding:0}
.player-picker-preview{display:flex;align-items:center;gap:9px;padding:9px 4px 2px}.player-picker-preview>span:last-child{display:grid;gap:2px}.player-picker-preview strong{font-size:14px}.player-picker-preview small{color:var(--muted);font-size:12px}.player-picker-preview.inactive{opacity:.68}
.live-score-shell{width:min(650px,100%)}.live-score-format>span{display:grid;gap:2px}.live-score-format small{color:var(--muted);font-size:11px;font-weight:650}.current-match-scoreboard,.finalize-scoreboard{display:flex;justify-content:flex-start}.live-score-row{grid-template-columns:minmax(220px,280px) repeat(var(--live-set-count),64px)}.live-score-row input{width:64px}
.activity-card-main>.activity-match-players,.activity-card-main>.activity-match-players.doubles{width:100%!important;max-width:100%;justify-content:center!important;justify-items:center!important;text-align:center!important}.activity-card-main>.tennis-scoreboard{display:grid!important;margin:16px auto!important}.activity-match-players{display:grid!important;grid-template-columns:auto auto auto;align-items:center;justify-items:center;justify-content:center;gap:10px}.activity-match-players.doubles{grid-template-columns:1fr!important}.activity-match-side{display:flex;justify-content:center!important;align-items:center;gap:10px!important}.activity-player-unit{display:inline-flex!important;flex-direction:column;align-items:center!important;gap:5px!important;text-align:center}.activity-player-unit>span:last-child{display:grid;gap:1px}.activity-player-unit small{min-height:14px;color:var(--muted);font-size:10px}.teammate-amp{color:var(--muted);font-size:17px}.activity-player-stack.nonmatch-players{display:grid;justify-content:center;justify-items:center;gap:12px;margin-top:14px}.nonmatch-players.player-count-1{grid-template-columns:auto}.nonmatch-players.player-count-2{grid-template-columns:repeat(2,auto)}.nonmatch-players.player-count-3{grid-template-columns:repeat(3,auto)}.nonmatch-players.player-count-4{grid-template-columns:repeat(2,auto)}
.activity-view-overview{grid-template-columns:minmax(0,1fr)!important;justify-items:center!important}.activity-view-overview .activity-view-score{justify-self:center!important}.activity-view-metadata{display:grid;gap:7px;margin:14px 0;padding:12px 14px;border-radius:12px;background:#f2f7f5}.activity-view-metadata .tag-row{margin:0}.activity-notes{margin:0;white-space:normal;line-height:1.5}
.activity-processing-label{display:inline-flex;align-items:center;gap:6px;font-weight:800}.activity-media-error{color:#a42d2d;font-weight:850}.mini-spinner,.media-spinner{display:inline-block;border:3px solid #c6dce8;border-top-color:var(--court-blue);border-radius:50%;animation:mediaSpin .85s linear infinite}.mini-spinner{width:17px;height:17px}.media-spinner{width:38px;height:38px}.activity-processing-placeholder{display:grid;place-items:center;align-content:center;gap:9px;min-height:300px;padding:28px;background:#edf5f9;color:var(--muted);text-align:center}.activity-processing-placeholder strong{color:var(--ink);font-size:20px}.activity-processing-placeholder.failed{background:#fff1f1}.activity-processing-placeholder.failed strong{color:#a42d2d}@keyframes mediaSpin{to{transform:rotate(360deg)}}
.activity-inline-editor{display:grid;gap:16px}.activity-inline-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.activity-inline-grid label,.activity-inline-notes{display:grid;gap:6px;font-weight:800}.activity-inline-grid small{color:var(--muted);font-weight:600}.activity-inline-wide{grid-column:1/-1}.activity-inline-score{padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff}.activity-inline-notes textarea{overflow:auto}.activity-inline-editor .match-participant-fields{padding:14px;border:1px solid var(--line);border-radius:13px}
@media(max-width:700px){body.activity-session-active #captureView{padding:7px;border-radius:17px}.match-details-grid{grid-template-columns:1fr!important}.capture-notes-field textarea{min-height:150px}.live-score-row{grid-template-columns:minmax(145px,210px) repeat(var(--live-set-count),50px)}.live-score-row input{width:50px}.activity-inline-grid{grid-template-columns:1fr}.activity-inline-wide{grid-column:auto}.activity-player-unit .player-avatar{width:64px!important;height:64px!important}.nonmatch-players.player-count-3{gap:7px}}

/* v1.3.0 Alpha 22 — activity-card consistency and profile activity cards. */
.profile-activity-list.activity-list{margin-top:14px;margin-bottom:0}
.profile-activity-list .activity-card{box-shadow:none}
.activity-card-main>.activity-match-players{justify-content:flex-start;text-align:left}
.activity-card-main>.activity-match-players.doubles{justify-content:start!important;justify-items:start!important;width:max-content;max-width:100%}
.activity-card-main>.activity-match-players.doubles .activity-match-side{justify-content:flex-start!important}
.activity-card-main>.activity-match-players.doubles>.activity-versus{justify-self:center}
.activity-card-player.inactive,.activity-view-player.inactive{opacity:.7}

/* v1.3.0 Alpha 24 — activity-first capture, inline editing, and score finalization. */
.match-capture-form-card{display:grid;gap:18px;padding:20px;background:#f8fbfa}
.match-capture-form-card>.court-mode-description{margin:0}
.match-type-field{display:grid;gap:7px;max-width:430px}
#matchCaptureReveal{display:grid;gap:18px}
#matchCaptureReveal.hidden{display:none}
.current-activity-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:2px}
.current-activity-head>div:first-child{display:grid;gap:3px}
.current-activity-edit-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.match-players-section{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}
.match-versus-layout{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:22px}
.match-team-column{display:grid;gap:11px}.match-team-column>strong{text-align:center;color:var(--muted)}
.match-player-picker{display:grid;gap:6px}.match-player-picker span{font-size:13px;font-weight:800}.match-player-picker em{color:var(--muted);font-size:11px;font-style:normal;font-weight:650}
.match-form-versus{align-self:center;color:var(--muted);font-size:16px;text-align:center}
.activity-player-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.details-locked input:disabled,.details-locked textarea:disabled,.details-locked select:disabled{opacity:1;color:#6b7772;background:#e8eeeb;border-color:#d6dfda;cursor:not-allowed}
.active-replay-association{padding:12px 14px;border:1px solid #90c6df;border-radius:12px;background:#e7f5fc;color:#0d5d88;font-weight:800}
body.activity-session-active #captureView{background:linear-gradient(180deg,rgba(225,244,252,.56),transparent 520px)}
.current-activity-save-state{justify-self:end;color:var(--surround-green);font-size:13px;font-weight:800}
.match-start-button{width:100%;margin-top:2px}
.live-score-format{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.live-score-format span{font-weight:800}.live-score-format select{width:auto;min-width:180px}
.live-score-grid{display:grid;gap:9px;overflow-x:auto}
.live-score-row{display:grid;grid-template-columns:minmax(190px,1fr) repeat(var(--live-set-count),58px);align-items:center;gap:8px;min-width:max-content}
.live-score-player{display:flex;align-items:center;gap:9px;min-width:0}.live-score-player strong{white-space:nowrap}.live-score-avatars{display:flex}.live-score-avatars .player-avatar+.player-avatar{margin-left:-9px}
.live-score-row input{width:58px;min-height:48px;padding:7px;text-align:center;font-size:20px;font-weight:900}
.score-disabled-note{padding:20px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);text-align:center;font-weight:750}
.finalize-match-modal{width:min(720px,calc(100vw - 24px))}.finalize-match-players,.finalize-scoreboard{margin:16px 0}.finalize-versus-layout{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:20px}.finalize-side{display:grid;gap:10px}.finalize-player{display:flex;align-items:center;gap:10px}.finalize-player-actions{display:flex;justify-content:center;gap:8px}.finalize-match-modal .match-versus-layout{margin:16px 0}
@media(max-width:700px){
  .match-capture-form-card{padding:15px}.current-activity-head{align-items:flex-start;flex-direction:column}.current-activity-edit-actions{justify-content:flex-start}
  .match-versus-layout{gap:9px}.doubles-player-layout{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr)}.activity-player-picker-grid{grid-template-columns:1fr}
  .live-score-format{align-items:stretch;flex-direction:column}.live-score-format select{width:100%}.live-score-row{grid-template-columns:minmax(140px,1fr) repeat(var(--live-set-count),50px)}.live-score-row input{width:50px}
  .finalize-versus-layout{gap:8px}.finalize-player{align-items:center;flex-direction:column;text-align:center}.finalize-player .player-avatar{width:64px!important;height:64px!important}
}

/* Alpha 25 final cascade: keep the revised match presentation centered. */
body.activity-session-active{background:var(--page)!important}
.activity-card-main>.activity-match-players.doubles{
  width:100%!important;
  max-width:100%!important;
  justify-content:center!important;
  justify-items:center!important;
  text-align:center!important
}
.activity-card-main>.activity-match-players.doubles .activity-match-side{justify-content:center!important}
.activity-card-main>.activity-match-players.doubles>.activity-versus{justify-self:center!important}

/* v1.3.0 Alpha 26 — persistent capture frame and compact activity workflows. */
body:not(.activity-session-active) #activityDock{margin:0!important}
body.activity-session-active #appShell{box-sizing:border-box;border:3px solid #2583bc;border-radius:22px;background:#e6f4fc!important;box-shadow:0 0 0 4px rgba(37,131,188,.12)}
body.activity-session-active #captureView{border:0!important;border-radius:0!important;padding:0!important;background:transparent!important;box-shadow:none!important}
.activity-dock.away-from-court .buffer-replay-controls{display:none!important}
.active-banner-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.active-detail-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:7px}
.active-detail-row .active-name{margin:0}
.session-camera-badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 8px;background:rgba(255,255,255,.15);color:#fff;font-size:11px;font-weight:850;white-space:nowrap}
.activity-capturing-label{display:inline-flex;align-items:center;gap:8px;color:var(--court-blue-dark);font-weight:850}
.activity-capturing-label .live-dot,.activity-processing-placeholder.capturing .live-dot{display:inline-block;flex:0 0 auto}
.activity-processing-placeholder.capturing{background:#e7f5fc;color:var(--muted)}
.activity-processing-placeholder.capturing strong{color:var(--ink)}
.activity-view-modal.editing .activity-view-utility-actions,.activity-view-modal.editing .activity-view-management-actions{display:none!important}
.activity-inline-header-actions{display:flex;align-items:center;gap:8px}
.player-avatar-fallback{color:#fff!important;font-size:clamp(15px,.32em,28px)!important;font-weight:950!important;line-height:1!important;text-shadow:0 1px 2px rgba(0,0,0,.28)}
.player-avatar.small .player-avatar-fallback{font-size:13px!important}
.player-avatar:not(.small) .player-avatar-fallback,.player-avatar.activity-card-avatar .player-avatar-fallback,.player-avatar.activity-view-avatar .player-avatar-fallback{font-size:28px!important}
.live-score-shell{width:max-content!important;max-width:100%}
.live-score-format{display:grid!important;grid-template-columns:minmax(150px,220px) auto!important;justify-content:start!important;gap:10px!important}
.live-score-row{grid-template-columns:minmax(150px,220px) repeat(var(--live-set-count),58px)!important;gap:8px!important}
.live-score-row input{width:58px!important}
.activity-view-overview{display:flex!important;align-items:center!important;justify-content:center!important;gap:clamp(18px,3vw,38px)!important;flex-wrap:nowrap!important;width:100%}
.activity-view-overview .activity-view-players{flex:0 1 auto!important;width:auto!important;margin:0!important}
.activity-view-overview .activity-view-score{flex:0 0 auto!important;margin:0!important;padding:0!important}
.activity-view-overview .activity-match-players,.activity-view-overview .activity-match-players.doubles{display:grid!important;grid-template-columns:auto auto auto!important;align-items:center!important;width:auto!important;gap:clamp(10px,2vw,24px)!important}
.activity-view-overview .activity-match-side{display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important}
@media(max-width:900px){.activity-view-overview{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:18px!important;justify-items:center!important;flex-wrap:wrap!important}.activity-view-overview .activity-view-players{width:100%!important}.activity-view-overview .activity-match-players,.activity-view-overview .activity-match-players.doubles{max-width:100%;overflow-x:auto}.activity-view-overview .activity-view-score{max-width:100%;overflow-x:auto}}
@media(max-width:700px){body.activity-session-active #appShell{border-radius:17px;padding:12px 9px calc(32px + env(safe-area-inset-bottom))}.active-banner{align-items:stretch!important}.active-banner-actions{justify-content:stretch}.active-banner-actions button{flex:1 1 auto}.live-score-format{grid-template-columns:minmax(130px,180px) auto!important}.live-score-row{grid-template-columns:minmax(130px,180px) repeat(var(--live-set-count),50px)!important}.live-score-row input{width:50px!important}}

/* v1.3.0 Alpha 27 — focused capture frame, stable Hopper sections, and mobile member choices. */
body.activity-session-active #appShell{border:0!important;border-radius:0!important;padding:18px!important;background:transparent!important;box-shadow:none!important}
body.activity-session-active #activeCaptureFrame{box-sizing:border-box;border:3px solid #2583bc;border-radius:22px;padding:12px;background:#e6f4fc;box-shadow:0 0 0 4px rgba(37,131,188,.12)}
.session-camera-badge svg{width:16px;height:16px;display:block;flex:0 0 auto}
.current-activity-players{display:grid;place-items:center;min-height:132px}
.current-player-summary{display:grid;grid-template-columns:repeat(3,max-content);align-items:start;justify-content:start;gap:18px 28px;width:100%}
.current-player-summary.player-count-4{grid-template-columns:repeat(2,max-content)}
.current-player-summary-item{display:grid;justify-items:center;gap:7px;min-width:100px;text-align:center}
.current-player-summary-item strong{font-size:14px}
.current-player-empty{width:100%;padding:22px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-weight:750;text-align:center}
.hopper-category-section{margin-bottom:16px!important;padding:18px!important}
.hopper-category-section>.section-head{margin-bottom:13px}
.hopper-scroll-region{max-height:min(62vh,720px);overflow-y:auto;overscroll-behavior-y:contain;padding:2px 7px 8px 2px;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}
.hopper-scroll-region:focus-within{scroll-behavior:auto}
.member-choice-list{display:grid;gap:7px;max-height:min(42vh,360px);overflow-y:auto;padding:3px;overscroll-behavior:contain}
.member-choice{display:grid;width:100%;min-height:0;gap:3px;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:#f5f8f7;color:var(--ink);text-align:left}
.member-choice:hover{border-color:#86b4d0;background:#eef7fc}.member-choice.selected{border-color:#2583bc;outline:2px solid rgba(37,131,188,.2);background:#e5f3fb}
.member-choice strong{font-size:14px}.member-choice small{color:var(--muted);font-size:11px}.member-choice-empty{padding:12px}
@media(max-width:700px){body.activity-session-active #appShell{padding:12px 9px calc(32px + env(safe-area-inset-bottom))!important}body.activity-session-active #activeCaptureFrame{border-radius:17px;padding:9px}.hopper-category-section{padding:14px!important}.hopper-scroll-region{max-height:66dvh}.current-player-summary{grid-template-columns:repeat(2,max-content);justify-content:center;gap:16px}.current-player-summary.player-count-1{grid-template-columns:max-content}.current-player-summary.player-count-3{grid-template-columns:repeat(3,max-content);gap:10px}.current-player-summary-item{min-width:72px}.current-player-summary-item .player-avatar{width:64px!important;height:64px!important}}

/* v1.3.0 Alpha 28 — broadcast activity cards and explicit cancellation state. */
#activityResults{grid-template-columns:minmax(0,1fr)!important;max-height:min(72vh,840px)}
#historyResults{max-height:min(48vh,560px)}
.activity-card{min-height:0!important}
.activity-card-main{padding:18px 20px!important}
.activity-card-competition{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(24px,5vw,76px);min-height:136px;margin-top:14px}
.activity-card-lineup{min-width:0;overflow-x:auto}
.activity-card-main .activity-match-players,.activity-card-main .activity-match-players.doubles{display:grid!important;grid-template-columns:max-content auto max-content!important;align-items:center!important;justify-content:start!important;justify-items:center!important;width:max-content!important;max-width:none!important;gap:clamp(14px,2.5vw,34px)!important;text-align:center!important}
.activity-card-main .activity-match-side{display:flex!important;align-items:flex-start!important;justify-content:flex-start!important;gap:clamp(12px,2vw,26px)!important}
.activity-card-main .activity-player-unit{min-width:92px}
.activity-card-main .activity-player-unit .player-avatar{width:82px!important;height:82px!important}
.activity-card-main .activity-player-unit strong{font-size:15px}
.activity-card-main .activity-player-unit small{font-size:11px}
.activity-card-main .activity-versus{font-size:16px;letter-spacing:.08em;color:var(--muted)}
.activity-card-score:empty{display:none}
.activity-card .tennis-scoreboard{display:grid!important;grid-template-columns:minmax(150px,220px) repeat(var(--set-count,3),42px)!important;gap:0!important;margin:0!important;padding:5px;border:2px solid #3c718c;border-radius:8px;background:linear-gradient(180deg,#102f42,#081e2b);box-shadow:0 5px 15px rgba(7,31,44,.2);overflow:hidden;color:#fff}
.activity-card .tennis-scoreboard .score-player{display:contents!important}
.activity-card .tennis-scoreboard .score-player>span{position:relative;display:flex;align-items:center;min-height:42px;padding:7px 12px;border-bottom:1px solid rgba(255,255,255,.18);color:#fff;font-size:15px;font-weight:900;white-space:nowrap}
.activity-card .tennis-scoreboard .score-player.winner>span{padding-left:25px}
.activity-card .tennis-scoreboard .score-player.winner>span::before{position:absolute;left:10px;content:"▶";color:#65cdf8;font-size:10px}
.activity-card .tennis-scoreboard strong{display:grid;place-items:center;min-width:42px;min-height:42px;border-left:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.18);background:rgba(19,87,119,.45);color:#fff;font-size:20px;font-weight:950}
.activity-card .tennis-scoreboard .set-winner{background:#e8f4f8;color:#092637}
.activity-card .tennis-scoreboard .score-player:nth-last-child(1)>span,.activity-card .tennis-scoreboard .score-player:nth-last-child(1)>strong{border-bottom:0}
.session-camera-badge{gap:7px!important;padding:7px 12px!important;font-size:13px!important}
.session-camera-badge svg{width:19px!important;height:19px!important}
#sessionName{font-size:15px!important;font-weight:900!important}
.activity-dock.away-from-court #viewActiveSession{min-height:44px!important;padding:0 18px!important;font-size:14px!important;font-weight:900!important}
.activity-dock.cancelling .active-banner{background:linear-gradient(110deg,#526774,#315d76)!important}
.activity-dock.cancelling .mini-spinner{width:14px;height:14px;border-color:rgba(255,255,255,.35);border-top-color:#fff}
.member-choice,.member-choice strong,.member-choice small{text-align:left!important;justify-items:start!important}
.member-choice{min-height:54px!important;padding:10px 12px!important}
.admin-jobs-head{display:grid;gap:2px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.admin-jobs-head h4{margin:0}
.admin-active-jobs{display:grid;gap:8px;margin-top:10px}
.admin-job-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#f5f8f7}
.admin-job-row>span{display:grid;gap:2px;min-width:0}.admin-job-row small{color:var(--muted)}
.cancel-processing-card{margin-left:auto!important;min-height:32px!important;padding:0 10px!important;border:1px solid #c96060!important;border-radius:8px!important;background:#fff!important;color:#9a2f2f!important;font-size:11px!important;font-weight:900!important;white-space:nowrap}
@media(min-width:901px){
  .current-match-scoreboard .live-score-player .player-avatar{width:50px!important;height:50px!important}
  .current-match-scoreboard .live-score-player strong{font-size:18px}
  .current-match-scoreboard .live-score-row{grid-template-columns:minmax(260px,330px) repeat(var(--live-set-count),68px)!important}
  .current-match-scoreboard .live-score-row input{width:68px!important;min-height:56px!important;font-size:24px!important}
}
@media(max-width:760px){
  #activityResults,#historyResults{grid-template-columns:minmax(0,1fr)!important}
  #activityResults{max-height:72dvh}#historyResults{max-height:48dvh}
  .activity-card-main{padding:15px!important}
  .activity-card-competition{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;min-height:0}
  .activity-card-lineup{overflow-x:auto;padding-bottom:3px}
  .activity-card-main .activity-match-players,.activity-card-main .activity-match-players.doubles{gap:13px!important}
  .activity-card-main .activity-match-side{gap:10px!important}
  .activity-card-main .activity-player-unit{min-width:72px}
  .activity-card-main .activity-player-unit .player-avatar{width:64px!important;height:64px!important}
  .activity-card-score{justify-self:center;max-width:100%;overflow-x:auto}
  .activity-card .tennis-scoreboard{grid-template-columns:minmax(130px,190px) repeat(var(--set-count,3),38px)!important}
  .activity-card .tennis-scoreboard strong{min-width:38px;min-height:38px;font-size:18px}
  .activity-card .tennis-scoreboard .score-player>span{min-height:38px;font-size:13px}
  .admin-job-row{align-items:stretch;flex-direction:column}.admin-job-row button{width:100%}
}

/* v1.3.0 Alpha 29 — unified light scoreboards and responsive player rows. */
#activityResults{max-height:min(72vh,840px)!important}
#historyResults{max-height:min(36vh,420px)!important}
.match-players-field{display:grid;gap:7px}
.match-players-label{color:var(--ink);font-size:13px;font-weight:800}
.activity-player-stack.nonmatch-players,
.nonmatch-players.player-count-1,
.nonmatch-players.player-count-2,
.nonmatch-players.player-count-3,
.nonmatch-players.player-count-4{display:flex!important;align-items:flex-start;justify-content:center;justify-items:unset;gap:clamp(12px,2.5vw,28px);width:100%;max-width:100%;margin-top:0;flex-wrap:nowrap}
.session-camera-badge{display:inline-flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;flex-wrap:nowrap!important;width:max-content!important;min-width:112px;min-height:38px;white-space:nowrap!important}
.session-camera-badge svg,.session-camera-badge span{display:block!important;flex:0 0 auto!important;white-space:nowrap!important}

/* Read-only scoreboard: the same light Court Capture treatment in cards and viewers. */
.tennis-scoreboard,
.activity-card .tennis-scoreboard{display:grid!important;grid-template-columns:minmax(150px,220px) repeat(var(--set-count,3),42px)!important;gap:0!important;margin:0!important;padding:4px!important;border:2px solid #7fb4cf!important;border-radius:9px!important;background:#dceff8!important;box-shadow:0 4px 12px rgba(20,85,116,.14)!important;overflow:hidden;color:#17343f!important}
.tennis-scoreboard .score-player,.activity-card .tennis-scoreboard .score-player{display:contents!important}
.tennis-scoreboard .score-player>span,.activity-card .tennis-scoreboard .score-player>span{position:relative;display:flex!important;align-items:center;min-height:42px;padding:7px 12px;border:0!important;border-bottom:1px solid #b8d6e4!important;background:#edf7fb!important;color:#18353f!important;font-size:15px!important;font-weight:900!important;white-space:nowrap}
.tennis-scoreboard .score-player.winner>span,.activity-card .tennis-scoreboard .score-player.winner>span{padding-left:26px}
.tennis-scoreboard .score-player.winner>span::before,.activity-card .tennis-scoreboard .score-player.winner>span::before{position:absolute;left:10px;content:"▶";color:#1681b8;font-size:10px}
.tennis-scoreboard .score-player strong,.activity-card .tennis-scoreboard .score-player strong{display:flex!important;align-items:center!important;justify-content:center!important;gap:2px!important;min-width:42px;min-height:42px;border:0!important;border-left:1px solid #b8d6e4!important;border-bottom:1px solid #b8d6e4!important;background:#f8fcfd!important;color:#17343f!important;font-size:20px!important;font-weight:950!important}
.tennis-scoreboard .score-player strong.set-winner,.activity-card .tennis-scoreboard .score-player strong.set-winner{background:#cde8f4!important;color:#075d89!important}
.tennis-scoreboard .score-player:last-child>span,.tennis-scoreboard .score-player:last-child>strong{border-bottom:0!important}

/* Editable scoreboard cells retain native input behavior without looking like form fields. */
.tennis-scoreboard-editor{width:max-content!important;max-width:100%}
.tennis-scoreboard-editor .live-score-grid{gap:0!important;padding:4px;border:2px solid #7fb4cf;border-radius:9px;background:#dceff8;box-shadow:0 4px 12px rgba(20,85,116,.14);overflow-x:auto}
.tennis-scoreboard-editor .live-score-row{gap:0!important}
.tennis-scoreboard-editor .live-score-player{position:relative;align-self:stretch;min-height:52px;padding:6px 12px;border-bottom:1px solid #b8d6e4;background:#edf7fb;color:#18353f}
.tennis-scoreboard-editor .live-score-row.winner .live-score-player{padding-left:27px}
.tennis-scoreboard-editor .live-score-row.winner .live-score-player::before{position:absolute;left:10px;content:"▶";color:#1681b8;font-size:10px}
.tennis-scoreboard-editor .live-score-row:last-child .live-score-player{border-bottom:0}
.tennis-scoreboard-editor .live-score-row input{
  -moz-appearance:textfield!important;appearance:textfield!important;
  min-height:52px!important;margin:0!important;padding:0 5px!important;
  border:0!important;border-left:1px solid #b8d6e4!important;border-bottom:1px solid #b8d6e4!important;border-radius:0!important;
  outline:0!important;box-shadow:none!important;background:#f8fcfd!important;color:#17343f!important;
  text-align:center!important;font-size:21px!important;font-weight:950!important
}
.tennis-scoreboard-editor .live-score-row input.set-winner{background:#cde8f4!important;color:#075d89!important}
.tennis-scoreboard-editor .live-score-row:last-child input{border-bottom:0!important}
.tennis-scoreboard-editor .live-score-row input:hover{background:#fff!important}
.tennis-scoreboard-editor .live-score-row input:focus{position:relative;z-index:1;background:#fff!important;box-shadow:inset 0 0 0 3px #2583bc!important}
.tennis-scoreboard-editor .live-score-row input::-webkit-inner-spin-button,.tennis-scoreboard-editor .live-score-row input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

#playerAssignMemberResults .member-choice{display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-items:center!important;justify-content:stretch!important;justify-items:stretch!important;text-align:left!important}
#playerAssignMemberResults .member-choice>strong,#playerAssignMemberResults .member-choice>small{display:block!important;width:100%!important;max-width:none!important;margin:0!important;text-align:left!important;justify-self:stretch!important}

@media(max-width:760px){
  #activityResults{max-height:72dvh!important}#historyResults{max-height:36dvh!important}
  .activity-card-competition{justify-items:center!important}
  .activity-card-lineup{display:flex;justify-content:center;width:100%;overflow-x:auto}
  .activity-card-main .activity-match-players,.activity-card-main .activity-match-players.doubles{justify-content:center!important;margin-inline:auto}
  .activity-card-main .activity-match-players.doubles{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr)!important;width:100%!important;gap:5px!important}
  .activity-card-main .activity-match-players.doubles .activity-match-side{justify-content:center!important;gap:5px!important;min-width:0}
  .activity-card-main .activity-match-players.doubles .activity-player-unit{min-width:0;width:min(58px,15vw)}
  .activity-card-main .activity-match-players.doubles .activity-player-unit .player-avatar{width:min(54px,14vw)!important;height:min(54px,14vw)!important}
  .activity-card-main .activity-match-players.doubles .activity-player-unit strong{max-width:min(66px,17vw);overflow:hidden;text-overflow:ellipsis;font-size:12px;white-space:nowrap}
  .activity-card-main .activity-match-players.doubles .activity-player-unit small{max-width:min(66px,17vw);overflow:hidden;text-overflow:ellipsis;font-size:9px;white-space:nowrap}
  .activity-card-main .activity-match-players.doubles .activity-versus{font-size:13px}
  .activity-card-score{justify-self:center!important}
  .activity-player-stack.nonmatch-players{gap:7px!important;overflow:hidden}
  .activity-player-stack.nonmatch-players.player-count-4 .activity-player-unit{min-width:0;width:min(62px,18vw)}
  .activity-player-stack.nonmatch-players.player-count-4 .player-avatar{width:min(56px,16vw)!important;height:min(56px,16vw)!important}
  .activity-player-stack.nonmatch-players.player-count-4 strong{max-width:min(68px,19vw);overflow:hidden;text-overflow:ellipsis;font-size:12px;white-space:nowrap}
  .activity-player-stack.nonmatch-players.player-count-4 small{max-width:min(68px,19vw);overflow:hidden;text-overflow:ellipsis;font-size:9px;white-space:nowrap}
  .tennis-scoreboard,.activity-card .tennis-scoreboard{grid-template-columns:minmax(128px,190px) repeat(var(--set-count,3),38px)!important}
  #playerAssignMemberResults .member-choice,#playerAssignMemberResults .member-choice>strong,#playerAssignMemberResults .member-choice>small{text-align:left!important;justify-content:flex-start!important}
}

/* v1.3.0 Alpha 30 — mobile-first capture layout and paged Hopper browsing. */
.mobile-carousel-controls{align-items:center;justify-content:center;gap:7px;margin-top:4px;color:var(--muted);font-size:12px;font-weight:850;white-space:nowrap}
.carousel-page-button{display:grid;place-items:center;width:34px;height:34px;min-height:34px;padding:0;border:1px solid #b9d4e2;border-radius:50%;background:#edf7fb;color:#075d89;font-size:25px;line-height:1}
.carousel-page-button:disabled{opacity:.35}
@media(max-width:760px){
  html,body{max-width:100%;overflow-x:hidden}
  .activity-dock .active-banner{display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-items:stretch!important;gap:12px!important;padding:14px!important}
  .active-info{display:grid;gap:5px;min-width:0}.active-title{width:100%;font-size:16px!important}
  .active-meta{display:flex!important;align-items:baseline!important;gap:8px!important;min-width:0;flex-wrap:nowrap!important}
  .active-meta .timer{font-size:22px!important;white-space:nowrap}#sessionStarted{font-size:15px!important;white-space:nowrap}
  .active-detail-row{display:flex!important;align-items:center!important;gap:9px!important;min-width:0;flex-wrap:wrap!important}
  .activity-dock #sessionName{display:block!important;flex:1 1 100%;min-width:0;font-size:16px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .activity-dock #sessionCameras.session-camera-badge{display:inline-flex!important;flex:0 0 auto!important;width:auto!important;min-width:0!important;min-height:36px!important;padding:7px 12px!important;font-size:13px!important}
  .session-camera-badge svg{width:18px!important;height:18px!important}
  .active-banner-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;width:100%!important}
  .active-banner-actions button{width:100%!important;min-width:0!important;min-height:46px!important;margin:0!important;padding:8px 10px!important}
  .activity-dock.away-from-court .active-banner-actions{grid-template-columns:minmax(0,1fr)}
  #matchCapturePanel,#liveCaptureSection,#matchCaptureReveal,.match-players-field,#matchPlayersSection,.match-participant-fields,.match-details-grid,.match-details-column,.capture-metadata-column,.advanced-column,.match-detail-field{box-sizing:border-box;min-width:0!important;max-width:100%!important;width:100%!important}
  .match-capture-form-card{overflow:hidden!important;padding:16px!important}
  .match-capture-form-card input:not([type="radio"]):not([type="checkbox"]),.match-capture-form-card select,.match-capture-form-card textarea{box-sizing:border-box;min-width:0!important;max-width:100%!important;width:100%!important}
  .match-capture-form-card .camera-mode-option input[type="radio"],.match-capture-form-card .camera input[type="checkbox"]{box-sizing:border-box!important;flex:0 0 auto!important;width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;max-width:22px!important;max-height:22px!important;margin:1px 0 0!important;padding:0!important}
  .match-capture-form-card .camera-mode-option{box-sizing:border-box;width:100%;min-width:0}.match-capture-form-card .camera-mode-option>span{min-width:0;overflow-wrap:anywhere}.match-capture-form-card .camera{min-width:0}.match-capture-form-card .camera label{min-width:0}.match-capture-form-card .camera label span{min-width:0;overflow-wrap:anywhere}
  .current-activity-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:10px!important}
  .current-activity-edit-actions{display:flex!important;justify-content:flex-end!important;gap:6px!important;min-width:0}.current-activity-edit-actions button{width:auto!important;min-width:0!important;padding-inline:11px!important}
  .match-details-grid{grid-template-columns:minmax(0,1fr)!important}.match-participant-fields{overflow:hidden}
  .match-versus-layout{display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;align-items:start!important;gap:8px!important}
  .match-versus-layout .participant-picker{min-width:0!important;width:100%!important}
  .player-picker-preview{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;gap:7px!important;min-width:0!important;text-align:center!important}
  .player-picker-preview>span{display:grid;justify-items:center;min-width:0;max-width:100%}.player-picker-preview strong,.player-picker-preview small{display:block;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}
  .player-picker-preview .player-avatar{box-sizing:border-box!important;flex:0 0 66px!important;width:66px!important;height:66px!important;min-width:66px!important;min-height:66px!important;max-width:66px!important;max-height:66px!important;aspect-ratio:1/1!important;border-radius:50%!important;object-fit:cover!important}
  .match-form-versus{align-self:center!important;margin-top:48px!important;text-align:center!important}
  .current-match-scoreboard,.finalize-scoreboard,.activity-inline-score,.tennis-scoreboard-editor,.live-score-shell{box-sizing:border-box;width:100%!important;min-width:0!important;max-width:100%!important;overflow:hidden!important}
  .live-score-format{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important;width:100%!important}.live-score-format select{width:100%!important;min-width:0!important}
  .tennis-scoreboard-editor .live-score-grid{box-sizing:border-box;width:100%!important;max-width:100%!important;overflow-x:auto!important;overscroll-behavior-x:contain}
  .tennis-scoreboard-editor .live-score-row{grid-template-columns:minmax(106px,1fr) repeat(var(--live-set-count),42px)!important;width:max-content!important;min-width:100%!important}
  .tennis-scoreboard-editor .live-score-player{box-sizing:border-box;min-width:106px!important;overflow:hidden}.tennis-scoreboard-editor .live-score-player strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tennis-scoreboard-editor .live-score-player .player-avatar{flex:0 0 34px!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;border-radius:50%!important;object-fit:cover!important}
  .tennis-scoreboard-editor .live-score-row input{box-sizing:border-box;width:42px!important;min-width:42px!important}
  .hopper-category-section>.section-head{align-items:center!important;gap:10px}.mobile-carousel-controls{display:flex!important}
  .mobile-carousel-controls.hidden{display:none!important}
  #activityResults,#historyResults{display:flex!important;grid-template-columns:none!important;gap:0!important;width:100%;max-height:none!important;padding:2px 0 8px!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain}
  #activityResults::-webkit-scrollbar,#historyResults::-webkit-scrollbar{display:none}
  .hopper-category-section,#activityResults>.activity-card,#activityResults>.card,#historyResults .history-card{box-shadow:none!important}
  #activityResults>.activity-card,#activityResults>.card{box-sizing:border-box;flex:0 0 100%;width:100%;min-width:100%;height:100%!important;scroll-snap-align:start;scroll-snap-stop:always}
  #historyResults>.mobile-replay-page{box-sizing:border-box;display:grid;grid-template-rows:repeat(var(--replay-page-count,3),minmax(0,1fr));align-content:stretch;gap:10px;flex:0 0 100%;width:100%;min-width:100%;height:100%;padding:1px;scroll-snap-align:start;scroll-snap-stop:always}
  #historyResults>.mobile-replay-page>.history-card{box-sizing:border-box;height:100%!important;min-height:0!important}
}

/* Alpha 33 final overrides must follow the accumulated responsive rules. */
.profile-activity-list .activity-card-competition{grid-template-columns:minmax(0,1fr)!important;justify-items:center!important;gap:16px!important}
.profile-activity-list .activity-card-lineup{display:flex!important;justify-content:center!important;width:100%!important;max-width:100%!important;overflow:visible!important}
.profile-activity-list .activity-card-main .activity-match-players,.profile-activity-list .activity-card-main .activity-match-players.doubles{justify-content:center!important;justify-items:center!important;margin-inline:auto!important;max-width:100%!important}
.profile-activity-list .activity-card-score{justify-self:center!important;max-width:100%!important;overflow-x:auto!important}
@media(max-width:760px){.hopper-filter-option{min-height:42px!important;margin:0!important;padding:8px 7px!important}.hopper-filter-options{display:flex!important;flex-direction:column!important;align-content:flex-start!important;justify-content:flex-start!important;gap:0!important}.hopper-filter-popover{height:auto!important}.profile-activity-list .activity-card-lineup{overflow:hidden!important}}

/* v1.3.0 Alpha 53 — format details and protected score editing. */
.format-detail-list{display:grid;gap:0;margin:12px 0 4px;border:1px solid #c9dde5;border-radius:15px;background:#f1f8fb;overflow:hidden}
.format-detail-list>div{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(0,1.4fr);gap:14px;padding:13px 15px;border-bottom:1px solid #d5e5eb}.format-detail-list>div:last-child{border-bottom:0}.format-detail-list dt{color:var(--muted);font-size:13px;font-weight:800}.format-detail-list dd{margin:0;color:var(--ink);font-weight:850;line-height:1.35}
.scoreboard-with-info{position:relative;display:flex;align-items:flex-start;justify-content:center;gap:7px;max-width:100%}.scoreboard-with-info>.tennis-scoreboard{flex:0 1 auto}
.score-format-info,.score-edit-button{display:grid;place-items:center;flex:0 0 auto;width:30px;height:30px;min-height:30px;padding:0;border:1px solid #9fc8db;border-radius:50%;background:#edf7fb;color:#075d89;font-size:16px;font-weight:950;font-style:normal;line-height:1;text-transform:none}.score-format-info:hover,.score-edit-button:hover{background:#dceff8}.score-edit-button{font-size:18px}
.activity-card .scoreboard-with-info{align-items:center}.activity-card .score-format-info{width:28px;height:28px;min-height:28px;background:#edf7fb}
.current-score-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-bottom:9px}.current-score-toolbar>strong{font-size:17px}.current-score-toolbar>div{display:flex;align-items:center;gap:7px}.current-score-empty{width:100%;padding:16px;border:1px dashed #b6d2de;border-radius:12px;background:#f4fafc;color:var(--muted);text-align:center;font-weight:750}
.live-score-format{grid-template-columns:minmax(130px,190px) minmax(180px,auto) 30px!important;align-items:center!important}.live-score-format>small{grid-column:1/-1}.live-score-format .score-format-info{align-self:center}
.live-score-heading-row,.tennis-scoreboard-editor .live-score-row{display:grid;grid-template-columns:minmax(150px,220px) repeat(var(--live-column-count,var(--live-set-count)),58px)!important;gap:0!important;min-width:max-content}
.live-score-heading-row{align-items:end}.live-score-heading-row>span{min-height:28px}.live-score-heading-row>strong{display:grid;place-items:center;min-width:58px;min-height:28px;padding:3px;border-left:1px solid #b8d6e4;color:#42606c;font-size:10px;line-height:1.05;text-align:center}.live-score-heading-row>.tiebreak-heading{background:#e2f1f7;color:#075d89}
.tennis-scoreboard-editor .live-tiebreak-cell input{background:#e8f5fa!important;color:#075d89!important}.tennis-scoreboard-editor .live-tiebreak-cell input::placeholder{color:#64828e}
.current-match-scoreboard{display:block!important}.current-match-scoreboard>.tennis-scoreboard,.current-match-scoreboard>.scoreboard-with-info{margin-inline:auto!important}
@media(max-width:760px){.format-detail-list>div{grid-template-columns:1fr;gap:4px;padding:11px 13px}.live-score-format{grid-template-columns:minmax(0,1fr) 30px!important}.live-score-format>span{grid-column:1/-1}.live-score-format select{grid-column:1}.live-score-format .score-format-info{grid-column:2}.live-score-heading-row,.tennis-scoreboard-editor .live-score-row{grid-template-columns:minmax(106px,1fr) repeat(var(--live-column-count,var(--live-set-count)),42px)!important}.live-score-heading-row>strong{min-width:42px;font-size:9px}.current-score-toolbar{padding-inline:2px}}

/* v1.3.0 Alpha 34 — deterministic Hopper menus and shared empty states. */
.hopper-filter-options{display:block!important;padding:0!important}
.hopper-filter-option{display:flex!important;align-items:center!important;gap:8px!important;height:34px!important;min-height:34px!important;margin:0!important;padding:4px 7px!important;line-height:1.15!important}
.hopper-filter-option input{width:17px!important;height:17px!important;margin:0!important}
.hopper-filter-dialog{width:min(440px,calc(100vw - 24px));max-height:min(78dvh,620px);margin:auto auto max(12px,env(safe-area-inset-bottom));padding:14px;border:1px solid #b9d4df;border-radius:20px;background:#fff;color:var(--ink)}
.hopper-filter-dialog::backdrop{background:rgba(15,34,29,.48);backdrop-filter:blur(2px)}
.hopper-filter-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.hopper-filter-dialog-head h2{margin:0;font-size:20px}
.hopper-filter-dialog>input{width:100%;margin-bottom:6px}.hopper-filter-dialog .hopper-filter-options{max-height:50dvh;overflow-y:auto;overscroll-behavior:contain}.hopper-filter-done{width:100%;margin-top:10px}
@media(max-width:760px){.hopper-filter-popover{display:none!important}.hopper-filter-option{height:38px!important;min-height:38px!important;padding:5px 7px!important}}

/* v1.3.0 Alpha 35 — filter-search visibility must outrank row layout. */
.hopper-filter-option.hidden,.hopper-filter-option[hidden]{display:none!important}

/* v1.3.0 Alpha 36 — clear controls for Hopper option searches. */
.hopper-filter-search-wrap{position:relative;width:100%;margin-bottom:6px}
.hopper-filter-search-wrap>input{width:100%;padding-right:34px!important}
.hopper-filter-search-wrap>input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.hopper-filter-search-clear{position:absolute;top:50%;right:0;display:grid;place-items:center;width:40px;height:40px;min-height:40px;padding:0;border:0;border-radius:50%;background:radial-gradient(circle,#e8f2f6 0 12px,transparent 12.5px);color:#17678f;font-size:18px;font-weight:800;line-height:1;transform:translateY(-50%);touch-action:manipulation}
.hopper-filter-search-clear:hover{background:radial-gradient(circle,#d7eaf2 0 12px,transparent 12.5px)}.hopper-filter-search-clear:active:not(:disabled){transform:translateY(-50%)}.hopper-filter-search-clear:focus-visible{outline:2px solid #2583bc;outline-offset:-5px}
.hopper-filter-dialog>.hopper-filter-search-wrap{margin-bottom:6px}

/* v1.3.0 Alpha 58 — framed score overflow, stable format pages, and camera labels. */
.readonly-score-panel,.scoreboard-with-info{display:grid!important;width:100%!important;max-width:100%!important;gap:6px!important}
.scoreboard-toolbar,.score-overflow-toolbar{display:none;align-items:center;justify-content:flex-end;gap:7px;min-height:30px;width:100%}
.scoreboard-toolbar:has(.score-format-info),.scoreboard-toolbar:has(.score-scroll-cue.visible),.score-overflow-toolbar:has(.score-scroll-cue.visible){display:flex}
.score-scroll-controls{display:flex;align-items:center;justify-content:flex-end;gap:6px}
.score-scroll-cue{position:static!important;display:none;place-items:center;width:30px!important;height:30px!important;min-height:30px!important;margin:0!important;padding:0!important;border:1px solid #8cbed4!important;border-radius:50%!important;background:#edf7fb!important;color:#075d89!important;font-size:22px!important;font-weight:900!important;line-height:1!important;transform:none!important;box-shadow:none!important}
.score-scroll-cue.visible{display:grid!important}
.readonly-score-frame,.live-score-frame{box-sizing:border-box;width:100%;max-width:100%;overflow:hidden;border:2px solid #7fb4cf;border-radius:9px;background:#dceff8;box-shadow:0 4px 12px rgba(20,85,116,.14)}
.readonly-score-scroll{box-sizing:border-box;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.readonly-score-scroll .tennis-scoreboard,.activity-card .readonly-score-scroll .tennis-scoreboard{box-sizing:border-box!important;grid-template-columns:minmax(170px,1fr) repeat(var(--set-count,3),42px)!important;width:max-content!important;min-width:100%!important;max-width:none!important;margin:0!important;padding:4px!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important}
.readonly-score-scroll .score-player>span,.activity-card .readonly-score-scroll .score-player>span{overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important}
.activity-card-score,.activity-view-overview .scoreboard-with-info{box-sizing:border-box;width:100%!important;min-width:0!important;max-width:100%!important;overflow:visible!important}
.live-score-frame .live-score-grid{box-sizing:border-box;width:100%!important;max-width:100%!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow-x:auto!important;overflow-y:hidden!important}
.match-format-row{display:block!important;height:auto!important;min-height:0!important;padding:12px!important;overflow:visible!important}
.match-format-row>.match-format-view{display:grid!important;width:100%!important;height:auto!important;min-height:0!important;gap:5px!important;white-space:normal!important}
.match-format-row>.match-format-view small{display:block!important;overflow:visible!important;white-space:normal!important;line-height:1.35!important}
.format-detail-actions{display:flex!important;justify-content:flex-end!important;gap:9px!important}.format-detail-actions button{width:auto!important;min-width:96px!important}
.activity-angle-thumb .activity-angle-preview>.camera-name-pill{box-sizing:border-box!important;position:absolute!important;top:7px!important;right:auto!important;bottom:auto!important;left:50%!important;display:block!important;width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;max-width:calc(100% - 14px)!important;margin:0!important;padding:4px 8px!important;border-radius:999px!important;font-size:10px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;transform:translateX(-50%)!important}
@media(max-width:760px){
  #matchFormatList>.mobile-format-page{display:grid!important;height:auto!important;min-height:0!important;grid-template-rows:none!important;grid-auto-rows:max-content!important;align-content:start!important;gap:10px!important}
  #matchFormatList .match-format-row{display:block!important;height:auto!important;min-height:88px!important;margin:0!important;padding:11px!important}
  .readonly-score-scroll .tennis-scoreboard,.activity-card .readonly-score-scroll .tennis-scoreboard{grid-template-columns:minmax(165px,1fr) repeat(var(--set-count,3),38px)!important}
  .readonly-score-scroll .score-player>span,.activity-card .readonly-score-scroll .score-player>span{min-width:165px!important}
}

/* Alpha 40 final overrides follow the accumulated responsive viewer rules. */
.live-angle-thumb-preview img[data-camera-thumbnail]{position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;background:#090d11}
@media (min-width:821px), (max-width:820px) and (orientation:landscape){
  .live-media-row{display:grid!important;grid-template-columns:minmax(0,1fr) clamp(170px,22vw,260px)!important;gap:12px!important;align-items:start!important}
  .live-media-row>.live-angle-thumbnails{display:flex!important;width:auto!important;min-width:0!important;margin:0!important;box-sizing:border-box!important;flex-direction:column!important;gap:8px!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable}
  .live-media-row>.live-angle-thumbnails .live-angle-thumb{flex:0 0 auto!important;width:100%!important;height:auto!important;min-height:0!important}
}

/* Alpha 44 no-score card alignment must win the accumulated card cascade. */
.activity-card-competition.no-score{grid-template-columns:minmax(0,1fr)!important}
.activity-card-competition.no-score .activity-card-lineup{display:grid!important;justify-items:center!important;width:100%!important;overflow:visible!important}
.activity-card-main .activity-card-competition.no-score .activity-match-players,
.activity-card-main .activity-card-competition.no-score .activity-match-players.doubles{justify-content:center!important;justify-items:center!important;margin-inline:auto!important}
.activity-card-competition[data-has-scoreboard="false"]{grid-template-columns:minmax(0,1fr)!important}
.activity-card-competition[data-has-scoreboard="false"] .activity-card-lineup{display:grid!important;justify-items:center!important;width:100%!important;overflow:visible!important}
.activity-card-main .activity-card-competition[data-has-scoreboard="false"] .activity-match-players,
.activity-card-main .activity-card-competition[data-has-scoreboard="false"] .activity-match-players.doubles{justify-content:center!important;justify-items:center!important;margin-inline:auto!important}

/* Alpha 60 final overrides follow every legacy responsive rule. */
.current-activity-edit-actions.hidden{display:none!important}
.match-players-hint{display:block;margin-top:7px;color:var(--muted);font-size:12px;font-weight:650}.match-players-hint.hidden{display:none!important}
.activity-card-tags{margin-top:9px}
.readonly-score-frame,.live-score-frame{position:relative!important}
.readonly-score-frame>.score-scroll-controls,.live-score-frame>.score-scroll-controls{position:absolute!important;inset:0!important;display:block!important;pointer-events:none!important;z-index:4!important}
.readonly-score-frame>.score-scroll-controls .score-scroll-cue,.live-score-frame>.score-scroll-controls .score-scroll-cue{position:absolute!important;top:50%!important;pointer-events:auto!important;transform:translateY(-50%)!important}
.readonly-score-frame .score-scroll-cue-left,.live-score-frame .score-scroll-cue-left{left:4px!important}.readonly-score-frame .score-scroll-cue-right,.live-score-frame .score-scroll-cue-right{right:4px!important}.scoreboard-toolbar{justify-content:flex-end!important}
.activity-media-viewer.instant-replay-active{padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important}
.activity-media-viewer.instant-replay-active>.activity-replay-context{margin:0!important;padding:14px 14px 0!important;border:2px solid #78b4d0!important;border-bottom:0!important;border-radius:16px 16px 0 0!important;background:#f4faff!important}
.activity-media-viewer.instant-replay-active>.activity-viewer-grid{margin:0 0 18px!important;padding:14px!important;border:2px solid #78b4d0!important;border-top:0!important;border-radius:0 0 16px 16px!important;background:#f4faff!important}
.activity-replay-context{grid-template-columns:minmax(0,1fr) auto!important;align-items:start!important}.activity-replay-context-actions{grid-column:2!important;grid-row:1!important;justify-self:end!important;display:flex!important;justify-content:flex-end!important;gap:7px!important}.activity-replay-context-metadata{grid-column:1/-1!important}.activity-view-modal .activity-mobile-camera.hidden{display:none!important}
.activity-card-footer{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;align-items:center!important}.activity-media-status{min-width:0!important;gap:9px!important}.activity-processing-label{white-space:nowrap}.cancel-processing-card{margin-left:0!important}
@media(max-width:760px){#matchFormatList>.mobile-format-page{display:grid!important;grid-template-rows:repeat(var(--format-page-count,3),minmax(0,1fr))!important;grid-auto-rows:unset!important;align-content:stretch!important;gap:10px!important}#matchFormatList .match-format-row{height:100%!important;min-height:0!important;padding:11px!important}#matchFormatList .match-format-view,#matchFormatList .match-format-view strong,#matchFormatList .match-format-view small{align-content:center!important;text-align:left!important;text-indent:0!important;padding-left:0!important;margin-left:0!important}.activity-replay-context{grid-template-columns:minmax(0,1fr) auto!important}.activity-replay-context-actions{flex-wrap:wrap!important;justify-content:flex-end!important}}
@media(max-width:520px){.activity-card-footer{grid-template-columns:minmax(0,1fr) auto!important;gap:6px!important;padding-inline:9px!important}.activity-card-footer .compact-recommend{grid-column:2!important}.activity-card-footer .cancel-processing-card{grid-column:2!important;grid-row:1!important}.activity-card-footer:has(.cancel-processing-card) .compact-recommend{display:none!important}.activity-media-status{gap:6px!important}.activity-media-status svg{width:18px!important;height:18px!important}}

/* v1.3.0 Alpha 61 — capture actions, score controls, format alignment, and avatars. */
.activity-dock #sessionCameras.session-camera-badge{display:inline-flex!important;align-items:center!important;flex-direction:row!important;gap:6px!important;white-space:nowrap!important}
.activity-dock #sessionCameras.session-camera-badge svg{display:block!important;flex:0 0 auto!important}
.activity-dock #sessionCameras.session-camera-badge span{display:inline!important;white-space:nowrap!important}
#matchFormatList .match-format-row>.match-format-view{grid-template-columns:minmax(0,1fr)!important;justify-content:stretch!important;justify-items:stretch!important;align-items:start!important}
#matchFormatList .match-format-row>.match-format-view strong,#matchFormatList .match-format-row>.match-format-view small{display:block!important;width:100%!important;justify-self:stretch!important;text-align:left!important;text-indent:0!important;margin-left:0!important;padding-left:0!important}
.finalize-player .player-avatar,.finalize-scoreboard .player-avatar{box-sizing:border-box!important;aspect-ratio:1/1!important;flex:0 0 auto!important;min-width:48px!important;min-height:48px!important;border-radius:50%!important;overflow:hidden!important}
@media(min-width:761px){
  .current-match-scoreboard{box-sizing:border-box!important;width:min(650px,100%)!important;max-width:650px!important;margin:0!important;justify-content:flex-start!important}
  .current-match-scoreboard>.current-score-toolbar,.current-match-scoreboard>.tennis-scoreboard,.current-match-scoreboard>.scoreboard-with-info,.current-match-scoreboard>.current-score-empty,.current-match-scoreboard>.live-score-shell{width:100%!important;max-width:650px!important;margin-inline:0!important}
  .current-match-scoreboard>.current-score-toolbar{justify-content:flex-end!important}
  #replayFullscreen{display:none!important}
}
@media(max-width:760px){
  .activity-dock.away-from-court .active-banner-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .activity-dock.away-from-court #viewActiveSession{grid-column:1/-1!important}
  .finalize-player .player-avatar{width:64px!important;height:64px!important;min-width:64px!important;min-height:64px!important}
}

/* v1.3.0 Alpha 62 final overrides follow the complete legacy cascade. */
.activity-dock.away-from-court .active-banner-actions button{box-sizing:border-box!important;min-height:42px!important;height:42px!important;margin:0!important;padding:0 15px!important;border-radius:12px!important;font-size:13px!important;line-height:1!important}
#matchFormatList .match-format-row,#matchFormatList .match-format-view,#matchFormatList .match-format-view strong,#matchFormatList .match-format-view small{margin-left:0!important;padding-left:0!important;text-align:left!important;text-indent:0!important;justify-self:stretch!important;justify-items:start!important}
#matchFormatList .match-format-row{padding-left:12px!important}
.finalize-player-editor .player-picker-preview .player-avatar{box-sizing:border-box!important;flex:none!important;width:82px!important;height:82px!important;min-width:82px!important;min-height:82px!important;max-width:82px!important;max-height:82px!important;aspect-ratio:1/1!important;border-radius:50%!important;overflow:hidden!important}
.finalize-player-editor .player-picker-preview .player-avatar img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important}
@media(min-width:761px){
  #matchFormatsCard #matchFormatList{max-height:min(58vh,720px)!important;overflow-y:auto!important;overscroll-behavior:contain!important;scrollbar-gutter:stable!important;padding-right:5px!important}
  .current-match-scoreboard:has(>.readonly-score-panel){width:fit-content!important;max-width:650px!important}
  .current-match-scoreboard>.readonly-score-panel{width:fit-content!important;max-width:650px!important;margin:0!important}
  .current-match-scoreboard>.readonly-score-panel .readonly-score-frame{width:fit-content!important;max-width:650px!important}
  .current-match-scoreboard>.readonly-score-panel .readonly-score-scroll .tennis-scoreboard{width:max-content!important;min-width:0!important}
  .current-match-scoreboard>.readonly-score-panel .scoreboard-toolbar{width:100%!important;justify-content:flex-end!important}
}
@media(max-width:760px){
  #matchFormatList>.mobile-format-page.partial-page{height:100%!important;grid-template-rows:none!important;grid-auto-rows:max-content!important;align-content:start!important}
  #matchFormatList>.mobile-format-page.partial-page .match-format-row{height:auto!important;min-height:88px!important;padding-left:11px!important}
  #matchFormatList>.mobile-format-page.full-page{height:100%!important;grid-template-rows:repeat(3,minmax(0,1fr))!important;grid-auto-rows:unset!important;align-content:stretch!important}
  #historyResults>.mobile-replay-page.partial-page{height:100%!important;grid-template-rows:none!important;grid-auto-rows:max-content!important;align-content:start!important}
  #historyResults>.mobile-replay-page.partial-page>.history-card{height:auto!important;min-height:0!important}
  #historyResults>.mobile-replay-page.partial-page>.history-card>.history-top{flex:0 1 auto!important}
  #historyResults>.mobile-replay-page.full-page{height:100%!important;grid-template-rows:repeat(3,minmax(0,1fr))!important;align-content:stretch!important}
  .finalize-player-editor .player-picker-preview .player-avatar{width:64px!important;height:64px!important;min-width:64px!important;min-height:64px!important;max-width:64px!important;max-height:64px!important}
}

/* Stabilization: consistent capture actions, compact finalizer rows, and bounded format lists. */
#activityDock .active-banner-actions button{box-sizing:border-box!important;flex:0 0 144px!important;width:144px!important;min-width:144px!important;height:44px!important;min-height:44px!important;margin:0!important;padding:0 12px!important;border-radius:12px!important;font-size:13px!important;line-height:1!important}
.current-player-matchup{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:20px;width:100%;max-width:600px;margin-inline:auto}
.current-player-team{display:grid;justify-items:center;gap:16px;min-width:0}
.current-player-matchup .current-player-summary-item{min-width:0;max-width:100%}
.current-player-matchup .current-player-summary-item strong{overflow-wrap:anywhere}
/* Started capture has no selectors: center VS on the avatar row itself. */
.current-player-matchup>.match-form-versus{margin:0!important;transform:none}
.current-player-matchup.singles{grid-template-rows:auto auto;row-gap:7px}
.current-player-matchup.singles>.current-player-team{grid-row:1 / span 2;grid-template-rows:subgrid;row-gap:7px;justify-items:stretch}
.current-player-matchup.singles>.current-player-team:first-child{grid-column:1}
.current-player-matchup.singles>.current-player-team:last-child{grid-column:3}
.current-player-matchup.singles .current-player-summary-item{grid-row:1 / span 2;grid-template-rows:subgrid;row-gap:7px}
.current-player-matchup.singles>.match-form-versus{grid-column:2;grid-row:1;align-self:center!important}
#finalizeScoreboard .live-score-player{box-sizing:border-box;gap:8px;min-width:0;overflow:hidden}
#finalizeScoreboard .live-score-player strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:1.25}
#finalizeScoreboard .live-score-avatars{display:flex;flex:0 0 auto;gap:4px}
#finalizeScoreboard .live-score-avatars .player-avatar{position:relative!important;box-sizing:border-box!important;flex:0 0 34px!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;max-width:34px!important;max-height:34px!important;margin:0!important;aspect-ratio:1/1!important;border-radius:50%!important;overflow:hidden!important}
#finalizeScoreboard .player-avatar img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important}
@media(min-width:761px){
  #matchFormatsCard #matchFormatList{display:grid!important;grid-auto-rows:max-content!important;align-content:start!important;flex:0 1 auto!important;max-height:min(360px,50vh)!important;min-height:0!important;overflow-y:auto!important;overscroll-behavior:contain!important}
}
@media(max-width:760px){
  #activityDock .active-banner-actions button{flex:1 1 auto!important;width:100%!important;min-width:0!important}
  .current-player-matchup{gap:8px}
  #finalizeScoreboard .live-score-player{flex-direction:column;align-items:flex-start;gap:3px;padding:6px!important}
  #finalizeScoreboard .live-score-player strong{max-width:100%;font-size:12px}
}

/* 1.3.0: singles VS shares the avatar row, independently of selector height. */
.singles-player-layout{grid-template-rows:auto auto;row-gap:6px}
.singles-player-layout>.match-player-picker{grid-row:1 / span 2;grid-template-rows:subgrid}
.singles-player-layout>.match-player-picker:first-child{grid-column:1}
.singles-player-layout>.match-player-picker:last-child{grid-column:3}
.singles-player-layout>.match-form-versus{grid-column:2;grid-row:2;align-self:center!important;margin-top:0!important;transform:translateY(3.5px)}
#currentMatchScoreboard .score-player-identity{display:flex;align-items:center;gap:8px}
#currentMatchScoreboard .score-player-identity .live-score-avatars{display:flex;flex:none}
@media(max-width:760px){
  /* Preview padding (9px) plus half the 66px avatar; subtract half the VS line. */
  .singles-player-layout>.match-form-versus{align-self:start!important;transform:none;line-height:20px;margin-top:32px!important}
  .finalize-player-editor .singles-player-layout>.match-form-versus{margin-top:31px!important}
  .finalize-player-editor:has(.finalize-player-locked) .singles-player-layout>.match-form-versus{margin-top:22px!important}
}

/* Debug Mode only: report controls stay outside the video and camera rail. */
.live-diagnostics-controls{display:flex;align-items:center;justify-content:space-between;gap:.65rem;flex-wrap:wrap;padding:.75rem 0;font-size:.8rem;color:var(--muted,#53615c)}
.live-diagnostics-controls>div{display:flex;flex-wrap:wrap;gap:.4rem}
.live-diagnostics-controls button{padding:.5rem .65rem;font-size:.8rem}
.live-diagnostics-controls.hidden{display:none}

/* Download exports the selected file on every platform; mobile uses the share sheet. */
body.mobile-device .card-download-button,body.mobile-device #playerDownload,body.mobile-apple .card-download-button,body.mobile-apple #playerDownload{display:inline-flex!important}
#activityDownload.busy svg{animation:cc-download-spin .8s linear infinite}
/* Beta 7: shared live/replay app fullscreen and persistent active-match score. */
.live-app-controls{position:absolute;left:10px;right:10px;bottom:10px;z-index:15;display:flex;justify-content:center;gap:8px}
.live-app-controls button{background:#102b2de6;color:#fff;border:1px solid #ffffff66;min-height:40px}
.live-talkback{position:absolute;z-index:16;top:12px;left:12px;border:1px solid #ffffff88;border-radius:18px;background:#102b2ddd;color:#fff;padding:8px 12px;min-height:38px;font-size:12px;font-weight:700}
.live-talkback.talking{background:#a51d32;color:#fff}
.court-active-score{margin:12px 0;padding:12px 16px;border:1px solid #c7dcd5;border-radius:14px;background:#f3f8f5}
.court-active-score .current-match-scoreboard{max-width:100%;margin-inline:auto}
.replay-fullscreen .live-app-controls{bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right))}
/* Beta 7.2: tap-to-reveal Live View controls; PTZ has its own exclusive mode. */
.live-video-shell :is(#liveAppControls,#liveTalkback,#ptzToggle){opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility 0s linear .25s}
.live-video-shell.live-controls-visible:not(.ptz-active) :is(#liveAppControls,#liveTalkback,#ptzToggle),
.live-video-shell:not(.ptz-active) #liveTalkback.talking{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.live-video-shell:focus-visible{outline:3px solid #176da8;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.live-video-shell :is(#liveAppControls,#liveTalkback,#ptzToggle){transition:none}}
