/* Additive skin; old tabs and all detailed parameters remain in their panels. */
.control-tabs.has-play{grid-template-columns:repeat(5,minmax(0,1fr))}
#play-panel{padding-top:6px}.play-group{margin-top:2px}.play-group summary{padding:6px 0}.play-actions{display:flex;gap:4px;margin:4px 0 6px}.play-actions button{flex:1;min-width:0;font-size:9px;padding:4px 6px;min-height:28px}.play-actions #play-launch{border-color:#55cddd;background:#14333e}.play-toggle,.play-select{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:4px 0;font-size:10px}.play-toggle input{accent-color:#68dfec;width:15px;height:15px}.play-select select{max-width:62%;background:#15162a;color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:3px 4px}#play-objective{width:178px;max-width:75%}.parameter-row:has(#parameter-model-objectiveMode){grid-template-columns:minmax(0,1fr) 168px}.play-status{font-size:8.5px;line-height:1.35;color:var(--muted);margin:3px 0 5px}.play-slider .parameter-slider-footer{font-size:7.5px}.play-slider{padding:2px 0 3px!important}.play-slider .parameter-unit{font-size:7.5px}.play-slider input[type=range]{margin:2px 0!important}.play-details{margin-top:7px}
body .consensus-banner{left:auto!important;top:auto!important;right:15px!important;bottom:39px!important;transform:none!important;min-width:0!important;max-width:270px!important;width:auto;padding:7px 10px!important;text-align:left;box-shadow:none!important;border-color:#5cbaa448;background:#111e26d9;pointer-events:auto;opacity:.87}
body .consensus-banner strong{font-size:10px!important;letter-spacing:.5px!important}body .consensus-banner span{font-size:9px!important;margin-top:2px!important}
.play-fullscreen-tools{position:absolute;left:12px;top:116px;z-index:12;display:flex;gap:6px}.play-fullscreen-tools button{font-size:10px;background:#101023e6;color:var(--ink);border-color:#4b526d}
/* Native fullscreen state changes before the queued fullscreenchange callback.
   Keep the escape control visible throughout that transition, including while
   its previous hidden attribute has not yet been updated. No model is read. */
.viewport:fullscreen #play-exit-fullscreen{display:inline-flex!important}
.viewport:fullscreen #play-fullscreen{display:none!important}
.viewport:not(:fullscreen) #play-exit-fullscreen{display:none!important}
.viewport:not(:fullscreen) #play-fullscreen{display:inline-flex!important}
.viewport:fullscreen{width:100vw!important;height:100dvh!important;min-height:100dvh!important;background:#080616}.viewport:fullscreen .play-fullscreen-tools{left:12px;top:12px}.viewport:fullscreen .scene-top{top:52px}.viewport:fullscreen .scene-legend{top:100px}.viewport:fullscreen .consensus-banner{right:12px!important;bottom:32px!important}
body.show-view .play-fullscreen-tools{top:12px}body.show-view .scene-buttons{padding-left:110px}
@media(max-width:800px){.play-fullscreen-tools{top:103px}.play-actions button{min-height:36px}.play-toggle{min-height:34px}.control-tabs.has-play button{font-size:11px}body .consensus-banner{right:10px!important;bottom:35px!important;max-width:225px!important}body.show-view .scene-buttons{padding-left:0;padding-top:38px}.viewport:fullscreen .scene-buttons{flex-wrap:wrap;max-width:85vw}}

.play-firefly-top{display:flex;flex-direction:column;gap:5px;margin:8px 0 10px}.play-firefly-top button{font-size:10px}.play-select .formation-dimension-options{display:flex;justify-content:flex-end}.play-status{overflow-wrap:anywhere}
/* The viewport toolbar must not cover the mobile Parameters panel. Native
   fullscreen remains exempt so its top-left exit is always available. */
@media(max-width:600px){body.controls-open:not(.show-view) .viewport:not(:fullscreen) .play-fullscreen-tools{visibility:hidden;pointer-events:none}}

/* Compact Play-only presentation. Detailed Experiment/Drone/View panels are untouched. */
#play-panel .parameter-slider-footer{display:none!important}
#play-panel .parameter-slider-header{min-height:18px}
#play-panel .play-slider{padding:1px 0 2px!important}
#play-panel .play-slider input[type=range]{height:16px;margin:0!important}
#play-panel .play-group summary{padding:4px 0;font-size:10px}
#play-panel .play-select,#play-panel .play-toggle{padding:3px 0;font-size:9.5px}
#play-panel .play-actions{margin:3px 0 4px}
#play-panel .play-actions button{min-height:25px;padding:3px 5px;font-size:8.5px}
#play-panel .play-status{font-size:8px;line-height:1.25;margin:2px 0 4px}
#play-panel .play-effects{border-top-color:#55cddd66}
#play-panel .play-effects>summary{font-size:10.5px;letter-spacing:.2px}
#play-panel .scene-camera-controls{margin-top:2px}
#play-panel .scene-camera-controls summary{padding:4px 0}
#play-panel .scene-camera-row{min-height:25px;padding:2px 0;font-size:9px}
#play-panel .scene-camera-row input,#play-panel .scene-camera-row select{height:24px;padding:2px 4px}

#play-panel .play-setup,#play-panel .play-effects{margin-top:1px}
#play-panel .play-setup>summary,#play-panel .play-effects>summary{font-weight:700}
#play-panel .play-priority .play-select{min-height:26px}
#play-panel .play-priority .play-slider{padding:0 0 1px!important}
#play-panel .play-setup .play-select{min-height:25px}
#play-panel .play-setup .formation-dimension-options{gap:7px}
#play-panel .play-setup .formation-dimension-options label{font-size:9px}

/* Play section titles remain visually distinct from controls; open sections change hue for quick closure. */
#play-panel .play-group>summary,#play-panel .scene-camera-controls>summary{color:#78dfff!important}
#play-panel .play-group[open]>summary,#play-panel .scene-camera-controls[open]>summary{color:#d7a0ff!important}
#play-panel .play-group>summary:after,#play-panel .scene-camera-controls>summary:after{color:currentColor!important}

.play-playback-speed{border:1px solid #4a99b35a;border-radius:6px;background:#0c1b2d;margin:5px 0 8px;padding:5px 7px}.play-playback-speed .play-slider{padding:2px!important}.play-playback-speed .parameter-slider-label{font-weight:700;color:#a9edf5}

/* Explicit integer drone entry. The existing counter buttons and range stay active. */
#play-panel #play-n-exact{width:68px;min-width:68px;max-width:68px;height:26px;padding:2px 5px;text-align:center;background:#171b30;color:#e7f4ff;border:1px solid #647c9b;border-radius:4px;font:600 11px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;font-variant-numeric:tabular-nums}
#play-panel #play-n-exact:focus-visible{outline:2px solid #83e4ff;outline-offset:1px}
#play-panel #play-n-exact::-webkit-inner-spin-button,#play-panel #play-n-exact::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
#play-panel #play-n-exact{-moz-appearance:textfield;appearance:textfield}
#play-panel .parameter-slider-counter .parameter-slider-value-group output[hidden]{display:none!important}
