: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:#202123;border-right:1px solid #4d4d4f;box-sizing:border-box;color:#ececf1;flex-direction:column;flex-shrink:0;padding:10px;position:relative;transition:transform .3s ease-in-out,width .3s ease-in-out;width:260px;z-index:100}.sidebar.closed{border:none;overflow:hidden;padding:0;width:0}.sidebar-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:20px;padding:0 5px}.sidebar-brand{display:flex;flex-direction:column}.sidebar-logo{-webkit-text-fill-color:#0000;background:linear-gradient(90deg,#00b4db,#00f260);background-clip:text;-webkit-background-clip:text;font-size:1.2rem;font-weight:700;margin-bottom:2px}.sidebar-tagline{color:#8e8ea0;font-size:.65rem;letter-spacing:.5px}.close-sidebar-btn{align-items:center;background:none;border:none;border-radius:5px;color:#ececf1;cursor:pointer;display:flex;font-size:1.5rem;justify-content:center;padding:5px}.close-sidebar-btn:hover{background-color:#2a2b32}.new-chat-btn{align-items:center;border:1px solid #565869;border-radius:5px;cursor:pointer;display:flex;gap:10px;margin-bottom:20px;padding:10px;transition:background-color .2s;white-space:nowrap}.new-chat-btn:hover{background-color:#2a2b32}.history-list{flex:1 1;overflow-x:hidden;overflow-y:auto}.history-label{color:#8e8ea0;font-size:.75rem;margin-bottom:10px;padding-left:5px;white-space:nowrap}.history-item{border-radius:5px;color:#ececf1;cursor:pointer;overflow:hidden;padding:10px;text-overflow:ellipsis;transition:background-color .2s;white-space:nowrap}.history-item:hover{background-color:#2a2b32}.sidebar-footer{border-top:1px solid #4d4d4f;padding-top:10px}.user-profile{align-items:center;border-radius:5px;cursor:pointer;display:flex;gap:10px;padding:10px}.user-profile:hover{background-color:#2a2b32}.user-avatar{align-items:center;background-color:#10a37f;border-radius:2px;color:#fff;display:flex;font-weight:700;height:32px;justify-content:center;width:32px}.user-info{display:flex;flex-direction:column;overflow:hidden}.user-name{font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-plan{color:#8e8ea0;font-size:.75rem}@media (max-width:768px){.sidebar{bottom:0;left:0;position:fixed;top:0;transform:translateX(0);width:260px}.sidebar.closed{padding:10px;transform:translateX(-100%);width:260px}}.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}.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-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}}.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.b190bd67.css.map*/