:root{--bg-color:#0f0c29;--bg-gradient:linear-gradient(90deg,#24243e,#302b63,#0f0c29);--primary-color:#00b4db;--secondary-color:#0083b0;--text-color:#fff;--glass-bg:#ffffff1a;--glass-border:#fff3}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#343541;color:#ececf1;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;height:100vh;margin:0;overflow:hidden;padding:0;width:100vw}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app-container{flex-direction:column;height:100%}header{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0003;border-bottom:1px solid #fff3;border-bottom:1px solid var(--glass-border);display:flex;justify-content:space-between;padding:1rem 2rem;z-index:10}header h1{-webkit-text-fill-color:#0000;background:linear-gradient(90deg,#00b4db,#00f260);-webkit-background-clip:text;font-size:1.5rem;font-weight:700;margin:0}.image-uploader-container{flex:1 1;justify-content:center;padding:2rem}.upload-area{align-items:center;background:#ffffff1a;background:var(--glass-bg);border:2px dashed #00b4db;border:2px dashed var(--primary-color);border-radius:20px;cursor:pointer;display:flex;height:250px;justify-content:center;max-width:400px;transition:all .3s ease;width:100%}.upload-area:hover{background:#ffffff26;transform:scale(1.02)}.upload-placeholder{text-align:center}.upload-placeholder .icon{display:block;font-size:3rem;margin-bottom:1rem}.previews{display:flex;gap:10px;margin-top:2rem;max-width:100%;overflow-x:auto;padding:10px}.preview-img{border:2px solid #fff3;border:2px solid var(--glass-border);border-radius:10px;height:80px;width:80px}.generate-btn{background:linear-gradient(45deg,#00b4db,#0083b0);background:linear-gradient(45deg,var(--primary-color),var(--secondary-color));border:none;border-radius:50px;box-shadow:0 4px 15px #00b4db66;cursor:pointer;font-size:1.2rem;font-weight:600;margin-top:2rem;padding:1rem 3rem;transition:transform .2s,box-shadow .2s}.generate-btn:hover{box-shadow:0 6px 20px #00b4db99}.part-info-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0009;border:1px solid #fff3;border:1px solid var(--glass-border);border-radius:10px;min-width:200px;padding:1rem;position:absolute;right:20px;top:20px}.part-info-overlay h3{color:#00b4db;color:var(--primary-color);font-size:.9rem;margin:0 0 .5rem}.part-info-overlay p{font-size:1.1rem;margin:0}.viewer-controls{background:#00000080;border-radius:20px;bottom:20px;font-size:.8rem;left:50%;padding:.5rem 1.5rem;pointer-events:none;position:absolute;transform:translateX(-50%)}.loading-overlay{align-items:center;background:#000c;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:100}.spinner{animation:spin 1s ease-in-out infinite;border:3px solid #ffffff4d;border-radius:50%;border-top:3px solid var(--primary-color);height:50px;margin-bottom:1rem;width:50px}.app-container{overflow:hidden;width:100vw}.app-container,.sidebar{display:flex;height:100vh}.sidebar{background-color:#1e1e1e;color:#fff;flex-direction:column;left:0;position:absolute;top:0;transition:transform .3s ease;width:250px;z-index:1000}.sidebar.closed{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.sidebar-header{align-items:flex-start;border-bottom:1px solid #ffffff1a;display:flex;justify-content:space-between;padding:20px}.sidebar-brand{display:flex;flex-direction:column}.sidebar-logo{color:#00bcd4;font-size:1.2rem;font-weight:700;margin-bottom:5px}.sidebar-tagline{color:#aaa;font-size:.7rem}.close-sidebar-btn{background:none;border:none;color:#fff;cursor:pointer;font-size:1.5rem;line-height:1;padding:0}.new-chat-btn{align-items:center;background-color:#ffffff1a;border:1px solid #fff3;border-radius:5px;display:flex;font-size:.9rem;gap:10px;margin:15px;padding:10px;transition:background-color .2s}.new-chat-btn:hover{background-color:#fff3}.history-list{flex:1 1;overflow-y:auto;padding:0 15px}.history-label{color:#888;font-size:.8rem;letter-spacing:.5px;margin-bottom:10px;text-transform:uppercase}.history-item{align-items:center;border-radius:5px;display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:5px;padding:10px;position:relative;transition:background-color .2s;white-space:nowrap}.history-item:hover{background-color:#ffffff1a}.history-name{flex:1 1;overflow:hidden;text-overflow:ellipsis}.history-menu-trigger{color:#aaa;cursor:pointer;font-size:1.2rem;opacity:0;padding:0 5px;transition:opacity .2s}.history-item:hover .history-menu-trigger{opacity:1}.history-menu-trigger:hover{color:#fff}.history-menu-dropdown{background-color:#2d2d2d;border:1px solid #ffffff1a;border-radius:5px;box-shadow:0 2px 10px #00000080;min-width:100px;overflow:hidden;position:absolute;right:10px;top:30px;z-index:100}.menu-item{cursor:pointer;font-size:.85rem;padding:8px 12px}.menu-item:hover{background-color:#ffffff1a}.menu-item.delete{color:#ff4d4d}.rename-container{align-items:center;display:flex;gap:5px;width:100%}.rename-input{background-color:#333;border:1px solid #555;border-radius:3px;color:#fff;flex:1 1;font-size:.9rem;min-width:0;padding:2px 5px}.rename-input:focus{border-color:#00bcd4;outline:none}.rename-actions{display:flex;gap:2px}.rename-cancel-btn,.rename-save-btn{background:none;border:none;color:#aaa;cursor:pointer;font-size:.85rem;padding:2px}.rename-save-btn:hover{color:#4caf50}.rename-cancel-btn:hover{color:#ff4d4d}.sidebar-footer{background-color:#1e1e1e;border-top:1px solid #ffffff1a;padding:15px}.user-profile{gap:10px}.user-avatar,.user-profile{align-items:center;display:flex}.user-avatar{background-color:#00bcd4;border-radius:50%;color:#fff;font-weight:700;height:35px;justify-content:center;width:35px}.user-info{display:flex;flex-direction:column}.user-name{font-size:.9rem;font-weight:500}.user-plan{color:#aaa;font-size:.75rem}.modal-overlay{align-items:center;background-color:#000000b3;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:2000}.modal-content{background-color:#2d2d2d;border:1px solid #ffffff1a;border-radius:8px;box-shadow:0 4px 20px #00000080;padding:20px;text-align:center;width:300px}.modal-content h3{color:#fff;margin-top:0}.modal-content p{color:#ccc;font-size:.9rem;margin-bottom:20px}.modal-actions{display:flex;gap:10px;justify-content:space-around}.modal-btn{border:none;border-radius:4px;cursor:pointer;flex:1 1;font-weight:500;padding:8px 16px;transition:background-color .2s}.modal-btn.cancel{background-color:#444;color:#fff}.modal-btn.cancel:hover{background-color:#555}.modal-btn.delete{background-color:#ff4d4d;color:#fff}.modal-btn.delete:hover{background-color:#e60000}.image-uploader-container{align-items:center;display:flex;flex-direction:column;gap:20px;max-width:800px;padding:20px;width:100%}.upload-options{gap:20px;width:100%}.upload-option-btn,.upload-options{display:flex;justify-content:center}.upload-option-btn{align-items:center;background-color:#ffffff0d;border:2px dashed #ffffff4d;border-radius:12px;color:#ececf1;cursor:pointer;flex:1 1;flex-direction:column;gap:10px;min-width:150px;padding:30px;transition:all .3s ease}.upload-option-btn:hover{background-color:#ffffff14;border-color:#ffffff80;transform:translateY(-2px)}.upload-option-btn .icon{font-size:32px}.upload-option-btn p{font-size:16px;font-weight:500;margin:0}.camera-btn{background-color:#10a37f0d;border-color:#10a37f4d}.camera-btn:hover{background-color:#10a37f1a;border-color:#10a37f99}.previews{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));width:100%}.preview-item{aspect-ratio:1;border:3px solid #0000;border-radius:8px;cursor:pointer;overflow:hidden;position:relative;transition:all .2s ease}.preview-item:hover{transform:scale(1.05)}.preview-item.selected{border-color:#10a37f;box-shadow:0 0 0 2px #10a37f4d}.preview-img{display:block;height:100%;object-fit:cover;width:100%}.selection-overlay{align-items:center;background-color:#00000080;border-radius:50%;padding:4px;position:absolute;right:8px;top:8px}.action-buttons,.selection-overlay{display:flex;justify-content:center}.action-buttons{flex-wrap:wrap;gap:15px;width:100%}.delete-btn,.generate-btn{border:none;border-radius:8px;box-shadow:0 4px 12px #0003;cursor:pointer;font-size:16px;font-weight:600;padding:14px 28px;transition:all .2s ease}.generate-btn{background-color:#10a37f;color:#fff;flex:1 1;max-width:400px}.generate-btn:hover{background-color:#1a7f64;box-shadow:0 6px 16px #0000004d;transform:translateY(-2px)}.generate-btn:active{transform:translateY(0)}.delete-btn{background-color:#ef4444;color:#fff}.delete-btn:hover{background-color:#dc2626;box-shadow:0 6px 16px #0000004d;transform:translateY(-2px)}.delete-btn:active{transform:translateY(0)}@media (max-width:768px){.previews{gap:10px;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.action-buttons{flex-direction:column}.generate-btn{max-width:100%}}.loading-container{flex-direction:column;gap:30px;height:100%;min-height:400px;width:100%}.loading-container,.loading-logo-wrapper{align-items:center;display:flex;justify-content:center}.loading-logo-wrapper{height:120px;position:relative;width:120px}.loading-logo{animation:pulse 2s ease-in-out infinite;height:80px;position:relative;width:80px;z-index:2}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #10a37f1a;border-radius:50%;border-top-color:#10a37f;height:100%;position:absolute;width:100%;z-index:1}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.95)}}.loading-text{animation:fadeInOut 2s ease-in-out infinite;color:#ececf1;font-size:18px;font-weight:500;margin:0}@keyframes fadeInOut{0%,to{opacity:1}50%{opacity:.6}}.tooltip-overlay{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background-color:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.tooltip-modal{animation:slideIn .3s ease-out;background-color:#202123;border:1px solid #4d4d4f;border-radius:12px;box-shadow:0 10px 30px #00000080;max-width:400px;padding:30px;width:90%}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.tooltip-modal h3{align-items:center;color:#ececf1;display:flex;gap:10px;margin-top:0}.tooltip-modal p{color:#c5c5d2;margin-bottom:15px}.tooltip-modal ul{color:#c5c5d2;margin-bottom:25px;padding-left:20px}.tooltip-modal li{margin-bottom:8px}.tooltip-btn{background-color:#10a37f;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px;transition:background-color .2s;width:100%}.tooltip-btn:hover{background-color:#1a7f64}.model-viewer-container{display:flex;flex-direction:column;gap:15px;height:100%;padding:20px;width:100%}.canvas-container{background:#d3d3d3;border-radius:12px;box-shadow:0 8px 32px #0000004d;flex:1 1;min-height:400px;overflow:hidden;position:relative}.segmentation-toolbar{animation:slideDown .3s ease-out;background-color:#10a37f1a;border:1px solid #10a37f4d;border-radius:8px;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;padding:10px}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.seg-toolbar-btn{align-items:center;background-color:#ffffffe6;border:1px solid #10a37f4d;border-radius:6px;color:#2d3748;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;padding:8px 14px;transition:all .2s ease}.seg-toolbar-btn:hover{background-color:#10a37f;border-color:#10a37f;color:#fff;transform:translateY(-1px)}.seg-toolbar-btn:active{transform:translateY(0)}.seg-toolbar-btn.active{background-color:#10a37f;border-color:#10a37f;color:#fff}.seg-toolbar-btn.active:hover{background-color:#1a7f64;border-color:#1a7f64}.seg-toolbar-btn:disabled{cursor:not-allowed;opacity:.4}.seg-toolbar-btn:disabled,.seg-toolbar-btn:disabled:hover{background-color:#ffffff80;border-color:#10a37f33;color:#a0aec0}.seg-toolbar-btn:disabled:hover{transform:none}.seg-toolbar-btn svg{flex-shrink:0}.toolbar{background-color:#ffffff0d;border-radius:8px;display:flex;flex-wrap:wrap;gap:12px;justify-content:center;padding:12px}.toolbar-btn{align-items:center;background-color:#ffffff1a;border:1px solid #fff3;border-radius:6px;color:#ececf1;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s ease}.toolbar-btn:hover{background-color:#ffffff26;border-color:#ffffff4d;transform:translateY(-1px)}.toolbar-btn:active{transform:translateY(0)}.toolbar-btn.active{background-color:#10a37f;border-color:#10a37f}.toolbar-btn.active:hover{background-color:#1a7f64;border-color:#1a7f64}.toolbar-btn.send-btn{background-color:#10a37f;border-color:#10a37f}.toolbar-btn.send-btn:hover{background-color:#1a7f64;border-color:#1a7f64}.toolbar-btn svg{flex-shrink:0}.toolbar-btn:disabled{color:#a0aec0;cursor:not-allowed;opacity:.4}.toolbar-btn:disabled,.toolbar-btn:disabled:hover{background-color:#ffffff0d;border-color:#ffffff1a;transform:none}@media (max-width:768px){.model-viewer-container{padding:15px}.segmentation-toolbar{gap:6px;padding:8px}.seg-toolbar-btn{font-size:12px;padding:6px 10px}.seg-toolbar-btn span{display:none}.toolbar{gap:8px}.toolbar-btn{font-size:13px;padding:8px 12px}.toolbar-btn span{display:none}.canvas-container{min-height:300px}}.material-assignment-panel{animation:slideDown .3s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1a1a1af2;border:1px solid #ffffff1a;border-radius:12px;box-shadow:0 8px 32px #0006;display:flex;flex-direction:column;gap:8px;left:20px;max-height:400px;padding:12px;position:absolute;top:60px;width:280px;z-index:100}.material-search-box{position:relative}.material-search-input{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;color:#fff;font-size:14px;outline:none;padding:10px 12px;transition:all .2s;width:100%}.material-search-input:focus{background:#ffffff14;border-color:#10a37f}.material-search-input::placeholder{color:#fff6}.material-list{display:flex;flex-direction:column;gap:4px;max-height:320px;overflow-y:auto}.material-list::-webkit-scrollbar{width:6px}.material-list::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.material-list::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.material-item{align-items:center;background:#ffffff08;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;padding:10px 12px;transition:all .2s}.material-thumbnail{background-color:#000;object-fit:cover}.material-thumbnail,.material-thumbnail-placeholder{border:2px solid #ffffff1a;border-radius:50%;height:36px;margin-right:12px;width:36px}.material-thumbnail-placeholder{display:inline-block;flex-shrink:0}.material-item:hover{background:#ffffff14;transform:translateX(2px)}.material-info{display:flex;flex-direction:column;gap:2px}.material-name{color:#fff;font-size:14px;font-weight:500}.material-density{color:#fff9;font-size:12px}.material-select-btn{align-items:center;background:#0000;border:none;cursor:pointer;display:flex;justify-content:center;opacity:0;padding:4px;transition:opacity .2s}.material-item:hover .material-select-btn{opacity:1}.material-properties-panel{animation:slideDown .3s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1a1a1af2;border:1px solid #ffffff1a;border-radius:12px;box-shadow:0 8px 32px #0006;min-width:240px;padding:16px;position:absolute;right:20px;top:20px;z-index:100}.material-properties-panel h3{color:#ffffffe6;font-size:14px;font-weight:600;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.material-details{display:flex;flex-direction:column;gap:8px}.property-row{align-items:center;border-bottom:1px solid #ffffff0d;display:flex;justify-content:space-between;padding:6px 0}.property-row:last-child{border-bottom:none}.property-label{color:#fff9;font-size:13px}.property-value{color:#fff;font-size:13px;font-weight:500}.property-note{background:#10a37f1a;border-radius:6px;color:#10a37f;font-size:12px;margin-top:8px;padding:8px;text-align:center}.no-material{color:#fff6;font-size:13px;font-style:italic;margin:0}@media (max-width:768px){.material-assignment-panel{left:10px;max-width:280px;width:calc(100% - 20px)}.material-properties-panel{min-width:200px;right:10px}}.download-menu{animation:slideUp .2s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1a1a1af2;border:1px solid #ffffff1a;border-radius:8px;bottom:100%;box-shadow:0 4px 12px #0003;display:flex;flex-direction:column;gap:2px;left:0;margin-bottom:8px;min-width:140px;padding:4px;position:absolute;z-index:100}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.download-menu-item{border-radius:4px;color:#ececf1;cursor:pointer;font-size:14px;font-weight:500;padding:8px 12px;transition:all .2s}.download-menu-item:hover{background:#ffffff1a;color:#fff}.split-drawing-overlay{cursor:crosshair;height:100%;left:0;pointer-events:all;position:absolute;top:0;width:100%;z-index:50}.split-confirmation-popup{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1a1a1ae6;border-radius:8px;box-shadow:0 4px 12px #0000004d;display:flex;gap:8px;margin-top:-10px;padding:8px;pointer-events:auto;position:absolute;transform:translate(-50%,-100%);z-index:60}.split-action-btn{border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:6px 12px;transition:transform .1s}.split-action-btn:hover{transform:scale(1.05)}.split-action-btn:active{transform:scale(.95)}.btn-confirm-split{background-color:#10a37f}.btn-confirm-split:hover{background-color:#1a7f64}.btn-cancel-split{background-color:#e53e3e}.btn-cancel-split:hover{background-color:#c53030}.main-content{align-items:center;background-color:#343541;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;transition:left .3s ease-in-out;z-index:10}.main-content.sidebar-open{left:260px}.main-content.sidebar-closed{left:0}.open-sidebar-btn{align-items:center;background:none;border:none;border-radius:5px;color:#ececf1;cursor:pointer;display:flex;justify-content:center;left:10px;padding:10px;position:absolute;top:10px;z-index:20}.open-sidebar-btn:hover{background-color:#ffffff1a}@media (max-width:768px){.main-content.sidebar-open{left:0}}.logo-container{align-items:center;display:flex;flex-direction:column;margin-bottom:40px}.app-logo{height:80px;margin-bottom:20px;pointer-events:none}.logo-container h1{color:#ececf1;font-size:2.5rem;font-weight:600;margin:0}.input-area{margin-top:20px}.input-area,.scan-button-circle{align-items:center;display:flex;justify-content:center}.scan-button-circle{background-color:#10a37f;border:none;border-radius:50%;box-shadow:0 4px 12px #0003;color:#fff;cursor:pointer;height:64px;transition:all .2s ease;width:64px}.scan-button-circle:hover{background-color:#1a7f64;transform:scale(1.05)}.scan-button-circle:active{transform:scale(.95)}.auth-container{align-items:center;background:linear-gradient(135deg,#1a1a1a,#0d0d0d);color:#fff;display:flex;font-family:Inter,sans-serif;height:100vh;justify-content:center}.auth-box{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:16px;box-shadow:0 8px 32px 0 #0000005e;max-width:400px;padding:3rem;text-align:center;width:100%}.auth-title{-webkit-text-fill-color:#0000;background:linear-gradient(90deg,#fff,#aaa);background-clip:text;-webkit-background-clip:text;font-size:2rem;font-weight:600;margin-bottom:2rem}.auth-form{gap:1.5rem}.auth-form,.form-group{display:flex;flex-direction:column}.form-group{align-items:flex-start;gap:.5rem}.form-group label{color:#ccc;font-size:.9rem}.form-input{background:#0003;border:1px solid #ffffff1a;border-radius:8px;color:#fff;font-size:1rem;padding:.8rem;transition:all .3s ease;width:100%}.form-input:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.auth-button{background:linear-gradient(90deg,#007bff,#0056b3);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:1rem;padding:.8rem;transition:transform .2s,box-shadow .2s}.auth-button:hover{box-shadow:0 4px 12px #007bff4d;transform:translateY(-2px)}.auth-link{color:#888;font-size:.9rem;margin-top:1.5rem}.auth-link a{color:#007bff;margin-left:.5rem;text-decoration:none}.auth-link a:hover{text-decoration:underline}.error-message{background:#ff4d4d1a;border-radius:4px;color:#ff4d4d;font-size:.9rem;margin-bottom:1rem;padding:.5rem}.status-bar{align-items:center;background-color:#202123;border-top:1px solid #4d4d4f;bottom:0;color:#8e8ea0;display:flex;font-size:.7rem;height:24px;justify-content:space-between;left:260px;padding:0 20px;position:fixed;right:0;transition:left .3s ease-in-out;z-index:90}.status-bar.sidebar-closed{left:0}.status-item{align-items:center;display:flex;gap:6px}.status-indicator{background-color:#4d4d4f;border-radius:50%;height:6px;width:6px}.status-indicator.active{background-color:#10a37f;box-shadow:0 0 4px #10a37f80}.status-text{font-family:Roboto Mono,monospace;letter-spacing:.5px}@media (max-width:768px){.status-bar{justify-content:center;left:0}.status-item:last-child{display:none}}
/*# sourceMappingURL=main.26d2df94.css.map*/