*{box-sizing:border-box;letter-spacing:0}html,body,#root{margin:0;min-height:100%}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#25272c;background:#f4f4f6;-webkit-font-smoothing:antialiased}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid #b68849;outline-offset:3px}img,canvas{display:block}a{color:#535e70;text-decoration:none}h1,h2,h3,p{margin:0}figure{margin:0}small{font-size:12px;font-weight:400}.app-header{height:86px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border-bottom:1px solid #e3e4e8}.brand{display:flex;align-items:center;gap:13px;min-width:0}.brand img{width:46px;height:46px;flex-shrink:0}.brand strong{display:block;font-size:24px;font-weight:650;line-height:1.2}.brand .brand-period{color:#b78b51}.brand .brand-subtitle{display:block;font-size:9px;color:#898b92;margin-top:7px}.header-actions{display:flex;align-items:center;gap:8px}.header-actions .ant-btn{height:36px;font-size:12px;box-shadow:none}.workspace-layout{display:grid;grid-template-columns:318px minmax(0,1fr)}.control-sidebar{position:sticky;top:0;height:100dvh;overflow-y:auto;padding:24px 24px 30px;background:#fff;border-right:1px solid #e3e4e8}.sidebar-caption{display:flex;align-items:center;justify-content:space-between;color:#a0a2a9;font-size:10px;margin-bottom:12px}.control-tabs>.ant-tabs-nav{margin-bottom:24px}.control-tabs>.ant-tabs-nav .ant-tabs-nav-list{width:100%;justify-content:space-between}.control-tabs>.ant-tabs-nav .ant-tabs-tab{padding:12px 4px;margin-left:0;font-size:12px}.control-tabs .ant-tabs-ink-bar{background:#bb965f}.panel-heading{display:flex;align-items:center;justify-content:space-between;min-height:32px;margin-bottom:16px}.panel-heading h2{font-size:14px;font-weight:600}.panel-heading .ant-btn{color:#92949b}.image-panel{display:flex;flex-direction:column;gap:16px}.image-panel .panel-heading{margin-bottom:0}.image-dropzone.ant-upload-wrapper .ant-upload-drag{background:#fafafc;border-color:#d4d5da;border-radius:6px}.image-dropzone.ant-upload-wrapper .ant-upload-drag:hover{background:#f4f4f7;border-color:#9b9ba3}.image-dropzone .ant-upload-btn{padding:28px 8px!important}.image-dropzone .anticon{color:#8b7a61;font-size:30px;margin:8px 0 16px}.image-dropzone p{font-size:13px;font-weight:500;margin-bottom:8px}.image-dropzone span:not(.anticon){color:#9698a0;font-size:10px}.sample-button.ant-btn{color:#6d707a;font-size:12px;height:36px;border-color:#e2e3e8;box-shadow:none}.source-preview{aspect-ratio:1;background:#111316;display:grid;place-items:center;overflow:hidden;border-radius:5px}.source-preview .ant-image,.source-preview .ant-image-img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.file-meta{display:flex;flex-direction:column;gap:7px;min-width:0}.file-meta strong{font-size:12px;font-weight:500;overflow-wrap:anywhere}.file-meta span{font-size:10px;color:#90929b;font-variant-numeric:tabular-nums}.image-panel>.ant-upload-wrapper .ant-upload{width:100%}.image-panel>.ant-upload-wrapper .ant-btn{font-size:12px;height:34px;box-shadow:none;color:#70727b}.image-panel .ant-btn-primary{height:40px;box-shadow:none;font-size:13px}.generation-progress{padding:6px 0 0}.progress-label{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#868892}.progress-label span:first-child{overflow-wrap:anywhere}.progress-label span:last-child{flex-shrink:0;font-variant-numeric:tabular-nums}.iteration-images{padding-top:14px;border-top:1px solid #eeeef1}.iteration-images h3{font-size:11px;font-weight:500;margin-bottom:12px;color:#878993}.iteration-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.iteration-grid img{aspect-ratio:1;-o-object-fit:contain;object-fit:contain;border-radius:2px}.iteration-grid figcaption{font-size:10px;text-align:center;color:#94969e;margin-top:7px}.parameter-panel h3{font-size:10px;font-weight:500;color:#94969f;margin:24px 0 18px}.parameter-panel .ant-form-item{margin-bottom:22px}.parameter-panel .ant-form-item-label>label{font-size:12px;color:#646770}.number-control{display:grid;grid-template-columns:minmax(0,1fr) 82px;gap:12px;align-items:center}.number-control .ant-input-number{width:100%}.number-control .ant-slider{margin-left:5px}.parameter-panel .ant-collapse-header{padding-left:0!important;font-size:12px}.parameter-panel .ant-collapse-content-box{padding:0!important}.apply-parameters{margin-top:24px;height:40px}.workspace-main{min-width:0;padding:30px 34px 0}.workspace-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:25px}.eyebrow{font-size:9px;font-weight:500;color:#9496a0}.workspace-heading h1{font-size:23px;font-weight:600;margin-top:7px}.workspace-state{display:flex;align-items:center;gap:20px}.optical-summary{display:flex;align-items:center;gap:10px;color:#9698a2;font-size:11px;font-variant-numeric:tabular-nums}.optical-summary i{width:1px;height:10px;background:#d5d6dc}.workspace-heading .ant-tag{margin-right:0;border-radius:3px;font-size:10px;line-height:22px;padding-inline:8px}.viewer-section{min-width:0;height:570px;background:#08090b}.lens-viewer{height:100%;display:flex;flex-direction:column}.viewer-toolbar{background:#151619;color:#c9cbce;border-bottom:1px solid #292a2e;min-height:54px;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.viewer-toolbar .ant-segmented{background:#08090b;color:#797c84;font-size:12px}.viewer-toolbar .ant-segmented-item{min-width:66px}.viewer-toolbar .ant-segmented-item-selected{background:#303135;color:#ececef;box-shadow:none}.viewer-toolbar .ant-segmented-thumb{background:#303135}.viewer-toolbar .ant-segmented-item-selected .ant-segmented-item-label{color:#ececef}.viewer-toolbar .ant-segmented-item:hover:not(.ant-segmented-item-disabled){color:#ececef}.viewer-toolbar .ant-segmented-item-label{color:inherit}.viewer-actions{display:flex;gap:4px;align-items:center}.viewer-modes{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.source-mode{border-left:1px solid #33353b}.viewer-toolbar .ant-btn{color:#a0a3ac;background:transparent;border-color:transparent;box-shadow:none}.viewer-toolbar .ant-btn:disabled{color:#494b52}.viewer-toolbar .ant-btn:not(:disabled):hover{color:#fff;background:#2c2d31}.viewer-toolbar .ant-btn[aria-pressed=true]{color:#e0b478;background:#303135}.viewer-actions>.ant-btn:not(.render-button){width:30px;height:30px;padding:0;flex-shrink:0}.viewer-toolbar .render-button{border-color:#524735;background:#29231c;color:#d9b17d;min-width:104px;margin-left:8px;font-size:11px;height:32px;border-radius:4px}.viewport{flex:1;min-height:0;position:relative;background:#08090b}.viewport canvas{touch-action:none}.viewport-label{position:absolute;left:20px;bottom:18px;font-size:9px;color:#62656e;pointer-events:none}.viewport-meta{position:absolute;left:20px;top:18px;pointer-events:none;display:flex;gap:14px;align-items:center;flex-wrap:wrap}.simulation-method{pointer-events:auto;font-size:10px;color:#8f939d}.empty-receiver-note{position:absolute;top:46px;left:20px;color:#c0a179;font-size:11px}.preview-status{display:inline-flex;align-items:center;gap:7px;color:#94979f;font-size:10px}.preview-status i{width:4px;height:4px;background:#777;border-radius:50%}.preview-status.ready i{background:#e3c498}.viewport-error{position:absolute;left:16px;right:16px;top:48px}.optical-legend{position:absolute;right:20px;bottom:18px;display:flex;gap:16px;color:#868992;font-size:9px;pointer-events:none}.optical-legend span{display:flex;gap:6px;align-items:center}.projection-distance-bar{display:grid;grid-template-columns:auto minmax(0,1fr) 76px auto;align-items:center;gap:14px;padding:10px 18px;background:#151619;border-top:1px solid #292a2e;color:#858892;font-size:10px}.projection-distance-bar .ant-input-number{width:100%;background:#0c0d0f;border-color:#303238;color:#e0e1e5;font-size:12px}.projection-distance-bar .ant-input-number-input{color:#e0e1e5}.projection-distance-bar .ant-input-number-disabled .ant-input-number-input{color:#5c5e65}.projection-distance-bar .ant-slider-rail{background:#303238}.viewer-empty{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:30px;text-align:center}.viewer-empty>.empty-lens-mark{width:80px;height:80px;opacity:1}.viewer-empty h2{font-size:20px;font-weight:400;color:#d9dae0}.viewer-empty>span{font-size:9px;color:#565a65;overflow-wrap:anywhere;max-width:100%}.view-settings{display:flex;flex-direction:column;width:240px;gap:12px;padding:8px 4px 8px 0;max-height:min(65dvh,max(120px,calc(100dvh - 360px)));overflow-y:auto}.viewer-settings-drawer .view-settings{width:100%;max-height:none;overflow:visible;padding:0;gap:16px}.source-offsets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.source-design-note{font-size:11px;color:#9b7d50}.receiver-auto-setting{display:flex;align-items:center;justify-content:space-between;font-size:12px}.source-distance-bar{border-top-color:#38342c}.view-settings label{font-size:12px}.view-settings .ant-input-number{width:100%}.model-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:22px 0;border-bottom:1px solid #dedfe5;margin-bottom:24px}.model-metrics>div{border-right:1px solid #dedfe5;padding-left:24px}.model-metrics>div:first-child{padding-left:0}.model-metrics>div:last-child{border:0}.model-metrics span{display:block;color:#9395a0;font-size:10px;margin-bottom:8px}.model-metrics strong{font-size:15px;font-weight:500;font-variant-numeric:tabular-nums}.model-metrics small{color:#888b96;font-size:10px}.section-heading{min-height:30px;display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.section-heading h2{font-size:13px;font-weight:600}.section-heading h2 span{color:#a1a3ac;margin-left:10px;font-size:11px;font-weight:400}.section-heading .ant-btn{color:#8d8f98}.results-empty{min-height:94px;display:flex;align-items:center;justify-content:center;gap:14px;border-block:1px dashed #d5d6dd;color:#aaacb4;font-size:11px}.empty-projection{width:30px;height:30px;border:1px solid #d1d2da;background:#eeeef2}.result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}.projection-result{display:grid;grid-template-columns:136px minmax(0,1fr);min-height:174px;background:#fff;border:1px solid #e1e2e8;border-radius:5px;overflow:hidden}.result-image{background:#08090b;display:grid;place-items:center;min-width:0}.result-image .ant-image{width:100%}.result-image img{width:100%;aspect-ratio:1;-o-object-fit:contain;object-fit:contain}.result-error{color:#efaaaa;padding:16px;font-size:11px;overflow-wrap:anywhere}.result-details{padding:14px 14px 8px;display:flex;flex-direction:column;gap:10px;min-width:0}.result-title{display:flex;align-items:center;justify-content:space-between;gap:6px}.result-title strong{font-size:12px;font-weight:500}.result-title .ant-tag{font-size:9px;line-height:17px;padding-inline:5px;margin:0;border-radius:3px}.result-details>span{font-size:10px;color:#8c8f99;overflow-wrap:anywhere}.result-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:auto}.result-bottom time{font-size:9px;color:#a0a2ab}.result-bottom .ant-btn{color:#8c8f99;width:28px;padding:0}.workspace-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px 24px;padding:26px 0;font-size:10px;color:#a4a6b0}.workspace-footer a{color:#828899}.friend-links{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}.friend-links a:hover{color:#25272c;text-decoration:underline}.footer-project{display:flex;flex-wrap:wrap;gap:12px}.export-panel>.ant-alert{margin-bottom:20px}.export-note{margin-bottom:16px}.export-panel .ant-form-item-label label{font-size:12px}.report-statistics{margin-bottom:24px}.report-dialog .ant-modal-content{padding:0;overflow:hidden;border-radius:6px}.report-dialog .ant-modal-header{padding:20px 24px;margin:0;border-bottom:1px solid #e3e4e8}.report-dialog .ant-modal-close{top:24px;right:20px}.report-dialog-heading{display:flex;align-items:center;gap:11px}.report-dialog-heading img{width:34px;height:34px}.report-dialog-heading strong{font-size:15px;font-weight:600;display:block;line-height:1.4}.report-dialog-heading span{font-size:9px;color:#9296a2;display:block;margin-top:3px;font-weight:400}.report-dialog-toolbar{padding:16px 24px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;background:#fff}.report-dialog-toolbar .ant-form-item{margin:0;flex:1;max-width:460px;min-width:0}.report-dialog-toolbar .ant-form-item-label{padding-bottom:6px}.report-dialog-toolbar .ant-form-item-label label{font-size:11px;color:#848995}.report-dialog-actions{display:flex;align-items:center;gap:8px;padding-bottom:1px}.report-dialog-actions .ant-btn{font-size:12px;height:34px;box-shadow:none}.report-preview{display:block;width:100%;height:min(62dvh,660px);border:0;border-top:1px solid #e3e4e8;background:#f4f4f6}.report-dialog-error{margin:0 24px 16px}.controls-drawer .ant-drawer-body{padding:8px 20px 24px}.mobile-tools{display:flex;gap:8px;margin-bottom:16px}.mobile-tools .ant-btn{flex:1;font-size:12px;box-shadow:none}.ant-modal .ant-space{max-width:100%;flex-wrap:wrap}@media(min-width:1600px){.viewer-section{height:640px}.workspace-main{padding-left:44px;padding-right:44px}}@media(max-width:1199px){.optical-summary{display:none}.result-grid{grid-template-columns:minmax(0,1fr)}.workspace-main{padding-inline:24px}}@media(max-width:991px){.workspace-layout{grid-template-columns:minmax(0,1fr)}.workspace-main{padding:24px 24px 0}.viewer-section{height:520px}}@media(max-width:575px){.report-dialog .ant-modal-header{padding:16px}.report-dialog .ant-modal-close{top:19px;right:12px}.report-dialog-toolbar{padding:14px 16px;flex-wrap:wrap;gap:12px}.report-dialog-toolbar .ant-form-item{flex-basis:100%;max-width:none}.report-dialog-actions{width:100%;justify-content:flex-end}.report-preview{height:min(54dvh,540px)}.report-dialog-error{margin-inline:16px}.app-header{padding:0 16px;height:76px;gap:10px}.brand{gap:9px}.brand img{width:35px;height:35px}.brand strong{font-size:18px}.brand .brand-subtitle{font-size:9px;margin-top:5px}.brand-subtitle-en{display:none}.header-actions{gap:5px}.header-actions .ant-btn{width:32px;min-width:32px;padding:0}.header-actions .action-label{display:none}.workspace-main{padding:22px 14px 0}.workspace-heading{margin-bottom:20px;gap:8px}.workspace-heading h1{font-size:20px}.workspace-heading .ant-tag{font-size:9px;line-height:20px;padding-inline:5px}.viewer-section{height:480px}.viewer-toolbar{padding:8px;gap:8px}.viewer-actions{gap:3px}.viewer-toolbar .ant-segmented-item-icon{display:none}.viewer-toolbar .ant-segmented-item{min-width:47px}.viewer-actions>.ant-btn:not(.render-button){width:28px}.viewer-toolbar .render-button{min-width:91px;padding-inline:8px;margin-left:5px;font-size:11px}.optical-legend{display:none}.viewport-label,.viewport-meta{left:14px}.projection-distance-bar{gap:8px;padding:10px;grid-template-columns:auto minmax(0,1fr) 70px auto}.projection-distance-bar .ant-input-number-input{font-size:14px}.model-metrics{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:20px}.model-metrics>div:nth-child(odd){padding-left:0}.model-metrics>div:nth-child(2n){border-right:0}.projection-result{grid-template-columns:106px minmax(0,1fr);min-height:168px}.viewer-modes{gap:8px}.viewer-modes .source-mode .ant-segmented-item{min-width:54px}.result-details{padding:12px 10px 6px;gap:8px}.ant-btn{min-height:36px}.mobile-tools .ant-btn{min-height:40px}.controls-drawer .ant-input-number-input{font-size:16px}.viewer-empty h2{font-size:17px}}@media(max-width:359px){.brand strong{font-size:16px}.brand img{width:30px;height:30px}.header-actions{gap:4px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important}}
