:root{font-family:Inter,Microsoft YaHei UI,PingFang SC,sans-serif;color:#1d2738;background:#edf3fa;font-synthesis:none}*{box-sizing:border-box}html{scrollbar-gutter:stable}html,body,#root{height:100%}body{margin:0;min-width:1180px;min-height:100vh;background:linear-gradient(180deg,#eaf2fb 0,#f4f7fb 230px,#f4f7fb)}body.dwg-preview-fullscreen-open{overflow:hidden}button,input{font:inherit}.app-shell{min-height:100vh}.app-shell.preview-active{height:100vh;min-height:0;overflow:hidden}.panel-heading h5{margin:0;font-size:16px;line-height:24px;font-weight:500}main{padding:12px 18px 30px}.app-tabs>.arco-tabs-header-nav{height:56px;margin:0 0 14px;padding:0 18px;border:1px solid #dce5f0;border-radius:12px;background:#fafcfff0;box-shadow:0 6px 20px #3d5c840f}.app-tabs>.arco-tabs-header-nav .arco-tabs-header-extra{display:flex;align-items:center}.app-tabs>.arco-tabs-content{padding-top:0}.app-shell.preview-active main{height:100%;padding:12px 18px 16px;overflow:hidden}.app-shell.preview-active .app-tabs{height:100%;display:flex;flex-direction:column}.app-shell.preview-active .app-tabs>.arco-tabs-header-nav{flex:0 0 56px}.app-shell.preview-active .app-tabs>.arco-tabs-content{min-height:0;flex:1}.app-shell.preview-active .app-tabs>.arco-tabs-content>.arco-tabs-content-inner{height:100%!important;align-items:stretch}.app-shell.preview-active .arco-tabs-content-inner>.arco-tabs-content-item,.app-shell.preview-active .arco-tabs-content-inner>.arco-tabs-content-item>.arco-tabs-pane{height:100%!important;min-height:0;overflow:hidden}.workspace-grid{display:grid;grid-template-columns:minmax(690px,1.45fr) minmax(400px,.8fr);gap:20px;align-items:stretch}.panel{overflow:hidden;background:#fffffff5;border:1px solid #dce5f0;border-radius:12px;box-shadow:0 10px 28px #2f4a6c12}.panel-heading{min-height:56px;padding:11px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e7edf5}.upload-panel{overflow:hidden}.upload-content{min-height:390px;padding:18px 20px;display:grid;grid-template-columns:285px 1fr;gap:18px}.composite-upload-column{min-height:340px;display:flex;flex-direction:column;gap:8px}.composite-upload-column>.upload-dropzone{min-height:0;flex:1}.composite-upload-column>.arco-typography{margin:0;line-height:20px;overflow-wrap:anywhere}.upload-dropzone{height:100%;min-height:340px}.upload-dropzone .arco-upload-drag{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #8bb8ed;border-radius:10px;background:#f5f9ff}.upload-dropzone .arco-upload-drag:hover{border-color:#3f86e9;background:#eff6ff}.upload-dropzone .arco-upload-drag-tip{color:#7a8798}.grid-preview{min-width:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:10px}.grid-preview-cell{position:relative;min-height:160px;overflow:hidden;border:1px solid #e1e8f1;border-radius:8px;background:#fff}.grid-preview-cell img{width:100%;height:100%;object-fit:contain;display:block}.grid-preview-cell .arco-tag{position:absolute;left:8px;top:8px;box-shadow:0 2px 5px #00000014}.grid-preview-cell>.arco-select{position:absolute;left:8px;top:8px;width:92px;box-shadow:0 2px 5px #00000014}.whole-sheet-preview{min-width:0;min-height:340px;display:grid;place-items:center;overflow:hidden;border:1px solid #e1e8f1;border-radius:8px;background:#fff}.whole-sheet-preview img{width:100%;height:100%;max-height:354px;object-fit:contain;display:block}.separate-upload-content{min-height:390px;padding:18px 20px}.separate-view-grid{min-height:354px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:12px}.separate-view-cell{min-width:0;min-height:166px;padding:10px;display:flex;flex-direction:column;gap:8px;border:1px solid #e1e8f1;border-radius:8px;background:#fbfcfe}.separate-view-heading{min-height:24px;display:flex;align-items:center;justify-content:space-between;gap:8px}.separate-view-heading strong{color:#425168;font-size:13px;font-weight:500}.separate-view-cell>.arco-upload{min-height:0;flex:1}.separate-view-cell .arco-upload-drag{height:100%;min-height:112px;display:flex;align-items:center;justify-content:center;border:1px dashed #8bb8ed;border-radius:7px;background:#f4f8fd}.separate-view-cell .arco-upload-drag:hover{border-color:#3f86e9;background:#edf5ff}.separate-view-cell .arco-upload-drag-tip{max-width:240px;overflow:hidden;color:#6f7e91;text-overflow:ellipsis;white-space:nowrap}.preview-loading{display:grid;place-items:center;min-height:340px}.submit-row{width:100%;justify-content:flex-end;padding:6px 20px 20px}.submit-row .arco-btn{min-width:148px}.result-panel{min-height:610px;padding-bottom:18px;overflow:hidden}.result-panel>.arco-empty{height:100%;min-height:570px;display:grid;place-content:center}.progress-card{margin:24px 20px;padding:18px;border:1px solid #dce8f6;border-radius:10px;background:#f6faff}.progress-line{display:flex;justify-content:space-between;margin-bottom:12px}.progress-card .arco-btn{display:block;margin:10px 0 0 auto}.cad-preview{height:365px;margin:18px 20px 14px;padding:10px;border:1px solid #e1e8f1;border-radius:9px;background:#fbfcfe}.cad-preview img{width:100%;height:100%;object-fit:contain}.score-strip{display:grid;grid-template-columns:repeat(3,1fr);margin:0 20px 15px;border:1px solid #e3e9f2;border-radius:8px;overflow:hidden}.score-strip div{padding:9px 12px;display:flex;justify-content:space-between;border-right:1px solid #e3e9f2}.score-strip div:last-child{border-right:0}.score-strip span{color:#6f7e91}.score-strip strong{color:#2773db}.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 20px}.result-actions .arco-btn{width:100%}.failure-box{margin:24px 20px;padding:16px;display:flex;flex-direction:column;gap:7px;color:#a52b2b;border:1px solid #f2cccc;border-radius:9px;background:#fff6f6}.quality-warning-alert{margin:16px 20px 0}.jobs-panel{margin-top:20px;overflow:hidden}.jobs-panel .arco-table-container{border-left:0;border-right:0}.jobs-panel .arco-table-tr{cursor:default}.jobs-panel .arco-table-tr:hover .arco-table-td{background:#edf6ff}.jobs-panel .arco-pagination{padding:14px 18px}.jobs-panel .arco-pagination-item{background:#eef3f8}.feedback{position:fixed;z-index:1000;top:18px;left:50%;transform:translate(-50%);width:min(540px,55vw);filter:drop-shadow(0 8px 20px rgba(29,50,76,.16))}.local-preview-panel{height:100%;min-height:0;overflow:hidden}.preview-loading{height:100%;display:grid;place-items:center}.local-preview-layout{height:100%;min-height:0;display:grid;grid-template-columns:270px minmax(0,1fr)}.local-preview-picker{min-height:0;display:flex;flex-direction:column;padding-bottom:14px;border-right:1px solid #e2e9f2;background:#f8fafd}.local-preview-picker-heading,.local-preview-toolbar{min-height:56px}.local-preview-upload{min-height:0;flex:1;padding:14px}.local-preview-upload .arco-upload,.local-preview-upload .arco-upload-drag{height:100%}.local-preview-upload .arco-upload-drag{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #8bb8ed;border-radius:8px;background:#f3f7fc;transition:border-color .16s ease,background .16s ease}.local-preview-upload .arco-upload-drag:hover{border-color:#3f86e9;background:#edf5ff}.local-preview-picker>.arco-alert{margin:0 14px}.local-preview-viewer{min-width:0;min-height:0;display:flex;flex-direction:column;background:#fff}.local-preview-toolbar{flex:0 0 auto}.local-preview-title{min-width:0;display:flex;align-items:center;gap:12px}.local-preview-title>span{max-width:min(30vw,420px);overflow:hidden;color:#7a8798;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.local-preview-actions{flex:0 0 auto}.zoom-value{min-width:52px;height:28px;display:inline-grid;place-items:center;color:#425168;border:1px solid #e2e8f0;border-radius:5px;background:#f7f9fc;text-align:center;font-variant-numeric:tabular-nums}.local-preview-canvas{min-height:0;flex:1;display:grid;place-items:center;overflow:hidden;padding:0;background:#151a21}.local-preview-canvas .arco-empty-description{color:#9ba7b6}.local-preview-scroll{position:relative;width:100%;height:100%;min-height:0;overflow:hidden;outline:none;cursor:grab;touch-action:none;overscroll-behavior:none;user-select:none;-webkit-user-select:none}.local-preview-scroll:focus-visible{box-shadow:inset 0 0 0 2px #4089e6cc}.local-preview-scroll.dragging{cursor:grabbing}.local-preview-artwork{position:absolute;top:50%;left:50%;transform-origin:center}.local-preview-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:auto;user-select:none;-webkit-user-select:none}.local-preview-svg svg{width:100%;height:100%;display:block;overflow:visible;shape-rendering:geometricPrecision;text-rendering:geometricPrecision}.local-preview-svg [data-cad-entity]{pointer-events:none;transition:stroke .08s linear,fill .08s linear}.local-preview-svg [data-cad-entity].is-hovered{stroke:#00e5f0!important}.local-preview-svg [data-cad-kind=leader].is-hovered{fill:#00e5f0!important}.local-preview-svg [data-cad-hit]{fill:none!important;stroke:transparent!important;stroke-width:12px!important;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:pointer}.local-preview-scroll.dragging .local-preview-svg [data-cad-hit]{pointer-events:none;cursor:grabbing}.local-preview-panel.fullscreen{position:fixed;z-index:2000;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;border:0;border-radius:0;box-shadow:none}.local-preview-panel.fullscreen .local-preview-layout{grid-template-columns:minmax(0,1fr)}.local-preview-panel.fullscreen .local-preview-picker{display:none}.local-preview-panel.fullscreen .local-preview-toolbar{min-height:58px;padding:12px 18px;border-bottom-color:#dfe6ef}.local-preview-panel.fullscreen .local-preview-title>span{max-width:min(45vw,720px)}.reference-workbench{min-height:720px;padding-bottom:18px}.reference-heading .arco-typography{margin:0}.reference-input-grid{display:grid;grid-template-columns:minmax(650px,1.35fr) minmax(360px,.65fr);gap:18px;padding:18px 20px}.reference-input-card{min-width:0;padding:16px;display:flex;flex-direction:column;gap:14px;border:1px solid #e1e8f1;border-radius:10px;background:#fbfcfe}.reference-input-title{min-height:28px;display:flex;align-items:center;justify-content:space-between;gap:12px}.reference-input-title h5{margin:0;font-size:16px;line-height:24px;font-weight:500}.reference-upload{height:94px}.reference-upload .arco-upload,.reference-upload .arco-upload-drag{height:100%}.reference-upload .arco-upload-drag{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #8bb8ed;border-radius:8px;background:#f3f7fc}.reference-upload .arco-upload-drag:hover{border-color:#3f86e9;background:#edf5ff}.reference-four-grid{min-height:390px}.reference-four-grid>.grid-preview{height:390px}.reference-four-grid>.arco-empty{height:390px;display:grid;place-content:center}.reference-dwg-upload{min-height:230px;height:230px}.reference-file-facts{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px 12px;padding:14px;color:#6f7e91;border:1px solid #e4eaf2;border-radius:8px;background:#fff}.reference-file-facts strong{min-width:0;overflow:hidden;color:#263448;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.reference-input-card>.arco-btn{align-self:flex-end;min-width:148px}.reference-readiness{margin:0 20px 14px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #e1e8f1;border-radius:9px;background:#f8fafd}.reference-readiness .arco-btn{min-width:168px}.reference-workbench>.arco-alert{margin:0 20px;border-radius:8px}
