html,body,#root{height:100%;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f0f2f5}.project-detail-toolbar{margin-bottom:12px}.project-cockpit .ant-card-body{padding:20px 22px}.project-cockpit-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.project-cockpit-title h3{margin:0 0 8px!important}.project-cockpit-metrics{margin-top:18px}.project-cockpit-metrics .ant-col{border-right:1px solid #f0f0f0}.project-cockpit-metrics .ant-col:last-child{border-right:0}.project-stage-strip{display:grid;grid-template-columns:repeat(11,minmax(54px,1fr));gap:5px;margin-top:20px;overflow-x:auto;padding-bottom:4px}.project-stage-item{min-width:54px;text-align:center;color:#8c8c8c;font-size:12px;white-space:nowrap}.project-stage-item:before{content:"";display:block;height:6px;margin-bottom:6px;border-radius:6px;background:#e8e8e8}.project-stage-item.done{color:#389e0d}.project-stage-item.done:before{background:#52c41a}.project-stage-item.current{color:#1677ff;font-weight:600}.project-stage-item.current:before{background:#1677ff;box-shadow:0 0 0 3px #1677ff1f}.project-next-action{margin-top:16px}.project-business-tabs{margin-top:14px}.project-business-tabs>.ant-card-body{padding-top:4px}.project-business-tabs .ant-tabs-nav{margin-bottom:16px}.project-document-upload{margin-bottom:16px;padding:16px;background:#fafafa;border-radius:8px}.project-document-row{display:flex;align-items:center;gap:10px;padding:10px 8px;border-bottom:1px solid #f0f0f0}.project-document-icon{color:#1677ff;font-size:20px}.project-document-name{flex:1;min-width:0}.project-document-name .ant-tag{margin-left:8px}.layout-header-actions{flex-shrink:0}.workbench-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.workbench-heading h3{margin:0 0 6px!important}.workbench-alert{margin-bottom:16px}.workbench-loading{text-align:center;padding:56px 0}.workbench-summary{margin-bottom:16px}.workbench-summary-card{height:100%}.workbench-summary-card .ant-card-body{display:flex;align-items:center;gap:14px;padding:18px 20px}.workbench-summary-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:21px}.workbench-summary-value{font-size:27px;font-weight:700;line-height:1.25}.workbench-summary-arrow{margin-left:auto;color:#bfbfbf}.workbench-focus-row{margin-bottom:16px}.workbench-focus-row>.ant-col>.ant-card{height:100%}.workbench-task-row,.workbench-notice-row{padding:11px 0!important}.workbench-notice-row{cursor:pointer}.workbench-notice-row:hover{background:#fafafa}.workbench-row-arrow{color:#bfbfbf;margin-left:8px}.workbench-time{font-size:12px}.workbench-section{margin-bottom:16px}.workbench-stage-tags{margin-top:18px;padding-top:14px;border-top:1px solid #f0f0f0}.workbench-stage-tags .ant-tag{margin-bottom:6px}.workbench-progress{margin-top:16px}.workbench-stat-title{color:#8c8c8c;font-size:12px;margin-bottom:5px}.workbench-stat-value{display:flex;align-items:baseline;gap:5px;font-size:24px;font-weight:600}.workbench-stat-value small{color:#8c8c8c;font-size:12px;font-weight:400}.fund-project-link{height:auto;padding:0;text-align:left;white-space:normal;font-weight:500}.fund-detail-anchor{scroll-margin-top:82px}@media (max-width: 768px){.layout-header-action-label,.layout-user-role{display:none}.layout-header-actions{gap:4px!important}.workbench-heading{align-items:center}.workbench-summary-card .ant-card-body{padding:14px;gap:10px}.workbench-summary-icon{width:36px;height:36px;font-size:18px}.workbench-summary-value{font-size:23px}.workbench-task-row .ant-list-item-action{margin-inline-start:8px}.project-cockpit-title{flex-direction:column}.project-cockpit-metrics .ant-col{border-right:0}.project-business-tabs .ant-tabs-nav-wrap{overflow-x:auto}.project-document-row{align-items:flex-start;flex-wrap:wrap}.project-document-name{min-width:calc(100% - 40px)}}*{-webkit-tap-highlight-color:transparent}body{margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f5}.m-safe-bottom{padding-bottom:env(safe-area-inset-bottom)}.m-tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;background:#fff;border-top:1px solid #eee;z-index:100;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -2px 8px #0000000a}.m-tabbar-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 0 6px;color:#999;font-size:11px;cursor:pointer;transition:color .15s}.m-tabbar-item.active{color:#1677ff}.m-tabbar-item .anticon{font-size:20px;margin-bottom:2px}.m-page{min-height:100vh;padding:12px 12px calc(60px + env(safe-area-inset-bottom));box-sizing:border-box}.m-page-without-tabbar{min-height:100vh;padding:12px;box-sizing:border-box}.m-navbar{position:sticky;top:0;display:flex;align-items:center;height:48px;padding:0 12px;background:#1677ff;color:#fff;font-size:16px;font-weight:500;z-index:50;box-shadow:0 1px 4px #00000014}.m-navbar .m-back{font-size:20px;margin-right:8px;padding:4px 8px;cursor:pointer;margin-left:-8px}.m-navbar .m-title{flex:1;text-align:center;margin-right:28px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-navbar .m-action{font-size:14px;cursor:pointer;padding:4px 8px}.m-stat-card{background:#fff;border-radius:8px;padding:14px 16px;margin-bottom:12px;box-shadow:0 1px 3px #0000000a}.m-stat-card .m-stat-label{color:#999;font-size:12px;margin-bottom:4px}.m-stat-card .m-stat-value{font-size:24px;font-weight:600;line-height:1.2}.m-stat-card .m-stat-suffix{color:#999;font-size:12px;margin-left:4px}.m-card{background:#fff;border-radius:8px;padding:12px 14px;margin-bottom:10px;box-shadow:0 1px 3px #0000000a;cursor:pointer;transition:transform .1s,box-shadow .15s}.m-card:active{transform:scale(.99);background:#fafafa}.m-card .m-card-title{font-size:15px;font-weight:500;color:#262626;margin-bottom:6px;line-height:1.4}.m-card .m-card-row{display:flex;justify-content:space-between;font-size:12px;color:#666;margin-top:4px}.m-card .m-card-row .m-card-meta{color:#999}.m-section{background:#fff;border-radius:8px;padding:14px;margin-bottom:10px;box-shadow:0 1px 3px #0000000a}.m-section-title{font-size:14px;font-weight:500;color:#262626;margin-bottom:10px;display:flex;align-items:center;gap:6px}.m-descriptions{display:grid;grid-template-columns:1fr;gap:8px 12px;font-size:13px}.m-descriptions .m-desc-item{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:4px 0;border-bottom:1px dashed #f0f0f0}.m-descriptions .m-desc-item:last-child{border-bottom:none}.m-descriptions .m-desc-label{color:#999;flex-shrink:0;font-size:12px}.m-descriptions .m-desc-value{color:#262626;text-align:right;word-break:break-all;font-size:13px}.m-empty{text-align:center;padding:60px 20px;color:#999}.m-empty .anticon{font-size:48px;margin-bottom:12px;display:block}.m-loading{display:flex;justify-content:center;align-items:center;padding:60px 0;color:#999}.m-timeline{position:relative;padding-left:16px}.m-timeline:before{content:"";position:absolute;left:4px;top:8px;bottom:8px;width:2px;background:#f0f0f0}.m-timeline-item{position:relative;padding:8px 0 14px 12px}.m-timeline-item:before{content:"";position:absolute;left:-16px;top:14px;width:10px;height:10px;border-radius:50%;background:#1677ff;border:2px solid #fff;box-shadow:0 0 0 2px #1677ff}.m-timeline-item .m-tl-head{display:flex;align-items:center;gap:6px;font-size:12px;color:#666;margin-bottom:4px;flex-wrap:wrap}.m-timeline-item .m-tl-amount{font-size:16px;font-weight:600;color:#1677ff}.m-timeline-item .m-tl-amount.expense{color:#fa8c16}.m-timeline-item .m-tl-amount.contract_payment{color:#722ed1}.m-timeline-item .m-tl-amount.refund{color:#52c41a}.m-timeline-item .m-tl-note{font-size:12px;color:#999;margin-top:4px;line-height:1.5}.m-stages{display:flex;align-items:center;margin:12px 0 16px;padding:0 4px;overflow-x:auto}.m-stage-dot{width:24px;height:24px;border-radius:50%;background:#f0f0f0;color:#999;font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:500}.m-stage-dot.active{background:#1677ff;color:#fff}.m-stage-dot.done{background:#52c41a;color:#fff}.m-stage-line{flex:1;height:2px;background:#f0f0f0;min-width:8px}.m-stage-line.active{background:#52c41a}.m-qr-card{text-align:center;padding:16px;margin-top:12px}.m-qr-card img{width:200px;height:200px;display:block;margin:12px auto}.m-qr-card .m-qr-hint{color:#999;font-size:12px;margin-top:8px}.m-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px}.m-toolbar .ant-input-search,.m-toolbar .ant-input{flex:1}
