*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%;margin:0;padding:0;overflow:hidden}#root{height:100%;width:100%}.editor-shell{display:grid;grid-template-columns:280px 1fr 360px;grid-template-rows:44px 1fr 200px;height:100vh;width:100vw;overflow:hidden;background:#1a1a2e;color:#e8e8e8;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px}.editor-toolbar{grid-column:1 / -1;grid-row:1;display:flex;align-items:center;gap:8px;padding:0 12px;background:linear-gradient(180deg,#2d2d44,#252538);border-bottom:1px solid #3a3a55}.toolbar-section{display:flex;align-items:center;gap:4px}.toolbar-divider{width:1px;height:24px;background:#444;margin:0 8px}.toolbar-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;background:#3a3a55;border:1px solid #4a4a65;border-radius:4px;color:#e8e8e8;cursor:pointer;font-size:12px;transition:all .15s}.toolbar-btn:hover{background:#4a4a70;border-color:#5a5a80}.toolbar-btn:active{transform:scale(.97)}.toolbar-btn.primary{background:linear-gradient(180deg,#4f7cff,#3d68e8);border-color:#5a8aff}.toolbar-btn.primary:hover{background:linear-gradient(180deg,#5f8cff,#4d78f8)}.toolbar-btn.success{background:linear-gradient(180deg,#28a745,#218838);border-color:#2dbd4f}.toolbar-btn.success:hover{background:linear-gradient(180deg,#32b350,#2b9844)}.toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.toolbar-spacer{flex:1}.version-badge{font-size:10px;color:#888;background:#2a2a3a;padding:2px 6px;border-radius:4px;margin-right:8px;font-family:monospace}.hierarchy-panel{grid-column:1;grid-row:2;display:flex;flex-direction:column;background:#1e1e32;border-right:1px solid #3a3a55;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#252540;border-bottom:1px solid #3a3a55;font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#aaa}.panel-content{flex:1;overflow-y:auto;padding:4px 0}.tree-item{display:flex;align-items:center;gap:4px;padding:4px 8px;cursor:pointer;transition:background .1s;white-space:nowrap}.tree-item:hover{background:#2a2a45}.tree-item.selected{background:#3a5078}.tree-item.selected:hover{background:#4a6088}.tree-toggle{width:16px;height:16px;display:flex;align-items:center;justify-content:center;color:#888;font-size:10px}.tree-icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;color:#88c}.tree-icon.box{color:#6fa}.tree-icon.sphere{color:#af6}.tree-icon.cylinder{color:#fa6}.tree-icon.imported{color:#6af}.tree-icon.source{color:#f6a}.tree-icon.scorer{color:#ff6}.tree-name{flex:1;overflow:hidden;text-overflow:ellipsis}.tree-visibility{width:20px;height:20px;display:flex;align-items:center;justify-content:center;opacity:.5;transition:opacity .1s}.tree-visibility:hover{opacity:1}.tree-visibility.hidden{opacity:.3}.viewport-container{grid-column:2;grid-row:2;position:relative;background:#16162e;overflow:hidden}.viewport-canvas{width:100%;height:100%;display:block}.viewport-ribbon{position:absolute;top:8px;left:50%;transform:translate(-50%);display:flex;gap:4px;padding:4px;background:#1e1e32e6;border:1px solid #3a3a55;border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ribbon-btn{padding:4px 10px;background:transparent;border:1px solid transparent;border-radius:3px;color:#aaa;cursor:pointer;font-size:11px;transition:all .15s}.ribbon-btn:hover{background:#3a3a55;color:#fff}.ribbon-btn.active{background:#4f7cff;border-color:#5a8aff;color:#fff}.vertical-toolbar{position:absolute;top:50%;left:8px;transform:translateY(-50%);display:flex;flex-direction:column;gap:4px;padding:4px;background:#1e1e32e6;border:1px solid #3a3a55;border-radius:6px}.gizmo-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:4px;color:#aaa;cursor:pointer;font-size:16px;transition:all .15s}.gizmo-btn:hover{background:#3a3a55;color:#fff}.gizmo-btn.active{background:#4f7cff;border-color:#5a8aff;color:#fff}.inspector-content{flex:1;overflow-y:auto;padding:8px}.inspector-section{margin-bottom:12px}.inspector-section-header{display:flex;align-items:center;gap:6px;padding:6px 8px;margin:-4px -4px 8px;background:#252540;border-radius:4px;font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#aaa;cursor:pointer}.inspector-section-header:hover{background:#2a2a48}.form-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.form-label{width:60px;flex-shrink:0;font-size:11px;color:#888}.form-input{flex:1;padding:6px 8px;background:#2a2a45;border:1px solid #3a3a55;border-radius:4px;color:#fff;font-size:12px;outline:none}.form-input:focus{border-color:#4f7cff}.form-input:disabled{opacity:.5}.vec3-row{display:flex;gap:4px}.vec3-input{flex:1;min-width:0;padding:4px 6px;background:#2a2a45;border:1px solid #3a3a55;border-radius:3px;color:#fff;font-size:11px;text-align:center;outline:none}.vec3-input:focus{border-color:#4f7cff}.vec3-label{position:absolute;left:4px;font-size:10px;color:#666;pointer-events:none}.form-select{flex:1;padding:6px 8px;background:#2a2a45;border:1px solid #3a3a55;border-radius:4px;color:#fff;font-size:12px;outline:none;cursor:pointer}.form-select:focus{border-color:#4f7cff}.form-btn{padding:6px 12px;background:#3a3a55;border:1px solid #4a4a65;border-radius:4px;color:#e8e8e8;font-size:11px;cursor:pointer;transition:all .15s}.form-btn:hover{background:#4a4a70}.console-panel{grid-column:1 / -1;grid-row:3;display:flex;flex-direction:column;background:#1a1a2e;border-top:1px solid #3a3a55;overflow:hidden}.console-content{flex:1;overflow-y:auto;padding:8px;font-family:Consolas,Monaco,monospace;font-size:11px}.console-line{display:flex;gap:8px;padding:2px 0}.console-time{color:#666;flex-shrink:0}.console-msg{flex:1;word-break:break-word}.console-msg.info{color:#aaa}.console-msg.warn{color:#fa6}.console-msg.error{color:#f66}.console-msg.success{color:#6fa}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog{background:#252540;border:1px solid #3a3a55;border-radius:8px;box-shadow:0 8px 32px #0006;min-width:400px;max-width:90vw;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#2a2a48;border-bottom:1px solid #3a3a55}.dialog-title{font-weight:500;font-size:14px}.dialog-close{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;color:#888;cursor:pointer;font-size:16px}.dialog-close:hover{background:#3a3a55;color:#fff}.dialog-content{flex:1;padding:16px;overflow-y:auto}.dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;background:#2a2a48;border-top:1px solid #3a3a55}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;background:#2a2a45;border:2px solid #3a3a55;border-radius:8px;cursor:pointer;transition:all .15s}.card:hover{border-color:#4f7cff;transform:translateY(-2px)}.card-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:32px}.card-label{font-size:12px;font-weight:500;text-align:center}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#1a1a2e}::-webkit-scrollbar-thumb{background:#3a3a55;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#4a4a65}.periodic-table{display:grid;grid-template-columns:repeat(18,1fr);gap:2px;padding:8px}.element-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#2a2a45;border:1px solid #3a3a55;border-radius:3px;cursor:pointer;font-size:9px;transition:all .1s;color:#e8e8e8}.element-cell:hover{background:#3a3a55;border-color:#4f7cff}.element-cell.selected{background:#4f7cff;border-color:#5a8aff;color:#fff}.element-cell.empty{background:transparent;border-color:transparent;cursor:default}.element-symbol{font-weight:700;font-size:12px;color:#fff}.element-number{font-size:8px;color:#aaa}.element-cell.selected .element-number{color:#fffc}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#666;text-align:center;padding:24px}.empty-state-icon{font-size:48px;margin-bottom:12px;opacity:.5}.empty-state-text{font-size:13px}.tabs{display:flex;gap:2px;padding:8px 8px 0;background:#1e1e32}.tab{padding:8px 16px;background:transparent;border:none;border-radius:4px 4px 0 0;color:#888;cursor:pointer;font-size:12px;transition:all .15s}.tab:hover{color:#fff;background:#2a2a45}.tab.active{color:#fff;background:#252540}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.dialog{background:#252540;border:1px solid #3a3a55;border-radius:12px;min-width:420px;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 25px 80px #00000080}.dialog--wide{min-width:560px}.dialog--xlarge{min-width:1100px;max-width:1400px;max-height:90vh}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #3a3a55}.dialog-header h2{margin:0;font-size:16px;font-weight:600}.dialog-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:#888;font-size:20px;cursor:pointer;border-radius:4px;transition:all .15s}.dialog-close:hover{background:#ffffff1a;color:#fff}.dialog-body{padding:20px;overflow-y:auto}.dialog-section{margin-bottom:24px}.dialog-section:last-child{margin-bottom:0}.dialog-section h3{margin:0 0 12px;font-size:13px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.05em}.dialog-hint{font-size:12px;color:#666;margin:12px 0;line-height:1.5}.dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px;padding-top:16px;border-top:1px solid #3a3a55}.primitive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.primitive-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px 16px;background:#2a2a45;border:1px solid #3a3a55;border-radius:8px;cursor:pointer;transition:all .15s}.primitive-card:hover{background:#4f7cff;border-color:#5a8aff;transform:translateY(-2px)}.primitive-icon{font-size:32px}.primitive-label{font-size:13px;font-weight:500}.scorer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.scorer-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px;background:#2a2a45;border:1px solid #3a3a55;border-radius:10px;cursor:pointer;transition:all .15s;text-align:center}.scorer-card:hover{background:#4f7cff;border-color:#5a8aff;transform:translateY(-2px)}.scorer-icon{font-size:32px}.scorer-label{font-size:14px;font-weight:600}.scorer-desc{font-size:11px;color:#888;line-height:1.4}.scorer-card:hover .scorer-desc{color:#fffc}.form-row{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-row label{font-size:12px;font-weight:500;color:#888}.form-row input,.form-row select{padding:10px 12px;font-size:13px;background:#1e1e32;border:1px solid #3a3a55;border-radius:6px;color:#e8e8e8}.form-row input:focus,.form-row select:focus{outline:none;border-color:#4f7cff}.btn{padding:10px 20px;font-size:13px;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:all .15s}.btn--primary{background:linear-gradient(180deg,#4f7cff,#3d68e8);color:#fff}.btn--primary:hover{background:linear-gradient(180deg,#5f8cff,#4d78f8)}.btn--primary:disabled{opacity:.5;cursor:not-allowed}.btn--secondary{background:#3a3a55;border:1px solid #4a4a65;color:#e8e8e8}.btn--secondary:hover{background:#4a4a70}.btn--small{padding:6px 12px;font-size:11px}.import-btn{width:100%;padding:14px;font-size:14px;background:#2a2a45;border:1px dashed #4a4a65;border-radius:8px;color:#888;cursor:pointer;transition:all .15s}.import-btn:hover{background:#3a3a55;border-color:#5a5a80;color:#fff}.material-lab-body{display:flex;flex-direction:column;gap:20px}.material-lab-grid{display:grid;grid-template-columns:1fr 320px;gap:24px}.ptable-section h3,.compound-section h3{margin:0 0 16px;font-size:14px;font-weight:600;color:#e8e8e8}.ptable{display:grid;grid-template-columns:repeat(18,1fr);grid-template-rows:repeat(10,1fr);gap:3px}.ptable-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#2d2d48;border:1px solid #4a4a65;border-radius:4px;cursor:pointer;transition:all .15s;padding:3px;min-width:36px;min-height:36px}.ptable-cell:hover{background:#4f7cff;border-color:#6f9cff;transform:scale(1.1);z-index:10}.ptable-cell.selected{background:#4f7cff;border-color:#8fb8ff;box-shadow:0 0 8px #4f7cff80}.ptable-cell.empty{background:transparent;border:none;cursor:default}.ptable-z{font-size:8px;color:#88a;line-height:1}.ptable-sym{font-size:14px;font-weight:700;color:#fff;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.3)}.ptable-cell[data-type=alkali]{background:linear-gradient(135deg,#ff6b6b,#c44d4d)}.ptable-cell[data-type=alkaline]{background:linear-gradient(135deg,#ffa502,#cc8400)}.ptable-cell[data-type=transition]{background:linear-gradient(135deg,#3498db,#2574a9)}.ptable-cell[data-type=post-transition]{background:linear-gradient(135deg,#5dade2,#3498db)}.ptable-cell[data-type=metalloid]{background:linear-gradient(135deg,#45b39d,#1e8449)}.ptable-cell[data-type=nonmetal]{background:linear-gradient(135deg,#58d68d,#28b463)}.ptable-cell[data-type=halogen]{background:linear-gradient(135deg,#f1c40f,#d4ac0d)}.ptable-cell[data-type=noble]{background:linear-gradient(135deg,#af7ac5,#8e44ad)}.ptable-cell[data-type=lanthanide]{background:linear-gradient(135deg,#f39c12,#d68910)}.ptable-cell[data-type=actinide]{background:linear-gradient(135deg,#e67e22,#ba6411)}.ptable-cell:hover .ptable-z,.ptable-cell:hover .ptable-sym,.ptable-cell.selected .ptable-z,.ptable-cell.selected .ptable-sym{color:#fff}.compound-section{background:#1e1e32;border:1px solid #3a3a55;border-radius:8px;padding:16px}.compound-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-size:12px;color:#888}.compound-list{display:flex;flex-direction:column;gap:8px;max-height:200px;overflow-y:auto}.compound-empty{text-align:center;padding:24px;color:#666;font-size:12px}.compound-row{display:flex;align-items:center;gap:8px;padding:8px;background:#252540;border-radius:4px}.compound-symbol{width:30px;font-weight:600;font-size:14px}.compound-name{flex:1;font-size:12px;color:#888}.compound-fraction{width:60px;padding:4px 8px;font-size:12px;background:#1e1e32;border:1px solid #3a3a55;border-radius:4px;color:#e8e8e8;text-align:right}.compound-remove{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:#666;font-size:16px;cursor:pointer;border-radius:4px}.compound-remove:hover{background:#ff505033;color:#ff5050}.compound-total{margin-top:12px;padding-top:12px;border-top:1px solid #3a3a55;font-size:12px;color:#888}.compound-warning{color:#fa0}.export-stats{display:flex;gap:32px;padding:20px;background:#1e1e32;border-radius:8px;margin-bottom:20px}.stat{display:flex;flex-direction:column;align-items:center;gap:4px}.stat-value{font-size:28px;font-weight:700;color:#4f7cff}.stat-label{font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.05em}.filename-input{display:flex;align-items:center;background:#1e1e32;border:1px solid #3a3a55;border-radius:6px;overflow:hidden}.filename-input input{flex:1;padding:10px 12px;background:transparent;border:none;color:#e8e8e8;font-size:13px}.filename-input input:focus{outline:none}.filename-ext{padding:10px 12px;background:#2a2a45;color:#888;font-size:13px}.export-preview-container{margin:16px 0}.preview-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:12px;color:#888}.export-preview{background:#1a1a2e;border:1px solid #3a3a55;border-radius:6px;padding:12px;max-height:300px;overflow:auto;font-family:SF Mono,Consolas,monospace;font-size:11px;line-height:1.5;color:#888;white-space:pre-wrap;word-break:break-all}.inspector-panel{grid-column:3;grid-row:2;display:flex;flex-direction:column;background:#1e1e32;border-left:1px solid #3a3a55;overflow:hidden}.inspector-scroll{flex:1;overflow-y:auto;padding:8px}.inspector-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#666}.empty-icon{font-size:48px;margin-bottom:12px;opacity:.5}.empty-text{font-size:13px}.inspector-section{background:#252540;border-radius:6px;margin-bottom:8px;overflow:hidden}.section-header{padding:8px 12px;background:#2d2d48;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#aaa;border-bottom:1px solid #3a3a55}.prop-row{display:flex;align-items:center;padding:6px 12px;min-height:32px;border-bottom:1px solid #2a2a45}.prop-row:last-child{border-bottom:none}.prop-label{width:70px;flex-shrink:0;font-size:12px;color:#999}.prop-input{flex:1;background:#1a1a2e;border:1px solid #3a3a55;border-radius:4px;padding:6px 8px;color:#e8e8e8;font-size:12px;min-width:0}.prop-input:focus{outline:none;border-color:#4f7cff}.prop-value{flex:1;font-size:12px;color:#888;text-transform:capitalize}.prop-select{flex:1;background:#1a1a2e;border:1px solid #3a3a55;border-radius:4px;padding:6px 8px;color:#e8e8e8;font-size:12px;min-width:0;cursor:pointer}.prop-select:focus{outline:none;border-color:#4f7cff}.vec3-inputs{flex:1;display:flex;gap:4px;min-width:0}.vec3-field{flex:1;display:flex;align-items:center;background:#1a1a2e;border:1px solid #3a3a55;border-radius:4px;overflow:hidden;min-width:0}.vec3-axis{padding:0 6px;font-size:10px;font-weight:600;background:#252540}.vec3-field input{flex:1;background:transparent;border:none;padding:5px 4px;color:#e8e8e8;font-size:11px;min-width:0;width:100%}.vec3-field input:focus{outline:none}.slider-field{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.slider-field input[type=range]{flex:1;height:4px;background:#3a3a55;border-radius:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:0}.slider-field input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:#4f7cff;border-radius:50%;cursor:pointer}.slider-value{width:40px;text-align:right;font-size:11px;color:#888}.toggle-btn{padding:4px 12px;background:#3a3a55;border:1px solid #4a4a65;border-radius:4px;color:#888;font-size:11px;cursor:pointer;transition:all .15s}.toggle-btn.active{background:#4f7cff;border-color:#5a8aff;color:#fff}.toggle-btn:hover{background:#4a4a70}.toggle-btn.active:hover{background:#5a8aff}.section-btn{display:block;width:calc(100% - 24px);margin:8px 12px;padding:8px;background:#3a3a55;border:1px solid #4a4a65;border-radius:4px;color:#ccc;font-size:12px;cursor:pointer;transition:all .15s}.section-btn:hover{background:#4a4a70;border-color:#5a5a80}.header-btn{padding:4px 8px;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;font-size:14px;transition:all .15s}.header-btn:hover{background:#3a3a55}.header-btn.danger:hover{background:#5a3030}.header-btn:disabled{opacity:.3;cursor:not-allowed}.project-name-section{display:flex;align-items:center;min-width:150px;max-width:250px}.project-name{font-size:14px;font-weight:600;color:#e8e8e8;cursor:pointer;padding:4px 8px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .15s}.project-name:hover{background:#ffffff1a}.project-name-input{background:#1a1a2e;border:1px solid #4f7cff;border-radius:4px;padding:4px 8px;color:#e8e8e8;font-size:14px;font-weight:600;width:100%;outline:none}.project-name-input:focus{border-color:#6f9cff;box-shadow:0 0 0 2px #4f7cff33}.material-picker{flex:1;position:relative;min-width:0}.material-current{width:100%;display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:#1a1a2e;border:1px solid #3a3a55;border-radius:4px;color:#e8e8e8;font-size:12px;cursor:pointer;text-align:left}.material-current:hover{border-color:#4a4a70}.material-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-arrow{margin-left:8px;font-size:10px;color:#888}.material-dropdown{position:fixed;width:300px;background:#1e1e32;border:1px solid #4a4a70;border-radius:6px;box-shadow:0 12px 32px #00000080;z-index:9999;max-height:400px;display:flex;flex-direction:column}.material-search{padding:8px 12px;background:#252540;border:none;border-bottom:1px solid #3a3a55;color:#e8e8e8;font-size:12px;outline:none}.material-search::placeholder{color:#666}.material-list{flex:1;overflow-y:auto;max-height:300px}.material-category{padding:4px 0}.category-header{padding:6px 12px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#888;background:#252540;position:sticky;top:0;z-index:1}.material-item{padding:6px 12px;font-size:12px;color:#ccc;cursor:pointer;display:flex;align-items:center;justify-content:space-between}.material-item:hover{background:#2d2d48}.material-item.selected{background:#3d5a99;color:#fff}.material-density{font-size:10px;color:#888;margin-left:8px}.material-item.selected .material-density{color:#ffffffb3}.material-empty{padding:20px;text-align:center;color:#666;font-style:italic}.ptable-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;padding:10px;background:#252540;border-radius:6px}.legend-item{display:flex;align-items:center;gap:6px;font-size:11px;color:#aaa}.legend-color{width:14px;height:14px;border-radius:3px}.legend-color[data-type=alkali]{background:linear-gradient(135deg,#ff6b6b,#c44d4d)}.legend-color[data-type=alkaline]{background:linear-gradient(135deg,#ffa502,#cc8400)}.legend-color[data-type=transition]{background:linear-gradient(135deg,#3498db,#2574a9)}.legend-color[data-type=post-transition]{background:linear-gradient(135deg,#5dade2,#3498db)}.legend-color[data-type=metalloid]{background:linear-gradient(135deg,#45b39d,#1e8449)}.legend-color[data-type=nonmetal]{background:linear-gradient(135deg,#58d68d,#28b463)}.legend-color[data-type=halogen]{background:linear-gradient(135deg,#f1c40f,#d4ac0d)}.legend-color[data-type=noble]{background:linear-gradient(135deg,#af7ac5,#8e44ad)}.legend-color[data-type=lanthanide]{background:linear-gradient(135deg,#f39c12,#d68910)}.legend-color[data-type=actinide]{background:linear-gradient(135deg,#e67e22,#ba6411)}.density-field{display:flex;align-items:center;gap:6px;flex:1}.density-field input{flex:1;min-width:0;padding:6px 8px;background:#1a1a2e;border:1px solid #3a3a55;border-radius:4px;color:#e8e8e8;font-size:12px}.density-field input.overridden{border-color:#f39c12;background:#2a2518}.density-unit{font-size:11px;color:#888;white-space:nowrap}.reset-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#3a3a55;border:none;border-radius:4px;color:#f39c12;cursor:pointer;font-size:14px;transition:background .15s}.reset-btn:hover{background:#4a4a65}.override-badge{color:#f39c12;margin-left:4px;font-weight:700}.dialog--medium{min-width:450px;max-width:550px}.import-file-info{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#252540;border-radius:6px;margin-bottom:20px}.file-icon{font-size:24px}.file-name{flex:1;font-weight:500;color:#e8e8e8;word-break:break-all}.file-size{color:#888;font-size:12px}.form-group{margin-bottom:20px}.form-label{display:block;font-weight:500;color:#e8e8e8;margin-bottom:6px}.form-hint{color:#888;font-size:12px;margin:0 0 10px}.radio-group{display:flex;flex-direction:column;gap:8px}.radio-group.horizontal{flex-direction:column;gap:10px}.radio-option{display:flex;align-items:center;gap:10px;cursor:pointer;padding:8px 12px;background:#252540;border-radius:4px;transition:background .15s}.radio-option:hover{background:#2d2d50}.radio-option input[type=radio]{width:16px;height:16px;accent-color:#4f7cff}.radio-label{color:#e8e8e8;font-size:13px}.dimension-field{display:flex;align-items:center;gap:6px;flex:1}.dimension-field input{flex:1;min-width:0;padding:6px 8px;background:#1a1a2e;border:1px solid #3a3a55;border-radius:4px;color:#e8e8e8;font-size:12px}.dimension-field input:focus{border-color:#4f7cff;outline:none}.dimension-unit{font-size:11px;color:#888;white-space:nowrap;min-width:20px}.dimensions-group{margin-top:12px;padding-top:12px;border-top:1px solid #3a3a55}.section-subheader{font-size:11px;font-weight:600;color:#888;text-transform:uppercase;margin-bottom:10px}.import-info{margin-top:12px;padding-top:12px;border-top:1px solid #3a3a55}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0a0a14d9;display:flex;align-items:center;justify-content:center;z-index:99999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.loading-content{display:flex;flex-direction:column;align-items:center;gap:24px}.loading-spinner{position:relative;width:60px;height:60px}.spinner-ring{position:absolute;width:100%;height:100%;border:3px solid transparent;border-radius:50%;animation:spin 1.2s linear infinite}.spinner-ring:nth-child(1){border-top-color:#4f7cff;animation-delay:0s}.spinner-ring:nth-child(2){width:80%;height:80%;top:10%;left:10%;border-right-color:#7c4dff;animation-delay:.15s;animation-direction:reverse}.spinner-ring:nth-child(3){width:60%;height:60%;top:20%;left:20%;border-bottom-color:#00bcd4;animation-delay:.3s}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-message{color:#e8e8e8;font-size:14px;font-weight:500;text-align:center;max-width:300px}.preview-loading{color:#f39c12;font-weight:400;font-style:italic}.settings-dialog{max-height:80vh}.settings-body{max-height:calc(80vh - 60px);overflow-y:auto}.settings-section{margin-bottom:24px}.settings-section:last-child{margin-bottom:0}.settings-section-header{font-size:13px;font-weight:600;color:#4f7cff;text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #3a3a55}.settings-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:16px}.settings-label{font-size:13px;color:#e8e8e8;min-width:140px}.settings-slider{display:flex;align-items:center;gap:12px;flex:1}.settings-slider input[type=range]{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#3a3a55;border-radius:2px;outline:none}.settings-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:#4f7cff;border-radius:50%;cursor:pointer;transition:transform .15s}.settings-slider input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.settings-slider input[type=range]::-moz-range-thumb{width:14px;height:14px;background:#4f7cff;border-radius:50%;cursor:pointer;border:none}.settings-value{font-size:12px;color:#888;min-width:60px;text-align:right;font-family:monospace}.settings-reset-btn{width:100%;padding:8px 16px;margin-top:8px;background:#2d2d44;border:1px solid #3a3a55;border-radius:4px;color:#888;font-size:12px;cursor:pointer;transition:all .15s}.settings-reset-btn:hover{background:#3a3a55;color:#e8e8e8}.shortcuts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.shortcut-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#888}.shortcut-item kbd{display:inline-block;padding:2px 6px;background:#2d2d44;border:1px solid #3a3a55;border-radius:3px;font-family:monospace;font-size:11px;color:#e8e8e8}.help-dialog{max-width:700px}.help-content{display:flex;gap:20px;min-height:350px}.help-sidebar{display:flex;flex-direction:column;gap:4px;min-width:160px;border-right:1px solid #3a3a55;padding-right:16px}.help-topic-btn{padding:10px 14px;background:transparent;border:none;border-radius:6px;color:#888;font-size:13px;text-align:left;cursor:pointer;transition:all .15s}.help-topic-btn:hover{background:#2d2d44;color:#e8e8e8}.help-topic-btn.active{background:#4f7cff22;color:#4f7cff;font-weight:500}.help-main{flex:1;display:flex;flex-direction:column}.help-footer{margin-top:16px;padding-top:12px;border-top:1px solid #3a3a55;text-align:center}.help-tip{color:#888;font-size:12px}.help-tip kbd{display:inline-block;padding:2px 6px;background:#2d2d44;border:1px solid #3a3a55;border-radius:3px;font-family:monospace;font-size:11px;color:#e8e8e8;margin:0 2px}.help-demo{flex:1;display:flex;flex-direction:column}.demo-scene{flex:1;display:flex;align-items:center;justify-content:center;background:#1a1a2e;border-radius:8px;margin-bottom:16px;min-height:180px;position:relative;overflow:hidden}.demo-instructions{display:flex;flex-direction:column;gap:8px}.demo-instructions .instruction{display:flex;align-items:center;gap:12px;font-size:13px;color:#e8e8e8}.demo-instructions .key,.demo-instructions kbd{display:inline-block;padding:4px 10px;background:#2d2d44;border:1px solid #3a3a55;border-radius:4px;font-size:11px;color:#4f7cff;min-width:100px;text-align:center}.navigation-demo .demo-cube{width:60px;height:60px;background:linear-gradient(135deg,#4f7cff,#7c4dff);border-radius:8px;animation:rotate3d 4s ease-in-out infinite;transform-style:preserve-3d}@keyframes rotate3d{0%,to{transform:rotateY(0) rotateX(10deg)}50%{transform:rotateY(180deg) rotateX(-10deg)}}.navigation-demo .demo-cursor{position:absolute;animation:cursorMove 3s ease-in-out infinite}@keyframes cursorMove{0%,to{top:30%;left:30%}25%{top:50%;left:60%}50%{top:70%;left:40%}75%{top:40%;left:70%}}.cursor-icon{font-size:24px}.gizmo-demo .demo-object{width:50px;height:50px;background:#4a4a6a;border-radius:6px;position:relative}.gizmo-arrows{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.arrow{position:absolute;width:4px;height:40px;border-radius:2px}.arrow-x{background:#e57373;transform:rotate(90deg) translateY(-20px);animation:arrowPulse 1.5s ease-in-out infinite}.arrow-y{background:#81c784;transform:translateY(-25px);animation:arrowPulse 1.5s ease-in-out infinite .2s}.arrow-z{background:#64b5f6;transform:rotate(45deg) translateY(-15px) translate(15px);animation:arrowPulse 1.5s ease-in-out infinite .4s}@keyframes arrowPulse{0%,to{opacity:.6;transform-origin:center}50%{opacity:1}}.selection-demo .demo-objects{display:flex;gap:20px}.selection-demo .demo-obj{width:40px;height:40px;background:#4a4a6a;border-radius:6px;border:2px solid transparent;transition:all .3s}.selection-demo .demo-obj.selected{border-color:#4f7cff;box-shadow:0 0 20px #4f7cff66;animation:selectPulse 2s ease-in-out infinite}@keyframes selectPulse{0%,to{box-shadow:0 0 10px #4f7cff4d}50%{box-shadow:0 0 25px #4f7cff99}}.selection-demo .click-indicator{position:absolute;font-size:28px;animation:clickBounce 2s ease-in-out infinite}@keyframes clickBounce{0%,to{transform:translateY(0) scale(1);opacity:1}50%{transform:translateY(-10px) scale(1.1);opacity:.8}}.workflow-demo .workflow-steps{display:flex;align-items:center;justify-content:center;gap:8px;padding:20px}.workflow-step{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;background:#252540;border-radius:8px;animation:stepFade 4s ease-in-out infinite}.workflow-step:nth-child(1){animation-delay:0s}.workflow-step:nth-child(3){animation-delay:1s}.workflow-step:nth-child(5){animation-delay:2s}.workflow-step:nth-child(7){animation-delay:3s}@keyframes stepFade{0%,20%,to{opacity:.5;transform:scale(1)}10%{opacity:1;transform:scale(1.05)}}.step-icon{font-size:28px}.step-label{font-size:11px;color:#888;text-align:center}.workflow-arrow{color:#4f7cff;font-size:20px;animation:arrowBlink 1s ease-in-out infinite}@keyframes arrowBlink{0%,to{opacity:.4}50%{opacity:1}}.import-demo .file-icon-anim{display:flex;flex-direction:column;align-items:center;gap:10px}.import-demo .file-box{font-size:48px;animation:fileFloat 2s ease-in-out infinite}@keyframes fileFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.import-demo .file-arrow{font-size:24px;color:#4f7cff;animation:arrowDown 1s ease-in-out infinite}@keyframes arrowDown{0%,to{transform:translateY(0);opacity:1}50%{transform:translateY(10px);opacity:.5}}.import-demo .file-target{font-size:32px;animation:targetPulse 2s ease-in-out infinite}@keyframes targetPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.info-btn{background:none;border:none;padding:2px 4px;cursor:pointer;font-size:14px;opacity:.6;transition:opacity .15s}.info-btn:hover{opacity:1}.export-section{margin:16px 0;padding:12px;background:#1a1a2e;border-radius:6px}.section-header-row{margin-bottom:12px}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:#e8e8e8}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#4f7cff}.mac-options{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding-top:8px;border-top:1px solid #3a3a55;margin-top:8px}.mac-row{display:flex;align-items:center;gap:8px}.mac-row label{font-size:12px;color:#888;min-width:60px}.mac-row select,.mac-row input{flex:1;padding:6px 8px;background:#252540;border:1px solid #3a3a55;border-radius:4px;color:#e8e8e8;font-size:12px}.mac-row select:focus,.mac-row input:focus{border-color:#4f7cff;outline:none}.mac-row .unit{font-size:11px;color:#888;min-width:30px}.preview-tabs{display:flex;gap:4px}.preview-tab{padding:6px 12px;background:transparent;border:1px solid #3a3a55;border-radius:4px 4px 0 0;color:#888;font-size:12px;cursor:pointer;transition:all .15s}.preview-tab:hover{color:#e8e8e8}.preview-tab.active{background:#252540;border-bottom-color:#252540;color:#4f7cff}.preview-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.preview-loading-text{flex:1;font-size:12px;color:#f39c12;font-style:italic}.export-row{margin-bottom:12px}.dialog-hint code{background:#252540;padding:2px 6px;border-radius:3px;font-family:monospace;font-size:11px;color:#4f7cff}.bundle-options{display:flex;flex-direction:column;gap:8px;padding:8px 0}.bundle-options .checkbox-label{padding:6px 10px;background:#252540;border-radius:4px}.bundle-options .checkbox-label:hover{background:#2d2d50}.section-title{font-size:12px;font-weight:600;color:#4f7cff;text-transform:uppercase;letter-spacing:.5px}.preview-content-wrapper{position:relative;flex:1;min-height:200px;display:flex;flex-direction:column}.preview-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#1a1a2ee6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:10;border-radius:4px;color:#9ca3af;font-size:14px}.preview-spinner{width:40px;height:40px;border:3px solid #333355;border-top-color:#4f7cff;border-radius:50%;animation:preview-spin .8s linear infinite}@keyframes preview-spin{to{transform:rotate(360deg)}}.export-preview.preview-dimmed{opacity:.3}
