@import "https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700&family=Manrope:wght@400;500;600;700&display=swap";:root{color:#e8edf4;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--navy:#07111f;--text:#e8edf4;--muted:#91a0b3;--blue:#1887ff;background:#07111f;font-family:Manrope,sans-serif}*{box-sizing:border-box}html,body{min-width:320px;min-height:100%}body{margin:0}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.upload-page{background-color:#071827;background-image:linear-gradient(#1a3f6012 1px,#0000 1px),linear-gradient(90deg,#1a3f6012 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:48px 48px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;place-items:center;min-height:100svh;padding:48px 24px;display:grid;position:relative;overflow:hidden}.workspace-mark{opacity:.08;width:320px;height:320px;position:absolute;top:50%;left:9%;transform:translateY(-50%)rotate(30deg)}.workspace-mark span{border:1px solid #41aaf0;position:absolute;inset:0}.workspace-mark span:nth-child(2){inset:54px}.workspace-mark span:nth-child(3){inset:108px}.upload-dialog{z-index:1;background:#0d1d30;border:1px solid #41566e;border-radius:10px;width:min(100%,640px);min-height:520px;padding:38px 40px 32px;animation:.42s ease-out both panel-enter;position:relative;box-shadow:0 32px 90px #0000004d}.upload-heading{margin-bottom:28px;position:relative}.upload-heading p{color:#43aaf0;letter-spacing:1.4px;text-transform:uppercase;margin:0 0 8px;font-family:Barlow Condensed,sans-serif;font-size:11px;font-weight:700}.upload-heading h1{color:#f5f8fc;margin:0;font-size:27px;font-weight:500;line-height:1.1}.upload-heading>span{color:#6f8298;font-size:11px;position:absolute;bottom:4px;right:0}.drop-zone{text-align:center;background:#0c2438;border:1px dashed #34769d;border-radius:6px;outline:none;flex-direction:column;justify-content:center;align-items:center;gap:17px;min-height:260px;padding:28px;transition:border-color .16s,background .16s,transform .16s;display:flex}.drop-zone:hover,.drop-zone--active{background:#0f2b43;border-color:#42adf3}.drop-zone--active{transform:scale(1.01)}.drop-zone--selected{border-style:solid}.drop-zone strong{overflow-wrap:anywhere;color:#edf4fb;max-width:100%;font-size:15px;font-weight:500}.drop-zone>span:last-child{color:#9baec1;font-size:12px}.upload-icon{border:1px solid #3faaf0;border-radius:50%;width:34px;height:34px;display:block;position:relative}.upload-icon:before{content:"";border-top:2px solid #3faaf0;border-left:2px solid #3faaf0;width:8px;height:8px;position:absolute;top:9px;left:50%;transform:translate(-50%)rotate(45deg)}.upload-icon i{background:#3faaf0;width:2px;height:14px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.choose-button,.primary-button{color:#fff;cursor:pointer;background:#3ca9ee;border:1px solid #3ca9ee;border-radius:5px;min-height:42px;padding:0 22px;font-weight:600;transition:background .15s,border-color .15s,transform .15s}.choose-button:hover,.primary-button:hover:not(:disabled){background:#54b4f1;border-color:#65bdf5;transform:translateY(-1px)}.primary-button:disabled{color:#8194a9;cursor:not-allowed;background:#1a3955;border-color:#1a3955}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.dialog-actions{justify-content:flex-end;align-items:center;gap:14px;margin-top:34px;display:flex}.text-button{color:#aab9ca;cursor:pointer;background:0 0;border:0;min-height:42px;padding:0 12px;font-weight:600}.text-button:hover:not(:disabled){color:#fff}.details-form{gap:20px;display:grid}.selected-file-row{background:#0a1929;border:1px solid #2c455e;border-radius:5px;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:13px;min-width:0;padding:13px;display:grid}.file-icon{color:#75c3f6;background:#102c43;border:1px solid #2f79a8;border-radius:4px;flex:none;place-items:center;width:44px;height:44px;font-family:Barlow Condensed,sans-serif;font-size:15px;font-weight:700;display:grid}.selected-file-row>span:nth-child(2){gap:4px;min-width:0;display:grid}.selected-file-row strong{color:#e8eef5;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.selected-file-row small{color:#7e91a6;font-size:11px}.selected-file-row button,.download-actions button{color:#50b5f4;cursor:pointer;background:0 0;border:0;font-size:11px;font-weight:600}.upload-field{color:#c7d2df;gap:8px;font-size:12px;font-weight:600;display:grid}.upload-field b{color:#43aaf0}.upload-field span small{float:right;color:#687d94;font-weight:400}.upload-field input,.upload-field textarea{color:#e8eef5;width:100%;font:inherit;resize:vertical;background:#091827;border:1px solid #344b63;border-radius:4px;outline:none;padding:11px 13px;font-size:13px}.upload-field input:focus,.upload-field textarea:focus{border-color:#3ca9ee;box-shadow:0 0 0 3px #3ca9ee1f}.upload-error{color:#ffb4ad;background:#ff716814;border-left:2px solid #ff7168;gap:5px;margin:14px 0 -14px;padding:10px 12px;font-size:12px;line-height:1.5;display:grid}.upload-error strong{color:#ffd1cc}.upload-error span{white-space:pre-line;overflow-wrap:anywhere}.spinner{border:2px solid #ffffff6b;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.65s linear infinite spin}.success-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:360px;display:flex}.success-mark{color:#71d8b1;background:#278a691f;border:1px solid #278a69;border-radius:50%;place-items:center;width:52px;height:52px;margin-bottom:20px;font-size:25px;display:grid}.success-state h2{color:#f1f5f9;margin:0 0 8px;font-size:21px}.success-state p{color:#8fa1b5;margin:0 0 25px;font-size:13px}.download-actions{gap:12px;margin-bottom:24px;display:flex}.download-actions button{background:#10273c;border:1px solid #315575;border-radius:4px;padding:9px 13px}@keyframes panel-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=640px){.upload-page{align-items:start;padding:20px 14px}.upload-dialog{min-height:calc(100svh - 40px);padding:28px 22px 24px}.upload-heading h1{font-size:24px}.drop-zone{min-height:280px;padding:24px 16px}.dialog-actions{margin-top:28px}.primary-button{min-width:112px}.workspace-mark{left:-120px}}.visualization-page{color:#dce5ef;background:#071827;grid-template:"header header"60px"viewer selection"minmax(0,1fr)/minmax(0,1fr) 270px;gap:10px;min-height:100svh;padding:0 12px 12px;display:grid;overflow:hidden}.app-bar{border-bottom:1px solid #263b51;grid-area:header;grid-template-columns:minmax(240px,1fr) auto auto;align-items:center;gap:18px;display:grid}.product-name{color:#f4f7fb;align-items:center;gap:11px;font-family:Barlow Condensed,sans-serif;font-size:20px;display:flex}.product-name>span{color:#218aff;font-size:31px}.workflow-status{color:#a7b5c6;background:#13263c;border:1px solid #334a62;border-radius:5px;align-items:center;gap:8px;width:min(100%,430px);padding:8px 12px;font-size:11px;display:flex}.workflow-status b{color:#60a9ff;font-weight:500}.export-button{color:#e5edf5;cursor:pointer;background:#15364b;border:1px solid #3b8dba;border-radius:5px;height:38px;padding:0 17px}.export-button:hover:not(:disabled){background:#1b4963;border-color:#61b8e8}.export-button:disabled{color:#8794a4;cursor:not-allowed;background:#293a4a;border-color:#536274}.export-actions{align-items:end;gap:8px;display:flex}.export-name{color:#9eb0c3;gap:3px;font-size:9px;display:grid}.export-name input{color:#e5edf5;width:160px;height:38px;font:inherit;background:#0c2032;border:1px solid #3b536b;border-radius:5px;padding:0 9px;font-size:11px}.export-name input:focus{border-color:#61b8e8;outline:2px solid #61b8e82e}.export-name input:disabled{opacity:.6}.project-sidebar,.selection-panel,.viewer-shell{background:#0d1e31;border:1px solid #344a61;border-radius:7px;min-height:0}.project-sidebar{grid-area:projects;padding:14px 12px}.project-sidebar h2,.selection-panel h2{margin:0 0 12px;font-size:14px}.project-sidebar>button{color:#dce5ef;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #31465d;gap:3px;width:100%;padding:9px;display:grid}.project-sidebar>button.active{background:#1d324a;border:1px solid #287cff;border-radius:4px}.project-sidebar button strong{font-size:12px}.project-sidebar button span{color:#8fa0b3;font-size:10px}.viewer-shell{background:#0a1b2d;grid-area:viewer;position:relative;overflow:hidden}.part-viewer,.part-viewer canvas{width:100%;height:100%;display:block}.part-viewer canvas{cursor:crosshair}.part-viewer.rotation-mode canvas{cursor:grab;touch-action:none}.part-viewer.rotation-mode canvas:active{cursor:grabbing}.part-viewer.height-mode canvas{cursor:ns-resize;touch-action:none}.demo-badge,.viewer-footer{z-index:2;color:#9eb0c3;background:#091929e0;border:1px solid #314960;border-radius:12px;font-size:10px;position:absolute}.demo-badge{color:#f6c76c;padding:7px 11px;top:16px;right:16px}.rotation-panel{z-index:2;color:#dce5ef;background:#0d1e31f0;border:1px solid #36516b;border-radius:7px;gap:9px;width:220px;padding:12px;display:grid;position:absolute;bottom:16px;left:16px;box-shadow:0 8px 24px #00000038}.rotation-panel strong{font-size:12px}.rotation-panel .height-heading{border-top:1px solid #314960;padding-top:8px}.rotation-status{color:#9eb0c3;min-height:24px;font-size:10px;line-height:1.4}.height-result{border:1px solid;border-radius:4px;gap:3px;padding:7px 8px;font-size:10px;line-height:1.4;display:grid}.height-result--error{color:#ffaaa0;background:#63262247;border-color:#9a514c}.height-result--warning{color:#f4d17d;background:#694d1b3d;border-color:#92733c}.rotation-footer{gap:5px;display:grid}.rotation-panel button{color:#cfe1f2;cursor:pointer;background:#15364b;border:1px solid #3b617e;border-radius:4px;min-height:32px;padding:0 6px;font-size:10px}.rotation-panel button:hover:not(:disabled){background:#1b4963;border-color:#61b8e8}.rotation-mode-toggle{width:100%}.rotation-hint{color:#75b8e8;font-size:10px}.rotation-panel button:disabled{color:#748496;cursor:not-allowed;background:#253646;border-color:#354555}.rotation-footer{grid-template-columns:1fr 1fr}.rotation-panel .rotation-save{color:#092014;background:#49d17e;border-color:#48d47e}.rotation-panel .rotation-save:hover:not(:disabled){background:#6be396;border-color:#7ae9a2}.rotation-panel .rotation-save:disabled{color:#84988b;background:#294235;border-color:#3a5b48}.viewer-footer{padding:7px 12px;bottom:16px;left:16px}.viewer-footer span{color:#50a7ff}.selection-panel{grid-area:selection;padding:0 12px 14px;overflow-y:auto}.panel-tabs{grid-template-columns:1fr 1fr;margin-bottom:18px;display:grid}.panel-tabs button{color:#93a2b4;background:0 0;border:0;border-bottom:1px solid #31475e;height:34px;font-size:9px}.panel-tabs button.active{color:#58a4ff;border-bottom:2px solid #2d83ff}.selection-content{gap:10px;display:grid}.surface-summary,.surface-information,.rule-picker{background:#1b3048;border:1px solid #354b62;border-radius:6px;padding:11px}.surface-summary{gap:8px;display:grid}.surface-summary strong{font-size:12px}.surface-summary span{color:#9fb0c3;font-size:10px}.surface-information h3,.rule-picker h3{margin:0 0 11px;font-size:12px}.surface-information dl{grid-template-columns:1fr 1fr;gap:9px;margin:0;font-size:9px;display:grid}.surface-information dt{color:#94a6ba}.surface-information dd{text-align:right;overflow-wrap:anywhere;margin:0}.rule-picker{background:#0f2236;gap:7px;display:grid}.rule-picker button{text-align:left;cursor:pointer;background:0 0;border-radius:5px;min-height:34px;padding:0 9px;font-size:10px;font-weight:600}.rule-picker .allowed{color:#49d17e;border:1px solid #39be6e}.rule-picker .conditional{color:#ffb21c;border:1px solid #ffad0d}.rule-picker .forbidden{color:#ff535b;border:1px solid #ed414b}.clear-selection{color:#8db7eb;cursor:pointer;background:#10253b;border:1px solid #34506b;border-radius:5px;min-height:34px;font-size:10px}.empty-selection{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:280px;padding:20px;display:flex}.empty-selection>span{color:#2f8cff;font-size:34px}.empty-selection p{margin:14px 0 5px;font-size:12px}.empty-selection small{color:#7f91a5;font-size:10px;line-height:1.5}@media (width<=900px){.visualization-page{grid-template:"header header"56px"viewer viewer"minmax(480px,65svh)"selection selection"/1fr 240px;min-height:100svh;overflow:auto}.app-bar{grid-template-columns:1fr auto}.workflow-status{display:none}.selection-panel{min-height:280px}}@media (width<=520px){.visualization-page{grid-template-rows:82px 58svh auto;padding:0 8px 8px}.app-bar{grid-template-rows:auto auto;grid-template-columns:1fr;gap:3px;padding:5px 0}.export-actions{justify-content:flex-end;gap:5px}.export-name{margin-right:auto}.export-name input{width:min(34vw,150px);height:32px}.product-name{font-size:17px}.product-name>span{font-size:25px}.export-button{height:32px;padding:0 9px}.demo-badge{top:auto;bottom:12px;right:10px}.rotation-panel{width:auto;bottom:10px;left:10px;right:10px}.viewer-footer{display:none}}
