:root{color:#172027;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#172027;--muted:#6d777e;--line:#dce1df;--panel:#f4f6f4;--panel-strong:#fff;--viewer:#11171b;--viewer-raised:#1a2328;--teal:#168c82;--teal-bright:#38d6d2;--amber:#d79028;--red:#d5574c;--green:#27876d;--radius:6px;background:#0f1518;font-family:Aptos,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}button,input,select,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline-offset:2px;outline:2px solid #27aaa0}button,input[type=range],input[type=checkbox]{accent-color:var(--teal)}button{cursor:pointer}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{background:var(--viewer);grid-template-rows:60px minmax(0,1fr);grid-template-columns:72px minmax(0,1fr) 348px;width:100%;height:100svh;display:grid;overflow:hidden}.topbar{color:#e8efec;z-index:20;background:#151d21;border-bottom:1px solid #2b373c;grid-column:1/-1;grid-template-columns:250px minmax(260px,1fr) auto;align-items:center;height:60px;padding:0 18px 0 14px;display:grid}.brand-lockup,.brand-lockup>div:last-child,.project-switcher span,.topbar-metrics>div{display:flex}.brand-lockup{align-items:center;gap:10px;min-width:0}.brand-lockup>div:last-child,.project-switcher span,.topbar-metrics>div{flex-direction:column}.brand-mark{color:#aaf4e9;background:#163f3c;border:1px solid #2b6f68;border-radius:5px;place-items:center;width:34px;height:34px;display:grid}.brand-lockup strong{letter-spacing:0;font-size:15px;line-height:1.15}.brand-lockup span{color:#829198;letter-spacing:.08em;margin-top:3px;font-family:SFMono-Regular,Consolas,monospace;font-size:9px}.project-switcher{color:#e8efec;text-align:left;background:0 0;justify-content:flex-start;justify-self:start;align-items:center;gap:18px;min-width:220px;padding:7px 10px;display:flex}.project-switcher small{color:#74858d;font-size:10px}.project-switcher strong{margin-top:1px;font-size:13px;font-weight:600}.topbar-metrics{align-items:center;gap:24px;display:flex}.topbar-metrics>div{gap:1px;min-width:54px}.topbar-metrics span{color:#7f8e95;font-size:10px}.topbar-metrics strong{font-family:SFMono-Regular,Consolas,monospace;font-size:14px;font-weight:650}.sync-status{border-left:1px solid #304046;align-items:center;gap:6px;padding-left:18px;display:inline-flex}.sync-status i,.viewer-context small i{background:#4bc3a5;border-radius:50%;flex:none;width:6px;height:6px;box-shadow:0 0 0 3px #4bc3a521}.module-rail{color:#829097;z-index:12;background:#151d21;border-right:1px solid #2b373c;flex-direction:column;grid-area:2/1;align-items:stretch;min-height:0;padding:10px 7px;display:flex}.rail-title{color:#5f6f76;text-align:center;padding:4px 0 12px;font-size:9px}.module-rail button{min-height:58px;color:inherit;background:0 0;border:0;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:4px;display:flex;position:relative}.module-rail button span{font-size:10px}.module-rail button:hover{color:#d9e6e2;background:#1e292e}.module-rail button.is-active{color:#cafff6;background:#183a38}.module-rail button.is-active:before{content:"";background:#43d1c0;width:3px;height:28px;position:absolute;left:-7px}.viewer-area{background:var(--viewer);grid-area:2/2;min-width:0;min-height:0;position:relative;overflow:hidden}.viewer-area>canvas{display:block;width:100%!important;height:100%!important}.viewer-loading{color:#7ecfc3;background:var(--viewer);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.viewer-loading span{color:#819198;font-size:11px}.viewer-context{pointer-events:none;z-index:5;flex-direction:column;max-width:min(330px,100% - 40px);display:flex;position:absolute;top:18px;left:20px}.viewer-context>span{color:#66b9ad;text-transform:uppercase;font-family:SFMono-Regular,Consolas,monospace;font-size:10px}.viewer-context strong{color:#edf4f1;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:16px;font-weight:600;overflow:hidden}.viewer-context small{color:#84949b;align-items:center;gap:7px;margin-top:6px;font-size:10px;display:inline-flex}.viewer-toolbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:6;background:#182126eb;border:1px solid #3a484e;border-radius:6px;align-items:center;height:38px;padding:3px;display:flex;position:absolute;top:18px;right:18px;box-shadow:0 10px 32px #0000003d}.aps-viewer-shell,.aps-viewer{width:100%;height:100%;position:absolute;inset:0}.aps-viewer-shell{background:#11171b}.aps-status{z-index:4}.aps-status.is-error{color:#f1a19a}.spin{animation:1.1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.viewer-toolbar button{color:#9faeb4;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;gap:7px;min-width:32px;height:30px;padding:0 7px;display:inline-flex}.viewer-toolbar button:hover,.viewer-toolbar button.is-active{color:#dcfffa;background:#24504d}.viewer-toolbar button span{font-size:11px}.viewer-toolbar>i{background:#39474d;width:1px;height:18px;margin:0 3px}.clip-control{color:#d8e2df;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#182126f2;border:1px solid #3b4b50;border-radius:6px;width:272px;padding:13px;position:absolute;bottom:50px;left:20px;box-shadow:0 18px 46px #00000047}.clip-control-heading{align-items:center;gap:7px;margin-bottom:11px;display:flex}.clip-control-heading strong{flex:1;font-size:12px}.clip-control-heading span{color:#74d8cb;font-family:SFMono-Regular,Consolas,monospace;font-size:11px}.segmented-control{background:#e9edeb;border:1px solid #d6ddda;border-radius:5px;grid-auto-columns:1fr;grid-auto-flow:column;padding:2px;display:grid}.segmented-control button{color:#69747a;background:0 0;border:0;border-radius:3px;min-width:0;height:29px;padding:0 8px;font-size:11px}.segmented-control button.is-active{color:#173f3d;background:#fff;box-shadow:0 1px 4px #21323024}.clip-axis{background:#12191d;border-color:#35444a;margin-bottom:12px}.clip-axis button{color:#778a91}.clip-axis button.is-active{color:#bffdf5;box-shadow:none;background:#254a48}.clip-control input[type=range],.task-row input[type=range]{width:100%;height:3px;margin:6px 0 11px}.compact-check{color:#78838a;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:10px;display:inline-flex}.clip-control .compact-check{color:#84959c}.compact-check input{width:13px;height:13px;margin:0}.model-legend{color:#95a4aa;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#12191dbd;border:1px solid #46565cb3;border-radius:5px;align-items:center;gap:16px;padding:7px 10px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.model-legend span{white-space:nowrap;align-items:center;gap:6px;font-size:10px;display:inline-flex}.model-legend i{border-radius:2px;width:7px;height:7px}.legend-completed{background:#3ba58b}.legend-progress{background:#e6a23c}.legend-planned{background:#77808b}.model-marker{color:#fff;transform-origin:50%;border:2px solid #fffc;border-radius:50%;place-items:center;width:32px;height:32px;padding:0;transition:transform .16s;display:grid;box-shadow:0 4px 15px #00000059}.model-marker:after{content:"";opacity:.35;border:1px solid;border-radius:50%;width:42px;height:42px;position:absolute}.model-marker:hover,.model-marker.is-active{transform:scale(1.14)}.model-marker span{font-size:11px;font-weight:700}.marker-quality{background:#ce852b}.marker-safety{background:#d34e45}.model-loading{color:#d6e3df;white-space:nowrap;font-size:12px}.model-processing{color:#bff8ee;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:8;background:#182126f5;border:1px solid #3c5557;border-radius:6px;grid-template-columns:22px minmax(0,1fr) auto 24px;align-items:center;gap:10px;width:min(390px,100% - 36px);min-height:64px;padding:10px 10px 12px 12px;display:grid;position:absolute;top:72px;right:18px;overflow:hidden;box-shadow:0 18px 48px #0000004d}.model-processing>div{flex-direction:column;gap:3px;min-width:0;display:flex}.model-processing strong,.model-processing span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.model-processing strong{color:#e4efec;font-size:11px}.model-processing span{color:#8fa19f;font-size:9px}.model-processing b{color:#62d6c6;font-family:SFMono-Regular,Consolas,monospace;font-size:11px}.model-processing>button{color:#81928f;background:0 0;border:0;border-radius:3px;place-items:center;width:24px;height:24px;padding:0;font-size:18px;display:grid}.model-processing>button:hover{color:#fff;background:#344348}.model-processing>i{background:#35b7a7;height:3px;transition:width .24s;position:absolute;bottom:0;left:0}.model-processing.is-error{color:#f0a099;border-color:#764b48}.model-processing.is-error span{color:#c6928d;white-space:normal}.model-import-backdrop{z-index:120}.model-import-dialog{color:#22302e;background:#f7f9f7;border:1px solid #c9d3cf;border-radius:7px;width:min(620px,100%);max-height:min(760px,100svh - 36px);padding:22px;overflow-y:auto;box-shadow:0 28px 80px #00000061}.model-import-dialog .dialog-heading h3{margin:4px 0 0;font-size:19px}.model-dropzone{color:#39786f;background:#edf3f0;border:1px dashed #89aaa3;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:100%;min-height:126px;display:flex}.model-dropzone:hover,.model-dropzone.is-dragging{color:#145f58;background:#e0efea;border-color:#2c8e83}.model-dropzone strong{color:#29433f;font-size:13px}.model-dropzone span{color:#81908c;font-size:10px}.ingestion-paths{border-top:1px solid #d7dedb;border-bottom:1px solid #d7dedb;grid-template-columns:1fr 1fr;margin-top:18px;display:grid}.ingestion-paths>div{min-width:0;padding:16px 16px 16px 0}.ingestion-paths>div+div{border-left:1px solid #d7dedb;padding-left:16px;padding-right:0}.ingestion-path-heading{align-items:center;gap:7px;display:flex}.ingestion-path-heading strong{flex:1;font-size:12px}.engine-badge{border-radius:3px;padding:3px 5px;font-size:8px}.engine-badge.is-local{color:#526a65;background:#e2e8e5}.engine-badge.is-ready{color:#176e62;background:#d7ece6}.engine-badge.is-unavailable{color:#925524;background:#f1dfcf}.ingestion-paths p{color:#7c8884;min-height:32px;margin:9px 0 10px;font-size:9px;line-height:1.55}.format-tags{flex-wrap:wrap;gap:5px;display:flex}.format-tags.is-scrollable{max-height:86px;padding-right:3px;overflow-y:auto}.format-tags span{color:#53625e;white-space:nowrap;background:#e7ece9;border:1px solid #d4dcda;border-radius:3px;padding:3px 5px;font-size:8px}.import-security-note{color:#71817d;grid-template-columns:18px 1fr 18px;align-items:center;gap:8px;margin-top:14px;display:grid}.import-security-note span{font-size:9px;line-height:1.45}.module-panel{min-width:0;min-height:0;color:var(--ink);background:var(--panel);z-index:10;border-left:1px solid #cfd6d3;grid-area:2/3;overflow:hidden}.panel-content{scrollbar-width:thin;scrollbar-color:#bcc6c2 transparent;height:100%;padding:21px 20px 28px;overflow:hidden auto}.panel-heading{justify-content:space-between;align-items:flex-start;gap:12px;min-height:48px;margin-bottom:18px;display:flex}.panel-heading span,.dialog-heading span{color:#79908b;letter-spacing:.1em;font-family:SFMono-Regular,Consolas,monospace;font-size:9px}.panel-heading h2{color:#172027;letter-spacing:0;margin:4px 0 0;font-size:20px;font-weight:650}.primary-icon-button,.icon-button{border-radius:5px;place-items:center;padding:0;display:inline-grid}.primary-icon-button{color:#eafffb;background:#167f76;border:1px solid #167f76;width:34px;height:34px}.primary-icon-button:hover{background:#0f6b63}.icon-button{color:#718078;background:0 0;border:1px solid #d3dad7;width:30px;height:30px}.icon-button:hover{color:#23413f;background:#e7edeb}.selection-title{border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:15px 0;display:flex}.selection-title>div{min-width:0}.selection-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;display:block;overflow:hidden}.selection-title p{color:#87918f;margin:4px 0 0;font-family:SFMono-Regular,Consolas,monospace;font-size:10px}.status-dot{border-radius:2px;flex:none;width:9px;height:9px;margin-top:4px}.status-completed{background:var(--green)}.status-inProgress{background:var(--amber)}.status-planned{background:#7e888e}.property-grid{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;margin:0;display:grid}.property-grid>div{border-bottom:1px solid #e3e7e5;min-width:0;padding:13px 4px 13px 0}.property-grid>div:nth-last-child(-n+2),.property-grid>div:last-child{border-bottom:0}.property-grid dt,.progress-overview dt{color:#8a9492;margin-bottom:4px;font-size:10px}.property-grid dd,.progress-overview dd{color:#273238;margin:0;font-size:12px;font-weight:550}.property-wide{grid-column:1/-1}.panel-section{border-bottom:1px solid var(--line);padding:18px 0}.section-label{color:#566460;align-items:center;gap:7px;font-size:11px;font-weight:650;display:flex}.linked-record{align-items:center;gap:10px;margin-top:12px;display:flex}.linked-record>div{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.linked-record strong{font-size:12px}.linked-record span{color:#8a9492;font-size:10px}.linked-record b{color:var(--teal);font-family:SFMono-Regular,Consolas,monospace;font-size:14px}.issue-count-row{color:#6c7774;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;font-size:11px;display:flex}.count-alert,.count-clear{border-radius:4px;place-items:center;min-width:24px;height:22px;font-family:SFMono-Regular,Consolas,monospace;display:grid}.count-alert{color:#9b4c21;background:#f4e1d0}.count-clear{color:#30745f;background:#dcece6}.empty-state{color:#87938f;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:220px;display:flex}.empty-state strong{color:#4a5753;font-size:13px}.empty-state p{max-width:220px;margin:0;font-size:11px;line-height:1.6}.empty-state.compact{border-top:1px solid var(--line);min-height:150px}.progress-overview{border-bottom:1px solid var(--line);grid-template-columns:116px 1fr;align-items:center;gap:18px;padding:5px 0 20px;display:grid}.progress-ring{background:conic-gradient(#238b7e var(--progress), #dfe5e2 0);border-radius:50%;place-items:center;width:108px;height:108px;display:grid;position:relative}.progress-ring:before{content:"";background:var(--panel);border-radius:50%;width:84px;height:84px;position:absolute}.progress-ring>div{flex-direction:column;align-items:center;display:flex;position:relative}.progress-ring strong{font-family:SFMono-Regular,Consolas,monospace;font-size:20px}.progress-ring span{color:#87918e;margin-top:2px;font-size:9px}.progress-overview dl{flex-direction:column;gap:10px;margin:0;display:flex}.progress-overview dl>div{border-bottom:1px dashed #d9dfdc;justify-content:space-between;display:flex}.section-toolbar{justify-content:space-between;align-items:center;gap:10px;min-height:50px;display:flex}.task-list,.issue-list{border-top:1px solid var(--line)}.task-row{border-bottom:1px solid var(--line);padding:12px 0 10px}.task-main,.issue-main{text-align:left;background:0 0;border:0;width:100%;padding:0}.task-main{grid-template-columns:27px 1fr 16px;align-items:center;gap:8px;display:grid}.task-index{color:#9aa3a0;font-family:SFMono-Regular,Consolas,monospace;font-size:10px}.task-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.task-copy strong{color:#273238;font-size:12px}.task-copy small{color:#899390;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.task-main svg{color:#a1aaa7}.task-progress-meta{color:#68736f;justify-content:space-between;margin:10px 0 0 35px;font-family:SFMono-Regular,Consolas,monospace;font-size:9px;display:flex}.task-row input[type=range]{width:calc(100% - 35px);margin:5px 0 2px 35px}.issue-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.issue-summary>div{border-right:1px solid var(--line);flex-direction:column;gap:4px;padding:14px 8px;display:flex}.issue-summary>div:first-child{padding-left:0}.issue-summary>div:last-child{border-right:0}.issue-summary span{color:#899390;font-size:9px}.issue-summary strong{font-family:SFMono-Regular,Consolas,monospace;font-size:17px}.issue-row{border-bottom:1px solid var(--line);padding:14px 36px 14px 0;position:relative}.issue-row:hover{background:#eef2f0}.issue-row.is-closed{opacity:.55}.issue-row.is-closed .issue-main>strong{text-decoration:line-through}.issue-row-top{color:#929c99;justify-content:space-between;align-items:center;margin-bottom:8px;font-family:SFMono-Regular,Consolas,monospace;font-size:9px;display:flex}.issue-main>strong{color:#263138;margin-bottom:8px;font-size:12px;display:block}.level-badge{border-radius:3px;padding:3px 5px;font-family:inherit;font-size:9px}.level-high{color:#9d342d;background:#f3d8d5}.level-medium{color:#955b1b;background:#f2e1c9}.level-low{color:#35665f;background:#dceae6}.issue-meta{color:#828c89;align-items:center;gap:5px;margin-top:4px;font-size:9px;display:flex}.issue-action{color:#70807b;background:0 0;border:1px solid #d1d9d6;border-radius:4px;place-items:center;width:27px;height:27px;padding:0;display:grid;position:absolute;top:42px;right:0}.issue-action:hover{color:#fff;background:var(--teal);border-color:var(--teal)}.dialog-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:100;background:#090e1094;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.issue-dialog{background:#f8faf8;border:1px solid #cbd5d1;border-radius:7px;width:min(420px,100%);padding:20px;box-shadow:0 26px 70px #00000057}.dialog-heading{justify-content:space-between;align-items:flex-start;margin-bottom:18px;display:flex}.dialog-heading h3{margin:4px 0 0;font-size:17px}.issue-dialog>label,.issue-dialog legend{color:#5e6965;flex-direction:column;gap:6px;margin-bottom:13px;font-size:10px;font-weight:600;display:flex}.issue-dialog input[type=text],.issue-dialog input:not([type]){min-width:0}.issue-dialog>label input{color:#24302e;background:#fff;border:1px solid #d0d8d5;border-radius:4px;width:100%;height:36px;padding:0 10px;font-size:12px}.issue-dialog fieldset{border:0;padding:0}.issue-dialog legend{margin-bottom:6px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.secondary-button,.primary-button{border-radius:4px;height:34px;padding:0 15px;font-size:11px}.secondary-button{color:#58635f;background:0 0;border:1px solid #cbd4d0}.primary-button{color:#fff;background:#167f76;border:1px solid #167f76}.text-warning{color:#c57e1f!important}.text-danger{color:#c7483f!important}.text-success{color:#27876d!important}@media (width<=1100px){.app-shell{grid-template-columns:64px minmax(0,1fr) 316px}.topbar{grid-template-columns:210px minmax(210px,1fr) auto}.topbar-metrics{gap:14px}.sync-status,.viewer-toolbar button span{display:none}}@media (width<=820px){.app-shell{grid-template-rows:54px minmax(250px,1fr) minmax(250px,38vh) 62px;grid-template-columns:1fr}.topbar{grid-area:1/1;grid-template-columns:1fr;height:54px;padding:0 12px}.brand-lockup span,.project-switcher,.topbar-metrics{display:none}.viewer-area{grid-area:2/1}.module-panel{border-top:1px solid #cfd6d3;border-left:0;grid-area:3/1}.module-rail{border-top:1px solid #2b373c;border-right:0;flex-direction:row;grid-area:4/1;justify-content:space-around;min-height:62px;padding:4px 8px}.rail-title{display:none}.module-rail button{width:25%;min-height:52px}.module-rail button.is-active:before{width:28px;height:3px;top:-4px;left:50%;transform:translate(-50%)}.panel-content{padding:15px 16px 22px}.panel-heading{min-height:37px;margin-bottom:10px}.panel-heading h2{font-size:17px}.viewer-context{max-width:180px;top:12px;left:14px}.viewer-context strong{font-size:12px}.viewer-context small{display:none}.viewer-toolbar{height:36px;top:10px;right:10px}.viewer-toolbar button{min-width:29px;padding:0 5px}.viewer-toolbar>i,.viewer-toolbar button:nth-of-type(3),.viewer-toolbar button:nth-of-type(4){display:none}.clip-control{width:min(270px,100% - 20px);bottom:12px;left:10px}.model-legend{gap:8px;padding:5px 7px;bottom:10px;left:auto;right:12px;transform:none}.model-legend span{font-size:8px}.model-legend i{width:6px;height:6px}.clip-control+.model-legend{display:none}.model-processing{width:calc(100% - 20px);top:55px;right:10px}.model-import-dialog{padding:17px}.ingestion-paths{grid-template-columns:1fr}.ingestion-paths>div{padding:14px 0}.ingestion-paths>div+div{border-top:1px solid #d7dedb;border-left:0;padding-left:0}.ingestion-paths p{min-height:0}.progress-overview{grid-template-columns:90px 1fr;padding-bottom:12px}.progress-ring{width:82px;height:82px}.progress-ring:before{width:64px;height:64px}.progress-ring strong{font-size:16px}}@media (width<=430px){.viewer-toolbar button:first-child span,.viewer-toolbar button:nth-of-type(2){display:none}.property-grid{grid-template-columns:1fr 1fr}.issue-summary>div{padding:10px 5px}.model-legend span{gap:3px}}
