:root{--font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--bg-app: #2b2b2b;--bg-panel: #2b2b2b;--bg-panel-secondary: #333333;--bg-element: #333333;--bg-element-hover: #3f3f3f;--bg-element-active: #565656;--bg-element-active-hover: #424242;--bg-element-active-camera-toolbar: #545454;--bg-panel-transmitter: #141414;--border-transmitter: #101010;--bg-panel-transmitter-hover: #242424;--bg-panel-transmitter-active-hover: #303030;--border-panel: #3b3b3b;--border-element: #444;--border-subtle: #3b3b3b;--border-viewport-panels: #2b2b2b;--text-primary: #fff;--text-secondary: #ffffff;--text-tertiary: #eeeeee;--text-muted: #dddddd;--text-dim: #bdbdbd;--text-faint: #cccccc;--text-disabled: #484848;--bg-overlay: rgba(22, 22, 22, .45);--bg-overlay-opaque: #1a1a1a;--bg-backdrop: rgba(0, 0, 0, .55);--text-overlay: rgba(255, 255, 255, .6);--view-cube-control: #343434;--view-cube-control-hover: #acacac;--shadow-panel-soft: rgba(0, 0, 0, .1);--shadow-panel-strong: rgba(0, 0, 0, .2);--bg-hud-label: rgba(0, 0, 0, .65);--bg-hud-panel: rgba(28, 28, 28, 1);--border-hud-panel: #555;--edit-mode-preview-window: rgba(6, 6, 6, .2);--color-action: #8372c9;--color-action-hover: #7161ae;--color-accent: #aeaeae;--color-focus: #fff;--color-error: #e05252;--color-hidden-notice: rgba(217, 167, 58, .244);--color-hidden-notice-hover: rgba(217, 167, 58, .8);--color-locked-notice: rgba(91, 159, 217, .244);--color-locked-notice-hover: rgba(91, 159, 217, .8);--color-handle-muted: #7a7a7a;--color-handle-hover: #c0c0c0;--bg-input: #333333;--border-input: #666;--scrollbar-thumb: #555;--kbd-bg: #333;--kbd-color: #888;--segment-pill-bg: #ffffff;--segment-pill-icon: #1a1a1a;--segment-icon-idle: rgba(255, 255, 255, .38);--segment-icon-hover: rgba(255, 255, 255, .65);--tool-btn-size: 32px;--tool-btn-gap: 8px;--camera-btn-size: 36px;--camera-group-gap: 8px;--tooltip-bg: #1a1a1a;--tooltip-color: #e0e0e0;--tooltip-border: #202020;--bg-dropdown: #1e1e1e;--shadow-dropdown: 0 8px 24px rgba(0, 0, 0, .5);--text-picker-selected: #8888ff;--text-picker-selected-hover: #aaaaff}.viewport[data-viewport-theme=light]{--bg-app: #f4f4f4;--bg-element: #333333;--bg-element-hover: #3f3f3f;--bg-element-active: #646464;--bg-element-active-hover: #3d3d3d;--bg-element-active-camera-toolbar: #aeaeae;--bg-panel-transmitter: #0d0d0d;--border-transmitter: #101010;--bg-panel-transmitter-hover: #3a3a3a;--bg-panel-transmitter-active-hover: #424242;--border-subtle: #3b3b3b;--border-viewport-panels: rgb(70, 70, 70);--text-primary: #ffffff;--text-secondary: #e6e6e6;--text-tertiary: #5d5d5d;--text-dim: #cecece;--text-disabled: #b7b7b7;--bg-overlay: rgba(255, 255, 255, .34);--bg-overlay-opaque: #2b2b2b;--text-overlay: rgba(80, 80, 80, .79);--view-cube-control: #7e7e7e;--view-cube-control-hover: #ffffff;--shadow-panel-soft: rgba(20, 32, 50, .08);--shadow-panel-strong: rgba(20, 32, 50, .16);--bg-hud-label: rgba(0, 0, 0, .8);--bg-hud-panel: #2b2b2b;--border-hud-panel: #3b3b3b;--edit-mode-preview-window: rgba(156, 156, 156, .16);--color-action: #a7a7a7;--color-action-hover: #878787;--color-accent: #8a8a8a;--color-handle-muted: #8e8e8e;--color-handle-hover: #d7d7d7;--bg-input: #f8fafc;--border-input: #b8b8b8;--kbd-bg: #ededed;--kbd-color: #8f8f8f;--segment-pill-bg: #ffffff;--segment-pill-icon: #000000;--segment-icon-idle: rgba(255, 255, 255, .52);--segment-icon-hover: rgba(222, 222, 222, .82);--bg-dropdown: #1e1e1e;--text-picker-selected: #8888ff;--text-picker-selected-hover: #aaaaff}body{font-family:var(--font-family);background:var(--bg-app);color:var(--text-primary)}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}*::-webkit-scrollbar{width:5px;height:5px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}*::-webkit-scrollbar-thumb:hover{background:var(--color-handle-hover)}.feedback-dialog__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9500;display:flex;align-items:center;justify-content:center;background:var(--bg-backdrop);animation:feedback-fadein .15s ease}.feedback-dialog__card{min-width:360px;max-width:480px;padding:24px 28px;display:flex;flex-direction:column;gap:14px;background:var(--bg-hud-panel);border:1px solid var(--border-hud-panel);border-radius:8px;animation:feedback-pop .15s ease-out}.feedback-dialog__title{margin:0;font-size:13px;font-weight:400;color:var(--text-primary);letter-spacing:.01em}.feedback-dialog__message{margin:0;font-size:12px;line-height:1.5;color:var(--text-dim)}.feedback-dialog__input{font-family:inherit;font-size:12px;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-input);border-radius:4px;padding:8px 10px;outline:none}.feedback-dialog__input:focus{border-color:var(--color-action)}.feedback-dialog__actions{margin-top:4px;display:flex;justify-content:flex-end;gap:8px}.feedback-dialog__button{font-family:inherit;font-size:12px;padding:6px 14px;border-radius:4px;border:1px solid var(--border-element);background:var(--bg-element);color:var(--text-primary);cursor:pointer}.feedback-dialog__button:hover{background:var(--bg-element-hover)}.feedback-dialog__button:focus-visible{outline:1px solid var(--color-action);outline-offset:1px}.feedback-dialog__button--primary{background:var(--color-action);border-color:var(--color-action);color:var(--text-primary)}.feedback-dialog__button--primary:hover{background:var(--color-action-hover);border-color:var(--color-action-hover)}.feedback-dialog__button--destructive{background:var(--color-error);border-color:var(--color-error);color:var(--text-primary)}.feedback-dialog__button--destructive:hover{background:var(--color-error);filter:brightness(.9)}.feedback-toasts{position:fixed;right:12px;bottom:34px;z-index:9400;display:flex;flex-direction:column;gap:6px;pointer-events:none}.feedback-toast{pointer-events:auto;width:340px;padding:10px 12px;display:flex;align-items:center;gap:10px;background:var(--bg-hud-panel);border-radius:6px;color:var(--text-primary);font-size:12px;line-height:1.4;animation:feedback-slide-in .15s ease-out}.feedback-toast:before{content:"";flex:0 0 auto;width:2px;height:12px;background:var(--text-dim)}.feedback-toast--success:before{background:#5dab66}.feedback-toast--error:before{background:var(--color-error)}.feedback-toast__message{flex:1;word-break:break-word}.feedback-toast__close{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:0;border-radius:3px;color:var(--text-dim);cursor:pointer}.feedback-toast__close:hover{background:var(--bg-element-hover);color:var(--text-primary)}@keyframes feedback-fadein{0%{opacity:0}to{opacity:1}}@keyframes feedback-pop{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes feedback-slide-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@media(prefers-reduced-motion:reduce){.feedback-dialog__backdrop,.feedback-dialog__card,.feedback-toast{animation:none}}.tooltip__content{background:var(--tooltip-bg);color:var(--tooltip-color);border:1px solid var(--tooltip-border);border-radius:3px;padding:8px 10px;font-size:11px;font-family:var(--font-family);white-space:nowrap;z-index:9999;-webkit-user-select:none;user-select:none;animation-duration:.1s;animation-timing-function:ease-out;will-change:transform,opacity}.tooltip__content[data-state=delayed-open][data-side=top]{animation-name:tooltip-slide-down}.tooltip__content[data-state=delayed-open][data-side=bottom]{animation-name:tooltip-slide-up}@keyframes tooltip-slide-down{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes tooltip-slide-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.tooltip__arrow{fill:var(--tooltip-border)}.progress-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;display:flex;align-items:center;justify-content:center;background:var(--bg-backdrop);animation:progress-overlay-fadein .15s ease}@keyframes progress-overlay-fadein{0%{opacity:0}to{opacity:1}}.progress-overlay__card{background:var(--bg-hud-panel);border:1px solid var(--border-hud-panel);border-radius:8px;padding:24px 28px;width:420px;display:flex;flex-direction:column;gap:14px}.progress-overlay__title{margin:0;font-size:13px;font-weight:400;color:var(--text-primary);letter-spacing:.01em}.progress-overlay__bar-track{width:100%;height:4px;background:#ffffff14;border-radius:2px;overflow:hidden}.progress-overlay__bar-fill{height:100%;background:var(--color-action);border-radius:2px}.progress-overlay__bar-fill--indeterminate{width:30%;animation:progress-overlay-bar-indeterminate 1.4s ease-in-out infinite}@keyframes progress-overlay-bar-indeterminate{0%{transform:translate(-100%)}to{transform:translate(333%)}}.progress-overlay__footer{display:flex;align-items:baseline;justify-content:space-between}.progress-overlay__pct{font-size:22px;font-weight:600;color:var(--text-primary);line-height:1;letter-spacing:-.02em}.progress-overlay__meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.progress-overlay__count{font-size:11px;color:var(--text-dim);font-variant-numeric:tabular-nums}.progress-overlay__message{margin:0;font-size:11px;color:var(--text-muted);line-height:1.5}.toolbar{display:flex;align-items:center;gap:4px;padding:6px 8px;background:var(--bg-app);border-bottom:1px solid var(--border-panel)}.toolbar__file{display:flex;gap:4px}.toolbar__button{display:flex;align-items:center;gap:6px;padding:4px 8px;height:var(--tool-btn-size);border:1px solid var(--border-element);border-radius:6px;background:transparent;color:var(--text-dim);cursor:pointer;font-size:.82em;font-family:inherit;transition:background .12s,color .12s}.toolbar__button:hover{background:var(--bg-element-hover);color:var(--text-primary)}.toolbar__divider{width:1px;align-self:stretch;margin:-6px 4px;background:var(--border-element)}.toolbar__kbd{font-size:.75em;padding:1px 4px;border-radius:2px;background:var(--kbd-bg);color:var(--kbd-color);font-family:inherit}.toolbar__project-trigger-label{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar__project-menu{position:absolute;z-index:9999;min-width:260px;max-width:360px!important;max-height:660px;overflow-y:auto;padding-top:6px;border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-dropdown);font-family:var(--font-family);box-shadow:var(--shadow-dropdown);animation:toolbar-project-menu-pop .12s ease-out}@keyframes toolbar-project-menu-pop{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.toolbar__project-menu-item{display:flex;position:relative;align-items:center;gap:4px;width:100%;height:42px;padding:6px 12px 12px 20px;border:0;background:transparent;color:var(--text-muted);font-family:inherit;font-size:12px;text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box}.toolbar__project-menu-item:before{content:"";position:absolute;top:0;right:6px;bottom:6px;left:6px;border:1px solid transparent;border-radius:6px;transition:background .1s,border-color .1s;pointer-events:none}.toolbar__project-menu-item>*{position:relative;z-index:1}.toolbar__project-menu-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar__project-menu-item:hover:before,.toolbar__project-menu-item--highlighted:before{border:1px solid var(--border-element)}.toolbar__project-menu-item--active:before{border-color:var(--border-element);background:var(--bg-panel-secondary)}.toolbar__project-menu-item--active{color:var(--text-secondary)}.toolbar__project-menu-item-actions{display:flex;gap:4px;flex-shrink:0;opacity:0;transition:opacity .12s;pointer-events:none}.toolbar__project-menu-item--active .toolbar__project-menu-item-actions,.toolbar__project-menu-item:hover .toolbar__project-menu-item-actions,.toolbar__project-menu-item--highlighted .toolbar__project-menu-item-actions{opacity:1;pointer-events:auto}.toolbar__project-menu-item-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--text-faint);background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer}.toolbar__project-menu-item-btn:hover,.toolbar__project-menu-item-btn:focus-visible{color:var(--text-muted);background:var(--bg-panel-transmitter-hover);border-color:var(--border-subtle);outline:none}.toolbar__project-menu-empty{height:36px;display:flex;align-items:center;padding:0 20px 6px;color:var(--text-dim);font-size:12px;font-style:italic;cursor:default}@media(prefers-reduced-motion:reduce){.toolbar__project-menu{animation:none}}.snapshot-history{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9500;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-backdrop);animation:feedback-fadein .15s ease}.snapshot-history__panel{width:min(620px,calc(100vw - 48px));max-height:min(720px,calc(100vh - 48px));display:flex;flex-direction:column;background:var(--bg-hud-panel);border:1px solid var(--border-hud-panel);border-radius:8px;color:var(--text-primary);animation:feedback-pop .15s ease-out;padding-bottom:18px}.snapshot-history__header{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px 12px;border-bottom:1px solid var(--border-hud-panel)}.snapshot-history__title{margin:0;font-size:13px;font-weight:400;color:var(--text-primary)}.snapshot-history__subtitle{margin:4px 0 0;font-size:11px;color:var(--text-dim)}.snapshot-history__body{flex:1 1 auto;overflow:auto;padding:14px 20px;display:flex;flex-direction:column;gap:14px}.snapshot-history__section{display:flex;flex-direction:column;gap:6px}.snapshot-history__section-title{font-size:11px;color:var(--text-dim);text-transform:uppercase}.snapshot-history__list{display:flex;flex-direction:column;gap:4px}.snapshot-history__item{width:100%;min-height:34px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:7px 10px;border:1px solid var(--border-element);border-radius:4px;background:var(--bg-element);color:var(--text-primary);font:inherit;font-size:12px;text-align:left;cursor:pointer}.snapshot-history__item:not(.snapshot-history__item--active):hover{background:var(--bg-element-hover)}.snapshot-history__item--active{cursor:default;border-color:var(--color-action)}.snapshot-history__item-main{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.snapshot-history__item-hint{color:var(--text-dim)}.snapshot-history__item-right{display:flex;align-items:center;gap:8px}.snapshot-history__item-badge{flex:0 0 auto;padding:2px 10px;border-radius:999px;font-size:10px;font-weight:400;text-transform:uppercase;letter-spacing:.04em;color:var(--text-primary);background:var(--color-action)}.snapshot-history__item-meta{color:var(--text-dim);font-size:11px}.snapshot-history__empty{padding:12px;border:1px solid var(--border-element);border-radius:4px;color:var(--text-dim);font-size:12px}.snapshot-history__empty--section{padding:8px 10px}.snapshot-history__note{flex:0 0 auto;margin:0;padding:12px 20px;color:var(--text-dim);font-size:11px;line-height:1.45}.snapshot-history__note strong{color:var(--text-primary);font-weight:500}.snapshot-history__tip{display:flex;flex-direction:column;gap:3px;max-width:260px}.snapshot-history__tip-action{font-weight:500}.snapshot-history__tip-detail{opacity:.75}.snapshot-history__tip-key{opacity:.6;font-size:10px;word-break:break-all}.action-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:4px;border:1px solid transparent;cursor:pointer;flex-shrink:0;transition:background .12s,color .12s,border-color .12s;font-family:inherit;font-size:11px;line-height:1}.action-btn--icon-only{width:24px;height:24px;padding:0}.action-btn--with-text{height:24px;min-width:24px;padding:0 6px;gap:4px}.action-btn__label{white-space:nowrap}.action-btn--ghost{background:transparent;color:var(--text-dim)}.action-btn--ghost:hover:not(:disabled){background:var(--bg-element-hover);color:var(--text-muted)}.action-btn--ghost.action-btn--active{background:var(--bg-element);color:var(--text-muted)}.action-btn--ghost.action-btn--active:hover:not(:disabled){background:var(--bg-element-hover)}.action-btn--chip{height:22px;background:var(--bg-input);color:var(--text-dim)}.action-btn--chip.action-btn--icon-only{width:22px;height:22px}.action-btn--chip:hover:not(:disabled){background:var(--bg-element-hover);color:var(--text-secondary)}.action-btn--chip.action-btn--active{border-color:var(--bg-element-active-camera-toolbar);color:var(--text-primary)}.action-btn--chip.action-btn--active:hover:not(:disabled){background:var(--bg-panel-transmitter-active-hover);color:var(--text-primary)}.action-btn--chip.action-btn--chip-toggle.action-btn--active,.action-btn--chip.action-btn--chip-toggle.action-btn--active:hover:not(:disabled){background:var(--segment-pill-bg);border-color:var(--segment-pill-bg);color:var(--segment-pill-icon)}.action-btn:disabled{opacity:.35;cursor:default;pointer-events:none}.action-btn:focus-visible{outline:2px solid var(--border-element);outline-offset:-2px}.add-project-data{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9500;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-backdrop);animation:feedback-fadein .15s ease}.add-project-data__panel{width:min(580px,calc(100vw - 48px));max-height:min(860px,calc(100vh - 48px));display:flex;flex-direction:column;background:var(--bg-hud-panel);border:1px solid var(--border-hud-panel);border-radius:8px;color:var(--text-primary);animation:feedback-pop .15s ease-out}.add-project-data__header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px 14px}.add-project-data__title{margin:0;font-size:16px;font-weight:500;color:var(--text-primary)}.add-project-data__body{flex:1 1 auto;overflow:auto;padding:6px 20px 45px;display:flex;flex-direction:column;gap:22px}.add-project-data__section{display:flex;flex-direction:column;gap:10px}.add-project-data__section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.add-project-data__label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-dim)}.add-project-data__count{min-width:18px;height:18px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--bg-element-active);color:var(--text-primary);font-size:11px}.add-project-data__link{border:none;background:none;padding:0;font:inherit;font-size:12px;color:var(--text-picker-selected);cursor:pointer}.add-project-data__link:not(:disabled):hover{color:var(--text-picker-selected-hover)}.add-project-data__link:disabled{cursor:not-allowed}.add-project-data__files{display:flex;flex-direction:column;gap:14px}.add-project-data__file{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:14px}.add-project-data__file-thumb{width:48px;height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:6px;background:var(--bg-element);color:var(--text-dim)}.add-project-data__file-format{font-size:9px;font-weight:600;line-height:1;letter-spacing:.04em;color:var(--text-dim)}.add-project-data__file-main{min-width:0;display:flex;flex-direction:column;gap:3px}.add-project-data__file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500}.add-project-data__file-sub{color:var(--text-dim);font-size:12px}.add-project-data__upload-track{width:100%;height:3px;overflow:hidden;border-radius:999px;background:var(--bg-element)}.add-project-data__upload-fill{height:100%;border-radius:inherit;background:var(--color-action);transition:width .12s ease}.add-project-data__file-actions{display:flex;align-items:center;gap:8px}.add-project-data__empty{padding:10px 12px;border:1px dashed var(--border-element);border-radius:6px;color:var(--text-dim);font-size:12px}.add-project-data__error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--color-error);border-radius:6px;background:var(--bg-element)}.add-project-data__error-text{font-size:12px;color:var(--color-error)}.add-project-data__slot .add-project-data__file-thumb{border:1px dashed var(--border-element);background:transparent}.add-project-data__slot .add-project-data__file-name{color:var(--text-dim);font-weight:400}.add-project-data__spinner{animation:add-project-data-spin .9s linear infinite;color:var(--color-action)}@keyframes add-project-data-spin{to{transform:rotate(360deg)}}.add-project-data__group{display:flex;flex-direction:column;gap:8px}.add-project-data__group-actions{display:flex;justify-content:flex-end;padding-top:6px;border-top:1px solid var(--border-element)}.add-project-data__apply{padding:5px 12px}.add-project-data__apply:disabled{color:var(--text-dim);cursor:not-allowed}.add-project-data__apply:disabled:hover{background:var(--bg-element);border-color:var(--border-element)}.parameter-mapping{--pm-backdrop-padding: 24px;position:fixed;top:0;right:0;bottom:0;left:0;z-index:9500;display:flex;align-items:center;justify-content:center;padding:var(--pm-backdrop-padding);background:var(--bg-backdrop);animation:feedback-fadein .15s ease}.parameter-mapping__panel{--pm-max-width: 620px;--pm-max-height: 860px;width:min(var(--pm-max-width),calc(100vw - 2 * var(--pm-backdrop-padding)));max-height:min(var(--pm-max-height),calc(100vh - 2 * var(--pm-backdrop-padding)));display:flex;flex-direction:column;background:var(--bg-hud-panel);border:1px solid var(--border-hud-panel);border-radius:8px;color:var(--text-primary);animation:feedback-pop .15s ease-out}.parameter-mapping__header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px 14px}.parameter-mapping__title{margin:0;font-size:16px;font-weight:500;color:var(--text-primary)}.parameter-mapping__body{flex:1 1 auto;overflow:auto;padding:6px 12px 20px 20px;display:flex;flex-direction:column;gap:18px}.parameter-mapping__doc{display:flex;flex-direction:column;gap:10px}.parameter-mapping__doc-label{font-size:13px;font-weight:500;color:var(--text-primary)}.parameter-mapping__head{flex:0 0 auto;padding:2px 20px 8px;border-bottom:1px solid var(--border-subtle);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.parameter-mapping__rows{display:flex;flex-direction:column}.parameter-mapping__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:12px;padding:7px 0;border-bottom:1px solid var(--border-subtle)}.parameter-mapping__row:last-child{border-bottom:none}.parameter-mapping__imported{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.parameter-mapping__tip-guid{margin-top:3px;font-size:11px;color:var(--text-dim);word-break:break-all}.parameter-mapping__trigger{display:flex;align-items:center;justify-content:space-between;gap:4px;width:100%;height:26px;padding:0 6px;font-size:12px;font-family:inherit;color:var(--text-secondary);background:var(--bg-input);border:1px solid transparent;border-radius:4px;cursor:pointer;outline:none;box-sizing:border-box;transition:border-color .12s}.parameter-mapping__trigger:hover{border-color:var(--border-element)}.parameter-mapping__trigger--active{border-color:var(--color-focus)}.parameter-mapping__trigger--empty{background:transparent;color:var(--text-dim)}.parameter-mapping__trigger-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parameter-mapping__trigger-chevron{flex-shrink:0;color:var(--text-dim)}.parameter-mapping__picker{position:fixed;width:max-content;min-width:240px;display:flex;flex-direction:column;background:var(--bg-dropdown);border:1px solid var(--border-subtle);border-radius:6px;box-shadow:var(--shadow-dropdown);z-index:9999;overflow:hidden;animation:feedback-fadein .1s ease}.parameter-mapping__picker-list{padding:4px;overflow-y:auto;flex:1 1 auto;min-height:0}.parameter-mapping__picker-group{margin:4px 0 8px}.parameter-mapping__picker-group-title{display:flex;align-items:center;gap:8px;padding:6px 8px 4px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim)}.parameter-mapping__picker-group-title:before,.parameter-mapping__picker-group-title:after{content:"";height:1px;background:var(--border-subtle);flex:1}.parameter-mapping__picker-group-items{display:flex;flex-direction:column}.parameter-mapping__picker-item{display:flex;align-items:center;gap:6px;padding:5px 8px;font-size:12px;font-family:inherit;color:var(--text-secondary);border:none;background:transparent;border-radius:4px;cursor:pointer;width:100%;text-align:left;outline:none;-webkit-user-select:none;user-select:none;transition:background .08s}.parameter-mapping__picker-item:hover,.parameter-mapping__picker-item:focus-visible{background:var(--bg-element-hover);color:var(--text-primary)}.parameter-mapping__picker-item--selected{color:var(--text-primary);background:var(--bg-element-hover)}.parameter-mapping__picker-key{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parameter-mapping__empty{padding:10px 12px;border:1px dashed var(--border-element);border-radius:6px;color:var(--text-dim);font-size:12px}.parameter-mapping__hint{padding:20px 4px;display:flex;flex-direction:column;gap:10px;color:var(--text-dim);font-size:13px;line-height:1.5}.parameter-mapping__hint p{margin:0}.parameter-mapping__hint-title{font-size:14px;font-weight:500;color:var(--text-primary)}.parameter-mapping__hint strong{font-weight:500;color:var(--text-primary)}.parameter-mapping__footer{flex:0 0 auto;display:flex;justify-content:flex-end;gap:8px;padding:18px 20px 20px}.ui-segment{position:relative;display:flex;align-items:stretch;align-self:stretch;gap:0;background:var(--bg-panel-transmitter);box-shadow:inset 0 0 0 1px var(--border-transmitter);border-radius:6px}.ui-segment__indicator{position:absolute;top:0;left:0;width:36px;height:100%;border-radius:5px;background:var(--bg-element-active);transform:translate(calc(36px * var(--ui-segment-active-index, 0)));transition:transform .22s cubic-bezier(.2,.8,.2,1),background .12s;pointer-events:none}.ui-segment__btn{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:36px;min-width:36px;border:none;border-radius:6px;background:transparent;color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s,color .12s}.ui-segment__btn:hover:not(.ui-segment__btn--active){background:var(--bg-panel-transmitter-hover);color:var(--text-secondary)}.ui-segment__btn--active{color:var(--text-primary)}.ui-segment__btn--active:hover{background:transparent;color:var(--text-primary)}.ui-segment--with-label{display:grid;grid-template-columns:repeat(var(--ui-segment-count),1fr)}.ui-segment--with-label .ui-segment__indicator{width:calc(100% / var(--ui-segment-count));transform:translate(calc(100% * var(--ui-segment-active-index, 0)))}.ui-segment--with-label .ui-segment__btn{gap:5px;width:100%;min-width:60px;padding:0 10px}.ui-segment__label{font-size:.7em;line-height:1;white-space:nowrap}.camera-toolbar{position:absolute;top:8px;right:8px;display:flex;align-items:center;gap:var(--camera-group-gap);z-index:20;pointer-events:all;animation:panel-fade-in-top .15s ease-out}@keyframes panel-fade-in-top{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.camera-toolbar__pinned{display:flex;align-items:center;gap:var(--camera-group-gap);min-height:30px;border-radius:8px}.camera-toolbar__pinned--empty{min-width:32px}.camera-toolbar__pinned--droppable,.camera-toolbar__pinned--reordering{outline:2px dashed var(--color-accent);outline-offset:5px}.camera-toolbar__drop-indicator{width:2px;height:22px;background:var(--color-accent);border-radius:1px;flex-shrink:0;align-self:center;animation:indicator-appear .08s ease-out}@keyframes indicator-appear{0%{opacity:0;transform:scaleY(.5)}to{opacity:1;transform:scaleY(1)}}.camera-toolbar__menu-wrap{position:relative}.camera-toolbar__panel{height:30px;background:var(--bg-overlay-opaque);border:1px solid var(--border-viewport-panels);border-radius:10px;box-shadow:0 3px 20px 0 var(--shadow-panel-soft),0 0 8.6px 0 var(--shadow-panel-strong);padding:4px;display:flex;align-items:stretch;gap:2px}.camera-toolbar__panel--dragging{opacity:.3}.camera-toolbar__panel--menu-item{box-shadow:none;border-color:transparent;background:transparent;flex:1;min-width:0}.camera-toolbar__btn{display:flex;align-items:center;justify-content:center;width:var(--camera-btn-size);border:none;border-radius:6px;background:transparent;color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s,color .12s}.camera-toolbar__btn:hover{background:var(--bg-panel-transmitter-hover);color:var(--text-secondary)}.camera-toolbar__menu-toggle{width:22px}.camera-toolbar__menu-toggle--open{background:var(--bg-panel-transmitter-hover);color:var(--text-secondary)}.camera-toolbar__snap-btn{display:flex;align-items:center;gap:5px;padding:0 8px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text-dim);font-size:.7em;font-family:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0;transition:background .12s,color .12s}.camera-toolbar__snap-btn:hover{background:var(--bg-panel-transmitter-hover);color:var(--text-secondary)}.camera-toolbar__snap-btn--active{border-color:var(--bg-element-active-camera-toolbar);color:var(--text-primary)}.camera-toolbar__snap-btn--active:hover{background:var(--bg-panel-transmitter-active-hover)}.camera-toolbar__snap-btn--muted{opacity:.4}.camera-toolbar__level-btn{display:flex;align-items:center;gap:5px;padding:0 8px;border:1px solid transparent;border-radius:6px;font-size:.7em;background:transparent;color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s,color .12s}.camera-toolbar__level-btn:hover{background:var(--bg-panel-transmitter-hover);color:var(--text-secondary)}.camera-toolbar__level-btn--active{border-color:var(--bg-element-active-camera-toolbar);color:var(--text-primary);border-radius:6px 0 0 6px}.camera-toolbar__level-btn--active:hover{background:var(--bg-panel-transmitter-active-hover)}.camera-toolbar__level-group{display:flex;align-items:center;border:1px solid var(--border-transmitter);border-radius:6px;background:var(--bg-panel-transmitter);overflow:hidden;transition:border-color .12s}.camera-toolbar__level-group:focus-within{border-color:var(--color-accent)}.camera-toolbar__level-group--disabled{border-radius:0 6px 6px 0}.camera-toolbar__level-group--disabled .camera-toolbar__level-input,.camera-toolbar__level-group--disabled .camera-toolbar__level-step{color:var(--text-disabled)}.camera-toolbar__level-step{display:flex;align-items:center;justify-content:center;width:12px;height:100%;background:transparent;border:none;color:var(--text-dim);cursor:pointer;flex-shrink:0;transition:background .1s,color .1s}.camera-toolbar__level-step:hover:not(:disabled){background:var(--bg-panel-transmitter-hover);color:var(--text-primary)}.camera-toolbar__level-step:disabled{cursor:default;opacity:0}.camera-toolbar__level-input{width:82px;padding:0 2px;border:none;background:transparent;color:var(--text-tertiary);font-size:.82em;font-family:inherit;text-align:center;outline:none}.camera-toolbar__level-input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.camera-toolbar__level-input[type=number]::-webkit-outer-spin-button,.camera-toolbar__level-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.camera-toolbar__level-input:focus{color:var(--text-primary)}.camera-toolbar__level-reset-btn{display:flex;align-items:center;justify-content:center;padding:0 6px;border:none;border-radius:6px;background:transparent;color:var(--text-dim);cursor:pointer;transition:background .12s,color .12s}.camera-toolbar__level-reset-btn:hover{background:var(--bg-panel-transmitter-hover);color:var(--text-primary)}.camera-toolbar__dropdown{position:absolute;top:calc(100% + 4px);right:0;background:var(--bg-overlay-opaque);border:1px solid var(--border-viewport-panels);border-radius:8px;box-shadow:0 8px 32px #00000040,0 2px 8px #0003;padding:6px;display:flex;flex-direction:column;gap:4px;max-width:80vw;z-index:21;animation:panel-fade-in-top .05s ease-out}.camera-toolbar__dropdown-items{display:flex;flex-wrap:wrap;gap:4px}.camera-toolbar__dropdown-items .camera-toolbar__panel--menu-item{flex:0 0 auto}.camera-toolbar__dropdown--droppable{border-color:color-mix(in srgb,var(--color-accent) 40%,var(--border-viewport-panels))}.camera-toolbar__dropdown--drop-target{border-color:var(--color-accent);box-shadow:0 8px 32px #00000040,0 0 0 1px var(--color-accent)}.camera-toolbar__dropdown-row{display:flex;height:30px;align-items:center;border-radius:8px;padding:3px 4px 3px 2px}.camera-toolbar__dropdown-row--dragging{opacity:.3}.camera-toolbar__drag-handle{display:flex;align-items:center;justify-content:center;width:6px;min-width:6px;height:100%;flex-shrink:0;color:var(--color-handle-muted);cursor:grab;border-radius:2px;touch-action:none;-webkit-user-select:none;user-select:none;transition:color .1s,background .1s}.camera-toolbar__drag-handle:hover{color:var(--color-handle-hover);background:var(--bg-panel-transmitter-hover)}.camera-toolbar__drag-handle:active{cursor:grabbing}.camera-toolbar__drag-handle--panel{width:6px;min-width:6px;margin-right:1px}.camera-toolbar__drag-handle-line{width:1px;height:10px;background:currentColor;opacity:.7}.camera-toolbar__dropdown-empty{padding:8px 10px;font-size:.72em;color:var(--text-dim);text-align:center}.camera-toolbar__dropdown-separator{height:1px;background:var(--border-viewport-panels);margin:2px 2px 0}.camera-toolbar__theme-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:30px;padding:3px 4px}.camera-toolbar__theme-label{color:var(--text-secondary);font-size:.74em;-webkit-user-select:none;user-select:none}.camera-toolbar__drag-overlay{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;opacity:.98}.tool-palette{position:absolute;width:auto;bottom:20px;left:50%;transform:translate(-50%);z-index:20;pointer-events:all;white-space:nowrap;background:var(--bg-overlay-opaque);border:1px solid var(--border-viewport-panels);border-radius:10px;box-shadow:0 3px 20px 0 var(--shadow-panel-soft),0 0 8.6px 0 var(--shadow-panel-strong);padding:0 18px;display:flex;align-items:center;gap:var(--tool-btn-gap);animation:panel-fade-in .15s ease-out}@keyframes panel-fade-in{0%{opacity:0;transform:translate(-50%) translateY(6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tool-palette-segment{position:relative;display:flex;align-items:stretch;gap:0;background:var(--bg-panel-transmitter);border:1px solid var(--border-transmitter);border-radius:100px}.tool-palette-segment__indicator{position:absolute;top:3px;left:3px;width:calc((100% - 6px) / var(--ui-segment-count, 2));height:calc(100% - 6px);border-radius:100px;background:var(--segment-pill-bg);box-shadow:0 1px 3px #0000004d,0 0 0 .5px #0000000f;transform:translate(calc(var(--ui-segment-active-index, 0) * 100%));transition:transform .2s cubic-bezier(.2,.8,.2,1);pointer-events:none}.tool-palette-segment__btn{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:center;height:28px;min-width:60px;border:none;border-radius:100px;background:transparent;color:var(--segment-icon-idle);cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .12s}.tool-palette-segment__btn:hover:not(.tool-palette-segment__btn--active){color:var(--segment-icon-hover)}.tool-palette-segment__btn--active,.tool-palette-segment__btn--active:hover{color:var(--segment-pill-icon)}.tool-palette__separator{width:1px;height:52px;background:var(--border-viewport-panels);flex-shrink:0;align-self:center}.tool-palette__group{display:flex;align-items:stretch;gap:var(--tool-btn-gap)}.tool-palette__btn{display:flex;align-items:center;justify-content:center;gap:6px;width:36px;height:36px;padding:0 8px;border:none;border-radius:8px;background:transparent;color:var(--text-dim);cursor:pointer;font-family:inherit;transition:background .12s,color .12s}.tool-palette__btn-label{font-size:.8rem;line-height:1;white-space:nowrap}.tool-palette__btn:hover{background:var(--bg-panel-transmitter-hover);color:var(--text-secondary)}.tool-palette__btn--active{background:var(--bg-element-active);color:var(--text-primary)}.tool-palette__btn--active:hover{background:var(--bg-element-active-hover)}.overlay-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}.overlay-value-label{position:absolute;display:flex;flex-direction:column;gap:2px;padding:4px 6px;background:var(--bg-hud-label);border-radius:4px;font-size:12px;font-family:monospace;white-space:nowrap;-webkit-user-select:none;user-select:none}.overlay-value-label__row{display:flex;gap:6px;align-items:center}.overlay-value-label__row--extra{color:var(--text-dim);border-top:1px solid var(--border-hud-panel);padding-top:2px}.overlay-value-label__name{color:var(--color-accent)}.overlay-value-label__value{color:var(--text-primary);font-weight:600;margin-left:auto}.overlay-value-label__row--extra .overlay-value-label__name{color:var(--text-dim)}.overlay-value-label__row--extra .overlay-value-label__value{color:var(--text-primary)}.overlay-precise-input{position:absolute;display:flex;gap:4px;align-items:center;padding:4px;background:var(--bg-hud-panel);border:1px solid var(--border-hud-panel);border-radius:6px;font-size:12px;pointer-events:auto;transform:translateY(-50%)}.overlay-rotate-input{position:absolute;display:flex;gap:4px;align-items:flex-end;padding:4px;background:var(--bg-hud-panel);border:1px solid var(--border-hud-panel);border-radius:6px;font-size:12px;pointer-events:auto}.overlay-rotate-input__rows{display:flex;flex-direction:column;gap:0}.overlay-rotate-input__row{display:flex;gap:4px;align-items:center}.overlay-rotate-input__row+.overlay-rotate-input__row{margin-top:4px;padding-top:4px;border-top:1px solid var(--border-hud-panel)}.overlay-precise-input__label{color:var(--color-accent);font-family:monospace;padding-left:4px;font-size:12px;min-width:20px}.overlay-precise-input__input{width:62px;background:transparent;border:none;border-bottom:1px solid var(--border-input);color:var(--text-primary);font-family:monospace;font-size:12px;text-align:right;outline:none;padding:0 2px}.overlay-precise-input__unit{color:var(--kbd-color);font-family:monospace;font-size:12px}.overlay-precise-input__stepper{display:flex;flex-direction:column;gap:1px;margin-left:2px}.overlay-precise-input__step-btn{display:flex;align-items:center;justify-content:center;width:18px;height:20px;background:transparent;border:none;border-radius:4px;color:var(--text-dim);cursor:pointer;padding:0;line-height:1}.overlay-precise-input__step-btn:hover{background:var(--bg-element-hover);color:var(--text-primary)}.overlay-precise-input__confirm-btn{display:flex;align-items:center;justify-content:center;align-self:stretch;width:24px;background:var(--color-action);border:none;border-radius:4px;color:var(--text-primary);cursor:pointer;padding:0}.overlay-precise-input__confirm-btn:hover{background:var(--color-action-hover)}.overlay-kick-angle-picker{position:absolute;display:flex;flex-direction:column;gap:1px;padding:6px;background:var(--bg-hud-panel);border:1px solid var(--border-hud-panel);border-radius:6px;font-size:12px;pointer-events:auto;-webkit-user-select:none;user-select:none}.overlay-kick-angle-picker__label{color:var(--text-dim);font-size:11px;padding:0 4px 4px;border-bottom:1px solid var(--border-hud-panel);margin-bottom:2px}.overlay-kick-angle-picker__btn{display:block;width:100%;padding:4px 10px;background:transparent;border:none;border-radius:4px;color:var(--text-primary);font-family:monospace;font-size:12px;text-align:right;cursor:pointer;white-space:nowrap}.overlay-kick-angle-picker__btn:hover{background:var(--bg-element-hover);color:var(--color-accent)}.overlay-hover-tooltip{position:absolute;min-width:160px;padding:6px 0;background:var(--bg-hud-panel);border:1px solid var(--border-hud-panel);border-radius:6px;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none}.overlay-hover-tooltip__header{padding:2px 10px 6px;font-weight:600;color:var(--text-primary);border-bottom:1px solid var(--border-hud-panel);margin-bottom:4px}.overlay-hover-tooltip__row{display:flex;justify-content:space-between;gap:12px;padding:1px 10px}.overlay-hover-tooltip__label{color:var(--text-dim);white-space:nowrap}.overlay-hover-tooltip__value{color:var(--text-primary);font-family:monospace;white-space:nowrap}.overlay-hover-tooltip__unit{color:var(--kbd-color)}.context-menu{position:fixed;z-index:9999;background:var(--bg-dropdown);border:1px solid var(--border-subtle);border-radius:6px;padding:4px;min-width:180px;-webkit-user-select:none;user-select:none;font-family:var(--font-family)}.context-menu__item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:5px 8px;gap:20px;background:none;border:none;border-radius:4px;color:var(--text-secondary);font-size:12px;font-family:inherit;cursor:pointer;text-align:left;white-space:nowrap;box-sizing:border-box;transition:background .08s}.context-menu__item:hover:not(:disabled){background:var(--bg-element-hover);color:var(--text-primary)}.context-menu__item:disabled{color:var(--text-disabled);cursor:default}.context-menu__label{display:flex;align-items:center;gap:6px}.context-menu__shortcut{color:var(--text-dim);font-size:11px;font-family:monospace;flex-shrink:0}.context-menu__separator{height:1px;background:var(--border-subtle);margin:4px -4px}.level-badges-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:9}.level-badge{position:absolute;left:0;top:0;will-change:transform;white-space:nowrap;padding:2px 8px;border-radius:15px;background:var(--bg-hud-panel);border:1px solid var(--border-hud-panel);color:var(--text-primary);font-size:12px;line-height:1.4}.slope-badges-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:9}.slope-badge{position:absolute;left:0;top:0;will-change:transform;white-space:nowrap;padding:1px 6px;border-radius:15px;font-size:11px;font-family:monospace;font-weight:600;background:var(--bg-hud-panel);border:1px solid var(--border-hud-panel);color:var(--text-primary);-webkit-user-select:none;user-select:none}.slope-badge--error{background:var(--color-error);border-color:var(--color-error);color:#fff}.picker-menu{position:absolute;z-index:9999;background:var(--bg-dropdown);border:1px solid var(--border-subtle);border-radius:6px;padding:4px;min-width:180px;max-width:320px;-webkit-user-select:none;user-select:none;font-family:var(--font-family)}.picker-menu__header{padding:4px 8px 2px;font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.picker-menu__item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:5px 8px;gap:12px;background:none;border:none;border-radius:4px;color:var(--text-secondary);font-size:12px;font-family:inherit;cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden;box-sizing:border-box;transition:background .08s}.picker-menu__item:hover{background:var(--bg-element-hover);color:var(--text-primary)}.picker-menu__item--selected{color:var(--text-picker-selected)}.picker-menu__item--selected:hover{color:var(--text-picker-selected-hover)}.picker-menu__label{overflow:hidden;text-overflow:ellipsis;flex:1}.picker-menu__check{flex-shrink:0;width:12px;color:var(--text-picker-selected);font-size:11px}.picker-menu__footer{display:flex;justify-content:flex-end;margin-top:4px;padding-top:4px;border-top:1px solid var(--border-subtle)}.picker-menu__ok{padding:4px 18px;border:1px solid var(--border-subtle);border-radius:4px;background:var(--bg-element);color:var(--text-secondary);font-size:12px;font-family:inherit;cursor:pointer}.picker-menu__ok:hover{background:var(--bg-element-hover);color:var(--text-primary)}.view-cube{position:absolute;right:8px;top:48px;z-index:2;pointer-events:auto;-webkit-user-select:none;user-select:none;animation:view-cube-fade-in .14s ease-out}@keyframes view-cube-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.view-cube__canvas{position:relative;width:80px;height:80px;background:var(--bg-overlay-opaque);border:1px solid var(--border-viewport-panels);border-radius:100px;overflow:visible;box-shadow:0 3px 20px 0 var(--shadow-panel-soft),0 0 8.6px 0 var(--shadow-panel-strong)}.view-cube__canvas canvas{width:100%;height:100%;display:block;background:transparent}.view-cube__overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.view-cube__top-shortcut{pointer-events:auto;position:absolute;top:5px;left:50%;transform:translate(-50%);width:9px;height:9px;border:0;border-radius:50%;background:var(--view-cube-control);cursor:pointer;padding:0}.view-cube__top-shortcut:hover{background:var(--view-cube-control-hover)}.view-cube__nav-arrow{pointer-events:auto;position:absolute;width:17px;height:17px;border:0;background:transparent;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}.view-cube__nav-arrow-shape{width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:9px solid var(--view-cube-control)}.view-cube__nav-arrow:hover .view-cube__nav-arrow-shape{border-left-color:var(--view-cube-control-hover)}.view-cube__nav-arrow--left{left:2px;top:50%;transform:translateY(-50%)}.view-cube__nav-arrow--right{right:2px;top:50%;transform:translateY(-50%) rotate(180deg)}.view-cube__nav-arrow--up{left:50%;top:2px;transform:translate(-50%) rotate(90deg)}.view-cube__nav-arrow--down{left:50%;bottom:2px;transform:translate(-50%) rotate(-90deg)}.view-cube__top-rotate-control{display:flex;align-items:center;margin-top:8px;width:fit-content;margin-left:auto;margin-right:auto;background:var(--bg-overlay-opaque);border:1px solid var(--border-viewport-panels);border-radius:100px;box-shadow:0 3px 20px 0 var(--shadow-panel-soft),0 0 8.6px 0 var(--shadow-panel-strong);height:20px;overflow:hidden;clip-path:inset(0 round 100px)}.view-cube__top-rotate-btn{pointer-events:auto;width:18px;height:18px;border:0;background:transparent;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;color:var(--view-cube-control);flex-shrink:0}.view-cube__top-rotate-btn:hover{color:var(--view-cube-control-hover)}.view-cube__top-rotate-drag{pointer-events:auto;cursor:ew-resize;padding:0 4px;height:100%;display:flex;align-items:center;color:var(--view-cube-control)}.view-cube__top-rotate-drag:hover{color:var(--view-cube-control-hover)}.viewport{flex:1;min-width:0;min-height:0;position:relative;overflow:hidden;background:var(--bg-app)}.viewport canvas{width:100%;height:100%}.viewport-edit-border{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 0 4px var(--edit-mode-preview-window);z-index:20}.viewport-status-frame{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border:4px solid transparent;z-index:21}.viewport-history-banner{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:min(560px,calc(100% - 32px));padding:4px 14px;background:var(--color-error);color:var(--text-primary);font-size:11px;line-height:1.35;text-align:center;border-radius:4px;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:22}.viewport-history-banner strong{font-weight:600}.viewport-visibility-badge{position:absolute;bottom:80px;left:50%;transform:translate(-50%);display:flex;gap:6px;z-index:22}.viewport-visibility-badge .viewport-visibility-badge__btn--hidden{background:var(--color-hidden-notice);border-color:var(--color-hidden-notice);color:var(--text-primary)}.viewport-visibility-badge .viewport-visibility-badge__btn--hidden:hover:not(:disabled){background:var(--color-hidden-notice-hover);color:var(--text-primary)}.viewport-visibility-badge .viewport-visibility-badge__btn--locked{background:var(--color-locked-notice);border-color:var(--color-locked-notice);color:var(--text-primary)}.viewport-visibility-badge .viewport-visibility-badge__btn--locked:hover:not(:disabled){background:var(--color-locked-notice-hover);color:var(--text-primary)}.fps-monitor{position:absolute;top:8px;left:8px;font-size:11px;font-family:monospace;color:var(--text-overlay);background:var(--bg-overlay);padding:3px 6px;border-radius:3px;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:10}.views-list__header{display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 14px;height:36px;flex-shrink:0;border-bottom:1px solid var(--border-subtle)}.views-list__title{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.views-list__header-actions{display:flex;gap:2px}.views-list__btn-add{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--text-dim);background:none;border:1px solid transparent;cursor:pointer;border-radius:4px;transition:color .12s,background .12s,border-color .12s}.views-list__btn-add:hover{color:var(--text-primary);background:var(--bg-element-hover);border-color:var(--border-element)}.views-list__list{flex:1;overflow-y:auto;padding-top:6px}.views-list__item{display:flex;position:relative;align-items:center;gap:4px;height:42px;padding:6px 12px 12px 20px;cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box}.views-list__item:before{content:"";position:absolute;top:0;right:6px;bottom:6px;left:6px;border:1px solid transparent;border-radius:6px;transition:background .1s,border-color .1s;pointer-events:none}.views-list__item>*{position:relative;z-index:1}.views-list__item:hover:before{background:var(--bg-element-hover)}.views-list__item--active:before{border:1px solid var(--border-element);background:var(--bg-panel-secondary)}.views-list__item--active{color:var(--text-secondary)}.views-list__item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--text-muted)}.views-list__item--active .views-list__item-name{color:var(--text-secondary)}.views-list__rename-input{flex:1;min-width:0;padding:2px 5px;font-size:13px;font-family:inherit;color:var(--text-secondary);background:var(--bg-input, var(--bg-panel));border:1px solid var(--color-focus);border-radius:3px;outline:none}.views-list__item-actions{display:flex;gap:4px;flex-shrink:0;opacity:0;transition:opacity .12s;pointer-events:none}.views-list__item:hover .views-list__item-actions{opacity:1;pointer-events:auto}.views-list__btn-item-action{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--text-faint);background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer}.views-list__btn-item-action:hover,.views-list__btn-item-action:focus-visible{color:var(--text-muted);background:var(--bg-input);border-color:var(--border-subtle)}.views-list__item--dragging{opacity:.4}.views-list__drop-indicator{height:6px;margin:0 6px;background:var(--border-element);border-radius:6px;pointer-events:none}.left-panel{width:260px;min-width:160px;height:100%;background:var(--bg-panel);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;overflow:hidden}.ui-select__trigger{display:flex;align-items:center;justify-content:space-between;gap:4px;width:100%;height:26px;padding:0 6px;font-size:12px;font-family:inherit;color:var(--text-secondary);background:var(--bg-input);border:1px solid transparent;border-radius:4px;cursor:pointer;outline:none;box-sizing:border-box;transition:border-color .12s;white-space:nowrap;overflow:hidden}.ui-select__trigger:hover{border-color:var(--border-element)}.ui-select__trigger:focus,.ui-select__trigger[data-state=open]{border-color:var(--color-focus)}.ui-select__chevron{display:flex;align-items:center;flex-shrink:0;color:var(--text-dim);transition:transform .15s ease}.ui-select__trigger[data-state=open] .ui-select__chevron{transform:rotate(180deg)}.ui-select__placeholder{color:var(--text-dim);font-style:italic}.ui-select__content{min-width:var(--radix-select-trigger-width);max-height:520px;background:var(--bg-dropdown);border:1px solid var(--border-subtle);border-radius:6px;box-shadow:var(--shadow-dropdown);z-index:9999;overflow:hidden;animation:ui-select-in .1s ease}@keyframes ui-select-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ui-select__viewport{padding:4px;overflow-y:auto;max-height:504px}.ui-select__item{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:5px 8px;font-size:12px;font-family:inherit;color:var(--text-secondary);border-radius:4px;cursor:pointer;outline:none;-webkit-user-select:none;user-select:none;transition:background .08s}.ui-select__item[data-highlighted]{background:var(--bg-element-hover);color:var(--text-primary)}.ui-select__item[data-state=checked]{color:var(--text-primary)}.ui-select__item-indicator{display:flex;align-items:center;flex-shrink:0;color:var(--color-focus)}.ui-select__group-label{display:flex;align-items:center;gap:8px;padding:6px 8px 4px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim)}.ui-select__group-label:before,.ui-select__group-label:after{content:"";height:1px;background:var(--border-subtle);flex:1}.level-field{padding:4px 0}.level-field .ui-select__trigger.level-field__select{width:100%}.level-field__auto-label{display:inline-flex;align-items:center;gap:6px;min-width:0}.level-field__auto{flex:0 0 auto;font-weight:700;color:var(--text-primary)}.level-field__auto-rest{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.level-field__crosses{margin-top:6px;padding:8px 10px;border:1px solid var(--border-subtle);border-radius:6px}.level-field__crosses-label{margin-bottom:4px;font-size:11px;color:var(--text-dim)}.level-field__crosses-list{font-size:12px;font-weight:500;line-height:1.5;color:var(--text-primary);word-break:break-word}.truncated-list__gap{display:flex;align-items:center;gap:6px;height:24px;padding:0 6px;border-radius:4px;cursor:pointer;list-style:none;transition:background .1s}.truncated-list__gap:hover{background:var(--bg-element-hover)}.truncated-list__gap-line{flex:1;height:1px;min-width:8px;align-self:center;background:repeating-linear-gradient(to right,var(--border-subtle) 0,var(--border-subtle) 5px,transparent 5px,transparent 9px)}.truncated-list__gap-label{font-size:11px;color:var(--text-dim);white-space:nowrap;-webkit-user-select:none;user-select:none}.truncated-list__gap:hover .truncated-list__gap-label{color:var(--text-muted)}.truncated-list__gap:hover .truncated-list__gap-line{background:repeating-linear-gradient(to right,var(--text-dim) 0,var(--text-dim) 5px,transparent 5px,transparent 9px);opacity:.4}.icon-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;border:none;background:transparent;color:var(--text-dim);cursor:pointer;flex-shrink:0;transition:background .12s,color .12s;padding:0}.icon-btn:hover:not(:disabled){background:var(--bg-element-hover);color:var(--text-muted)}.icon-btn--active{background:var(--bg-element);color:var(--text-muted)}.icon-btn--active:hover:not(:disabled){background:var(--bg-element-hover)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn:focus-visible{outline:2px solid var(--border-element);outline-offset:-2px}.panel-header{height:36px;padding:0 16px;display:flex;align-items:center;font-size:12px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;position:sticky;top:0;z-index:10;background:var(--bg-panel);flex-shrink:0}.panel-sticky-header{position:sticky;top:36px;z-index:5;background:var(--bg-panel);border-top:1px solid var(--border-subtle);border-radius:8px 8px 0 0;flex-shrink:0}.psh{display:flex;align-items:center;gap:4px;height:36px;padding:0 8px;flex-shrink:0}.psh__title{flex:1;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);line-height:1}.psh__actions{display:flex;align-items:center;gap:4px}.psh__chevron{transition:transform .15s;flex-shrink:0}.psh__chevron--collapsed{transform:rotate(-90deg)}.pp-section-body{padding:0 12px 12px 16px}.right-panel>:nth-child(1 of.panel-sticky-header){border-top-left-radius:0;border-top-right-radius:0}.colorize-section__body{display:flex;flex-direction:column;gap:6px;padding:4px 14px 12px}.colorize-section__row{display:flex;align-items:center;gap:6px}.colorize-section__label{font-size:12px;color:var(--text-dim);white-space:nowrap}.colorize-section__groupby-value{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.colorize-section__legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.colorize-section__legend-item{display:flex;align-items:center;gap:8px;height:26px;padding:0 6px;border-radius:4px;transition:background .1s}.colorize-section__legend-item:hover{background:var(--bg-element-hover)}.colorize-section__swatch{width:14px;height:14px;border-radius:2px;flex-shrink:0}.colorize-section__legend-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:12px}.colorize-section__legend-count{font-size:11px;color:var(--text-dim);flex-shrink:0}.filter-section__picker{position:fixed;width:max-content;min-width:280px;max-height:520px;background:var(--bg-dropdown);border:1px solid var(--border-subtle);border-radius:6px;box-shadow:var(--shadow-dropdown);z-index:9999;overflow:hidden;overflow-x:hidden;animation:ui-select-in .1s ease}.filter-section__picker-list{padding:4px;overflow-y:auto;max-height:504px}.filter-section__picker-group{margin:4px 0 8px}.filter-section__picker-group-title{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim);padding:2px 8px 6px}.filter-section__picker-group-title:before,.filter-section__picker-group-title:after{content:"";height:1px;background:var(--border-subtle);flex:1}.filter-section__picker-group-items{display:flex;flex-direction:column}.filter-section__picker-item{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;justify-content:unset;gap:6px;padding:5px 8px;font-size:12px;font-family:inherit;color:var(--text-secondary);border-radius:4px;cursor:pointer;border:none;background:transparent;width:100%;text-align:left;outline:none;-webkit-user-select:none;user-select:none;transition:background .08s}.filter-section__picker-item:hover{background:var(--bg-element-hover);color:var(--text-primary)}.filter-section__picker-item:focus-visible{background:var(--bg-element-hover);color:var(--text-primary)}.filter-section__picker-key{font-weight:400;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-section__picker-count{font-weight:400;color:var(--text-dim);white-space:nowrap}.filter-section__picker-empty{padding:5px 8px;font-size:12px;color:var(--text-dim);font-style:italic}.filter-section__body{display:flex;flex-direction:column}.filter-section__separator{height:15px;position:relative;flex-shrink:0}.filter-section__separator:after{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--border-subtle)}.filter-section__item{display:flex;flex-direction:column;flex-shrink:0}.filter-section__row{position:relative;height:36px;flex-shrink:0;overflow:hidden}.filter-section__pill{position:absolute;top:50%;transform:translateY(-50%);left:14px;right:14px;height:24px;background:var(--bg-element);border-radius:5px;border:none;cursor:pointer;overflow:hidden;text-align:left;padding:0 9px;display:flex;align-items:center}.filter-section__pill:hover{background:var(--bg-element-hover)}.filter-section__pill:focus-visible{outline:2px solid var(--border-element);outline-offset:-2px}.filter-section__key{font-size:12px;font-weight:600;line-height:1;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-section__status{position:absolute;right:23px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:6px;pointer-events:none;white-space:nowrap;transition:opacity .12s;z-index:0}.filter-section__stat{display:flex;align-items:center;gap:2px;font-size:11px;color:var(--text-dim)}.filter-section__stat--all{font-size:11px;color:var(--text-dim)}.filter-section__row-btns{position:absolute;right:8px;top:6px;display:flex;gap:4px;opacity:0;pointer-events:none;transition:opacity .12s;z-index:1}.filter-section__row:hover .filter-section__pill{right:62px}.filter-section__row:hover .filter-section__status{opacity:0}.filter-section__row:hover .filter-section__row-btns{opacity:1;pointer-events:auto}.filter-section__item--open .filter-section__row .filter-section__pill{right:62px}.filter-section__item--open .filter-section__row .filter-section__status{opacity:0;pointer-events:none}.filter-section__item--open .filter-section__row .filter-section__row-btns{opacity:1;pointer-events:auto}.filter-section__values-body{display:flex;flex-direction:column}.filter-section__meta{display:flex;align-items:center;height:28px;padding:0 20px;justify-content:space-between}.filter-section__meta-status{display:flex;align-items:center;gap:6px}.filter-section__meta-actions{display:flex;gap:17px}.filter-section__text-btn{background:none;border:none;cursor:pointer;font-size:11px;line-height:1;color:var(--text-dim);font-family:inherit;padding:4px 0;transition:color .12s}.filter-section__text-btn:hover:not(:disabled){color:var(--text-primary)}.filter-section__text-btn:disabled{opacity:.35;cursor:default}.filter-section__values{list-style:none;margin:0;padding:6px 14px;display:flex;flex-direction:column;gap:6px}.filter-section__value-item{display:flex;align-items:center;height:26px;padding:0 6px 0 4px;gap:6px;border-radius:4px;transition:background .1s}.filter-section__value-item:hover{background:var(--bg-element-hover)}.filter-section__value-item--hidden .filter-section__value-label,.filter-section__value-item--hidden .filter-section__value-count,.filter-section__value-item--hidden .filter-section__ctrl-btn:not(.filter-section__ctrl-btn--active){opacity:.35}.filter-section__value-item--locked .filter-section__value-label{color:var(--text-dim)}.filter-section__value-controls{display:flex;gap:2px;flex-shrink:0}.filter-section__ctrl-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;border-radius:3px;background:transparent;cursor:pointer;color:var(--text-dim);padding:0;transition:color .1s,background .1s;flex-shrink:0}.filter-section__ctrl-btn:hover{color:var(--text-primary);background:var(--bg-element-hover)}.filter-section__ctrl-btn--active,.filter-section__ctrl-btn--locked{color:var(--segment-pill-icon);background:var(--segment-pill-bg)}.filter-section__ctrl-btn--active:hover,.filter-section__ctrl-btn--locked:hover{color:var(--segment-pill-icon);background:var(--segment-pill-bg);opacity:.85}.filter-section__value-label{flex:1;font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-section__value-count{font-size:11px;color:var(--text-dim);flex-shrink:0}.filter-section__text-btn--active{color:var(--text-primary)}.ui-number-input{display:flex;align-items:stretch;width:100%;height:26px;border:1px solid transparent;border-radius:4px;overflow:hidden;transition:border-color .12s;box-sizing:border-box}.ui-number-input:focus-within{border-color:var(--color-focus)}.ui-number-input:has(.ui-number-input__field--error){border-color:var(--color-error)}.ui-number-input__field{flex:1;min-width:0;height:100%;padding:0 6px;font-size:12px;font-family:inherit;color:var(--text-secondary);background:var(--bg-input);border:none;outline:none;text-align:right;box-sizing:border-box}.ui-number-input__field--mixed::placeholder{color:var(--text-dim);font-style:italic}.ui-number-input__field--error{color:var(--color-error)}.ui-number-input__spinners{display:flex;flex-direction:column;width:16px;flex-shrink:0;background:var(--bg-input);border-left:1px solid var(--border-subtle)}.ui-number-input__spin{display:flex;align-items:center;justify-content:center;flex:1;padding:0;border:none;background:transparent;color:var(--text-dim);cursor:pointer;line-height:0;transition:background .08s,color .08s}.ui-number-input__spin:hover{background:var(--bg-element-hover);color:var(--text-primary)}.ui-number-input__spin:active{background:var(--bg-element-active)}.ui-number-input__spin+.ui-number-input__spin{border-top:1px solid var(--border-subtle)}.properties-panel__field-row.field-pair-row{grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr)}.dbc-heading{color:var(--text-dim);padding:8px 0 2px}.pp-section-separator+.dbc-heading{padding-top:0}.dbc-matrix-wrap{position:relative;padding-top:9px;padding-bottom:9px}.dbc-matrix-frame{border:1px solid var(--border-element);border-radius:6px;padding:14px 8px}.dbc-matrix-edge{position:absolute;display:flex;align-items:center;justify-content:center;opacity:0;z-index:1;pointer-events:none}.dbc-matrix-edge--visible,.dbc-matrix-edge--hint{opacity:1}.dbc-matrix-edge--top{top:0;left:24px;right:24px;height:18px}.dbc-matrix-edge--bottom{bottom:0;left:24px;right:24px;height:18px}.dbc-matrix-edge--left{left:-9px;top:24px;bottom:24px;width:18px;flex-direction:column}.dbc-matrix-edge--right{right:-9px;top:24px;bottom:24px;width:18px;flex-direction:column}.dbc-matrix-edge__btn{display:none;align-items:center;justify-content:center;padding:0;pointer-events:auto;background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--border-element);border-radius:9px;cursor:pointer}.dbc-matrix-edge--visible .dbc-matrix-edge__btn{display:flex;animation:dbc-edge-reveal 90ms ease-out}@keyframes dbc-edge-reveal{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.dbc-matrix-edge__btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-muted)}.dbc-matrix-edge__btn:disabled{opacity:.4;cursor:default}.dbc-matrix-edge__mark{display:none;width:16px;height:3px;flex:0 0 auto;border-radius:2px;background:var(--text-dim)}.dbc-matrix-edge--left .dbc-matrix-edge__mark,.dbc-matrix-edge--right .dbc-matrix-edge__mark{width:3px;height:16px}.dbc-matrix-edge--hint .dbc-matrix-edge__mark{display:block;animation:dbc-edge-reveal 90ms ease-out}.dbc-matrix-frame--note{color:var(--text-dim);font-style:italic;text-align:center}.dbc-profile{display:flex;align-items:center;justify-content:center;gap:6px;height:26px;padding:0 10px;margin:3px 0;border-radius:6px;background:var(--bg-panel-transmitter);box-shadow:inset 0 0 0 1px var(--border-transmitter)}.dbc-profile__label{color:var(--text-dim)}.dbc-profile__value{color:var(--text-secondary)}.dbc-profile__value:not(:last-child){margin-right:12px}.dbc-grid-scroll{overflow-x:auto}.dbc-grid{border-collapse:separate;border-spacing:3px;margin:0 auto}.dbc-grid__cell{padding:0;width:44px;min-width:44px;max-width:44px}.dbc-cell{display:block;width:100%;height:22px;padding:0 4px;border:none;border-radius:4px;font-size:11px;line-height:22px;text-align:center;color:var(--text-primary);background:var(--bg-panel-transmitter);box-shadow:inset 0 0 0 1px var(--border-transmitter);cursor:pointer}.dbc-cell--empty{background:transparent;box-shadow:inset 0 0 0 1px var(--border-element)}.dbc-cell--selected,.dbc-cell--empty.dbc-cell--selected{box-shadow:inset 0 0 0 1px var(--color-accent)}.dbc-child{border:1px solid var(--border-element);padding:8px;border-radius:6px;background:var(--bg-panel-transmitter);box-shadow:inset 0 0 0 1px var(--border-transmitter)}.dbc-child__title{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 0 6px;font-size:11px;font-weight:600;color:var(--text-secondary);letter-spacing:.02em}.dbc-cell--detached{display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.dbc-child__note{margin:0;color:var(--text-dim);font-size:11px;line-height:1.5}.dbc-child__title-actions{display:flex;align-items:center;gap:4px}.dbc-child__select-btn{margin-top:6px}.panel-note{border:1px dashed var(--border-subtle);border-radius:4px;padding:5px 8px;color:var(--text-dim);font-style:italic;font-size:.92em;line-height:1.35;text-align:center}.ui-checkbox{display:flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0;background:var(--bg-input);border:1px solid var(--border-element);border-radius:3px;cursor:pointer;outline:none;transition:background .1s,border-color .1s}.ui-checkbox:hover{border-color:var(--border-input)}.ui-checkbox:focus-visible{border-color:var(--color-focus);box-shadow:0 0 0 2px #ffffff26}.ui-checkbox[data-state=checked],.ui-checkbox[data-state=indeterminate]{background:var(--color-focus);border-color:var(--color-focus)}.ui-checkbox__dash{display:block;width:8px;height:2px;background:var(--segment-pill-icon);border-radius:1px}.ui-checkbox__indicator{display:flex;align-items:center;justify-content:center;color:var(--segment-pill-icon)}.ui-color-input__trigger{display:flex;align-items:center;gap:8px;width:100%;height:26px;padding:0 6px;color:var(--text-secondary);background:var(--bg-input);border:1px solid transparent;border-radius:4px;cursor:pointer;box-sizing:border-box;transition:border-color .12s,color .12s,background .12s}.ui-color-input__trigger:hover{border-color:var(--border-element)}.ui-color-input__trigger:focus-visible{outline:none;border-color:var(--color-focus)}.ui-color-input__trigger--mixed .ui-color-input__text{color:var(--text-dim);font-style:italic}.ui-color-input__swatch{position:relative;width:14px;height:14px;border-radius:3px;border:1px solid var(--border-subtle);flex-shrink:0;overflow:hidden;background:conic-gradient(from 90deg at 1px 1px,#0000 25%,#ffffff1f 0) 0 0 / 6px 6px}.ui-color-input__swatch-fill{display:block;width:100%;height:100%}.ui-color-input__text{min-width:0;font-size:12px;font-family:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-color-input__content{width:316px;padding:8px;border-radius:8px;background:var(--bg-dropdown);border:1px solid var(--border-subtle);box-shadow:var(--shadow-dropdown);z-index:9999;animation:ui-color-input-in .1s ease}@keyframes ui-color-input-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ui-color-input__palette{display:grid;grid-template-columns:repeat(20,15px);grid-template-rows:repeat(20,15px);gap:0;width:300px;height:300px;overflow:hidden}.ui-color-input__cell{position:relative;z-index:0;width:15px;height:15px;border:none;padding:0;margin:0;cursor:pointer;outline:none}.ui-color-input__cell:hover{box-shadow:inset 0 0 0 1px #fff,0 0 0 1px #000;z-index:12}.ui-color-input__cell:focus-visible{box-shadow:inset 0 0 0 1px #fff,0 0 0 1px #000;z-index:12}.angle-presets{display:flex;align-items:center;gap:3px;min-height:28px}.angle-presets__btn{flex:1;height:22px;padding:0;font-size:11px;font-family:inherit;color:var(--text-secondary);background:var(--bg-input);border:1px solid transparent;border-radius:4px;cursor:pointer;white-space:nowrap;transition:background .1s,color .1s}.angle-presets__btn:hover{background:var(--bg-element-hover);color:var(--text-primary)}.angle-presets__btn--active{border-color:var(--bg-element-active-camera-toolbar);color:var(--text-primary)}.angle-presets__btn--active:hover{background:var(--bg-panel-transmitter-active-hover);color:var(--text-primary)}.pp-section-separator{height:16px;position:relative;flex-shrink:0}.pp-section-separator:after{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--border-subtle)}.pp-cross-category-hint{padding:12px;font-size:11px;color:var(--text-dim);font-style:italic}.properties-panel__field-row{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6px;padding:3px 0;min-height:28px;border-radius:4px}.properties-panel__label{font-family:inherit;font-size:1em;color:var(--text-dim);min-width:0;overflow:hidden;text-overflow:ellipsis}.properties-panel__field-value{display:flex;align-items:center;gap:4px;min-width:0;justify-content:flex-end}.properties-panel__field-row--stretch,.properties-panel__field-row--stretch .properties-panel__field-value{align-items:stretch}.properties-panel__field-row--stretch .properties-panel__label{display:flex;align-items:center}.properties-panel__input{width:100%;max-width:100%;height:26px;padding:0 6px;font-size:1em;font-family:inherit;color:var(--text-secondary);background:var(--bg-input);border:1px solid transparent;border-radius:4px;text-align:right;outline:none;box-sizing:border-box;transition:border-color .12s}.properties-panel__input:focus{border-color:var(--color-focus)}.properties-panel__input--mixed::placeholder{color:var(--text-dim);font-style:italic}.properties-panel__unit{font-size:.9em;color:var(--text-dim);flex-shrink:0}.properties-panel__readonly{font-family:inherit;font-size:1em;color:var(--text-secondary);text-align:right;word-break:break-all}.properties-panel__readonly--mixed{color:var(--text-dim);font-style:italic}.properties-panel__pivot-group{display:flex;gap:2px}.properties-panel__pivot-btn{flex:1;height:24px;padding:0 6px;font-size:11px;font-family:inherit;color:var(--text-dim);background:var(--bg-input);border:1px solid transparent;border-radius:4px;cursor:pointer;transition:background .1s,color .1s,border-color .1s;white-space:nowrap}.properties-panel__pivot-btn:hover{background:var(--bg-element-hover);color:var(--text-secondary)}.properties-panel__pivot-btn--active{background:var(--bg-element-active);color:var(--text-primary)}.properties-panel__pivot-btn--mixed{font-style:italic;opacity:.6}.properties-panel__btn{height:22px;padding:0 10px;font-size:11px;font-family:inherit;color:var(--text-secondary);background:var(--bg-input);border:1px solid transparent;border-radius:4px;cursor:pointer;transition:background .1s,color .1s;white-space:nowrap}.properties-panel__btn:hover{background:var(--bg-element-hover);color:var(--text-primary)}.pp-elev-row{grid-template-columns:auto minmax(0,1fr)}.pp-elev-row .ui-number-input{flex:1 1 0;width:auto;min-width:0}.pp-autosel-buttons{display:flex;gap:4px;justify-content:flex-end}.pp-kindfilter-buttons{display:flex;gap:4px;padding:3px 0}.pp-kindfilter-buttons .action-btn.action-btn--chip{flex:1 1 0;width:auto;min-width:0}.pp-kindfilter-buttons .action-btn--chip-toggle.action-btn--active.pp-kind-partial{background:var(--bg-input);border-color:var(--segment-pill-bg);color:var(--text-primary)}.pp-kindfilter-buttons .action-btn--chip-toggle.action-btn--active.pp-kind-partial:hover:not(:disabled){background:var(--bg-element-hover);border-color:var(--segment-pill-bg);color:var(--text-primary)}.right-panel{width:260px;min-width:260px;height:100%;background:var(--bg-panel);border-left:1px solid var(--border-subtle);overflow-y:auto;scrollbar-width:none;display:flex;flex-direction:column;padding-bottom:140px;font-size:12px;font-family:inherit;color:var(--text-muted);line-height:1.4}.right-panel::-webkit-scrollbar{display:none}.status-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 12px;background:var(--bg-app);border-top:1px solid var(--border-panel);color:var(--text-dim);font-size:.8em}.status-bar__left{display:flex;gap:16px}.status-bar__right{display:flex;gap:12px}.status-bar__dirty,.status-bar__saving,.status-bar__saved{color:var(--text-primary)}.admin-users{min-height:100vh;background:var(--bg-app);color:var(--text-primary);padding:24px;box-sizing:border-box}.admin-users__panel{max-width:980px;margin:0 auto;background:var(--bg-panel);border:1px solid var(--border-panel);border-radius:8px;padding:16px}.admin-users__header,.admin-users__section-header,.admin-users__toolbar,.admin-users__row,.admin-users__modal-header,.admin-users__modal-actions{display:flex;align-items:center;gap:8px}.admin-users__header,.admin-users__section-header,.admin-users__modal-header{justify-content:space-between}.admin-users__title,.admin-users__section-header h2,.admin-users__modal-header h2{margin:0;font-size:16px;font-weight:600}.admin-users__subtitle,.admin-users__project-dates,.admin-users__user-meta,.admin-users__empty{color:var(--text-dim);font-size:12px}.admin-users__toolbar{margin-top:16px}.admin-users__select,.admin-users__role,.admin-users__field input,.admin-users__field select{height:32px;background:var(--bg-input);border:1px solid var(--border-input);color:var(--text-primary);border-radius:6px;padding:0 8px}.admin-users__select{min-width:360px}.admin-users__user-meta{display:flex;gap:12px;margin-top:8px}.admin-users__projects{margin-top:20px}.admin-users__rows{display:grid;gap:6px;margin-top:8px}.admin-users__row{min-height:44px;border:1px solid var(--border-subtle);background:var(--bg-panel-secondary);border-radius:6px;padding:8px}.admin-users__project-main{flex:1;min-width:0;display:grid;gap:2px}.admin-users__project-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-users__role{width:110px}.admin-users__empty{padding:18px 8px;border:1px dashed var(--border-subtle);border-radius:6px;margin-top:8px}.admin-users__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-backdrop);display:grid;place-items:center;z-index:1000}.admin-users__modal{width:min(520px,calc(100vw - 32px));background:var(--bg-panel);border:1px solid var(--border-panel);border-radius:8px;padding:14px;box-shadow:var(--shadow-dropdown)}.admin-users__field{display:grid;gap:6px;margin-top:12px;color:var(--text-dim);font-size:12px}.admin-users__modal-actions{justify-content:flex-end;margin-top:16px}.app{display:flex;flex-direction:column;height:100vh}.app__content{display:flex;flex:1;min-height:0;overflow:hidden}.floating-panel{background:var(--bg-overlay-opaque);border:1px solid var(--border-panel);border-radius:10px;box-shadow:0 4px 16px #0006;padding:4px;display:flex;align-items:center;gap:var(--tool-btn-gap)}
