:root{color-scheme:dark;font-family:system-ui,sans-serif;--bg: #0f172a;--panel-bg: #1e293b;--text: #e2e8f0;--text-muted: #94a3b8;--text-faint: #64748b;--border: #334155;--border-strong: #475569;--input-bg: #0f172a;--scale-line: #cbd5e1;--error: #f87171;--histogram-bar: #3987e5;--histogram-bar-hover: #6da7ec;--mesh-bg-1: #1e293b;--mesh-bg-2: #0b1220;--badge-added: #3987e5;--badge-fixed: #f87171;--badge-changed: #19a37a;--badge-chore: #94a3b8;--cat-1: #3987e5;--cat-2: #199e70;--cat-3: #c98500;--cat-4: #008300;--cat-5: #9085e9;--cat-6: #e66767;--cat-7: #d55181;--cat-8: #d95926;--cat-ungrouped: var(--text-faint);--pit-connector: #fb923c}:root[data-theme=light]{color-scheme:light;--bg: #f1f5f9;--panel-bg: #ffffff;--text: #0f172a;--text-muted: #475569;--text-faint: #71717a;--border: #cbd5e1;--border-strong: #94a3b8;--input-bg: #f8fafc;--scale-line: #334155;--error: #dc2626;--histogram-bar: #2a78d6;--histogram-bar-hover: #6da7ec;--mesh-bg-1: #e2e8f0;--mesh-bg-2: #cbd5e1;--badge-added: #2a78d6;--badge-fixed: #dc2626;--badge-changed: #0f9d70;--badge-chore: #64748b;--cat-1: #2a78d6;--cat-2: #1baf7a;--cat-3: #eda100;--cat-4: #008300;--cat-5: #4a3aa7;--cat-6: #e34948;--cat-7: #e87ba4;--cat-8: #eb6834;--cat-ungrouped: var(--text-faint);--pit-connector: #c2410c}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text)}.app{display:flex;flex-direction:column;height:100%}.app>header{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);flex:0 0 auto}.app>header h1{font-size:1.1rem;margin:0;flex:1}.block-store-scan{padding-bottom:.75rem;border-bottom:1px solid var(--border)}.scan-select,.scan-select-single{display:block;width:100%;font-size:.85rem;box-sizing:border-box}.scan-select{background:var(--panel-bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.4rem .5rem;cursor:pointer}.scan-select:hover,.scan-select:focus{border-color:var(--border-strong);outline:none}.scan-select-single{color:var(--text-muted);padding:.4rem .1rem}.page-nav{display:flex;gap:.5rem;align-items:center}.page-nav button,.tool-switcher button,.theme-toggle{background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:6px;padding:.3rem .7rem;font-size:.8rem;cursor:pointer}.page-nav button.active,.tool-switcher button.active{background:var(--border);color:var(--text);border-color:var(--border-strong)}.version-badge{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;background:none;border:none;color:var(--text-faint);padding:.3rem .2rem;font-size:.78rem;cursor:pointer}.version-badge:hover{color:var(--text-muted)}.dashboard-layout{flex:1;min-height:0;display:flex;overflow:hidden}.dashboard{flex:1;min-height:0;min-width:0;overflow:auto;display:grid;padding:1rem}.block-store{flex:0 0 auto;width:220px;border-right:1px solid var(--border);padding:1rem;display:flex;flex-direction:column;gap:.75rem;overflow-y:auto;transition:background-color .15s ease}.block-store.drag-over{background:color-mix(in srgb,var(--histogram-bar) 8%,transparent)}.block-store.collapsed{width:32px;padding:1rem 0;align-items:center}.block-store-header{display:flex;align-items:center;justify-content:space-between}.block-store-header h2{font-size:.95rem;margin:0;color:var(--text-muted)}.block-store-toggle{background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:6px;padding:.2rem .5rem;font-size:.75rem;cursor:pointer}.block-store-toggle:hover{background:var(--border);color:var(--text)}.block-store-list{display:flex;flex-direction:column;gap:.5rem}.block-store-card{border:1px solid var(--border);border-radius:8px;padding:.6rem .7rem;font-size:.85rem;background:var(--panel-bg);cursor:grab;-webkit-user-select:none;user-select:none}.block-store-card:hover{border-color:var(--border-strong)}.block-store-card:active{cursor:grabbing}.block-store-hint{margin-top:auto}.block-store-outline{border:1px solid var(--border);border-radius:8px;padding:.6rem}.grid-outline{display:flex;flex-direction:column;gap:.4rem;-webkit-user-select:none;user-select:none}.grid-outline-body{display:flex;align-items:stretch;gap:4px}.grid-outline-grid{position:relative;display:grid;gap:2px;flex:1;min-width:0}.grid-outline-block{border-radius:3px;background:color-mix(in srgb,var(--histogram-bar) 25%,var(--panel-bg));border:1px solid var(--histogram-bar);font-size:.55rem;line-height:1.1;color:var(--text);padding:2px 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-outline-empty{border:1px dashed var(--border);border-radius:3px}.grid-outline-selection{border:1px solid var(--histogram-bar);background:color-mix(in srgb,var(--histogram-bar) 15%,transparent);border-radius:3px;pointer-events:none;z-index:2}.grid-outline-hit{z-index:3;cursor:pointer}.grid-outline-add-col,.grid-outline-add-row{background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:4px;cursor:pointer;font-size:.75rem;line-height:1}.grid-outline-add-col{width:18px}.grid-outline-add-row{height:18px}.grid-outline-add-col:hover,.grid-outline-add-row:hover{background:var(--border);color:var(--text)}.grid-outline-controls{display:flex;gap:.4rem}.grid-outline-controls button{flex:1;background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:4px;padding:.2rem .3rem;font-size:.7rem;cursor:pointer}.grid-outline-controls button:disabled{opacity:.4;cursor:not-allowed}.grid-outline-controls button:not(:disabled):hover{background:var(--border);color:var(--text)}.grid-outline-toolbar{display:flex;align-items:center;gap:.4rem;font-size:.7rem;flex-wrap:wrap}.grid-outline-toolbar-hint{color:var(--text-muted);flex:1;min-width:0}.grid-outline-toolbar button{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:4px;padding:.15rem .4rem;font-size:.7rem;cursor:pointer}.grid-outline-toolbar button:disabled{opacity:.4;cursor:not-allowed}.grid-outline-toolbar button:not(:disabled):hover{background:var(--border)}.empty-cell{display:flex;align-items:center;justify-content:center;border:1px dashed var(--border);border-radius:8px;min-height:0}.empty-cell.drag-over{border-color:var(--histogram-bar);background:color-mix(in srgb,var(--histogram-bar) 8%,transparent)}.splitter{position:relative;z-index:1}.splitter-vertical{cursor:col-resize}.splitter-vertical:after{content:"";position:absolute;top:0;bottom:0;left:2px;width:2px;background:transparent}.splitter-vertical:hover:after{background:var(--histogram-bar)}.splitter-horizontal{cursor:row-resize}.splitter-horizontal:after{content:"";position:absolute;left:0;right:0;top:2px;height:2px;background:transparent}.splitter-horizontal:hover:after{background:var(--histogram-bar)}.draggable-panel{position:relative;display:flex;flex-direction:column;min-height:0;min-width:0;height:100%;border-radius:8px;outline:2px dashed transparent;outline-offset:-2px;transition:outline-color .15s ease,opacity .15s ease}.draggable-panel.dragging{opacity:.4}.draggable-panel.drag-over{outline-color:var(--histogram-bar)}.drag-handle{position:absolute;top:2px;left:6px;z-index:3;cursor:grab;font-size:.85rem;line-height:1;color:var(--text-faint);padding:1px 4px;border-radius:4px;-webkit-user-select:none;user-select:none}.drag-handle:hover{background:var(--border);color:var(--text)}.drag-handle:active{cursor:grabbing}.draggable-panel-content{flex:1;min-height:0;display:flex;flex-direction:column}.draggable-panel-content>.panel{flex:1;min-height:0}.config-main,.version-main{flex:1;min-height:0;overflow:auto;padding:1rem;display:flex;justify-content:center}.reports-main{flex:1;min-height:0;overflow:hidden;padding:1rem}.reports-page{flex:1;display:flex;gap:1rem;min-height:0;height:100%;width:100%}.reports-list{flex:0 0 300px;overflow-y:auto}.reports-list-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.reports-list-items li{display:flex;align-items:center;gap:.4rem;border:1px solid var(--border);border-radius:8px}.reports-list-items li.selected{border-color:var(--histogram-bar)}.reports-list-item-button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;background:none;border:none;cursor:pointer;padding:.4rem .6rem;color:var(--text);text-align:left}.reports-list-item-title{font-size:.85rem}.reports-list-item-date{font-size:.7rem;color:var(--text-faint)}.reports-delete{flex:0 0 auto;font-size:.7rem;padding:.2rem .5rem;margin-right:.4rem}.reports-viewer{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:8px;overflow:hidden}.reports-iframe{width:100%;height:100%;border:none;background:#fff}.panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;padding:1rem;min-height:0;display:flex;flex-direction:column;overflow-y:auto}.panel h2{font-size:.95rem;margin:0;color:var(--text-muted)}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.panel-header-controls{display:flex;align-items:center;gap:.6rem;flex:0 0 auto}.zoom-controls{display:flex;gap:.2rem}.zoom-controls button{min-width:1.6rem;padding:.15rem .4rem;font-size:.75rem;line-height:1;border:1px solid var(--border);border-radius:4px;background:var(--panel-bg);color:var(--text-muted);cursor:pointer}.zoom-controls button:hover{background:var(--border);color:var(--text)}.mark-step-subtitle{text-align:center;font-size:.72rem;font-weight:600;letter-spacing:.02em;color:var(--text-muted);flex:0 0 auto;margin-bottom:.4rem}.boundary-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;flex:0 0 auto;min-height:4.6rem;align-content:flex-start}.boundary-toggles{display:flex;gap:.4rem}.boundary-toggles button{font-size:.72rem;padding:.25rem .55rem;border:1px solid var(--border);border-radius:6px;background:var(--panel-bg);color:var(--text-muted);cursor:pointer}.boundary-toggles button.active{background:var(--histogram-bar);border-color:var(--histogram-bar);color:#fff}.boundary-draw-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-size:.72rem;min-width:0}.boundary-draw-actions .hint{min-width:0}.opacity-control{display:flex;align-items:center;gap:.4rem;font-size:.72rem;color:var(--text-muted);flex:0 0 auto}.opacity-control input[type=range]{width:80px}.panel-footer{display:flex;justify-content:flex-end;flex:0 0 auto;margin-top:.4rem}.xsection-footer{justify-content:space-between;align-items:center}.toggle-switch{display:inline-flex;align-items:center;gap:.5rem;background:none;border:none;padding:0;cursor:pointer;color:var(--text-muted);font-size:.82rem}.toggle-track{position:relative;flex:0 0 auto;width:34px;height:18px;border-radius:999px;background:var(--border-strong);transition:background-color .15s ease}.toggle-switch.on .toggle-track{background:var(--histogram-bar)}.toggle-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000059;transition:transform .15s ease}.toggle-switch.on .toggle-knob{transform:translate(16px)}.mesh-panel{overflow:hidden}.mesh-controls{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;flex:0 0 auto}.mesh-controls label{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}.mesh-controls input[type=number]{width:4.5rem}.mesh-controls input[type=range]{flex:1 1 auto;min-width:4rem}.xsection-progress{position:relative;height:1.2rem;border-radius:4px;background:var(--border-strong);overflow:hidden;margin-bottom:.5rem;flex:0 0 auto}.xsection-progress-bar{position:absolute;inset:0 auto 0 0;background:var(--histogram-bar);transition:width .15s ease}.xsection-progress-label{position:relative;display:block;text-align:center;font-size:.75rem;line-height:1.2rem;color:var(--text-muted);mix-blend-mode:difference}.slice-stage-wrapper{position:relative;display:flex;flex-direction:column;align-items:center;flex:1 1 auto;min-height:0}.scale-bar-overlay{position:absolute;top:8px;right:8px;z-index:2;background:color-mix(in srgb,var(--panel-bg) 75%,transparent);padding:.25rem .5rem;border-radius:6px}.slice-stage{position:relative;max-width:100%;overflow:auto;flex:1 1 auto;min-height:0}.slice-stage canvas{cursor:grab}.pencil-cursor-preview{position:absolute;border:1.5px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #0009;pointer-events:none;z-index:3}.slice-stage img,.slice-stage canvas{position:absolute;top:0;left:0;image-rendering:-moz-crisp-edges;image-rendering:-webkit-crisp-edges;image-rendering:pixelated}.xsection-viewport{position:relative;flex:1 1 auto;min-height:0;overflow:auto;display:flex;align-items:flex-start;justify-content:center}.xsection-stage{position:relative;flex:0 0 auto}.xsection-stage img{display:block;image-rendering:-moz-crisp-edges;image-rendering:-webkit-crisp-edges;image-rendering:pixelated}.xsection-stage.xsection-stage-smooth img{image-rendering:auto}.xsection-row{display:flex;flex:1 1 auto;min-height:0;gap:.15rem}.xsection-col{display:flex;flex-direction:column;flex:1 1 0;min-width:0;min-height:0}.xsection-col-inner{display:flex;flex:1 1 auto;min-height:0}.xsection-col:first-child .xsection-viewport{justify-content:flex-end}.xsection-col:last-child .xsection-viewport{justify-content:flex-start}.xsection-row-solo .xsection-col:first-child .xsection-viewport,.xsection-row-solo .xsection-col:last-child .xsection-viewport{justify-content:center}.xsection-col-label{margin:0 0 .3rem;font-size:.8rem;color:var(--text-muted)}.pit-marker{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border:2px solid;border-radius:50%;background:color-mix(in srgb,currentColor 25%,transparent);box-shadow:0 0 0 1px #0009;pointer-events:none}.xsection-viewport-noscrollbar{scrollbar-width:none}.xsection-viewport-noscrollbar::-webkit-scrollbar{display:none}.xsection-zaxis-label{position:absolute;left:4px;font-family:var(--mono, ui-monospace, monospace);font-size:.68rem;color:var(--text);background:#0000008c;padding:.05rem .3rem;border-radius:3px;pointer-events:none;white-space:nowrap}.xsection-zaxis-label-top{top:2px}.xsection-zaxis-label-bottom{bottom:2px}.xsection-zaxis-line{position:absolute;left:0;right:0;height:8px;margin-top:-4px;display:flex;align-items:center;cursor:ns-resize}.xsection-zaxis-line:before,.xsection-zaxis-line:after{content:"";position:absolute;top:50%;width:14%;height:2px;transform:translateY(-50%);background:#facc15;box-shadow:0 0 0 1px #00000080}.xsection-zaxis-line:before{left:0}.xsection-zaxis-line:after{right:0}.xsection-zaxis-line-label{position:absolute;left:4px;transform:translateY(-100%);font-family:var(--mono, ui-monospace, monospace);font-size:.7rem;color:#facc15;background:#0009;padding:.05rem .3rem;border-radius:3px;white-space:nowrap;pointer-events:none}.xsection-zaxis-label-outside{position:absolute;right:100%;margin-right:.35rem;font-family:var(--mono, ui-monospace, monospace);font-size:.68rem;color:var(--text-muted);white-space:nowrap;pointer-events:none}.xsection-zaxis-label-outside-top{top:2px}.xsection-zaxis-label-outside-bottom{bottom:2px}.xsection-zaxis-line-label-outside{position:absolute;top:50%;right:100%;margin-right:.35rem;transform:translateY(-50%);font-family:var(--mono, ui-monospace, monospace);font-size:.7rem;color:#facc15;white-space:nowrap;pointer-events:none}.xsection-zaxis-um-label{position:absolute;left:100%;margin-left:.35rem;font-family:var(--mono, ui-monospace, monospace);font-size:.68rem;color:var(--text-muted);white-space:nowrap;pointer-events:none}.xsection-zaxis-um-label-top{top:2px}.xsection-zaxis-um-label-bottom{bottom:2px}.xsection-zaxis-um-line-label{position:absolute;top:50%;left:100%;margin-left:.35rem;transform:translateY(-50%);font-family:var(--mono, ui-monospace, monospace);font-size:.7rem;color:#facc15;white-space:nowrap;pointer-events:none}.slider-row{display:flex;align-items:center;gap:.5rem;max-width:100%;margin-top:.4rem;flex:0 0 auto}.slider-row label{font-size:.75rem;color:var(--text-muted);width:3.5rem;flex:0 0 auto}.slider-row input[type=range]{flex:1;min-width:0}.mesh-stage{width:100%;flex:1;min-height:0;border-radius:6px;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,var(--mesh-bg-1) 0%,var(--mesh-bg-2) 100%)}.mesh-stage-error{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem;text-align:center;color:var(--text-muted)}.scale-bar{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:.72rem;color:var(--text-muted);flex:0 0 auto;white-space:nowrap}.scale-bar-line{height:3px;background:var(--scale-line);border-radius:2px}.scale-bar-sub{font-size:.65rem;color:var(--text-faint)}.config-page{max-width:760px;width:100%;align-self:flex-start}.config-field{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--text);margin-bottom:.75rem}.config-field input{background:var(--input-bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.4rem .5rem}.config-divider{border:none;border-top:1px solid var(--border);margin:1.25rem 0}.light-row{border:1px solid var(--border);border-radius:8px;padding:.6rem .75rem;margin-bottom:.6rem}.light-row-fields{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));gap:.5rem}.light-angle-input{display:flex;align-items:center;gap:.4rem}.light-angle-input input[type=range]{flex:1;min-width:0}.light-angle-input span{flex:0 0 auto;font-variant-numeric:tabular-nums;color:var(--text);width:2.6rem;text-align:right}.light-diagrams{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.6rem}.light-diagram{width:150px;height:150px;flex:0 0 auto;background:var(--bg);border:1px solid var(--border);border-radius:8px}.light-diagram-axis{stroke:var(--histogram-bar);stroke-width:1.5}.light-diagram-axis-fill{fill:var(--histogram-bar)}.light-diagram-label{fill:var(--text-muted);font-size:9px}.light-diagram-angle-label{fill:var(--text);font-size:9px}.light-diagram-wood{fill:var(--border-strong);stroke:none}.light-diagram-camera{fill:var(--text)}.light-diagram-arc{fill:none;stroke:var(--text-faint);stroke-width:1}.light-diagram-light{stroke:var(--badge-fixed);stroke-width:2}.light-diagram-light-fill{fill:var(--badge-fixed)}.config-field-inline{display:flex;flex-direction:column;gap:.2rem;font-size:.72rem;color:var(--text-muted)}.config-field-inline input{background:var(--input-bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.3rem .4rem;width:100%}.trace-tuning-fields{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:.6rem;margin-bottom:.75rem}.trace-test-canvas{display:block;max-width:100%;background:var(--bg);border:1px solid var(--border);border-radius:8px;cursor:crosshair;touch-action:none}.trace-test-readout{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.5rem}.light-row-actions{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.centroid-editor{display:flex;flex-direction:column;gap:.6rem;min-height:0}.centroid-filter-row{flex:0 0 auto}.centroid-filter-row label{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--text-muted)}.centroid-filter-row select{background:var(--input-bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.2rem .4rem}.centroid-list{flex:0 0 auto;max-height:340px;overflow-y:auto;border:1px solid var(--border);border-radius:8px}.row-delete-x{background:none;border:none;border-radius:4px;font-size:1.1rem;line-height:1;color:var(--error);cursor:pointer;padding:0 .3rem}.row-delete-x:hover{background:var(--error);color:#fff}.tiny-sort-button{background:none;border:none;border-radius:4px;font-size:.75rem;line-height:1;color:var(--text-muted);cursor:pointer;padding:.05rem .25rem;margin-left:.3rem}.tiny-sort-button:hover{background:var(--border)}.tiny-sort-button.active{color:var(--text);background:var(--border)}.centroid-compact-table{width:100%;border-collapse:collapse;font-size:.82rem}.centroid-compact-table th{position:sticky;top:0;text-align:left;color:var(--text-muted);font-weight:500;font-size:.72rem;padding:.3rem .6rem;background:var(--panel-bg);border-bottom:1px solid var(--border)}.centroid-compact-table td{padding:.3rem .6rem;border-bottom:1px solid var(--border)}.centroid-compact-table tbody tr{cursor:pointer}.centroid-reference-row input[type=number]{width:4.5rem;font-size:.8rem;padding:.1rem .3rem}.polyline-row-action{font-size:.68rem;padding:.15rem .4rem;margin-right:.3rem;border:1px solid var(--border);border-radius:4px;background:var(--panel-bg);color:var(--text-muted);cursor:pointer}.polyline-row-action:hover{background:var(--border);color:var(--text)}.centroid-compact-table tbody tr:hover{background:var(--panel-2, var(--border))}.centroid-compact-table tbody tr.selected{background:var(--histogram-bar)}.centroid-compact-table tbody tr.selected td{color:#fff}.centroid-edit-form{flex:0 0 auto;border:1px solid var(--border);border-radius:10px;padding:1.1rem 1.3rem}.centroid-edit-form-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem}.centroid-edit-form-header h3{margin:0;font-size:1.05rem}.centroid-edit-close{background:none;border:none;font-size:1.4rem;line-height:1;color:var(--text-faint);cursor:pointer;padding:0 .3rem}.centroid-edit-close:hover{color:var(--text)}.mark-cycle-banner{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;flex-wrap:wrap;background:var(--input-bg);border:1px solid var(--border);border-radius:6px;padding:.4rem .7rem;margin-bottom:.9rem;font-size:.82rem}.centroid-edit-fields{display:grid;grid-template-columns:repeat(4,minmax(70px,1fr));gap:.9rem;margin-bottom:.9rem}.centroid-edit-fields:last-of-type{margin-bottom:0}.centroid-edit-fields.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.centroid-edit-fields label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:var(--text-muted)}.centroid-edit-fields input,.centroid-edit-fields select{background:var(--input-bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.5rem .6rem;font-size:.95rem;width:100%}.add-object-row{display:flex;align-items:center;gap:.5rem;flex:0 0 auto}.material-category-row{flex-wrap:wrap}.material-category-row button{display:inline-flex;align-items:center;gap:.35rem}.eraser-dot{background:transparent;border:1px dashed var(--text-muted)}.eraser-button.active .eraser-dot{border-color:#fff}.add-object-row select{background:var(--input-bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.3rem .5rem;font-size:.82rem}.centroid-edit-actions{display:flex;align-items:center;gap:.7rem;margin-top:1rem}.centroid-edit-actions button{padding:.4rem .9rem}.centroid-edit-danger{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--border);min-width:0}.centroid-edit-danger .hint{min-width:0}.boundary-keyframes{flex-direction:column;align-items:stretch}.collapsible-header{display:flex;align-items:center;gap:.4rem;margin:0 0 .3rem;cursor:pointer;-webkit-user-select:none;user-select:none;width:100%}.collapse-triangle{display:inline-block;font-size:.65em;color:var(--text-faint);transition:transform .12s ease}.collapse-triangle.open{transform:rotate(90deg)}.collapsible-header.active-mark-step{color:var(--histogram-bar)}.active-mark-step-badge{font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:#fff;background:var(--histogram-bar);border-radius:4px;padding:.1rem .4rem}.boundary-keyframes table{margin:.3rem 0}.danger-button{background:none;border:1px solid var(--error);color:var(--error);border-radius:6px;padding:.35rem .7rem;font-size:.8rem;cursor:pointer}.danger-button:hover{background:var(--error);color:#fff}.version-list{width:100%;max-width:760px;border-collapse:collapse}.version-list th,.version-list td{text-align:left;padding:.4rem .6rem;border-bottom:1px solid var(--border);font-size:.85rem}.version-list th{color:var(--text-muted);font-weight:600}.version-tag{font-family:ui-monospace,monospace;color:var(--text)}.version-badges{display:flex;gap:.3rem;flex-wrap:wrap}.version-badge{display:inline-block;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;padding:.1rem .4rem;border-radius:4px;color:#fff;white-space:nowrap}.version-badge-added{background:var(--badge-added)}.version-badge-fixed{background:var(--badge-fixed)}.version-badge-changed{background:var(--badge-changed)}.version-badge-chore{background:var(--badge-chore)}.version-row-clickable{cursor:pointer}.version-row-clickable:hover td{background:var(--border)}.version-details{white-space:pre-wrap;color:var(--text-muted);background:var(--bg);font-size:.8rem;line-height:1.5}button{background:var(--border);border:1px solid var(--border-strong);color:var(--text);border-radius:6px;padding:.35rem .8rem;font-size:.85rem;cursor:pointer}button:disabled{opacity:.5;cursor:default}.histogram-readout{margin:.3rem 0 .4rem;min-height:1.1em}.histogram-axis-label{fill:var(--text-faint);font-size:9px}.histogram-axis-line{stroke:var(--border);stroke-width:1}.hint{color:var(--text-faint);font-size:.85rem;flex:0 0 auto}.status-legend{display:flex;gap:.9rem;flex-wrap:wrap;font-size:.78rem;color:var(--text-faint)}.status-legend-item{display:inline-flex;align-items:center;gap:.35rem}.status-legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.4)}.material-histogram-legend{display:flex;gap:.9rem;flex-wrap:wrap;font-size:.78rem;color:var(--text-faint);margin-bottom:.4rem}.material-histogram-legend-item{display:inline-flex;align-items:center;gap:.35rem}.histogram-style-toggle{display:inline-flex;gap:.3rem;margin-left:auto}.histogram-style-toggle button{font-size:.72rem;padding:.2rem .5rem;border:1px solid var(--border);border-radius:6px;background:var(--panel-bg);color:var(--text-muted);cursor:pointer}.histogram-style-toggle button.active{background:var(--histogram-bar);border-color:var(--histogram-bar);color:#fff}.stat-tiles{display:flex;flex-wrap:wrap;gap:1rem}.stat-tile{display:flex;flex-direction:column;gap:.3rem;flex:1 1 160px;border:1px solid var(--border);border-radius:8px;padding:.9rem 1rem}.stat-tile-value{font-size:1.8rem;font-weight:600;font-variant-numeric:tabular-nums}.stat-profile-chart{flex-shrink:0;margin-top:.4rem}.stat-tile-label{font-size:.78rem;color:var(--text-muted)}.error{color:var(--error);font-size:.8rem}
