/* Slate Studio: presentation only. Light mode retains its existing palette. */
:root:not([data-theme="light"]){--ink:#09121c;--panel:#101c29;--panel-2:#172838;--line:#2b4357;--line-soft:#203447;--paper:#eaf2f8;--paper-dim:#aec3d3;--paper-dimmer:#809bae;--blue:#42c2ff;--blue-bright:#8adaff;--blue-soft:#36b5ff1c;--radius:10px;--radius-sm:6px}
:root:not([data-theme="light"]) #stage{background:radial-gradient(ellipse at 50% 45%,#173247 0%,#09121c 72%)}
:root:not([data-theme="light"]) #model-3d{background:transparent}
:root:not([data-theme="light"]) .top-chrome,:root:not([data-theme="light"]) #command-navigator,:root:not([data-theme="light"]) #command-inspector{background:var(--panel)}
:root:not([data-theme="light"]) button.active,:root:not([data-theme="light"]) button[aria-pressed="true"]{border-color:#42c2ff;background:var(--blue-soft)}
:root:not([data-theme="light"]) #command-navigator #ap-list .active{box-shadow:inset 2px 0 #42c2ff;background:#17364c}
:root:not([data-theme="light"]) .studio-object-footprint{fill:#526d7b;fill-opacity:.4}
:root:not([data-theme="light"]) .studio-object-footprint[stroke="#cf9855"]{stroke:#8cb9d1}

/* Visual control only: does not change object loss or RF predictions. */
.map-visibility-panel .object-opacity-control{display:grid;grid-template-columns:1fr auto;gap:7px;padding:10px 0;border-top:1px solid var(--line);margin:8px 0;color:var(--paper);font-size:12px}
.map-visibility-panel .object-opacity-control input{grid-column:1/-1;width:100%;height:24px;margin:0;padding:0;accent-color:var(--blue);cursor:pointer}
.map-visibility-panel .object-opacity-control output{font-variant-numeric:tabular-nums;color:var(--blue)}
