.o03-panel { margin: 0 0 8px; padding: 9px 12px; border: 1px solid var(--border,#d8cec0); border-radius: 8px; background: var(--surface,#fffaf2); }
.o03-controls,.o03-legend { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.o03-controls button[aria-pressed="true"],.o03-active #objectList button[aria-pressed="true"] { background: #e3eeeb; border-color: #55877d; color: #214d45; }
.o03-panel p { margin: 7px 0; }.o03-legend { gap: 18px; font-size: 12px; }
.o03-realRay { color: #a64e20; }.o03-normal { color: #697c7e; }.o03-core { color: #519a9c; }.o03-cladding { color: #9bbfc4; }
.o03-legend span::before { content: ''; display: inline-block; width: 22px; margin-right: 6px; vertical-align: middle; border-top: 2px solid currentColor; }
.o03-legend .o03-normal::before { border-top-style: dashed; }
.o03-plots { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 8px; }
.o03-plots[hidden],.o03-panel[hidden],.o03-selection[hidden] { display: none; }
.o03-plot { border: 1px solid var(--border,#d8cec0); border-radius: 6px; background: var(--surface,#fffaf2); min-width: 0; overflow: hidden; }
.o03-plot h3 { font-size: 13px; margin: 8px 10px 0; font-weight: 600; }.o03-plot svg { display: block; width: 100%; max-height: 180px; }
.o03-plot [tabindex] { cursor: pointer; }.o03-plot [tabindex]:focus { outline: 2px solid #55877d; }
.o03-readings { display: grid; grid-template-columns: minmax(92px,1fr) minmax(105px,1.4fr); gap: 6px 10px; font-size: 12px; }
.o03-readings dt { color: var(--muted,#68635b); }.o03-readings dd { margin: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.o03-toggle { display: flex; gap: 7px; align-items: center; margin: 9px 0; }.o03-selection { margin-top: 8px; }.o03-selection select { max-width: 100%; }.o03-selection p { margin: 6px 0; }
.o03-active #canvasWrap { height: 270px; min-height: 240px; }
.o03-active #properties h3 { font-size: 13px; margin: 16px 0 6px; }.o03-active #properties .param-field { margin: 8px 0; }
.o03-error { color: var(--danger,#9c422b); }.o03-summary { margin: 5px 0; font-size: 12px; }
.o03-active #properties .o03-angle-range { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: center; margin-top: 4px; }
.o03-active #properties .o03-angle-range input[type="range"] { width: 100%; min-width: 0; min-height: 28px; padding: 0; accent-color: var(--accent-line,#a64e20); }
.o03-angle-range output { min-width: 58px; text-align: right; font-size: 12px; font-variant-numeric: tabular-nums; color: var(--ink,#3c3934); }
.o03-angle-range:has(input[hidden]) { grid-template-columns: 1fr; }
.scene3d-body-label.o03-scene-event-label { max-width: 280px; white-space: normal; text-align: left; }
