/* Compact broadcast layout; map and own squad stay ahead of optional detail. */
.squad-watch{--watch-cyan:#8be3ff;--watch-green:#a0f0a6;color:#f3f5f5}.br-dialog:has(.squad-watch){width:calc(100vw - 24px);max-width:1200px;padding-bottom:env(safe-area-inset-bottom)}.watch-score{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 0;font:700 13px Arial,sans-serif;font-variant-numeric:tabular-nums}.watch-recorded{font-size:10px;letter-spacing:.07em;color:var(--watch-cyan);margin-right:auto}.watch-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:16px}.watch-map-column,.watch-detail{min-width:0}.watch-stage{position:relative;background:#10222c;border:1px solid #3a535f;border-radius:6px;overflow:hidden;aspect-ratio:1}.watch-stage canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.watch-stage canvas:active{cursor:grabbing}.watch-stage canvas:focus-visible{outline:3px solid var(--watch-cyan);outline-offset:-3px}.watch-map-title,.watch-camera-label{position:absolute;top:8px;background:#07151be8;padding:6px 8px;font-size:10px;pointer-events:none}.watch-map-title{left:8px;border-left:2px solid var(--watch-cyan)}.watch-camera-label{right:8px;color:#c5e9f5}.watch-banner{position:absolute;top:18%;left:8%;width:84%;text-align:center;pointer-events:none;font:bold clamp(13px,2vw,23px) Arial,sans-serif;line-height:1.5;color:white;text-shadow:0 2px 7px #000;background:#091a29d9;border-left:3px solid #8be3ff;overflow-wrap:anywhere}.watch-banner:empty{display:none}.watch-own-out{position:absolute;bottom:8px;left:5%;width:90%;text-align:center;background:#22121deb;color:#ffcabd;font-size:11px;pointer-events:none;padding:5px}.watch-own-out:empty{display:none}.watch-camera,.watch-controls{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:8px 0}.squad-watch button{background:#1b303e;color:#f5f6f6;border:1px solid #526571;border-radius:4px;min-height:44px;min-width:44px;padding:8px 10px;font-size:12px;cursor:pointer}.squad-watch button:hover,.squad-watch button[aria-pressed=true]{border-color:var(--watch-cyan);color:var(--watch-cyan);background:#28495c}.squad-watch button:disabled{opacity:.55;cursor:default}.squad-watch button:focus-visible,.squad-watch select:focus-visible,.squad-watch input:focus-visible{outline:2px solid var(--watch-cyan);outline-offset:2px}.watch-camera output{font-size:11px;color:#b9c9d4}.watch-own{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px;background:#101e28;border:1px solid #314858}.watch-player{min-width:0;padding:8px 0;border-bottom:1px solid #334956}.watch-player strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.watch-player span{display:block;font-size:10px;color:#b4c5ce;margin:4px 0;overflow-wrap:anywhere}.watch-player small{font:10px Arial,sans-serif;color:#c8d4dd}.watch-own .watch-player{padding:0 5px;border:0}.watch-hp,.watch-shield{height:4px;background:#3e4c56;margin:4px 0;overflow:hidden;border-radius:2px}.watch-hp i,.watch-shield i{display:block;height:100%;background:var(--watch-green)}.watch-shield i{background:#a8b9ff}.watch-out{opacity:.48}.watch-detail label,.watch-seek{font-size:11px;color:#c6d8e4;display:block}.watch-detail select{display:block;width:100%;margin-top:7px;background:#172a35;color:white;border:1px solid #657681;padding:10px 7px;min-height:44px;border-radius:4px;font-size:12px}.watch-team-summary{font-size:12px;line-height:1.7;padding:12px 0;overflow-wrap:anywhere;color:#c7e4ef}.watch-feed{padding:0;list-style:none;min-height:50px;font-size:11px;line-height:1.65;color:#ffdbb1;overflow-wrap:anywhere;margin:5px 0 12px}.watch-feed li{border-bottom:1px solid #30404b;padding:5px 0}.watch-inspect,.watch-help{border-top:1px solid #3b4d5a;margin-top:8px}.squad-watch summary{font-size:12px;cursor:pointer;min-height:44px;padding:12px 0}.watch-help p,.watch-note{font-size:10px;line-height:1.8;color:#afc4d1}.watch-options{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.watch-options label{width:100%}.watch-options input,.watch-seek input{display:block;width:100%;accent-color:var(--watch-cyan);min-height:44px;cursor:pointer;margin:0}.watch-controls button:first-child{background:#b5e8f4;color:#10212c;font-weight:700;min-width:85px}.watch-note{margin:8px 0}.watch-terrain-note{font-size:10px;line-height:1.8}
@media(max-width:700px){.br-dialog:has(.squad-watch){width:calc(100vw - 8px);max-height:98dvh}.br-dialog:has(.squad-watch) .modal-pad{padding:10px max(10px,env(safe-area-inset-right)) 10px max(10px,env(safe-area-inset-left))}.watch-layout{grid-template-columns:1fr;gap:8px}.watch-score{gap:10px;font-size:11px;padding:6px 0}.watch-recorded{width:100%;font-size:9px}.watch-map-title,.watch-camera-label{font-size:9px;padding:5px;top:5px}.watch-map-title{left:5px}.watch-camera-label{right:5px}.watch-camera{gap:4px}.watch-camera button{font-size:10px;padding:7px;flex:1 0 auto}.watch-camera output{min-width:32px}.watch-own{padding:7px 3px;gap:2px}.watch-own .watch-player{padding:0 3px}.watch-player strong{font-size:11px}.watch-player small{font-size:9px}.watch-controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.watch-controls button{padding:6px 2px;font-size:10px}.watch-controls button:first-child{min-width:0}.watch-detail{border-top:1px solid #40515c;padding-top:8px}.watch-feed{min-height:0;max-height:105px;overflow:auto}.watch-team-summary{padding:7px 0}.watch-note{font-size:9px}.watch-own-out{font-size:9px}}
@media(orientation:landscape) and (max-height:600px){.watch-layout{grid-template-columns:minmax(0,1fr) minmax(180px,28%)}.watch-stage{max-width:65vh;margin:auto}.watch-detail{border:0;padding:0}.watch-own{padding:5px}.br-dialog:has(.squad-watch){max-width:1100px}.watch-score{padding:4px 0}.watch-recorded{width:auto}}
@media(prefers-reduced-motion:reduce){.squad-watch *{scroll-behavior:auto;transition:none!important;animation:none!important}}
.watch-stage{width:min(100%,55dvh);margin-inline:auto}@media(orientation:landscape) and (max-height:600px){.watch-stage{width:min(100%,65dvh)}}
/* Phone finish: supplementary controls collapse; zoom never becomes a full-row target. */
.watch-panel{min-width:0}.watch-panel>summary{color:#b8dcea;border-bottom:1px solid #40515c}.watch-range{font-size:11px;line-height:1.5;color:#a9dcec;margin:6px 0}.watch-range[hidden]{display:none}.watch-record-note{border-top:1px solid #40515c;margin-top:8px}.watch-record-note .watch-camera{margin-bottom:0}.watch-banner{top:auto;bottom:34px;font-size:clamp(11px,1.5vw,17px);max-height:54px;overflow:hidden}.watch-camera-label{max-width:47%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:900px){.br-dialog:has(.squad-watch) .br-match-heading{gap:6px;margin:0 0 8px}.br-dialog:has(.squad-watch) .br-match-heading h2{font-size:22px;line-height:1.2;margin:5px 0}.br-dialog:has(.squad-watch) .br-match-heading .upper{font-size:9px;margin:0}.br-dialog:has(.squad-watch) .br-match-heading .live-pill{font-size:8px;padding:5px}.watch-camera{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.watch-camera button{min-width:44px}.watch-camera button[data-watch=auto],.watch-camera button[data-watch=follow],.watch-camera button[data-watch=overview]{grid-column:span 2}.watch-camera button[data-watch=in],.watch-camera button[data-watch=out]{grid-column:span 1;padding:5px}.watch-camera output{grid-column:span 4;padding-inline:8px}.watch-detail{padding-top:0}.watch-panel>summary{font-size:11px}.watch-recorded{letter-spacing:0}.watch-own-out{max-height:30px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media(min-width:901px){.watch-panel>summary{font-size:11px;padding-top:0}}
@media(orientation:landscape) and (max-height:600px){.br-dialog:has(.squad-watch) .modal-pad{padding:10px max(10px,env(safe-area-inset-right)) 10px max(10px,env(safe-area-inset-left))}.br-dialog:has(.squad-watch) .br-match-heading{margin-bottom:4px}.moment-review-note{margin:4px 0;font-size:10px}}
@media(orientation:landscape) and (max-height:600px){.watch-stage{width:min(100%,calc(100dvh - 170px));max-width:65dvh}}

/* Actual v3 status channels; no position offsets or extra motion. */
.squad-watch{--watch-down:#ffbf75;--watch-temp:#e3b0ff}.watch-down{border-left:2px solid var(--watch-down);padding-left:4px!important}.watch-down span{color:var(--watch-down)}.watch-down-bar i{background:var(--watch-down)}.watch-temp{height:3px;background:#3a2b48;margin:3px 0}.watch-temp i{height:100%;display:block;background:var(--watch-temp)}.watch-ability-ready{font-variant-numeric:tabular-nums;font-size:9px!important}.combat-ability-detail p{font-size:11px;line-height:1.7}.combat-ability-detail summary{min-height:44px;padding:12px 0;cursor:pointer}.combat-ability-detail small{line-height:1.7;display:block;color:#afc4d1}.watch-own .watch-player small{display:block;overflow-wrap:anywhere}
.club-computing{width:min(480px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;background:#14232e;color:#e9f3f6;border:1px solid #89bdb8;border-radius:8px}.club-computing::backdrop{background:#050a10b8}.club-computing button{min-height:44px}.club-computing [data-compute-progress]{color:#8fe2dc;font-weight:700}.club-computing p{line-height:1.7}
/* Recorded call stays beside the own HUD, outside the map canvas. */
.watch-call{margin:0;padding:7px 10px;background:#162d39;border-inline:1px solid #426171;border-bottom:1px solid #426171;color:#d3f1f7;font-size:12px;line-height:1.5;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.watch-call[hidden]{display:none}
