:root{--bg-primary: #faf9f5;--bg-secondary: #f0efe8;--bg-panel: #f5f4ef;--bg-group: #eae8e0;--bg-input: #ffffff;--border-color: #e0ddd4;--border-hover: #c8c4b8;--text-primary: #1a1918;--text-secondary: #6b6a65;--text-muted: #9c9a92;--accent: #d97757;--accent-hover: #c4623f;--accent-dim: rgba(217, 119, 87, .1);--danger: #dc3d3d;--success: #5a7340;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-md: 0 4px 20px rgba(0, 0, 0, .08);--transition: .15s ease}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{display:flex;flex-direction:column;width:100%;height:100%}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:52px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0;z-index:10}.header-left{display:flex;align-items:center;gap:12px}.logo{display:flex;align-items:center;justify-content:center;color:var(--accent)}.app-title{font-size:16px;font-weight:600;letter-spacing:-.3px;color:var(--text-primary)}.header-right{display:flex;align-items:center}.header-hint{font-size:11px;color:var(--text-muted);letter-spacing:.2px}.app-main{display:flex;flex:1;overflow:hidden}.viewport-container{flex:1;position:relative;background:radial-gradient(ellipse at center,#eae8e0,#dddbd0);min-width:0;overflow:hidden}.control-panel{width:320px;min-width:260px;flex-shrink:0;display:flex;flex-direction:column;background:var(--bg-panel);border-left:1px solid var(--border-color)}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0}.panel-title{font-size:13px;font-weight:600;color:var(--text-primary);letter-spacing:-.2px}.reset-btn{display:flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:11px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.reset-btn:hover{border-color:var(--border-hover);color:var(--text-primary);background:var(--bg-input)}.panel-header-actions{display:flex;align-items:center;gap:4px}.undo-redo-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.undo-redo-btn:hover:not(:disabled){border-color:var(--border-hover);color:var(--text-primary);background:var(--bg-input)}.undo-redo-btn:disabled{opacity:.3;cursor:default}.reset-point-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:7px 12px;margin-top:6px;border:1px solid rgba(217,119,87,.3);border-radius:var(--radius-sm);background:#d9775714;color:var(--accent);font-size:11px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.reset-point-btn:hover{background:#d9775726;border-color:#d9775780}.panel-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px 0}.panel-scroll::-webkit-scrollbar{width:5px}.panel-scroll::-webkit-scrollbar-track{background:transparent}.panel-scroll::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.panel-scroll::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.control-group{padding:12px 16px;border-bottom:1px solid var(--border-color)}.control-group:last-child{border-bottom:none}.group-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--accent);margin-bottom:10px}.slider-row{margin-bottom:8px}.slider-row:last-child{margin-bottom:0}.slider-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.slider-label{font-size:11px;color:var(--text-secondary);font-weight:400}.slider-value{font-size:11px;color:var(--text-primary);font-weight:500;font-variant-numeric:tabular-nums;cursor:pointer;transition:color var(--transition)}.slider-value.editable:hover{color:var(--accent)}.slider-value-input{width:54px;font-size:11px;font-weight:500;font-variant-numeric:tabular-nums;text-align:right;background:var(--bg-input);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-primary);padding:1px 4px;outline:none;font-family:inherit}.slider-value-input:focus{box-shadow:0 0 0 2px var(--accent-dim)}.slider-unit{color:var(--text-muted);font-size:10px;margin-left:1px}.slider-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;outline:none;cursor:pointer;transition:opacity var(--transition)}.slider-input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-panel);cursor:pointer;box-shadow:0 1px 4px #00000026;transition:transform var(--transition),box-shadow var(--transition)}.slider-input::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 0 0 4px var(--accent-dim)}.slider-input::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);border:2px solid #ffffff;cursor:pointer;box-shadow:0 1px 4px #00000026}.toggle-row{margin-bottom:10px}.toggle-label{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-input{display:none}.toggle-switch{position:relative;width:32px;height:18px;background:var(--bg-input);border-radius:9px;border:1px solid var(--border-color);transition:all var(--transition);flex-shrink:0}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--text-muted);transition:all var(--transition)}.toggle-input:checked+.toggle-switch{background:var(--accent);border-color:var(--accent)}.toggle-input:checked+.toggle-switch:after{left:16px;background:#fff}.color-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.color-label{font-size:11px;color:var(--text-secondary)}.color-input-wrapper{display:flex;align-items:center;gap:8px}.color-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:28px;height:28px;border:2px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;background:none;padding:0}.color-input::-webkit-color-swatch-wrapper{padding:0}.color-input::-webkit-color-swatch{border:none;border-radius:4px}.color-input::-moz-color-swatch{border:none;border-radius:4px}.color-hex{font-size:10px;font-family:SF Mono,Fira Code,monospace;color:var(--text-muted);min-width:55px}.dimensions-info{background:var(--bg-group);border-radius:var(--radius-md);margin:8px 12px;padding:12px 14px;border:1px solid var(--border-color);border-bottom:1px solid var(--border-color)!important}.dim-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.dim-item{display:flex;flex-direction:column;align-items:center;gap:2px}.dim-label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase}.dim-value{font-size:14px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.export-group{padding:12px 16px 16px}.export-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.export-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:all var(--transition)}.export-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 2px 12px #d9775740}.export-btn:active{transform:scale(.97)}.mode-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:12px;background:#5a734026;color:var(--success);font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;border:1px solid rgba(90,115,64,.25)}.import-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;border:2px dashed var(--border-color);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:all var(--transition)}.import-btn:hover{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.import-btn:active{transform:scale(.98)}.import-hint{margin-top:6px;font-size:10px;color:var(--text-muted);line-height:1.4}.import-info{display:flex;flex-direction:column;gap:8px}.import-filename{font-size:12px;font-family:SF Mono,Fira Code,monospace;color:var(--accent);padding:6px 10px;background:var(--accent-dim);border-radius:var(--radius-sm);word-break:break-all}.back-btn{display:flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:11px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.back-btn:hover{border-color:var(--border-hover);color:var(--text-primary);background:var(--bg-input)}.edit-hint{font-size:10px;color:var(--success);background:#5a734014;padding:6px 10px;border-radius:var(--radius-sm);margin-top:6px;line-height:1.4}.reset-deform-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:7px 12px;margin-top:8px;border:1px solid rgba(220,61,61,.3);border-radius:var(--radius-sm);background:#dc3d3d14;color:var(--danger);font-size:11px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.reset-deform-btn:hover{background:#dc3d3d26;border-color:#dc3d3d80}.grid-density-controls{margin-top:8px;padding:8px;background:var(--bg-input);border-radius:var(--radius-sm)}.grid-density-label{font-size:11px;color:var(--text-secondary);margin-bottom:6px}.grid-density-row{display:flex;gap:8px}.grid-axis-label{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-primary);flex:1}.grid-density-select{width:100%;padding:4px 6px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-group);color:var(--text-primary);font-size:11px;font-family:inherit;cursor:pointer}.grid-density-select:hover{border-color:var(--border-hover)}.grid-density-total{margin-top:6px;font-size:10px;color:var(--text-muted);text-align:right}.transform-mode-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:6px}.transform-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-secondary);font-size:11px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.transform-btn:hover{border-color:var(--border-hover);color:var(--text-primary)}.transform-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.segmented-control{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:8px}.segment-btn{padding:6px 12px;border:none;border-right:1px solid var(--border-color);background:var(--bg-input);color:var(--text-secondary);font-size:11px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.segment-btn:last-child{border-right:none}.segment-btn:hover{color:var(--text-primary)}.segment-btn.active{background:var(--accent-dim);color:var(--accent)}.base-face-select-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:8px 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-secondary);font-size:11px;font-weight:500;font-family:inherit;cursor:pointer;transition:all var(--transition)}.base-face-select-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.base-face-select-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.base-face-current{margin-top:6px;font-size:11px;color:var(--text-secondary)}.base-face-current-value{font-weight:600;color:var(--accent)}.view-nav-container{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:3px;z-index:10}.view-nav-btn{display:flex;align-items:center;justify-content:center;min-width:36px;height:32px;padding:0 8px;border:1px solid rgba(176,173,159,.6);border-radius:var(--radius-sm);background:#f5f4efd9;color:var(--text-secondary);font-size:11px;font-weight:500;font-family:inherit;cursor:pointer;transition:all var(--transition);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);white-space:nowrap}.view-nav-btn:hover{background:#fffffff2;border-color:var(--accent);color:var(--accent)}.view-nav-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.view-nav-separator{width:100%;height:1px;background:#b0ad9f66;margin:3px 0}.view-nav-reset{font-weight:600}@media(max-width:1024px){.control-panel{width:280px}.data-browser{width:220px}}@media(max-width:900px){.control-panel{width:260px}.data-browser{width:200px}}@media(max-width:768px){.app-main{flex-direction:column}.viewport-container{height:50vh}.control-panel{width:100%;height:50vh}.header-hint{display:none}.view-nav-container{top:8px;right:8px}.view-nav-btn{min-width:30px;height:28px;font-size:10px;padding:0 6px}.data-browser{width:100%;max-width:100%}}.login-page{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--bg-primary)}.login-card{display:flex;flex-direction:column;align-items:center;padding:48px 40px;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-width:400px;width:90%}.login-logo{color:var(--accent);margin-bottom:16px}.login-title{font-size:22px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.login-subtitle{font-size:13px;color:var(--text-muted);margin-bottom:32px}.login-google-btn{display:flex;align-items:center;gap:10px;padding:12px 24px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:all var(--transition);width:100%;justify-content:center}.login-google-btn:hover:not(:disabled){border-color:var(--accent);box-shadow:0 2px 12px #d9775726}.login-google-btn:disabled{opacity:.6;cursor:default}.login-error{margin-top:12px;font-size:12px;color:var(--danger)}.login-note{margin-top:24px;font-size:11px;color:var(--text-muted);text-align:center;line-height:1.5}.auth-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;gap:16px;color:var(--text-secondary);font-size:13px}.auth-spinner{width:32px;height:32px;border:3px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-status-page{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--bg-primary)}.auth-status-card{display:flex;flex-direction:column;align-items:center;padding:48px 40px;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-width:440px;width:90%;text-align:center}.auth-status-icon{margin-bottom:20px}.auth-status-icon.pending{color:#c89b3c}.auth-status-icon.rejected{color:var(--danger)}.auth-status-card h2{font-size:20px;font-weight:600;margin-bottom:8px}.auth-status-card p{font-size:13px;color:var(--text-secondary);line-height:1.6;margin-bottom:20px}.auth-status-user{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 20px;background:var(--bg-group);border-radius:var(--radius-sm);margin-bottom:20px;font-size:13px}.auth-status-email{font-size:11px;color:var(--text-muted)}.auth-signout-btn{padding:8px 20px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:12px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.auth-signout-btn:hover{border-color:var(--accent);color:var(--accent)}.user-menu{position:relative;margin-left:12px}.user-menu-trigger{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border-color);border-radius:50%;background:var(--bg-input);cursor:pointer;overflow:hidden;transition:all var(--transition);padding:0}.user-menu-trigger:hover{border-color:var(--accent)}.user-avatar{width:100%;height:100%;object-fit:cover;border-radius:50%}.user-avatar-initials{font-size:11px;font-weight:600;color:var(--accent)}.user-menu-dropdown{position:absolute;top:40px;right:0;width:220px;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:100;overflow:hidden}.user-menu-info{padding:14px 16px;display:flex;flex-direction:column;gap:2px}.user-menu-name{font-size:13px;font-weight:600;color:var(--text-primary)}.user-menu-email{font-size:11px;color:var(--text-muted)}.user-menu-role{display:inline-block;margin-top:4px;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;width:fit-content}.user-menu-role.role-admin{background:#d9775726;color:var(--accent)}.user-menu-role.role-member{background:#5a734026;color:var(--success)}.user-menu-divider{height:1px;background:var(--border-color)}.user-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;border:none;background:transparent;color:var(--text-secondary);font-size:12px;font-family:inherit;cursor:pointer;transition:all var(--transition);text-align:left}.user-menu-item:hover{background:var(--bg-group);color:var(--text-primary)}.header-library-btn,.header-save-btn{display:flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:11px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.header-library-btn:hover,.header-save-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-card{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:0 16px 48px #0003;max-height:80vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--border-color)}.modal-header h2{font-size:16px;font-weight:600}.modal-close-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition)}.modal-close-btn:hover{background:var(--bg-group);color:var(--text-primary)}.confirm-dialog{width:380px;padding:28px}.confirm-title{font-size:15px;font-weight:600;margin-bottom:8px}.confirm-message{font-size:13px;color:var(--text-secondary);line-height:1.5;margin-bottom:24px}.confirm-actions{display:flex;gap:8px;justify-content:flex-end}.confirm-cancel-btn{padding:8px 16px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:12px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.confirm-cancel-btn:hover{border-color:var(--border-hover);color:var(--text-primary)}.confirm-ok-btn{padding:8px 16px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:all var(--transition)}.confirm-ok-btn:hover{background:var(--accent-hover)}.confirm-ok-btn.danger{background:var(--danger)}.confirm-ok-btn.danger:hover{background:#c23030}.admin-panel{width:560px}.admin-content{padding:16px 24px 24px}.admin-loading{padding:32px;text-align:center;color:var(--text-muted);font-size:13px}.admin-section{margin-bottom:20px}.admin-section:last-child{margin-bottom:0}.admin-section-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot.pending{background:#c89b3c}.status-dot.approved{background:var(--success)}.status-dot.rejected{background:var(--danger)}.admin-user-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);margin-bottom:6px;background:var(--bg-input)}.admin-user-info{display:flex;flex-direction:column;gap:2px}.admin-user-name{font-size:13px;font-weight:500;display:flex;align-items:center;gap:6px}.admin-user-email{font-size:11px;color:var(--text-muted)}.admin-user-meta{margin-top:4px}.role-badge{display:inline-block;padding:1px 6px;border-radius:8px;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.role-badge.role-admin{background:#d9775726;color:var(--accent)}.role-badge.role-member{background:#5a734026;color:var(--success)}.drive-invite-label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:11px}.drive-invite-label input[type=checkbox]{display:none}.drive-badge{padding:2px 8px;border-radius:8px;font-size:10px;font-weight:500}.drive-badge.invited{background:#5a73401f;color:var(--success)}.drive-badge.not-invited{background:#dc3d3d14;color:var(--danger)}.admin-user-actions{display:flex;gap:6px;flex-shrink:0}.admin-action-btn{padding:5px 10px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;font-size:11px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.admin-action-btn.approve{color:var(--success);border-color:#5a73404d}.admin-action-btn.approve:hover{background:#5a73401a;border-color:var(--success)}.admin-action-btn.reject{color:var(--danger);border-color:#dc3d3d4d}.admin-action-btn.reject:hover{background:#dc3d3d1a;border-color:var(--danger)}.admin-action-btn.role{color:var(--text-secondary)}.admin-action-btn.role:hover{color:var(--accent);border-color:var(--accent)}.data-browser{width:260px;flex-shrink:0;display:flex;flex-direction:column;background:var(--bg-panel);border-right:1px solid var(--border-color);overflow:hidden}.data-browser-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border-color);flex-shrink:0}.data-browser-title{font-size:13px;font-weight:600}.data-browser-header-actions{display:flex;align-items:center;gap:4px}.data-refresh-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition)}.data-refresh-btn:hover{background:var(--bg-group);color:var(--accent)}.data-browser-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition)}.data-browser-close:hover{background:var(--bg-group);color:var(--text-primary)}.data-browser-content{flex:1;overflow-y:auto;padding:8px 0}.data-browser-content::-webkit-scrollbar{width:5px}.data-browser-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.data-browser-section{padding:8px 12px;border-bottom:1px solid var(--border-color)}.data-browser-section:last-child{border-bottom:none}.data-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.data-section-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--accent)}.data-add-btn{padding:3px 8px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:10px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.data-add-btn:hover{border-color:var(--accent);color:var(--accent)}.data-loading,.data-empty{padding:16px 8px;text-align:center;font-size:11px;color:var(--text-muted)}.brand-list{display:flex;flex-direction:column;gap:3px}.brand-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition)}.brand-item:hover{background:var(--bg-group)}.brand-item.selected{background:var(--accent-dim);border-color:var(--accent)}.brand-item-info{display:flex;align-items:center;gap:6px;min-width:0}.brand-item-name{font-size:12px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-item-count{font-size:10px;color:var(--text-muted)}.brand-expand-icon{font-size:8px;color:var(--text-muted);flex-shrink:0;width:10px;text-align:center}.brand-item.selected .brand-expand-icon{color:var(--accent)}.brand-mice-inline{padding:4px 0 4px 18px}.brand-item-actions{display:flex;gap:3px;opacity:0;transition:opacity var(--transition)}.brand-item:hover .brand-item-actions{opacity:1}.brand-action-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:4px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition)}.brand-action-btn:hover{background:var(--bg-input);color:var(--text-primary)}.brand-action-btn.danger:hover{background:#dc3d3d1a;color:var(--danger)}.mouse-list{display:flex;flex-direction:column;gap:3px}.mouse-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-input)}.mouse-item-info{display:flex;flex-direction:column;gap:1px;min-width:0}.mouse-item-name{font-size:12px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mouse-item-mode{font-size:10px;color:var(--accent)}.mouse-item-dims{font-size:10px;color:var(--text-muted);font-variant-numeric:tabular-nums}.mouse-item-actions{display:flex;gap:4px;flex-shrink:0}.mouse-load-btn{padding:4px 10px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:transparent;color:var(--accent);font-size:10px;font-weight:500;font-family:inherit;cursor:pointer;transition:all var(--transition)}.mouse-load-btn:hover:not(:disabled){background:var(--accent);color:#fff}.mouse-load-btn:disabled{opacity:.5;cursor:default}.brand-form{display:flex;flex-direction:column;gap:6px;padding:8px;margin-bottom:8px;background:var(--bg-group);border-radius:var(--radius-sm)}.brand-form-input{padding:6px 10px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-size:12px;font-family:inherit;outline:none;transition:border-color var(--transition)}.brand-form-input:focus{border-color:var(--accent)}.brand-form-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:4px}.brand-form-cancel,.brand-form-submit{padding:4px 10px;border-radius:var(--radius-sm);font-size:11px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.brand-form-cancel{border:1px solid var(--border-color);background:transparent;color:var(--text-secondary)}.brand-form-cancel:hover{border-color:var(--border-hover)}.brand-form-submit{border:none;background:var(--accent);color:#fff;font-weight:500}.brand-form-submit:hover:not(:disabled){background:var(--accent-hover)}.brand-form-submit:disabled{opacity:.5;cursor:default}.save-dialog{width:440px}.save-dialog-content{padding:20px 24px 24px}.save-dialog-mode{display:flex;align-items:center;gap:8px;margin-bottom:16px}.save-mode-badge{display:inline-block;padding:3px 10px;border-radius:10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.save-mode-badge.parametric{background:#5a734026;color:var(--success)}.save-mode-badge.imported{background:#d9775726;color:var(--accent)}.save-file-name{font-size:11px;font-family:SF Mono,Fira Code,monospace;color:var(--text-muted)}.save-dialog-field{margin-bottom:14px}.save-field-label{display:block;font-size:11px;font-weight:500;color:var(--text-secondary);margin-bottom:4px}.save-field-select,.save-field-input{width:100%;padding:8px 10px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-size:13px;font-family:inherit;outline:none;transition:border-color var(--transition)}.save-field-select:focus,.save-field-input:focus{border-color:var(--accent)}.save-field-select{cursor:pointer}.save-field-input+.save-field-input,.save-field-select+.save-field-input{margin-top:6px}.save-dialog-hint{font-size:11px;color:var(--text-muted);margin-bottom:16px;padding:8px 10px;background:var(--bg-group);border-radius:var(--radius-sm)}.save-dialog-error{font-size:12px;color:var(--danger);margin-bottom:12px}.save-dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.save-cancel-btn{padding:8px 16px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:12px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.save-cancel-btn:hover:not(:disabled){border-color:var(--border-hover);color:var(--text-primary)}.save-submit-btn{padding:8px 20px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:all var(--transition)}.save-submit-btn:hover:not(:disabled){background:var(--accent-hover)}.save-submit-btn:disabled{opacity:.5;cursor:default}.ref-models-section{border-top:1px solid var(--border-color)}.ref-section-header{cursor:pointer;display:flex;align-items:center;gap:6px;-webkit-user-select:none;user-select:none}.ref-collapse-icon{font-size:9px;color:var(--text-muted);width:12px;flex-shrink:0}.ref-count{margin-left:auto;font-size:10px;font-weight:500;color:var(--text-muted);background:var(--bg-group);border-radius:8px;padding:1px 6px;min-width:18px;text-align:center}.ref-add-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px 12px;border:1px dashed var(--border-color);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-secondary);font-size:11px;font-family:inherit;cursor:pointer;transition:all var(--transition);margin-top:4px}.ref-add-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.ref-model-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}.ref-model-item{padding:8px 10px;background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);transition:opacity var(--transition)}.ref-model-item.ref-hidden{opacity:.55}.ref-model-header{display:flex;align-items:center;gap:4px}.ref-expand-btn{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border:none;background:none;color:var(--text-muted);font-size:8px;cursor:pointer;padding:0;flex-shrink:0}.ref-model-name{font-size:11px;font-family:SF Mono,Fira Code,Consolas,monospace;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.ref-model-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.ref-visibility-btn,.ref-remove-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition);padding:0}.ref-visibility-btn:hover{background:var(--bg-group);color:var(--text-primary)}.ref-visibility-btn.hidden{opacity:.4}.ref-remove-btn:hover{background:#dc3d3d1a;color:var(--danger)}.ref-model-controls{margin-top:8px;display:flex;flex-direction:column;gap:6px}.ref-display-mode{display:grid;grid-template-columns:1fr 1fr 1fr;border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden}.ref-mode-btn{padding:4px 6px;border:none;border-right:1px solid var(--border-color);background:var(--bg-input);color:var(--text-secondary);font-size:10px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.ref-mode-btn:last-child{border-right:none}.ref-mode-btn.active{background:var(--accent-dim);color:var(--accent);font-weight:500}.ref-mode-btn:hover:not(.active){background:var(--bg-group)}.ref-color-row{display:flex;align-items:center;gap:8px}.ref-color-row .color-input{width:28px;height:22px}.ref-control-label{font-size:10px;color:var(--text-secondary);min-width:56px;flex-shrink:0}.ref-slider-row{display:flex;align-items:center;gap:6px}.ref-slider{flex:1;min-width:0}.ref-slider-value{font-size:10px;font-family:SF Mono,Fira Code,Consolas,monospace;color:var(--text-muted);min-width:36px;text-align:right;flex-shrink:0}.mouse-compare-btn{padding:3px 8px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-secondary);font-size:11px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.mouse-compare-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.mouse-compare-btn:disabled{opacity:.4;cursor:default}
