.app-shell,.app-body{min-height:100vh;background:#f5f7fb}.side-nav{--side-nav-motion: .24s cubic-bezier(.4, 0, .2, 1);--side-scrollbar-space: 8px;--side-menu-parent-indent: 16px;--side-menu-child-indent: 34px;background:#ffffffdb!important;border-right:1px solid #e5eaf2;position:sticky!important;top:0;height:100vh;overflow:visible;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:background .18s ease,border-color .18s ease,backdrop-filter .18s ease}.side-nav .ant-layout-sider-children{position:relative;height:100%;min-height:0;overflow:visible}.side-nav-inner{position:relative;display:flex;flex-direction:column;height:100%;min-height:0;padding:12px 10px 10px}.side-brand{width:100%;min-height:54px;border:0;border-radius:8px;background:transparent;display:inline-flex;align-items:center;gap:10px;padding:0 8px;color:#0e1726;cursor:pointer;text-align:left;transition:background .18s ease,color .18s ease}.side-brand:hover{background:#f0f5fb;color:#0b65d8}.side-brand img{flex:0 0 auto;width:32px;height:32px;object-fit:contain}.side-brand span{min-width:0;overflow:hidden;color:inherit;font-size:18px;font-weight:800;line-height:1.1;letter-spacing:0;white-space:nowrap}.side-edge-collapse-button{position:absolute;top:50%;right:-1px;z-index:40;display:inline-flex;align-items:center;justify-content:center;width:24px;height:64px;margin:0;padding:0;border:1px solid #dbe6f2;border-right:0;border-radius:12px 0 0 12px;background:#fffffff5;color:#52637a;box-shadow:-8px 0 18px #0f172a14;cursor:pointer;transform:translateY(-50%);transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}.side-edge-collapse-button:hover,.side-edge-collapse-button:focus,.side-edge-collapse-button:focus-visible,.side-edge-collapse-button:active{background:#f7fbff;border-color:#c8d9ee;color:#1d2736!important;box-shadow:-10px 0 22px #0f172a1f;outline:none}.side-edge-collapse-icon{font-size:12px;opacity:1!important;transform-origin:center;transition:transform .22s cubic-bezier(.2,.8,.2,1)}.side-edge-collapse-button.is-collapsed .side-edge-collapse-icon{transform:rotate(180deg)}.side-menu-wrap{position:relative;z-index:1;flex:1 1 auto;width:100%;min-height:0;margin:8px 0 10px;padding:0 4px 0 0;overflow-x:hidden;overflow-y:auto;scrollbar-color:rgba(148,163,184,.72) transparent;scrollbar-gutter:stable;scrollbar-width:thin}.side-menu-wrap::-webkit-scrollbar{width:var(--side-scrollbar-space)}.side-menu-wrap::-webkit-scrollbar-track{background:transparent}.side-menu-wrap::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:#94a3b8b8;background-clip:content-box}.side-menu{border-inline-end:0!important;padding:2px 0;background:transparent!important}.side-menu .ant-menu-item,.side-menu .ant-menu-submenu-title{display:flex;align-items:center;position:relative;height:38px;margin:4px 0;padding-inline-start:var(--side-menu-parent-indent)!important;padding-inline-end:10px!important;border-radius:8px;color:#475467;font-weight:600;transition:background-color var(--side-nav-motion),color var(--side-nav-motion),box-shadow var(--side-nav-motion)!important}.side-menu .ant-menu-submenu-title{display:flex!important;align-items:center;padding-inline-start:var(--side-menu-parent-indent)!important;padding-inline-end:4px!important}.side-menu .ant-menu-item-selected{background:#eaf3ff!important;color:#0b65d8!important}.side-menu .ant-menu-submenu-selected>.ant-menu-submenu-title{background:#eaf3ff!important;color:#0b65d8!important}.side-menu .ant-menu-submenu:has(.ant-menu-item-selected)>.ant-menu-submenu-title{background:#eaf3ff!important;color:#0b65d8!important}.side-menu .ant-menu-submenu-open:not(.ant-menu-submenu-selected):not(:has(.ant-menu-item-selected))>.ant-menu-submenu-title{background:transparent!important;color:#475467!important}.side-menu .ant-menu-item:not(.ant-menu-item-selected):hover,.side-menu .ant-menu-submenu-title:hover{background:#f5f9ff!important;color:#0b65d8!important}.side-menu .ant-menu-item-selected:hover,.side-menu .ant-menu-submenu-selected>.ant-menu-submenu-title:hover,.side-menu .ant-menu-submenu:has(.ant-menu-item-selected)>.ant-menu-submenu-title:hover{background:#f5f9ff!important;color:#0b65d8!important}.side-menu .ant-menu-item:active,.side-menu .ant-menu-submenu-title:active{background:#eaf3ff!important;color:#0b65d8!important}.side-menu .ant-menu-item-selected:after{display:none}.side-menu .ant-menu-submenu-arrow{position:absolute;inset-inline-end:12px;top:50%;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-inline-start:0;transform:translateY(-50%);transform-origin:center;pointer-events:none}.side-menu .ant-menu-submenu-arrow:before,.side-menu .ant-menu-submenu-arrow:after{display:none!important}.side-menu .ant-menu-submenu-title .ant-menu-title-content{order:2;flex:1 1 auto;min-width:0;margin-inline-start:0!important}.side-menu .ant-menu-item .ant-menu-title-content{flex:1 1 auto;min-width:0}.side-menu .ant-menu-item .ant-menu-item-icon+.ant-menu-title-content{margin-inline-start:8px!important}.side-menu .ant-menu-submenu .ant-menu-item{padding-inline-start:var(--side-menu-child-indent)!important;padding-inline-end:8px!important}.side-menu .ant-menu-submenu-title>.ant-menu-item-icon{order:1;flex:0 0 26px;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;min-width:26px;margin-inline:0 8px!important;line-height:1}.side-menu .ant-tree-switcher.side-menu-switcher{position:relative;order:3;display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;width:18px;min-width:18px;height:26px;margin-left:auto;line-height:26px;color:#8b96a7;cursor:pointer;opacity:1;pointer-events:none;transition:none;transform:none;z-index:1}.side-menu .ant-menu-submenu-title:hover .ant-tree-switcher.side-menu-switcher,.side-menu .ant-menu-submenu-selected>.ant-menu-submenu-title:hover .ant-tree-switcher.side-menu-switcher,.side-menu .ant-menu-submenu:has(.ant-menu-item-selected)>.ant-menu-submenu-title:hover .ant-tree-switcher.side-menu-switcher{color:#42536b}.side-menu .ant-tree-switcher.side-menu-switcher .ant-tree-switcher-icon{display:none}.side-menu .ant-tree-switcher.side-menu-switcher:before{content:"";position:absolute;left:50%;top:50%;width:16px;height:16px;background:currentColor;transform:translate(-50%,-50%);transform-origin:center;transition:transform .2s ease;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 4l4 4-4 4' fill='none' stroke='black' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='miter'/%3E%3C/svg%3E") center / 16px 16px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 4l4 4-4 4' fill='none' stroke='black' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='miter'/%3E%3C/svg%3E") center / 16px 16px no-repeat}.side-menu .ant-tree-switcher.side-menu-switcher.ant-tree-switcher_open:before{transform:translate(-50%,-50%) rotate(90deg)}.side-footer{flex:0 0 auto;display:grid;gap:10px;padding-top:10px;border-top:1px solid #edf1f7}.side-user-chip{width:100%;border:1px solid transparent;border-radius:8px;background:transparent;color:#263247;display:inline-flex;align-items:center;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease}.side-user-chip:hover{background:#f0f4fa;border-color:#e2e8f0;color:#096dd9}.side-user-chip{min-height:42px;gap:8px;padding:0 8px}.side-user-avatar{flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:#eaf3ff;color:#0b65d8;display:inline-flex;align-items:center;justify-content:center}.side-user-name{flex:1 1 auto;min-width:0;overflow:hidden;color:#172033;font-size:13px;font-weight:650;line-height:1.1;text-align:left;text-overflow:ellipsis;white-space:nowrap}.side-user-arrow{flex:0 0 auto;color:#667085;font-size:11px}.side-user-menu-label{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-width:96px;width:100%}.side-user-menu-label .ant-badge{margin-left:auto}.side-nav-collapsed .side-nav-inner{padding:12px 8px 10px}.side-nav-collapsed .side-brand{justify-content:center;min-height:48px;padding:0}.side-nav-collapsed .side-brand span{display:none}.side-nav-collapsed .side-menu-wrap{padding-right:0;scrollbar-gutter:auto}.side-nav-collapsed .ant-menu-inline-collapsed{width:auto}.side-nav-collapsed .side-menu .ant-menu-item,.side-nav-collapsed .side-menu .ant-menu-submenu-title{justify-content:center;margin-inline:0;padding-inline:0!important;text-align:center}.side-nav-collapsed .side-menu .ant-menu-item .ant-menu-item-icon,.side-nav-collapsed .side-menu .ant-menu-submenu-title .ant-menu-item-icon,.side-nav-collapsed .side-menu .ant-menu-item .anticon,.side-nav-collapsed .side-menu .ant-menu-submenu-title .anticon{margin-inline:0!important;font-size:18px}.side-nav-collapsed .side-menu .ant-menu-title-content,.side-nav-collapsed .side-menu .ant-menu-submenu-arrow,.side-nav-collapsed .side-menu .side-menu-switcher{display:none!important}.side-nav-collapsed .side-user-chip{justify-content:center;min-height:40px;padding:0}.side-nav-collapsed .side-user-name,.side-nav-collapsed .side-user-arrow{display:none}.site-content{min-height:100vh;padding:22px;overflow:auto}.route-loading{min-height:260px;display:flex;align-items:center;justify-content:center}.app-shell,.app-body{background:linear-gradient(180deg,#ffffff5c,#fff0 280px),var(--color-page-bg)}.side-nav{background:#fffffff0!important;border-right:1px solid var(--color-border);box-shadow:1px 0 #ffffffb3}.side-brand{border-radius:var(--radius-md);color:var(--color-text-primary)}.side-brand:hover{background:var(--color-primary-soft);color:var(--color-primary)}.side-brand span{color:inherit}.side-edge-collapse-button{border-color:var(--color-border);background:#fffffffa;color:var(--color-text-secondary)}.side-edge-collapse-button:hover,.side-edge-collapse-button:focus,.side-edge-collapse-button:focus-visible,.side-edge-collapse-button:active{border-color:color-mix(in srgb,var(--color-primary) 34%,var(--color-border));background:var(--color-surface-bg);color:var(--color-text-primary)!important}.side-menu-wrap{scrollbar-color:var(--app-scrollbar-thumb) transparent}.side-menu-wrap::-webkit-scrollbar-thumb{background:var(--app-scrollbar-thumb);background-clip:content-box}.side-menu .ant-menu-item,.side-menu .ant-menu-submenu-title{height:40px;margin:4px 0;border-radius:var(--radius-md);color:var(--color-text-secondary);font-weight:650}.side-menu .ant-menu-item-selected,.side-menu .ant-menu-submenu-selected>.ant-menu-submenu-title,.side-menu .ant-menu-submenu:has(.ant-menu-item-selected)>.ant-menu-submenu-title{background:var(--color-primary-soft)!important;color:var(--color-primary)!important;box-shadow:inset 3px 0 0 var(--color-primary)}.side-menu .ant-menu-submenu-open:not(.ant-menu-submenu-selected):not(:has(.ant-menu-item-selected))>.ant-menu-submenu-title{color:var(--color-text-secondary)!important}.side-menu .ant-menu-item:not(.ant-menu-item-selected):hover,.side-menu .ant-menu-submenu-title:hover,.side-menu .ant-menu-item-selected:hover,.side-menu .ant-menu-submenu-selected>.ant-menu-submenu-title:hover,.side-menu .ant-menu-submenu:has(.ant-menu-item-selected)>.ant-menu-submenu-title:hover,.side-menu .ant-menu-item:active,.side-menu .ant-menu-submenu-title:active{background:var(--color-surface-bg)!important;color:var(--color-primary)!important}.side-menu .ant-tree-switcher.side-menu-switcher{color:var(--color-text-tertiary)}.side-menu .ant-menu-submenu-title:hover .ant-tree-switcher.side-menu-switcher,.side-menu .ant-menu-submenu-selected>.ant-menu-submenu-title:hover .ant-tree-switcher.side-menu-switcher,.side-menu .ant-menu-submenu:has(.ant-menu-item-selected)>.ant-menu-submenu-title:hover .ant-tree-switcher.side-menu-switcher{color:var(--color-text-secondary)}.side-footer{gap:8px;border-top:1px solid var(--color-divider)}.side-user-chip{border-radius:var(--radius-md);color:var(--color-text-primary)}.side-user-chip:hover{background:var(--color-surface-bg);border-color:var(--color-border);color:var(--color-primary)}.side-user-avatar{background:var(--color-primary-soft);color:var(--color-primary)}.side-user-name{color:var(--color-text-primary)}.side-user-arrow{color:var(--color-text-tertiary)}.site-content{padding:24px;background:transparent}.site-content.is-immersive{height:100vh;min-width:0;padding:0;overflow:hidden;background:#020714}@media(max-width:720px){.site-content{padding:16px}.site-content.is-immersive{padding:0}}.dashboard-page .ant-card{border-radius:var(--radius-card)}.dashboard-section{margin-top:24px}.dashboard-module-groups{display:grid;gap:16px;margin-top:24px}.module-group-card .ant-card-head{min-height:48px}.module-group-title{display:inline-flex;align-items:center;gap:8px;color:var(--color-text-primary);font-size:15px;font-weight:800}.module-icon-box{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary);line-height:1}.module-icon-box .anticon{display:inline-flex;align-items:center;justify-content:center;font-size:16px;opacity:1!important}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.module-tile{min-height:88px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-bg);display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;column-gap:12px;row-gap:4px;padding:16px;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.module-tile:hover{border-color:color-mix(in srgb,var(--color-primary) 36%,var(--color-border));background:var(--color-card-bg);box-shadow:var(--shadow-card)}.module-tile-icon{grid-row:1 / span 2;align-self:center}.module-tile>span:not(.module-icon-box){min-width:0;font-weight:700;color:var(--color-text-primary)}.module-tile .module-icon-box{color:var(--color-primary)}.module-tile small{min-width:0;color:var(--color-text-tertiary)}.dashboard-page .ant-statistic-title{margin-bottom:8px}.dashboard-page .ant-statistic-content-prefix{color:var(--color-primary);margin-inline-end:8px}.contract-audit-page{height:calc(100vh - 48px);min-height:680px;display:flex;flex-direction:column;gap:16px;overflow:hidden}.contract-audit-page .page-header{min-height:42px;margin-bottom:4px}.contract-audit-page .page-header h1{font-size:22px}.contract-audit-layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);gap:16px;align-items:stretch;overflow:hidden}.contract-audit-list,.contract-audit-detail{min-height:0;background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:16px;min-width:0;overflow:hidden}.contract-audit-detail{display:flex;flex-direction:column;gap:12px}.contract-audit-list{display:flex;flex-direction:column;overflow:hidden}.contract-audit-metrics .ant-card-body{padding:12px 16px}.contract-audit-metrics .ant-statistic-title{margin-bottom:8px;color:var(--color-text-secondary);font-size:13px}.contract-audit-metrics .ant-statistic-content{font-size:24px;line-height:1.2}.contract-audit-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(112px,132px) minmax(112px,132px);gap:10px;margin-bottom:12px}.contract-file-link{border:0;background:transparent;color:var(--color-text-primary);display:inline-flex;align-items:center;gap:8px;padding:0;text-align:left;cursor:pointer;max-width:100%;min-width:0}.contract-file-link:hover{color:var(--color-primary)}.contract-file-link .anticon{flex:0 0 auto}.contract-file-link span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-audit-table .ant-table-cell{white-space:nowrap}.contract-audit-table .ant-table-thead .ant-table-cell{word-break:keep-all}.contract-audit-table .ant-table-body{overflow-x:auto!important}.contract-audit-list .ant-table-wrapper{flex:1;min-height:0;overflow:hidden}.contract-audit-detail .ant-spin-nested-loading,.contract-audit-detail .ant-spin-container{min-height:0}.contract-audit-detail .ant-spin-nested-loading{flex:1;overflow:hidden}.contract-audit-detail .ant-spin-container{height:100%;overflow:auto;padding-right:4px;scrollbar-color:var(--app-scrollbar-thumb) transparent;scrollbar-width:thin}.contract-audit-detail .ant-spin-container::-webkit-scrollbar{width:8px}.contract-audit-detail .ant-spin-container::-webkit-scrollbar-track{background:transparent}.contract-audit-detail .ant-spin-container::-webkit-scrollbar-thumb{border-radius:999px;background:var(--app-scrollbar-thumb)}.contract-audit-table .ant-table-body::-webkit-scrollbar{height:10px}.contract-audit-table .ant-table-body::-webkit-scrollbar-track{border-radius:999px;background:var(--app-scrollbar-track)}.contract-audit-table .ant-table-body::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:var(--app-scrollbar-thumb);background-clip:content-box}.active-contract-row td{background:var(--color-primary-soft)!important}.contract-empty-detail{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--color-text-secondary);text-align:center}.contract-empty-detail .anticon{font-size:44px;color:var(--color-text-tertiary)}.contract-empty-detail h2{margin:0;font-size:18px;color:var(--color-text-primary)}.contract-empty-detail p{max-width:420px;margin:0;line-height:1.7}.contract-detail-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.contract-detail-head>div{min-width:0}.contract-detail-head h2{margin:0 0 8px;font-size:20px;color:var(--color-text-primary);overflow-wrap:anywhere}.contract-descriptions{margin-bottom:14px}.contract-descriptions .ant-descriptions-item-content{min-width:0;overflow-wrap:anywhere}.contract-audit-detail .ant-tabs,.contract-audit-detail .ant-tabs-content-holder,.contract-audit-detail .ant-tabs-content,.contract-audit-detail .ant-tabs-tabpane{min-width:0}.review-actions{display:flex;flex-wrap:wrap;gap:8px;padding:12px 0;border-top:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);margin-bottom:12px}.risk-item{align-items:flex-start!important}.risk-content{display:flex;flex-direction:column;gap:6px;color:var(--color-text-secondary)}.risk-content p{margin:0;line-height:1.65}.risk-content blockquote{margin:4px 0;padding:8px 10px;background:var(--color-surface-bg);border-left:3px solid color-mix(in srgb,var(--color-primary) 42%,var(--color-border));color:var(--color-text-primary)}.risk-content small,.milestone-item small,.review-timeline-item span{color:var(--color-text-tertiary)}.milestone-item,.review-timeline-item{display:flex;flex-direction:column;gap:4px}.milestone-item p,.review-timeline-item p{margin:0;color:var(--color-text-secondary)}.contract-text-excerpt{max-height:360px;overflow:auto;white-space:pre-wrap;background:var(--color-surface-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px;line-height:1.7;color:var(--color-text-primary)}.risk-summary-panel{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-2px -2px 2px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--color-primary) 22%,var(--color-border));border-radius:var(--radius-card);background:var(--color-primary-soft)}.risk-summary-panel,.risk-summary-strip{min-width:0}.risk-summary-panel>strong{flex:0 0 auto;color:var(--color-text-primary);font-size:15px}.risk-summary-strip{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.risk-summary-strip .ant-tag{margin-inline-end:0;padding:4px 10px;font-size:12px;line-height:18px;border-radius:var(--radius-md)}@media(max-width:1280px){.contract-audit-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.82fr);gap:12px}.contract-audit-list,.contract-audit-detail{padding:14px}}@media(max-width:980px){.contract-audit-page{height:auto;overflow:visible}.contract-audit-layout{grid-template-columns:1fr;overflow:visible}.contract-audit-list,.contract-audit-detail{overflow:visible}.contract-audit-detail .ant-spin-container{height:auto;max-height:none}}@media(max-width:960px){.contract-audit-toolbar{grid-template-columns:minmax(220px,1fr) repeat(2,minmax(116px,132px))}}@media(max-width:720px){.contract-audit-toolbar{grid-template-columns:1fr}.contract-detail-head{flex-direction:column}}.flyfish-preview{position:relative;width:100%;height:100%;min-height:560px;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-card-bg)}.flyfish-preview-word{overflow:auto;scrollbar-color:var(--app-scrollbar-thumb) transparent;scrollbar-gutter:stable;scrollbar-width:thin}.flyfish-preview-word::-webkit-scrollbar{width:10px;height:10px}.flyfish-preview-word::-webkit-scrollbar-track{background:var(--color-surface-bg)}.flyfish-preview-word::-webkit-scrollbar-thumb{border:2px solid var(--color-surface-bg);border-radius:999px;background:var(--app-scrollbar-thumb);background-clip:content-box}.flyfish-preview-word::-webkit-scrollbar-thumb:hover{background:var(--app-scrollbar-thumb-hover);background-clip:content-box}.flyfish-preview>div{width:100%;height:100%;min-height:0}.flyfish-preview-word>div{height:auto;min-height:100%}.flyfish-preview canvas,.flyfish-preview svg{max-width:none}.flyfish-cad-loading{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;background:#ffffffe6;color:var(--color-text-secondary);text-align:center}.flyfish-cad-loading strong{color:var(--color-text-primary);font-size:15px}.flyfish-cad-loading-spinner{width:28px;height:28px;border:3px solid var(--color-primary-light);border-top-color:var(--color-primary);border-radius:50%;animation:flyfish-cad-spin .8s linear infinite}.flyfish-cad-fallback{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;padding:20px;background:var(--color-surface-bg);color:var(--color-text-secondary);text-align:center}.flyfish-cad-fallback img{max-width:min(100%,920px);max-height:min(62vh,620px);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-card-bg);object-fit:contain;box-shadow:var(--shadow-floating)}.flyfish-cad-fallback-message{display:flex;flex-direction:column;gap:6px;max-width:760px;line-height:1.6}.flyfish-cad-fallback-message strong{color:var(--color-text-primary);font-size:15px}.flyfish-cad-fallback-message span{overflow-wrap:anywhere;font-size:13px}@keyframes flyfish-cad-spin{to{transform:rotate(360deg)}}@media(max-width:900px){.flyfish-preview{min-height:520px}}.construction-files-page{height:100vh;min-height:720px}.site-content:has(.construction-files-page){padding:0;overflow:hidden;background:#fff}.construction-files-page .muted{color:#7b8797}.engineering-workspace{position:relative;display:grid;grid-template-columns:270px minmax(580px,1fr);height:100%;min-height:0;overflow:hidden;border:0;border-radius:0;background:#fff;box-shadow:none}.engineering-workspace.scope-collapsed{grid-template-columns:44px minmax(580px,1fr)}.engineering-workspace.inspector-collapsed{grid-template-columns:270px minmax(580px,1fr)}.engineering-workspace.scope-collapsed.inspector-collapsed{grid-template-columns:44px minmax(760px,1fr)}.engineering-workspace.preview-focused{grid-template-columns:36px minmax(0,1fr) 36px!important}.scope-panel,.inspector-panel{position:relative;min-height:0;background:#fffc;overflow:auto}.scope-panel{display:flex;flex-direction:column;overflow:hidden;border-right:1px solid #e3e9f2}.inspector-panel{position:absolute;top:0;right:0;bottom:0;z-index:6;width:270px;overflow:auto;background:#fffffff5;box-shadow:-18px 0 34px #0f172a14;transform:translate(0);transition:transform .24s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease;will-change:transform}.engineering-workspace.scope-collapsed .scope-panel,.engineering-workspace.inspector-collapsed .inspector-panel{overflow:hidden;background:#f8fbff}.engineering-workspace.inspector-collapsed .inspector-panel{width:270px;box-shadow:-10px 0 20px #0f172a0d;transform:translate(calc(100% - 44px))}.panel-collapse-button{position:absolute;top:50%;z-index:40;display:inline-flex;align-items:center;justify-content:center;width:24px!important;min-width:24px!important;max-width:24px;height:64px;margin:0;padding:0;border:1px solid #dbe6f2;background:#fffffff5;color:#52637a;box-shadow:-8px 0 18px #0f172a14;transform:translateY(-50%);transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}.construction-files-page .panel-collapse-button.ant-btn:not(:disabled):hover,.construction-files-page .panel-collapse-button.ant-btn:not(:disabled):focus,.construction-files-page .panel-collapse-button.ant-btn:not(:disabled):focus-visible,.construction-files-page .panel-collapse-button.ant-btn:not(:disabled):active{color:#1d2736!important;background:#f7fbff;border-color:#c8d9ee;box-shadow:-10px 0 22px #0f172a1f;filter:none;outline:none;opacity:1!important}.construction-files-page .panel-collapse-button .anticon{opacity:1!important}.construction-files-page .panel-collapse-button .panel-collapse-icon{font-size:12px;transition:transform .22s cubic-bezier(.2,.8,.2,1);transform-origin:center}.construction-files-page .panel-collapse-button.is-collapsed .panel-collapse-icon{transform:rotate(180deg)}.scope-collapse-button{right:-1px;border-right:0;border-radius:12px 0 0 12px!important}.inspector-collapse-button{left:-1px;border-left:0;border-radius:0 12px 12px 0!important;box-shadow:8px 0 18px #0f172a14}.scope-search-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 10px;color:#1d2736;font-weight:700}.scope-panel .ant-input-search{padding:0 14px 12px}.scope-tree-wrap{flex:1;min-height:0;padding:0 4px 8px 8px;overflow-x:hidden;overflow-y:auto;scrollbar-color:var(--app-scrollbar-thumb) transparent;scrollbar-gutter:stable;scrollbar-width:thin}.scope-tree-wrap::-webkit-scrollbar{width:8px}.scope-tree-wrap::-webkit-scrollbar-track{background:transparent}.scope-tree-wrap::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:var(--app-scrollbar-thumb);background-clip:content-box}.construction-files-page .ant-tree{background:transparent}.construction-files-page .ant-tree-treenode{display:flex;align-items:center;width:100%;min-height:26px;margin:0;padding:0 4px 0 0;border-radius:6px;transition:background .16s ease}.construction-files-page .ant-tree-treenode:hover{background:#edf5ff}.construction-files-page .ant-tree-treenode:has(.ant-tree-node-selected){background:#c9defb}.construction-files-page .ant-tree-indent{order:1;flex:0 0 auto}.construction-files-page .ant-tree-indent-unit{width:10px}.construction-files-page .ant-tree-switcher{position:relative;display:inline-flex;align-items:center;justify-content:center;order:3;flex:0 0 18px;width:18px;min-width:18px;height:26px;margin-left:auto;line-height:26px;color:#8b96a7;cursor:pointer;opacity:1;transition:none}.construction-files-page .ant-tree-treenode:hover .ant-tree-switcher,.construction-files-page .ant-tree-treenode:has(.ant-tree-node-selected) .ant-tree-switcher{color:#42536b}.construction-files-page .ant-tree-switcher:not(.ant-tree-switcher-noop) .ant-tree-switcher-icon{display:none}.construction-files-page .ant-tree-switcher:not(.ant-tree-switcher-noop):before{content:"";position:absolute;left:50%;top:50%;width:16px;height:16px;background:currentColor;transform:translate(-50%,-50%);transform-origin:center;transition:transform .2s ease;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 4l4 4-4 4' fill='none' stroke='black' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='miter'/%3E%3C/svg%3E") center / 16px 16px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 4l4 4-4 4' fill='none' stroke='black' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='miter'/%3E%3C/svg%3E") center / 16px 16px no-repeat}.construction-files-page .ant-tree-switcher_open:not(.ant-tree-switcher-noop):before{transform:translate(-50%,-50%) rotate(90deg)}.construction-files-page .ant-tree-node-content-wrapper{display:flex;align-items:center;order:2;flex:1;min-width:0;height:26px;min-height:26px;padding:0 4px;border-radius:4px;background:transparent!important;outline:none!important;box-shadow:none!important}.construction-files-page .ant-tree-node-selected{background:transparent!important;color:#074fa8}.construction-files-page .ant-tree-node-content-wrapper:focus,.construction-files-page .ant-tree-node-content-wrapper:focus-visible,.construction-files-page .ant-tree-node-content-wrapper:active{background:transparent!important;outline:none!important;box-shadow:none!important}.construction-files-page .ant-tree-iconEle{display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 21px;width:21px;min-width:21px;height:21px;margin-right:5px;border-radius:6px;background:#e8f2ff;color:#2478f2;line-height:21px;opacity:1!important}.construction-files-page .ant-tree-iconEle .anticon{display:inline-flex;align-items:center;justify-content:center;font-size:14px;opacity:1!important}.construction-files-page .ant-tree-iconEle .anticon-file-text{color:#d97706}.construction-files-page .ant-tree-iconEle:has(.anticon-file-text){background:#fff2df;color:#d97706}.construction-files-page .ant-tree-treenode:has(.ant-tree-node-selected) .ant-tree-iconEle{opacity:1!important}.construction-files-page .ant-tree-title{flex:1;min-width:0;overflow:hidden}.tree-title-button{border:0;background:transparent;padding:0;color:inherit;text-align:left;cursor:pointer;line-height:18px;display:block;width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;outline:none!important;box-shadow:none!important;opacity:1!important}.tree-title-button:focus,.tree-title-button:focus-visible,.tree-title-button:active{outline:none!important;box-shadow:none!important;opacity:1!important}.tree-title-button mark{background:#fff2a8;color:#10233f;padding:0 2px}.tree-title-button:disabled{color:#98a2b3;cursor:default}.directory-empty{color:#7b8797;padding:12px 4px 0}.scope-footer{padding:10px 14px 14px;color:#667085;font-size:12px}.file-workbench{min-width:0;min-height:0;padding:0 18px 18px 0;overflow:auto;background:#fff}.engineering-workspace.preview-focused .file-workbench{display:flex;flex-direction:column;padding:0 8px 8px 0;overflow:hidden}.engineering-workspace.preview-focused .command-bar,.engineering-workspace.preview-focused .file-workbench>.ant-table-wrapper{display:none}.command-bar{display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid #e8edf5;flex-wrap:wrap;min-width:0}.command-actions,.command-filters{display:flex;align-items:center;min-width:0}.command-actions{flex:0 0 auto;max-width:100%}.command-filters{flex:0 1 auto;gap:8px;justify-content:flex-start;flex-wrap:nowrap;min-width:0}.command-filters .file-keyword-search{flex:0 1 280px;min-width:210px;max-width:300px}.command-actions .file-keyword-search{width:310px}.download-inline-status{display:inline-flex;align-items:center;min-height:28px;padding:0 8px;border-radius:6px;background:#eef6ff;color:#1d5fa6;font-size:12px;line-height:1;white-space:nowrap}.download-inline-status.download-failed{background:#fff1f0;color:#b42318}.command-actions .file-type-filter{width:150px}.command-filters .file-type-filter{flex:0 0 142px}.command-filters .process-filter,.command-filters .vendor-filter{flex:0 0 132px}.command-filters .specialty-filter{flex:0 0 170px}.construction-files-page .ant-table-wrapper{border:1px solid #e8edf5;border-radius:8px;overflow:hidden}.construction-files-page .ant-table-pagination{position:relative;z-index:5;justify-content:flex-start;margin:8px 12px 10px}.construction-files-page .ant-table{font-size:14px}.file-size-cell{display:inline-block;min-width:82px;color:#1d2736;white-space:nowrap;font-variant-numeric:tabular-nums}.construction-files-page .ant-table-small .ant-table-thead>tr>th{padding:9px 12px;color:#607089;font-weight:700;line-height:1.25;white-space:nowrap;background:#fbfcfe}.construction-files-page .ant-table-small .ant-table-tbody>tr>td{padding:8px 12px;border-color:#edf1f6;line-height:1.28;vertical-align:middle}.construction-files-page .ant-table-cell-fix-right,.construction-files-page .ant-table-cell-fix-right-first:after,.construction-files-page .ant-table-cell-fix-right-last:after{background:inherit!important;box-shadow:none!important}.construction-files-page .ant-table-cell-fix-right-first:after,.construction-files-page .ant-table-cell-fix-right-last:after{display:none!important}.construction-files-page .ant-table-small .ant-table-thead>tr>th.ant-table-cell-fix-right{background:#fbfcfe!important}.construction-files-page .ant-table-small .ant-table-tbody>tr>td.ant-table-cell-fix-right{background:var(--color-card-bg)!important}.construction-files-page .ant-table-small .ant-table-tbody>tr:hover>td.ant-table-cell-fix-right{background:var(--color-primary-soft)!important}.construction-files-page .ant-table-tbody>tr>td{border-color:#edf1f6}.construction-files-page .ant-table-body{scrollbar-color:var(--app-scrollbar-thumb) transparent;scrollbar-width:thin}.construction-files-page .ant-table-body::-webkit-scrollbar{width:8px;height:8px}.construction-files-page .ant-table-body::-webkit-scrollbar-track{background:transparent}.construction-files-page .ant-table-body::-webkit-scrollbar-thumb{border-radius:999px;background:var(--app-scrollbar-thumb)}.construction-files-page .ant-table-cell .ant-space{column-gap:2px!important}.construction-files-page .active-file-row>td{background:#eef6ff!important}.file-name-cell{display:flex;align-items:center;gap:0;min-width:0;width:100%}.file-type-badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:26px;border-radius:6px;color:#fff;font-size:10px;font-weight:800;letter-spacing:0;flex:0 0 auto}.file-type-badge.cad{background:#20b26c}.file-type-badge.pdf{background:#ef4444}.file-type-badge.doc{background:#2b76e5}.file-type-badge.sheet{background:#17a75f}.file-type-badge.file{background:#728096}.file-name-button{display:inline-block;min-width:0;max-width:100%;border:0;background:transparent;padding:0;color:#1d2736;font-weight:700;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap;cursor:pointer}.file-name-button:hover{color:#0b65d8}.vendor-cell-button{width:100%;display:inline-flex;justify-content:flex-start;border:0;background:transparent;color:#243047;cursor:text;overflow:hidden;padding:0;text-align:left;text-overflow:ellipsis;white-space:nowrap}.vendor-cell-button.empty{color:#98a2b3}.vendor-cell-button:disabled{cursor:default}.vendor-cell-input{width:112px}.updated-at-cell,.uploader-cell{display:inline-block;max-width:100%;overflow:hidden;color:#223046;text-overflow:ellipsis;white-space:nowrap}.updated-at-cell{font-variant-numeric:tabular-nums lining-nums}.uploader-cell{color:#76849a}.construction-files-page .ant-table-cell .ant-space{gap:2px!important}.construction-files-page .ant-table-cell .ant-btn{min-width:26px;height:26px;padding:3px 5px}.file-preview-workspace{margin-top:16px;border:1px solid var(--color-border);border-radius:var(--radius-card);overflow:hidden;background:var(--color-card-bg)}.engineering-workspace.preview-focused .file-preview-workspace{flex:1;min-height:0;display:flex;flex-direction:column;margin-top:8px}.file-preview-workspace.preview-kind-cad{min-width:520px}.preview-workspace-header{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;border-bottom:1px solid var(--color-divider);background:var(--color-card-bg)}.engineering-workspace.preview-focused .preview-workspace-header{min-height:48px;padding:0 12px}.engineering-workspace.preview-focused .preview-workspace-header .file-type-badge{width:30px;height:24px}.engineering-workspace.preview-focused .preview-workspace-header .ant-btn-sm{height:28px;padding-inline:8px}.preview-workspace-title,.preview-workspace-actions{display:flex;align-items:center;gap:8px;min-width:0}.preview-workspace-title,.preview-workspace-title strong{flex:1 1 auto}.preview-workspace-title .ant-tag{flex:0 0 auto}.preview-workspace-actions{flex:0 0 auto;justify-content:flex-end}.preview-workspace-actions .ant-space-item{display:inline-flex;align-items:center}.preview-workspace-header strong{min-width:0;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-surface{min-height:520px;max-height:760px;display:flex;align-items:stretch;justify-content:center;padding:16px;background:var(--color-surface-bg);color:var(--color-text-primary);overflow:auto;scrollbar-color:var(--app-scrollbar-thumb) transparent;scrollbar-width:thin}.engineering-workspace.preview-focused .viewer-surface{flex:1;min-height:0;max-height:none;padding:8px}.viewer-surface::-webkit-scrollbar,.preview-sheets::-webkit-scrollbar,.preview-table-wrap::-webkit-scrollbar{height:8px;width:8px}.viewer-surface::-webkit-scrollbar-track,.preview-sheets::-webkit-scrollbar-track,.preview-table-wrap::-webkit-scrollbar-track{background:transparent}.viewer-surface::-webkit-scrollbar-thumb,.preview-sheets::-webkit-scrollbar-thumb,.preview-table-wrap::-webkit-scrollbar-thumb{background:var(--app-scrollbar-thumb);border-radius:999px}.viewer-surface::-webkit-scrollbar-thumb:hover,.preview-sheets::-webkit-scrollbar-thumb:hover,.preview-table-wrap::-webkit-scrollbar-thumb:hover{background:var(--app-scrollbar-thumb-hover)}.viewer-surface>:not(.viewer-empty-state){width:100%}.viewer-surface.preview-kind-pdf,.viewer-surface.preview-kind-cad,.viewer-surface.preview-kind-word{height:min(72vh,820px);min-height:620px;max-height:none;display:block;padding:0;overflow:hidden;background:var(--color-card-bg)}.viewer-surface.preview-kind-cad:has(.dwg-thumbnail-preview){overflow:hidden;background:var(--color-surface-bg)}.viewer-surface.preview-kind-word{overflow:auto;scrollbar-gutter:stable}.engineering-workspace.preview-focused .viewer-surface.preview-kind-pdf,.engineering-workspace.preview-focused .viewer-surface.preview-kind-cad,.engineering-workspace.preview-focused .viewer-surface.preview-kind-word{height:auto;min-height:0}.viewer-surface.preview-kind-cad>.flyfish-preview,.viewer-surface.preview-kind-word>.flyfish-preview{height:100%;min-height:100%;border:0;border-radius:0}.engineering-workspace.preview-focused .viewer-surface.preview-kind-cad>.flyfish-preview,.engineering-workspace.preview-focused .viewer-surface.preview-kind-word>.flyfish-preview{min-height:0}.dwg-thumbnail-preview{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:100%;padding:18px;background:#f3f6fb}.dwg-thumbnail-preview img{display:block;width:100%;height:100%;max-width:1440px;max-height:100%;border:1px solid #d8e1ed;border-radius:8px;background:#fff;object-fit:contain;box-shadow:0 12px 30px #1623341f}.engineering-workspace.preview-focused .flyfish-preview .cad-toolbar{min-height:38px;padding:0 10px}.engineering-workspace.preview-focused .flyfish-preview .cad-tools,.engineering-workspace.preview-focused .flyfish-preview .cad-meta{gap:6px}.engineering-workspace.preview-focused .flyfish-preview .cad-tools button{min-width:30px;min-height:28px;border-radius:7px}.engineering-workspace.preview-focused .flyfish-preview .cad-zoom{min-width:52px;font-size:13px}.engineering-workspace.preview-focused .flyfish-preview .cad-main{min-height:0}.viewer-empty-state{max-width:430px;display:grid;justify-items:center;gap:10px;text-align:center}.viewer-empty-state>span{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:34px;border:1px solid #cfe0f5;border-radius:8px;background:#eef6ff;color:#0b65d8;font-weight:800}.viewer-empty-state strong{color:#172033;font-size:17px}.viewer-empty-state p{margin:0 0 6px;color:#667085;line-height:1.6}.viewer-surface .preview-loading{min-height:480px;color:#1d2736}.viewer-surface .preview-frame{height:min(68vh,700px);min-height:500px;border:1px solid #d8e1ed;border-radius:8px;background:#fff}.viewer-surface .preview-image{align-self:center;max-height:min(68vh,700px);border:1px solid #e3e9f2;background:#fff}.viewer-surface .preview-text,.viewer-surface .preview-doc,.viewer-surface .preview-sheets,.viewer-surface .preview-table-wrap{width:100%;max-height:min(68vh,700px)}.inspector-panel{border-left:1px solid #e3e9f2;padding:4px 16px 18px}.inspector-section{padding:16px 0;border-bottom:1px solid #edf1f6}.inspector-section h3{margin:0 0 12px;color:#1d2736;font-size:14px}.inspector-panel>.inspector-section:first-of-type h3{min-height:28px;display:flex;align-items:center;padding-left:40px}.meta-list,.meta-list div{margin:0}.meta-list div{display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px;padding:6px 0}.meta-list.compact div{grid-template-columns:84px minmax(0,1fr)}.meta-list dt{color:#7b8797;font-size:13px}.meta-list dd{min-width:0;margin:0;color:#1d2736;font-size:13px;line-height:1.45;overflow-wrap:anywhere}.inspector-link{padding:0;height:auto;font-weight:700}.ai-placeholder{background:#fbfdff;margin:14px -8px 0;padding:14px 8px 16px;border:1px solid #e3e9f2;border-radius:8px}.ai-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.ai-section-title strong{color:#1d2736}.ai-section-title span{color:#7b8797;font-size:12px}.ai-placeholder ul{display:grid;gap:8px;margin:0 0 12px;padding:0;list-style:none}.ai-placeholder li{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px;padding:7px 9px;border:1px solid #edf1f6;border-radius:8px;background:#fff;color:#344054;font-size:13px}.ai-ok,.ai-warn,.ai-info{order:2;flex:0 0 auto;font-size:12px;font-weight:800}.ai-ok{color:#16a05b}.ai-warn{color:#d18a00}.ai-info{color:#0b65d8}.archive-hint{display:flex;align-items:center;gap:8px;min-width:0;padding:8px 10px;margin-bottom:12px;border:1px solid #d8e1ed;border-radius:8px;background:#f6f9fc}.archive-hint span{flex:0 0 auto;color:#708198}.archive-hint strong{min-width:0;color:#172033;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.construction-upload-modal .ant-modal-body{max-height:min(84vh,860px);overflow:auto;scrollbar-color:var(--app-scrollbar-thumb) transparent;scrollbar-width:thin}.construction-upload-modal .ant-form{position:relative}.construction-upload-modal .ant-modal-body::-webkit-scrollbar{width:8px;height:8px}.construction-upload-modal .ant-modal-body::-webkit-scrollbar-track{background:transparent}.construction-upload-modal .ant-modal-body::-webkit-scrollbar-thumb{border-radius:999px;background:var(--app-scrollbar-thumb)}.upload-progress-list{display:grid;gap:8px;padding:10px;border:1px solid #e3e9f2;border-radius:8px;background:#f8fbff}.upload-progress-item{display:grid;gap:5px}.upload-progress-item>div{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.upload-progress-item strong{min-width:0;overflow:hidden;color:#1d2736;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.upload-progress-item span{flex:0 0 auto;color:#7b8797;font-size:12px}.upload-modal-busy{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;border-radius:8px;background:#ffffffdb;color:#172033}.upload-modal-busy strong{font-size:16px}.upload-modal-busy span{color:#708198}.preview-panel{min-height:280px}.preview-loading{display:flex;align-items:center;justify-content:center;min-height:280px}.preview-frame{width:100%;height:min(72vh,760px);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-bg)}.fast-pdf-preview{position:relative;min-height:min(72vh,760px);background:transparent}.fast-pdf-first-page{position:absolute;inset:0;z-index:1;width:100%;height:min(72vh,760px);border:0;border-radius:0;background:var(--color-card-bg);object-fit:contain}.fast-pdf-frame{opacity:0;transition:opacity .18s ease}.fast-pdf-frame.is-visible{opacity:1}.pdfjs-preview{display:flex;flex-direction:column;min-height:min(72vh,760px);border:0;border-radius:0;overflow:hidden;background:transparent}.pdfjs-preview-message{justify-content:center;padding:24px;background:var(--color-card-bg)}.pdf-preview-controls{display:inline-flex;align-items:center}.pdfjs-page-indicator{display:inline-flex;align-items:center;min-width:72px;justify-content:center;color:var(--color-text-secondary);font-size:12px}.pdfjs-canvas-wrap{position:relative;flex:1;min-height:0;overflow:auto;padding:16px;background:var(--color-surface-bg);text-align:center;scrollbar-color:var(--app-scrollbar-thumb) transparent;scrollbar-gutter:stable;scrollbar-width:thin}.pdfjs-canvas{display:block;max-width:100%;margin:0 auto;opacity:0;background:var(--color-card-bg);box-shadow:var(--shadow-card);transition:opacity .16s ease}.pdfjs-canvas.is-visible{opacity:1}.pdfjs-loading{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;background:#ffffffc7;color:var(--color-text-secondary);font-size:13px}.preview-generating{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;min-height:420px;color:#708198;text-align:center}.preview-generating strong{color:#172033;font-size:15px}.preview-image{display:block;max-width:100%;max-height:72vh;margin:0 auto;border-radius:8px;object-fit:contain}.preview-text,.preview-doc{max-height:72vh;margin:0;overflow:auto;border:1px solid #d8e1ed;border-radius:8px;background:#fbfdff}.preview-text{padding:14px;color:#172033;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.preview-doc{padding:0;border:0;background:transparent;color:#172033;line-height:1.8}.preview-doc-page{width:min(100%,920px);min-height:620px;margin:0 auto;padding:44px 56px;border:1px solid #dde6f1;border-radius:8px;background:#fff;box-shadow:0 8px 24px #0f172a14}.preview-doc p{margin:0 0 14px;color:#1d2736;font-size:15px;line-height:1.85;white-space:pre-wrap}.preview-doc .docx-title{margin-bottom:24px;text-align:center;font-size:20px;font-weight:800}.preview-sheets{display:grid;gap:18px;max-height:72vh;overflow:auto;scrollbar-color:var(--app-scrollbar-thumb) transparent;scrollbar-width:thin}.preview-sheet h3{margin:0 0 8px;color:#10233f;font-size:15px}.preview-table-wrap{overflow:auto;border:1px solid #d8e1ed;border-radius:8px;background:#fff;scrollbar-color:var(--app-scrollbar-thumb) transparent;scrollbar-width:thin}.preview-table{width:max-content;min-width:860px;border-collapse:collapse;table-layout:auto}.preview-table td{min-width:118px;max-width:360px;padding:7px 9px;border:1px solid #e6edf5;color:#172033;font-size:13px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-table tr:first-child td{position:sticky;top:0;z-index:2;background:#f3f7fc;color:#243047;font-weight:700}.preview-table td:first-child{position:sticky;left:0;z-index:1;background:#fff;color:#243047;font-weight:600}.preview-table tr:first-child td:first-child{z-index:3;background:#edf4ff}@media(max-width:1380px){.engineering-workspace{grid-template-columns:284px minmax(540px,1fr)}}@media(max-width:1180px){.construction-files-page{height:auto}.engineering-workspace{grid-template-columns:280px minmax(0,1fr);height:auto;overflow:hidden}.inspector-panel{position:absolute;top:0;right:0;bottom:0;width:270px;grid-column:auto;border-top:0;border-left:1px solid #e3e9f2;box-shadow:-18px 0 34px #0f172a14;transform:translate(0)}.engineering-workspace.inspector-collapsed .inspector-panel{box-shadow:-10px 0 20px #0f172a0d;transform:translate(calc(100% - 44px))}}@media(max-width:820px){.engineering-workspace{grid-template-columns:1fr}.scope-panel{border-right:0;border-bottom:1px solid #e3e9f2}.scope-tree-wrap{max-height:360px}.file-workbench{padding:0 12px 14px}.command-bar,.command-actions,.command-filters,.preview-workspace-header{align-items:stretch;flex-direction:column}.command-filters .ant-select,.command-filters .ant-input-search{flex:none;max-width:none;width:100%!important}}.site-content:has(.construction-files-page){background:var(--color-page-bg)}.construction-files-page .muted,.updated-at-cell,.uploader-cell,.directory-empty,.viewer-empty-state p,.ai-section-title span,.archive-hint span,.upload-progress-item span,.upload-modal-busy span{color:var(--color-text-tertiary)}.engineering-workspace{background:var(--color-card-bg)}.scope-panel,.inspector-panel{background:#ffffffeb}.scope-panel{border-color:var(--color-border)}.scope-panel{border-right-color:var(--color-border)}.inspector-panel{background:#fffffff5;box-shadow:var(--shadow-floating)}.engineering-workspace.scope-collapsed .scope-panel,.engineering-workspace.inspector-collapsed .inspector-panel,.viewer-surface,.scope-footer,.command-bar,.ai-placeholder,.archive-hint,.upload-progress-item,.preview-generating{background:var(--color-surface-bg)}.panel-collapse-button{border-color:var(--color-border);background:#fffffffa;color:var(--color-text-secondary);box-shadow:-8px 0 18px #15233a14}.scope-collapse-button{border-radius:12px 0 0 12px!important}.inspector-collapse-button{border-radius:0 12px 12px 0!important;box-shadow:8px 0 18px #15233a14}.construction-files-page .panel-collapse-button.ant-btn:not(:disabled):hover,.construction-files-page .panel-collapse-button.ant-btn:not(:disabled):focus,.construction-files-page .panel-collapse-button.ant-btn:not(:disabled):focus-visible,.construction-files-page .panel-collapse-button.ant-btn:not(:disabled):active{border-color:color-mix(in srgb,var(--color-primary) 34%,var(--color-border));background:var(--color-surface-bg);color:var(--color-text-primary)!important}.construction-files-page .ant-tree-treenode:hover,.construction-files-page .ant-tree-treenode:has(.ant-tree-node-selected),.construction-files-page .active-file-row>td{background:var(--color-primary-soft)!important}.construction-files-page .ant-tree-node-selected,.file-type-badge,.ai-info{background:var(--color-primary-soft);color:var(--color-primary)}.construction-files-page .ant-tree-iconEle:has(.anticon-file-text),.viewer-empty-state>span{background:var(--color-primary-soft);color:var(--color-primary)}.tree-title-button,.file-name-button,.vendor-cell-button,.inspector-link{color:var(--color-text-primary)}.tree-title-button mark{background:var(--color-warning-bg);color:var(--color-text-primary)}.file-name-button:hover,.inspector-link:hover{color:var(--color-primary)}.construction-files-page .ant-table,.file-preview-workspace,.dwg-thumbnail-preview,.inspector-section,.meta-list div,.ai-placeholder,.archive-hint,.upload-progress-list,.upload-progress-item,.preview-panel,.preview-text,.preview-doc,.preview-sheets,.preview-table-wrap,.preview-doc-page{border-color:var(--color-border);border-radius:var(--radius-card);background:var(--color-card-bg)}.preview-workspace-header,.construction-files-page .ant-table-tbody>tr>td,.inspector-section h3,.preview-table td,.preview-table tr:first-child td,.preview-table td:first-child{border-color:var(--color-divider)}.preview-workspace-header strong,.viewer-empty-state strong,.inspector-section h3,.ai-section-title strong,.archive-hint strong,.upload-progress-item strong,.upload-modal-busy strong,.preview-generating strong,.preview-table tr:first-child td,.preview-table td:first-child{color:var(--color-text-primary)}.viewer-empty-state>span,.ai-ok{color:var(--color-success)}.ai-warn{color:var(--color-warning)}.preview-table tr:first-child td:first-child{background:var(--color-primary-soft)}.element-parent-page{display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px;height:100%;min-height:0;padding:18px;background:#f4f7fb}.element-parent-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border:1px solid #dbe5ef;border-radius:8px;background:#fff}.element-parent-header h1{margin:0;color:#172033;font-size:20px;line-height:1.25}.element-parent-header p{margin:6px 0 0;color:#667085;line-height:1.45}.element-parent-titlebar{display:flex;align-items:flex-start;min-width:0;gap:12px}.element-parent-titlebar>.ant-btn{flex:0 0 auto}.element-parent-titlebar>div{min-width:0}.element-parent-actions,.element-parent-main-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.element-parent-workspace{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:0;height:100%;border:1px solid #dbe5ef;border-radius:8px;overflow:hidden;background:#fff}.element-parent-sidebar{display:grid;align-content:start;gap:8px;min-height:0;padding:12px;border-right:1px solid #e3e9f2;overflow:auto;background:#f8fafc}.element-parent-nav-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:9px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:#475467;text-align:left;cursor:pointer}.element-parent-nav-item:hover,.element-parent-nav-item:focus-visible{border-color:#bdd7f3;background:#fff;outline:none}.element-parent-nav-item.active{border-color:#9dc8ff;background:var(--parent-bg, #eaf4ff);color:var(--parent-color, #0b65d8)}.element-parent-nav-item span:first-child{display:inline-flex;align-items:center;min-width:0;gap:8px;font-weight:700}.element-parent-nav-item span:first-child .anticon{flex:0 0 auto}.element-parent-color-dot{flex:0 0 auto;width:10px;height:10px;border-radius:999px;background:var(--parent-color, #1677ff);box-shadow:0 0 0 3px var(--parent-bg, #f0f6ff)}.element-parent-nav-item span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.element-parent-nav-item .ant-tag{flex:0 0 auto;margin-inline-end:0}.element-parent-main{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-width:0;min-height:0;overflow:hidden}.element-parent-main-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #e3e9f2}.element-parent-main-head>div:first-child{display:grid;min-width:0;gap:3px}.element-parent-main-head strong{overflow:hidden;color:#172033;font-size:18px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.element-parent-main-head span{color:#667085;font-size:13px}.element-parent-detail{display:grid;gap:8px;padding:12px 16px;border-bottom:1px solid #eef2f7;background:linear-gradient(90deg,var(--parent-bg, #fbfcfe),#fff 72%);box-shadow:inset 3px 0 0 var(--parent-color, #1677ff)}.element-parent-config-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.element-parent-color-chip,.parent-color-option{display:inline-flex;align-items:center;min-width:0;gap:8px}.element-parent-color-chip{color:#344054;font-size:13px;font-weight:700}.element-parent-color-chip span,.parent-color-option span{flex:0 0 auto;width:12px;height:12px;border-radius:999px}.parent-custom-color-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 12px;padding:12px;border:1px solid #e3e9f2;border-radius:8px;background:#f8fafc}.parent-custom-color-panel .ant-form-item{margin-bottom:12px}.parent-custom-color-preview{grid-column:1 / -1;display:inline-flex;align-items:center;min-width:0;gap:8px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--parent-color, #475467) 32%,#d8e1ed);border-radius:8px;background:var(--parent-bg, #f4f7fb);color:var(--parent-color, #475467)}.parent-custom-color-preview span{flex:0 0 auto;width:12px;height:12px;border-radius:999px;background:var(--parent-color, #475467);box-shadow:0 0 0 3px #fff}.parent-custom-color-preview strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.element-parent-detail p{margin:0;color:#475467;line-height:1.55}.element-parent-keywords{display:flex;flex-wrap:wrap;gap:6px}.element-child-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-content:start;gap:12px;min-height:0;overflow:auto;padding:14px}.element-child-card{display:grid;gap:9px;min-width:0;padding:12px;border:1px solid #e3e9f2;border-radius:8px;background:#fff}.element-child-card-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,150px) auto;align-items:center;gap:8px}.element-child-tags{display:inline-flex;align-items:center;min-width:0;gap:6px}.element-child-card-head .ant-tag,.element-child-tags .ant-tag{max-width:100%;margin-inline-end:0;overflow:hidden;text-overflow:ellipsis}.element-child-card-actions{display:inline-flex;align-items:center;gap:2px}.element-child-title{display:block;width:100%;padding:0;border:0;background:transparent;overflow:hidden;color:#172033;font-size:15px;font-weight:700;line-height:1.35;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.element-child-title:hover,.element-child-title:focus-visible{color:#1677ff;outline:none}.element-child-card p{display:-webkit-box;min-height:42px;margin:0;overflow:hidden;color:#667085;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}.element-child-meta{display:flex;flex-wrap:wrap;gap:6px 12px;color:#8a96a8;font-size:12px}.element-child-source{display:grid;gap:4px;padding:8px 10px;border:1px solid #e8edf5;border-radius:8px;background:#f8fafc}.element-child-source span{color:#7a8799;font-size:12px;font-weight:700}.element-child-source strong{overflow:hidden;color:#344054;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.element-child-source p{display:-webkit-box;min-height:auto;margin:0;overflow:hidden;color:#667085;font-size:12px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.element-parent-log-list{display:grid;gap:10px;max-height:62vh;overflow:auto;padding-right:4px}.element-parent-log-item{display:grid;gap:8px;padding:12px;border:1px solid #e3e9f2;border-radius:8px;background:#fff}.element-parent-log-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px}.element-parent-log-head .ant-tag{margin-inline-end:0}.element-parent-log-head strong{overflow:hidden;color:#172033;text-overflow:ellipsis;white-space:nowrap}.element-parent-log-head span,.element-parent-log-meta{color:#667085;font-size:12px}.element-parent-log-meta{display:flex;flex-wrap:wrap;gap:6px 12px}.element-parent-log-item pre{max-height:220px;margin:0;overflow:auto;padding:10px;border-radius:8px;background:#f7f9fc;color:#344054;font-size:12px;line-height:1.45;white-space:pre-wrap}@media(max-width:980px){.element-parent-page{height:auto}.element-parent-header{align-items:flex-start;flex-direction:column}.element-parent-actions{justify-content:flex-start}.element-parent-workspace{grid-template-columns:1fr}.element-parent-sidebar{max-height:260px;border-right:0;border-bottom:1px solid #e3e9f2}.parent-custom-color-panel{grid-template-columns:1fr}}.element-parent-page{gap:16px;padding:24px;background:var(--color-page-bg)}.element-parent-header,.element-parent-workspace,.element-parent-content-card,.element-parent-detail-card,.element-parent-log-item{border-color:var(--color-border);border-radius:var(--radius-card);background:var(--color-card-bg);box-shadow:var(--shadow-card)}.element-parent-header h1,.element-parent-content-card h2,.element-parent-detail-card h2,.element-parent-log-head strong{color:var(--color-text-primary)}.element-parent-header p,.element-parent-log-head span,.element-parent-log-meta,.element-parent-empty,.element-parent-hint,.element-parent-meta{color:var(--color-text-secondary)}.element-parent-sidebar,.element-parent-log-item pre,.element-parent-placeholder,.parent-custom-color-panel{background:var(--color-surface-bg)}.element-parent-sidebar,.element-parent-content-head,.element-parent-detail-head{border-color:var(--color-divider)}.element-parent-nav-item{border-radius:var(--radius-md);color:var(--color-text-secondary)}.element-parent-nav-item:hover,.element-parent-nav-item:focus-visible{border-color:color-mix(in srgb,var(--color-primary) 28%,var(--color-border));background:var(--color-card-bg)}.element-parent-nav-item.active{border-color:color-mix(in srgb,var(--parent-color, var(--color-primary)) 42%,var(--color-border));background:var(--parent-bg, var(--color-primary-soft))}.element-parent-color-dot{background:var(--parent-color, var(--color-primary));box-shadow:0 0 0 3px var(--parent-bg, var(--color-primary-soft))}.element-parent-log-item pre{border:1px solid var(--color-border);color:var(--color-text-primary)}.construction-minutes-page{height:calc(100vh - 48px);min-height:720px}.minutes-workspace{display:grid;grid-template-columns:340px minmax(0,1fr);height:100%;min-height:0;overflow:hidden;border:1px solid #e3e9f2;border-radius:8px;background:#fffffff0;box-shadow:0 14px 38px #0f172a0f}.minute-source-panel{min-height:0;background:#fffc;overflow:auto}.minute-source-panel{display:flex;flex-direction:column;border-right:1px solid #e3e9f2}.source-heading{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e8edf5}.source-heading{padding:0 14px}.source-heading>div{display:grid;min-width:0}.source-heading strong{color:#152033;font-size:17px;font-weight:800}.source-summary{display:grid;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr));padding:10px 12px 7px}.source-summary div{border:1px solid #dbe5ef;border-radius:8px;background:#f8fafc}.source-summary div{display:flex;align-items:baseline;gap:6px;min-height:34px;padding:6px 10px}.source-summary strong{color:#10233f;font-size:18px;line-height:1.1}.source-summary span{color:#667085;font-size:12px}.source-search{display:grid;gap:5px;padding:0 12px 12px}.source-search .ant-input-search{width:100%}.source-search .ant-input-search .ant-input-affix-wrapper,.source-search .ant-input-search .ant-input-search-button{height:38px}.source-search .ant-input-search .ant-input{font-size:14px}.source-search span{color:#667085;font-size:12px}.minute-source-list{flex:1;min-height:0;padding:0 10px 14px;overflow:auto}.minute-source-card{display:grid;gap:8px;width:100%;margin-bottom:10px;padding:11px 12px;border:1px solid #dbe5ef;border-radius:8px;background:#fff;color:#1d2736;text-align:left;cursor:pointer}.minute-source-card:hover,.minute-source-card.active{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff1a}.minute-source-card.extracting{border-color:#1677ff;background:#f4f9ff}.minute-source-card.extracting .minute-source-name{color:#0b65d8}.minute-source-date,.minute-source-meta{display:flex;align-items:center;gap:8px;min-width:0}.minute-source-date strong{color:#172033;font-size:13px}.minute-source-date .ant-tag{flex:0 0 auto;margin-inline-start:auto}.minute-source-date .anticon{color:#0b65d8}.minute-source-name{color:#172033;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.minute-source-meta{justify-content:space-between;color:#7b8797;font-size:12px}.minute-analysis-main{min-width:0;min-height:0;display:flex;flex-direction:column;padding:0 18px 18px;overflow:hidden;background:#fff}.analysis-actions{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:7px;min-width:0}.analysis-model-cascader{width:194px}.analysis-model-popup .ant-cascader-menu{min-width:176px}.analysis-actions .ant-btn{height:32px;min-width:0;padding-inline:10px;white-space:nowrap}.analysis-actions .ant-btn-primary,.analysis-actions .ant-btn-primary .anticon,.analysis-actions .ant-btn-primary span{color:#fff}.minute-tabs{min-width:0;flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.minute-tabs>.ant-tabs-nav{flex:0 0 auto;margin:0 0 12px;padding-top:10px}.minute-tabs .ant-tabs-extra-content{min-width:0}.minute-tabs>.ant-tabs-content-holder{flex:1;min-height:0;overflow:hidden}.minute-tabs .ant-tabs-content,.minute-tabs .ant-tabs-tabpane{height:100%;min-height:0}.minute-tab-panel{display:grid;gap:12px;height:100%;min-height:0;align-content:start;overflow:hidden}.minute-list-panel{overflow:auto}.flow-tab-panel{grid-template-rows:auto minmax(0,1fr);align-content:stretch;overflow:hidden}.element-toolbar{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.active-minute-scope{display:flex;align-items:center;gap:8px;min-width:0;padding:10px 12px;border:1px solid #dbe5ef;border-radius:8px;background:#f8fafc}.active-minute-scope>div{display:grid;flex:1;gap:2px;min-width:0}.active-minute-scope span{color:#667085;font-size:12px}.active-minute-scope strong{min-width:0;color:#172033;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.active-minute-scope .ant-btn{flex:0 0 auto}.minute-original-panel{grid-template-rows:auto minmax(0,1fr);align-content:stretch;overflow:hidden}.minute-original-viewer{min-height:0;padding:14px;overflow:auto;border:1px solid #dbe5ef;border-radius:8px;background:#f3f6fb}.minute-original-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:280px;color:#667085;text-align:center}.minute-original-task-loading{min-height:360px;border-radius:8px;background:linear-gradient(180deg,#ffffffd6,#f4f9ffeb)}.minute-original-task-loading strong{color:#172033;font-size:16px;line-height:1.45}.minute-original-task-loading span{max-width:min(520px,90%);color:#7a8798;font-size:13px;line-height:1.45;overflow-wrap:anywhere}.minute-original-frame{width:100%;height:min(68vh,720px);min-height:520px;border:1px solid #d8e1ed;border-radius:8px;background:#fff}.minute-original-word{width:100%;height:min(68vh,760px);min-height:560px;overflow:hidden;border-radius:8px;background:#fff}.minute-original-word>.flyfish-preview{height:100%;min-height:100%}.minute-original-image{display:block;max-width:100%;max-height:min(68vh,720px);margin:0 auto;border:1px solid #e3e9f2;border-radius:8px;background:#fff;object-fit:contain}.minute-original-text,.minute-original-doc{max-height:min(68vh,720px);margin:0;overflow:auto;border:1px solid #d8e1ed;border-radius:8px;background:#fff;color:#172033}.minute-original-text{padding:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.minute-original-doc{display:grid;gap:10px;max-width:960px;padding:32px 44px;margin:0 auto;line-height:1.8}.minute-original-doc p{margin:0;white-space:pre-wrap}.minute-original-sheets{display:grid;gap:14px;max-height:min(68vh,720px);overflow:auto}.minute-original-sheet{display:grid;gap:8px}.minute-original-sheet h3{margin:0;color:#10233f;font-size:15px}.minute-original-table-wrap{overflow:auto;border:1px solid #d8e1ed;border-radius:8px;background:#fff}.minute-original-table{width:max-content;min-width:860px;border-collapse:collapse}.minute-original-table td{min-width:118px;max-width:360px;padding:7px 9px;overflow:hidden;color:#172033;font-size:13px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap;border:1px solid #e6edf5}.minute-original-table tr:first-child td{position:sticky;top:0;z-index:2;background:#f3f7fc;color:#243047;font-weight:700}.element-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:12px;align-items:stretch}.element-classification-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:12px;min-height:0}.element-category-panel,.element-items-panel{min-width:0;border:1px solid #dbe5ef;border-radius:8px;background:#fff}.element-category-panel{display:grid;grid-template-rows:auto minmax(0,1fr);align-self:start;max-height:min(720px,calc(100vh - 260px));overflow:hidden}.element-category-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #eef2f7}.element-category-panel-head strong{color:#172033}.element-category-panel-head span,.element-category-more{color:#667085;font-size:12px}.element-category-panel .ant-tree{min-height:0;padding:8px;overflow:auto;background:transparent}.element-category-panel .ant-tree-treenode{width:100%}.element-category-panel .ant-tree-node-content-wrapper{min-width:0}.element-category-title{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%}.element-category-name{display:inline-flex;align-items:center;gap:6px;min-width:0}.element-category-name strong{min-width:0;overflow:hidden;color:#172033;text-overflow:ellipsis;white-space:nowrap}.element-category-name .anticon{flex:0 0 auto;color:#1677ff}.element-category-name .ant-tag{flex:0 0 auto;margin-inline-end:0}.element-category-actions{display:inline-flex;align-items:center;gap:2px}.element-category-child{display:block;width:100%;padding:2px 0;border:0;background:transparent;color:#48566b;text-align:left;cursor:pointer}.element-category-child span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.element-category-child:hover,.element-category-child:focus-visible{color:#0b65d8;outline:none}.element-items-panel{padding:12px}.element-card{display:grid;grid-template-rows:auto auto 1fr auto;gap:6px;min-height:128px;padding:10px 12px;border:1px solid #dbe5ef;border-radius:8px;background:#fff}.element-card:hover{border-color:#8bbcff;box-shadow:0 0 0 2px #1677ff14}.element-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.element-card-tags{display:flex;flex-wrap:wrap;min-width:0;gap:6px}.element-card-tags .ant-tag{max-width:140px;margin-inline-end:0;overflow:hidden;text-overflow:ellipsis}.element-card-actions{display:inline-flex;align-items:center;gap:2px;opacity:0;pointer-events:none;transition:opacity .16s ease}.element-card:hover .element-card-actions,.element-card:focus-within .element-card-actions{opacity:1;pointer-events:auto}.element-card>strong{color:#172033;line-height:1.35}.element-card>p{display:-webkit-box;margin:0;overflow:hidden;color:#667085;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.element-source-trace{display:grid;gap:4px;padding:8px 10px;border:1px solid #e8edf5;border-radius:8px;background:#f8fafc}.element-source-trace span,.timeline-source-references>span{color:#7a8799;font-size:12px;font-weight:700}.element-source-trace strong{overflow:hidden;color:#344054;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.element-source-trace p{display:-webkit-box;margin:0;overflow:hidden;color:#667085;font-size:12px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.element-card-category-row{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:8px;padding-top:4px;border-top:1px solid #eef2f7}.element-card-category-row span{color:#667085;font-size:12px}.element-card-category-row .ant-select{min-width:0}.element-card small{color:#728197}@media(max-width:980px){.element-classification-layout{grid-template-columns:1fr}.element-category-panel{max-height:360px}}.flow-matrix-toolbar{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;justify-content:space-between}.flow-filter-bar,.flow-add-bar{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.flow-filter-bar{flex:1}.flow-add-bar{justify-content:flex-end}.flow-filter-select{flex:1;min-width:180px;max-width:240px}.flow-filter-select-wide{min-width:240px;max-width:360px}.flow-matrix-toolbar .ant-input{width:170px}.flow-canvas-frame{position:relative;min-height:0;height:100%;border:1px solid #dbe5ef;border-radius:8px;overflow:hidden;background:#f4f7fb}.flow-canvas-viewport{position:absolute;inset:0;overflow:scroll;background-color:#f4f7fb;background-image:linear-gradient(rgba(211,222,236,.82) 1px,transparent 1px),linear-gradient(90deg,rgba(211,222,236,.82) 1px,transparent 1px);background-position:-1px -1px;background-size:28px 28px;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;scrollbar-color:var(--app-scrollbar-thumb) transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin}.flow-canvas-viewport.dragging{cursor:grabbing}.flow-canvas-viewport::-webkit-scrollbar{width:12px;height:12px}.flow-canvas-viewport::-webkit-scrollbar-track{background:var(--app-scrollbar-track)}.flow-canvas-viewport::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:var(--app-scrollbar-thumb);background-clip:content-box}.flow-canvas-viewport::-webkit-scrollbar-corner{background:transparent}.flow-canvas-controls{position:absolute;top:12px;right:12px;z-index:10;display:flex;align-items:center;gap:8px;min-width:298px;padding:8px;border:1px solid rgba(216,225,237,.92);border-radius:8px;background:#ffffffb8;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 10px 28px #15233a1a;cursor:default;-webkit-user-select:none;user-select:none}.flow-canvas-controls .ant-slider{flex:1;min-width:96px;margin:0 2px}.flow-canvas-controls .ant-btn{flex:0 0 auto}.flow-canvas-zoom-value{flex:0 0 42px;color:#475467;font-size:12px;font-variant-numeric:tabular-nums;text-align:center}.flow-canvas-horizontal-scrollbar{position:absolute;right:16px;bottom:12px;left:16px;z-index:10;display:flex;align-items:center;min-height:22px;padding:0 12px;border:0;border-radius:999px;background:#f8fafc9e;-webkit-backdrop-filter:blur(10px) saturate(1.08);backdrop-filter:blur(10px) saturate(1.08);box-shadow:inset 0 0 0 1px #d3deecb8}.flow-canvas-horizontal-scrollbar .ant-slider{width:100%;margin:0}.flow-canvas-horizontal-scrollbar .ant-slider-disabled{opacity:.46}.flow-canvas-scroll-surface{position:relative;min-width:100%;min-height:100%}.flow-canvas-stage{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}.flow-matrix{display:grid;gap:1px;width:max-content;min-width:860px;border:1px solid #dbe5ef;border-radius:8px;overflow:hidden;background:#e3e9f2;box-shadow:0 18px 42px #15233a1f}.flow-matrix-corner,.flow-column-head,.flow-row-head{background:#f8fafc;color:#172033}.flow-matrix-corner{position:relative;z-index:4;display:flex;align-items:center;gap:8px;min-height:54px;padding:0 12px;font-weight:800;box-shadow:1px 1px #e3e9f2}.flow-column-head{position:relative;z-index:3;display:flex;align-items:center;min-height:54px;padding:10px 12px;box-shadow:0 1px #e3e9f2}.flow-column-head strong{overflow:hidden;color:#172033;line-height:1.35;text-overflow:ellipsis}.flow-row-head{position:relative;z-index:2;display:grid;align-content:center;min-height:148px;padding:12px;border-right:1px solid #e3e9f2;box-shadow:1px 0 #e3e9f2}.flow-row-head strong{color:#172033;font-size:13px;line-height:1.45;overflow-wrap:anywhere}.flow-matrix-cell{min-height:148px;padding:10px;background:#fff;cursor:pointer}.flow-matrix-cell:hover{background:#f8fbff}.flow-matrix-cell.editing{min-height:280px;background:#fbfdff;box-shadow:inset 0 0 0 2px #1677ff2e}.flow-matrix-event,.flow-cell-editor{display:grid;gap:8px;min-height:126px;height:100%;padding:10px;border:1px solid #dbe5ef;border-radius:8px;background:#fbfdff}.flow-event-topline,.flow-editor-head,.flow-editor-actions{display:flex;align-items:center;gap:8px}.flow-editor-head{justify-content:space-between}.flow-editor-head .ant-select{width:88px}.flow-editor-head span{color:#667085;font-size:12px;font-weight:700}.flow-matrix-event strong{color:#172033;line-height:1.35}.flow-matrix-event p,.flow-matrix-event small{margin:0;color:#667085;line-height:1.45;white-space:pre-wrap}.flow-matrix-event small{color:#8a96a8}.flow-event-风险{border-color:#ffd6d1;background:#fff8f7}.flow-event-调整{border-color:#ffe1a3;background:#fffaf0}.flow-event-确认{border-color:#bdebd0;background:#f3fbf6}.flow-empty-cell{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;height:100%;min-height:126px;color:#8a96a8;opacity:0;border:1px dashed transparent;border-radius:8px;background:transparent;cursor:pointer;transition:opacity .16s ease,color .16s ease,border-color .16s ease,background .16s ease}.flow-matrix-cell:hover .flow-empty-cell,.flow-empty-cell:focus-visible{opacity:1;border-color:#d8e1ed;background:#fff}.flow-empty-cell:hover{color:#0b65d8;border-color:#8bbcff;background:#f4f9ff}.flow-view-frame{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;height:100%;overflow:hidden;border:1px solid #dbe5ef;border-radius:8px;background:#f7f9fc}.flow-view-frame-fullscreen{position:fixed;inset:12px;z-index:900;height:auto;border-color:#aac2e2d1;background:#f7f9fcf5;box-shadow:0 28px 80px #0c182b42}.flow-view-frame-fullscreen .flow-view-header{background:#ffffffd1;-webkit-backdrop-filter:blur(16px) saturate(1.18);backdrop-filter:blur(16px) saturate(1.18)}.flow-view-frame-fullscreen .flow-view-body{min-height:0}.flow-view-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #e3e9f2;background:#fff}.flow-view-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;color:#667085;font-size:13px}.flow-view-summary strong{color:#172033;font-size:18px;font-variant-numeric:tabular-nums lining-nums}.flow-view-body{min-height:0;padding:0;overflow:hidden;scrollbar-color:var(--app-scrollbar-thumb) transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin}.flow-view-canvas-shell{position:relative;height:100%;min-height:0;overflow:hidden;background:linear-gradient(135deg,#ffffff52,#e8f0fa33),#f4f7fb}.flow-view-canvas-shell:before{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 18% 8%,rgba(22,119,255,.08),transparent 28%),linear-gradient(180deg,#ffffff6b,#fff0);-webkit-backdrop-filter:blur(8px) saturate(1.08);backdrop-filter:blur(8px) saturate(1.08);content:""}.flow-view-canvas-viewport{position:absolute;inset:0;z-index:2;overflow:scroll;background-color:#f4f7fbd1;background-image:linear-gradient(rgba(211,222,236,.82) 1px,transparent 1px),linear-gradient(90deg,rgba(211,222,236,.82) 1px,transparent 1px);background-position:-1px -1px;background-size:28px 28px;cursor:grab;scrollbar-width:none;touch-action:none;-webkit-user-select:none;user-select:none}.flow-view-canvas-viewport.dragging{cursor:grabbing}.flow-view-canvas-viewport::-webkit-scrollbar{width:0;height:0}.flow-view-canvas-surface{position:relative;min-width:100%;min-height:100%}.flow-view-canvas-stage{position:absolute;top:0;left:0;transform-origin:0 0;will-change:left,top}.flow-view-content{width:max-content;min-width:1280px;min-height:760px;padding:14px;zoom:var(--flow-canvas-scale, 1);-webkit-user-select:text;user-select:text}.flow-view-content-list{min-width:1040px}.flow-canvas-vertical-scrollbar{position:absolute;top:72px;right:12px;bottom:52px;z-index:10;display:flex;align-items:center;justify-content:center;width:28px;padding:10px 0;border:0;border-radius:999px;background:#f8fafc9e;-webkit-backdrop-filter:blur(10px) saturate(1.08);backdrop-filter:blur(10px) saturate(1.08);box-shadow:inset 0 0 0 1px #d3deecb8}.flow-canvas-vertical-scrollbar .ant-slider{height:100%;margin:0}.flow-canvas-controls .ant-slider .ant-slider-rail,.flow-canvas-horizontal-scrollbar .ant-slider .ant-slider-rail,.flow-canvas-vertical-scrollbar .ant-slider .ant-slider-rail{background:#94a3b838}.flow-canvas-controls .ant-slider .ant-slider-track,.flow-canvas-horizontal-scrollbar .ant-slider .ant-slider-track,.flow-canvas-vertical-scrollbar .ant-slider .ant-slider-track{background:#5d718c}.flow-canvas-controls .ant-slider .ant-slider-handle:after,.flow-canvas-horizontal-scrollbar .ant-slider .ant-slider-handle:after,.flow-canvas-vertical-scrollbar .ant-slider .ant-slider-handle:after{width:10px;height:10px;box-shadow:0 0 0 2px #fff,0 2px 8px #15233a2e}.flow-canvas-vertical-scrollbar .ant-slider-disabled{opacity:.46}.flow-view-body::-webkit-scrollbar{width:12px;height:12px}.flow-view-body::-webkit-scrollbar-track{background:var(--app-scrollbar-track)}.flow-view-body::-webkit-scrollbar-thumb{border:3px solid #e9eff7;border-radius:999px;background:var(--app-scrollbar-thumb)}.flow-view-body::-webkit-scrollbar-corner{background:transparent}.flow-tree-timeline{position:relative;display:flex;align-items:flex-start;gap:22px;width:max-content;min-width:100%;padding:14px 8px 24px}.flow-tree-timeline:before{position:absolute;top:44px;right:24px;left:24px;height:3px;border-radius:999px;background:linear-gradient(90deg,#1677ff14,#1677ff73,#08979c47);content:""}.flow-tree-date-node{position:relative;z-index:1;flex:0 0 360px;display:grid;gap:14px;min-width:0}.flow-tree-date-node:before{position:absolute;top:31px;left:22px;width:18px;height:18px;border:4px solid #f4f7fb;border-radius:50%;background:#1677ff;box-shadow:0 0 0 1px #1677ff3d,0 8px 18px #1677ff2e;content:""}.flow-tree-date-node.is-empty{opacity:.72}.flow-tree-date-marker{position:sticky;top:12px;z-index:9;display:flex;align-items:center;gap:10px;width:100%;max-width:100%;min-height:58px;padding:10px 12px;border:1px solid rgba(188,212,244,.95);border-radius:8px;background:linear-gradient(135deg,#f0f6ffe0,#ffffffe6 62%),#fff;-webkit-backdrop-filter:blur(14px) saturate(1.14);backdrop-filter:blur(14px) saturate(1.14);box-shadow:0 12px 26px #15233a1a}.flow-tree-date-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;border-radius:8px;background:#1677ff;color:#fff;box-shadow:0 8px 18px #1677ff38}.flow-tree-date-icon .anticon{color:inherit}.flow-tree-date-text{display:grid;flex:1;min-width:0;gap:2px}.flow-tree-date-text small{color:#667085;font-size:12px}.flow-tree-date-text strong{color:#172033;font-size:15px;font-variant-numeric:tabular-nums lining-nums}.flow-tree-date-marker .ant-tag{margin-inline-end:0;border-radius:999px;font-variant-numeric:tabular-nums lining-nums}.flow-tree-branches{position:relative;display:grid;gap:12px;margin-left:32px;padding:4px 0 0 18px;border-left:1px solid rgba(154,178,207,.72)}.flow-tree-branches:before{position:absolute;top:0;left:-1px;width:1px;height:18px;background:#1677ff;content:""}.flow-cluster-node{position:relative;overflow:visible;border:1px solid rgba(219,229,239,.96);border-radius:8px;background:var(--cluster-bg);box-shadow:inset 4px 0 0 var(--cluster-color),0 10px 22px #15233a0f;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.flow-cluster-node:before{position:absolute;top:22px;left:-18px;width:18px;height:1px;background:#9ab2cfb8;content:""}.flow-cluster-node:hover{border-color:color-mix(in srgb,var(--cluster-color) 35%,#dbe5ef);box-shadow:inset 4px 0 0 var(--cluster-color),0 14px 28px #15233a1a;transform:translateY(-1px)}.flow-cluster-node summary,.flow-calendar-cluster summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer}.flow-cluster-node summary::-webkit-details-marker,.flow-calendar-cluster summary::-webkit-details-marker{display:none}.flow-cluster-node summary{justify-content:space-between;min-height:42px;padding:10px 12px;color:#172033;background:#ffffff8a}.flow-cluster-node summary strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-cluster-node summary span:last-child{flex:0 0 auto;padding:2px 8px;border-radius:999px;background:#ffffffc2;color:#667085;font-size:12px;font-variant-numeric:tabular-nums lining-nums}.flow-cluster-node[open] summary{border-bottom:1px solid rgba(216,225,237,.78)}.flow-cluster-dot{flex:0 0 10px;width:10px;height:10px;border-radius:50%;background:var(--cluster-color);box-shadow:0 0 0 4px color-mix(in srgb,var(--cluster-color) 16%,transparent)}.flow-cluster-items{display:grid;gap:8px;padding:10px;background:#ffffff80}.flow-cluster-item{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;width:100%;min-width:0;padding:10px;border:1px solid #e3e9f2;border-radius:8px;background:#fff;color:#172033;text-align:left;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.flow-cluster-item:hover,.flow-cluster-item:focus-visible{border-color:#1677ff6b;background:#f8fbff;box-shadow:0 6px 16px #15233a14;outline:none}.flow-cluster-item-compact{padding:8px}.flow-cluster-item-line{padding:4px 0;border:0;border-radius:6px;background:transparent}.flow-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.flow-item-actions{display:inline-flex;align-items:center;gap:2px;opacity:0;transition:opacity .16s ease}.flow-cluster-item:hover .flow-item-actions,.flow-cluster-item:focus-within .flow-item-actions{opacity:1}.flow-cluster-item strong{min-width:0;color:#172033;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-cluster-item .ant-tag{margin-inline-end:0}.flow-editable-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;width:100%;padding:10px;border:1px solid #ffd591;border-radius:8px;background:#fffaf0;color:#172033;text-align:left;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.flow-editable-item:hover,.flow-editable-item:focus-visible{border-color:#ffb84d;background:#fff7e6;box-shadow:0 8px 18px #15233a1a;outline:none}.flow-editable-item .ant-tag{margin-inline-end:0}.flow-editable-item strong{min-width:0;overflow:hidden;color:#172033;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.flow-editable-item>span:not(.ant-tag){grid-column:1 / -1;display:-webkit-box;margin-top:2px;overflow:hidden;color:#667085;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.flow-editable-item-calendar{padding:7px}.flow-inline-editor{display:grid;gap:8px;width:100%;min-width:0;padding:10px;border:1px solid #8bbcff;border-radius:8px;background:#fff;box-shadow:0 10px 24px #15233a1f}.flow-inline-editor-head{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px}.flow-inline-editor .ant-select{min-width:0}.flow-inline-editor-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.flow-item-meta{display:flex;flex-wrap:wrap;gap:6px 10px;color:#667085;font-size:12px;line-height:1.35}.flow-cluster-item p,.flow-cluster-item small{margin:0;color:#667085;line-height:1.45;overflow-wrap:anywhere;white-space:pre-wrap}.flow-cluster-item small{color:#8a96a8}.flow-empty-date{padding:14px;border:1px dashed #d8e1ed;border-radius:8px;color:#8a96a8;background:#fff}.flow-calendar-board{display:grid;gap:16px;min-width:min-content}.flow-calendar-month{display:grid;gap:8px;min-width:1260px}.flow-calendar-month-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 2px}.flow-calendar-month-head strong{color:#172033;font-size:16px}.flow-calendar-month-head span{color:#667085;font-size:13px}.flow-calendar-weekdays,.flow-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(168px,1fr));gap:1px;border:1px solid #dbe5ef;border-radius:8px;overflow:hidden;background:#e3e9f2}.flow-calendar-weekdays{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flow-calendar-weekdays span{padding:8px 10px;color:#667085;background:#f8fafc;font-size:12px;font-weight:700;text-align:center}.flow-calendar-grid{border-top-left-radius:0;border-top-right-radius:0}.flow-calendar-undated{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));min-width:420px;border-radius:8px}.flow-calendar-day{display:grid;align-content:start;gap:8px;min-height:156px;padding:10px;background:#fff}.flow-calendar-day.is-empty{background:#f8fafc}.flow-calendar-day.is-quiet{background:#fbfcfe}.flow-calendar-date{display:flex;align-items:center;justify-content:space-between;gap:8px}.flow-calendar-date strong{color:#172033;font-variant-numeric:tabular-nums lining-nums}.flow-calendar-date span{color:#8a96a8;font-size:12px}.flow-calendar-clusters{display:grid;gap:6px}.flow-calendar-cluster{border:1px solid #dbe5ef;border-radius:7px;overflow:hidden;background:var(--cluster-bg);box-shadow:inset 3px 0 0 var(--cluster-color)}.flow-calendar-cluster summary{justify-content:space-between;min-height:30px;padding:6px 8px;color:#172033;font-size:12px;font-weight:700}.flow-calendar-cluster-name{display:inline-flex;align-items:center;min-width:0;gap:6px}.flow-calendar-cluster-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-calendar-cluster summary b{color:var(--cluster-color);font-variant-numeric:tabular-nums lining-nums}.flow-calendar-items{display:grid;gap:4px;padding:0 7px 7px}.flow-calendar-empty-add{display:grid}.flow-calendar-item{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;width:100%;padding:6px;border:0;border-radius:6px;color:#172033;background:#ffffffb8;text-align:left;cursor:pointer}.flow-calendar-item:hover,.flow-calendar-item:focus-visible{background:#fff;outline:1px solid rgba(22,119,255,.34)}.flow-calendar-item strong,.flow-calendar-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-calendar-item .ant-tag{margin-inline-end:0;font-size:12px}.flow-calendar-item span,.flow-calendar-more{color:#667085;font-size:12px}.flow-calendar-matrix-wrap{width:max-content;min-width:100%;overflow:visible}.flow-calendar-matrix{display:grid;width:max-content;min-width:100%;border:1px solid #dbe5ef;border-radius:8px;background:#e3e9f2;box-shadow:0 14px 32px #15233a14}.flow-calendar-corner,.flow-calendar-date-head,.flow-calendar-category-head,.flow-calendar-matrix-cell{min-height:108px;padding:10px;border-right:1px solid #e3e9f2;border-bottom:1px solid #e3e9f2;background:#fffffff5}.flow-calendar-corner{position:sticky;top:0;left:0;z-index:9;display:grid;align-content:center;gap:4px;min-height:72px;background:#f8fafce0;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);box-shadow:1px 0 #dbe5ef,0 1px #dbe5ef}.flow-calendar-corner strong,.flow-calendar-category-head strong{color:#172033;line-height:1.35}.flow-calendar-corner span,.flow-calendar-date-head small,.flow-calendar-date-head span{color:#667085;font-size:12px}.flow-calendar-date-head{position:sticky;top:0;z-index:7;display:grid;align-content:center;gap:2px;min-height:72px;background:#f8fafce0;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 1px #dbe5ef}.flow-calendar-date-head strong{color:#172033;font-size:18px;font-variant-numeric:tabular-nums lining-nums}.flow-calendar-date-head b{width:fit-content;margin-top:4px;padding:2px 8px;border-radius:999px;background:#eef5ff;color:#0b65d8;font-size:12px;font-variant-numeric:tabular-nums lining-nums}.flow-calendar-category-head{position:sticky;left:0;z-index:6;display:grid;grid-template-columns:auto minmax(0,1fr);align-content:start;align-items:center;gap:9px;background:color-mix(in srgb,var(--cluster-bg) 82%,rgba(255,255,255,.92));-webkit-backdrop-filter:blur(14px) saturate(1.16);backdrop-filter:blur(14px) saturate(1.16);box-shadow:inset 4px 0 0 var(--cluster-color),1px 0 #dbe5ef}.flow-calendar-category-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-calendar-matrix-cell{display:grid;align-content:start;gap:8px;min-height:132px;background:#fff}.flow-calendar-matrix-cell.has-items{background:linear-gradient(180deg,color-mix(in srgb,var(--cluster-bg) 58%,#fff),#fff 52%),#fff}.flow-calendar-cell-count{display:inline-flex;align-items:baseline;gap:4px;width:fit-content;padding:2px 8px;border-radius:999px;background:var(--cluster-bg);color:var(--cluster-color);font-size:12px}.flow-calendar-cell-count strong{font-size:14px}.flow-calendar-more-button{width:fit-content;padding:4px 8px;border:1px dashed color-mix(in srgb,var(--cluster-color) 42%,#dbe5ef);border-radius:7px;background:#ffffffd6;color:var(--cluster-color);cursor:pointer;font-size:12px}.flow-calendar-more-button:hover,.flow-calendar-more-button:focus-visible{background:#fff;outline:none}.flow-calendar-empty{color:#a3adbc;font-size:13px}.flow-hierarchy-list{display:grid;gap:12px;max-width:1040px}.flow-hierarchy-date{display:grid;gap:10px;padding:12px;border:1px solid #dbe5ef;border-radius:8px;background:#fff}.flow-hierarchy-date>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:1px solid #eef2f7}.flow-hierarchy-date>header div{display:grid;gap:2px}.flow-hierarchy-date>header span{color:#8a96a8;font-size:12px}.flow-hierarchy-date>header strong{color:#172033;font-size:16px;font-variant-numeric:tabular-nums lining-nums}.flow-hierarchy-clusters{display:grid;gap:10px}.flow-hierarchy-cluster{display:grid;gap:8px;padding:10px 10px 10px 12px;border:1px solid #e3e9f2;border-radius:8px;background:var(--cluster-bg);box-shadow:inset 3px 0 0 var(--cluster-color)}.flow-hierarchy-cluster h4{display:flex;align-items:center;gap:8px;margin:0;color:#172033;font-size:14px;line-height:1.35}.flow-hierarchy-cluster h4 small{color:#667085;font-size:12px;font-weight:500}.flow-hierarchy-cluster ol{display:grid;gap:8px;margin:0;padding-left:22px}.flow-hierarchy-cluster li{color:#667085}.flow-cluster-matrix-wrap{position:relative;width:max-content;min-width:100%;overflow:visible}.flow-cluster-matrix{min-width:1120px;table-layout:fixed;border-spacing:0;border-collapse:separate;border:1px solid #dbe5ef;border-radius:8px;overflow:visible;background:#fff;box-shadow:0 12px 30px #15233a14}.flow-cluster-matrix th,.flow-cluster-matrix td{width:240px;min-width:240px;max-width:300px;padding:10px;border-right:1px solid #e3e9f2;border-bottom:1px solid #e3e9f2;vertical-align:top}.flow-cluster-matrix th:first-child{position:sticky;left:0;z-index:9;width:170px;min-width:170px;max-width:170px;background:#f8fafce0;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);box-shadow:1px 0 #dbe5ef}.flow-cluster-matrix thead th{position:sticky;top:0;z-index:10;height:46px;color:#172033;background:#f8fafce0;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);font-size:13px;box-shadow:0 1px #dbe5ef}.flow-cluster-matrix thead th:first-child{z-index:12;box-shadow:1px 0 #dbe5ef,0 1px #dbe5ef}.flow-cluster-matrix thead th:not(:first-child){box-shadow:inset 0 -3px 0 var(--cluster-color)}.flow-cluster-matrix tbody th{color:#172033;text-align:left;font-variant-numeric:tabular-nums lining-nums}.flow-cluster-matrix tbody th strong,.flow-cluster-matrix tbody th span{display:block}.flow-cluster-matrix tbody th span{margin-top:4px;color:#8a96a8;font-size:12px}.flow-cluster-matrix tbody th span+span{color:#0b65d8}.flow-matrix-cluster-head{display:inline-flex;align-items:center;gap:8px}.flow-cluster-matrix td{background:#fff}.flow-matrix-cell-list{display:grid;gap:8px}.flow-matrix-empty{color:#a3adbc;font-size:13px}.timeline-source-references{display:grid;gap:8px;padding:10px;border:1px solid #e8edf5;border-radius:8px;background:#f8fafc}.timeline-source-references article{display:grid;gap:3px;padding:8px;border:1px solid #e3e9f2;border-radius:7px;background:#fff}.timeline-source-references strong{color:#172033;font-size:13px}.timeline-source-references small{color:#667085;font-size:12px}.timeline-source-references p{margin:0;color:#667085;font-size:12px;line-height:1.45}.flow-detail-cell-list{display:grid;gap:10px;max-height:60vh;overflow:auto}.flow-detail-cell-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 10px;width:100%;padding:10px;border:1px solid #e3e9f2;border-radius:8px;background:#fff;text-align:left;cursor:pointer}.flow-detail-cell-item:hover,.flow-detail-cell-item:focus-visible{border-color:#8bbcff;background:#f8fbff;outline:none}.flow-detail-cell-item .ant-tag{margin-inline-end:0}.flow-detail-cell-item strong,.flow-detail-cell-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-detail-cell-item span{grid-column:2;color:#667085;font-size:12px}.minute-operation-log-list{display:grid;gap:10px;max-height:62vh;overflow:auto;padding-right:4px}.minute-operation-log-item{display:grid;gap:8px;padding:12px;border:1px solid #e3e9f2;border-radius:8px;background:#fff}.minute-operation-log-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px}.minute-operation-log-head .ant-tag{margin-inline-end:0}.minute-operation-log-head strong{overflow:hidden;color:#172033;text-overflow:ellipsis;white-space:nowrap}.minute-operation-log-head span,.minute-operation-log-meta{color:#667085;font-size:12px}.minute-operation-log-meta{display:flex;flex-wrap:wrap;gap:6px 12px}.minute-operation-log-item details{border-top:1px solid #eef2f7;padding-top:8px}.minute-operation-log-item summary{color:#475467;cursor:pointer;font-size:12px;font-weight:700}.minute-operation-log-item pre{max-height:220px;margin:8px 0 0;overflow:auto;padding:10px;border-radius:8px;background:#f7f9fc;color:#344054;font-size:12px;line-height:1.45;white-space:pre-wrap}.pending-list{display:grid;gap:10px}.pending-item{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #ffe1a3;border-radius:8px;background:#fffaf0}.pending-item>.anticon{color:#d98a00;font-size:20px}.pending-item div{display:grid;flex:1;gap:3px;min-width:0}.pending-item strong,.pending-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending-item span{color:#667085}@media(max-width:1280px){.minutes-workspace{grid-template-columns:320px minmax(0,1fr)}}@media(max-width:1440px){.minute-tabs>.ant-tabs-nav{align-items:flex-start}}@media(max-width:960px){.construction-minutes-page{height:auto}.minutes-workspace{display:block;overflow:visible}.minute-source-panel{max-height:420px;border-right:0;border-bottom:1px solid #e3e9f2}.analysis-actions{grid-template-columns:repeat(2,minmax(136px,1fr));justify-content:stretch;width:100%}.analysis-actions .ant-btn,.analysis-model-cascader{width:100%}.flow-canvas-controls{right:8px;left:8px;min-width:0}.flow-canvas-zoom-value{flex-basis:38px}.flow-canvas-horizontal-scrollbar{right:8px;left:8px}.flow-view-header{align-items:stretch;flex-direction:column}.flow-view-header .ant-segmented{width:100%;overflow-x:auto}.flow-tree-date-node{flex-basis:300px}.flow-calendar-month{min-width:980px}.flow-calendar-weekdays,.flow-calendar-grid{grid-template-columns:repeat(7,minmax(136px,1fr))}.flow-cluster-matrix{min-width:940px}}.minutes-workspace,.minute-original-panel,.minute-original-viewer,.element-category-panel,.element-items-panel,.flow-canvas-frame,.flow-view-frame,.flow-view-canvas-shell,.flow-calendar-board,.flow-calendar-month,.flow-calendar-matrix-wrap,.flow-cluster-matrix-wrap,.minute-operation-log-item,.pending-item{border-color:var(--color-border);border-radius:var(--radius-card);background:var(--color-card-bg);box-shadow:var(--shadow-card)}.minute-source-panel,.source-heading,.minute-tabs>.ant-tabs-nav,.flow-view-header,.flow-calendar-month-head,.flow-hierarchy-date>header,.flow-cluster-matrix th,.flow-cluster-matrix td,.minute-operation-log-item summary{border-color:var(--color-divider)}.minute-source-panel,.source-summary div,.active-minute-scope,.minute-original-text,.minute-original-doc,.minute-original-sheets,.element-category-panel,.flow-filter-bar,.flow-add-bar,.flow-canvas-controls,.flow-canvas-horizontal-scrollbar,.flow-canvas-vertical-scrollbar,.flow-view-body,.flow-tree-date-node,.flow-calendar-weekdays,.flow-calendar-day.is-quiet,.flow-calendar-empty,.flow-hierarchy-date,.minute-operation-log-item pre,.pending-item{background:var(--color-surface-bg)}.source-heading strong,.source-summary strong,.active-minute-scope strong,.minute-original-task-loading strong,.element-category-panel-head strong,.element-category-name strong,.element-card>strong,.flow-view-summary strong,.flow-column-head strong,.flow-row-head strong,.flow-matrix-event strong,.flow-tree-date-text strong,.flow-cluster-node summary strong,.flow-cluster-item strong,.flow-editable-item strong,.flow-calendar-month-head strong,.flow-calendar-date strong,.flow-calendar-cluster-name strong,.flow-calendar-item strong,.flow-calendar-corner strong,.flow-calendar-category-head strong,.flow-hierarchy-date>header strong,.flow-hierarchy-cluster h4,.flow-cluster-matrix tbody th strong,.timeline-source-references strong,.flow-detail-cell-item strong,.minute-operation-log-head strong,.pending-item strong{color:var(--color-text-primary)}.source-summary span,.source-search span,.minute-source-date,.minute-source-meta,.active-minute-scope span,.minute-original-task-loading span,.element-category-panel-head span,.element-category-more,.element-category-child span,.element-card>p,.element-source-trace span,.timeline-source-references>span,.element-card small,.flow-editor-head span,.flow-matrix-event p,.flow-matrix-event small,.flow-view-summary,.flow-tree-date-text small,.flow-cluster-node summary span:last-child,.flow-cluster-item p,.flow-cluster-item small,.flow-calendar-month-head span,.flow-calendar-date span,.flow-calendar-item span,.flow-calendar-more,.flow-calendar-corner span,.flow-calendar-date-head small,.flow-calendar-date-head span,.flow-hierarchy-date>header span,.flow-hierarchy-cluster h4 small,.flow-cluster-matrix tbody th span,.timeline-source-references small,.timeline-source-references p,.flow-detail-cell-item span,.minute-operation-log-head span,.minute-operation-log-meta,.pending-item span{color:var(--color-text-secondary)}.minute-source-card,.element-card,.flow-matrix-event,.flow-cell-editor,.flow-cluster-node,.flow-cluster-item,.flow-editable-item,.flow-calendar-cluster,.flow-calendar-item,.flow-hierarchy-cluster,.timeline-source-references article,.flow-detail-cell-item{border-color:var(--color-border);border-radius:var(--radius-card);background:var(--color-card-bg)}.minute-source-card:hover,.minute-source-card.active,.element-card:hover,.flow-cluster-node:hover,.flow-cluster-item:hover,.flow-cluster-item:focus-visible,.flow-editable-item:hover,.flow-editable-item:focus-visible,.flow-calendar-item:hover,.flow-calendar-item:focus-visible,.flow-detail-cell-item:hover,.flow-detail-cell-item:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 2px #1f6fbb1a}.minute-source-card.active,.flow-matrix-cell.editing,.flow-calendar-matrix-cell.has-items,.flow-calendar-cell-count,.flow-calendar-more-button:hover,.flow-calendar-more-button:focus-visible{background:var(--color-primary-soft)}.minute-source-card.extracting,.flow-event-调整{background:var(--color-warning-bg)}.flow-event-确认{background:var(--color-success-bg)}.flow-event-风险{background:var(--color-error-bg)}.flow-empty-cell,.flow-calendar-empty-add,.flow-calendar-more-button{color:var(--color-primary)}.flow-canvas-controls .ant-slider .ant-slider-track,.flow-canvas-horizontal-scrollbar .ant-slider .ant-slider-track,.flow-canvas-vertical-scrollbar .ant-slider .ant-slider-track{background:var(--color-primary)}.flow-canvas-controls .ant-slider .ant-slider-handle:after,.flow-canvas-horizontal-scrollbar .ant-slider .ant-slider-handle:after,.flow-canvas-vertical-scrollbar .ant-slider .ant-slider-handle:after{box-shadow:0 0 0 2px var(--color-primary)}.ai-chat-modal .ant-modal-content{padding:18px}.ai-chat-modal .ant-modal-body{min-height:0}.ai-chat-shell{border:1px solid var(--color-border);border-radius:var(--radius-card);display:grid;grid-template-columns:260px minmax(0,1fr);height:min(78vh,760px);overflow:hidden}.ai-chat-sidebar{background:var(--color-surface-bg);border-right:1px solid var(--color-border);display:flex;flex-direction:column;gap:12px;min-width:0;padding:12px}.ai-chat-session-list{align-content:start;display:grid;flex:1;gap:8px;overflow:auto}.ai-chat-session{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);color:var(--color-text-primary);cursor:pointer;display:grid;gap:5px;padding:10px;text-align:left}.ai-chat-session:hover,.ai-chat-session.active{border-color:var(--color-primary);box-shadow:0 0 0 2px #1f6fbb14}.ai-chat-session strong,.ai-chat-title-row strong{color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-chat-session span{color:var(--color-text-tertiary);font-size:12px}.ai-chat-main{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;min-width:0;overflow:hidden}.ai-chat-title-row{align-items:center;border-bottom:1px solid var(--color-divider);display:flex;gap:12px;justify-content:space-between;min-height:56px;padding:10px 14px}.ai-chat-title-row .ant-input{max-width:520px}.ai-chat-messages{background:var(--color-surface-bg);align-content:start;display:grid;gap:12px;min-height:0;overflow:auto;padding:16px;scroll-behavior:smooth}.ai-chat-message{display:grid;gap:6px;max-width:86%}.ai-chat-message span{color:var(--color-text-tertiary);font-size:12px}.ai-chat-bubble{border:1px solid var(--color-border);border-radius:var(--radius-card);color:var(--color-text-primary);line-height:1.7;margin:0;max-width:100%;overflow-wrap:anywhere;padding:10px 12px;white-space:pre-wrap;word-break:break-word}.ai-chat-message.user,.ai-chat-message.user span{justify-self:end}.ai-chat-message.user .ai-chat-bubble{background:var(--color-primary-soft);border-color:color-mix(in srgb,var(--color-primary) 22%,var(--color-border))}.ai-chat-message.assistant{justify-self:start}.ai-chat-message.assistant .ai-chat-bubble{background:var(--color-card-bg)}.ai-chat-markdown{line-height:1.75;white-space:normal}.ai-chat-markdown .ant-typography{color:var(--color-text-primary);margin:16px 0 8px}.ai-chat-markdown .ant-typography:first-child{margin-top:0}.ai-chat-markdown p{margin:0 0 10px;white-space:pre-wrap}.ai-chat-markdown p:last-child,.ai-chat-markdown ul:last-child,.ai-chat-markdown ol:last-child{margin-bottom:0}.ai-chat-markdown ul,.ai-chat-markdown ol{margin:0 0 12px 22px;padding:0}.ai-chat-markdown li{margin-bottom:5px}.ai-chat-markdown strong{color:var(--color-text-primary);font-weight:700}.ai-chat-markdown code{background:var(--color-surface-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px;padding:1px 4px}.ai-chat-markdown hr{border:0;border-top:1px solid var(--color-border);margin:14px 0}.ai-chat-markdown-table{border:1px solid var(--color-border);border-radius:var(--radius-card);margin:10px 0 14px;overflow:auto;width:100%}.ai-chat-markdown-table table{border-collapse:collapse;min-width:640px;width:100%}.ai-chat-markdown-table th,.ai-chat-markdown-table td{border-bottom:1px solid var(--color-divider);border-right:1px solid var(--color-divider);padding:8px 10px;text-align:left;vertical-align:top}.ai-chat-markdown-table th{background:var(--color-surface-bg);color:var(--color-text-primary);font-weight:700}.ai-chat-markdown-table tr:last-child td{border-bottom:0}.ai-chat-markdown-table th:last-child,.ai-chat-markdown-table td:last-child{border-right:0}.ai-chat-input{align-items:flex-end;background:var(--color-card-bg);border-top:1px solid var(--color-divider);display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;padding:12px 14px}.ai-chat-input .ant-input{max-height:132px;overflow:auto}@media(max-width:820px){.ai-chat-shell{grid-template-columns:1fr;height:76vh}.ai-chat-sidebar{border-bottom:1px solid var(--color-border);border-right:0;max-height:180px}.ai-chat-input{grid-template-columns:1fr}.ai-chat-input .ant-btn{justify-self:end}}.construction-progress-page{padding-bottom:24px}.progress-summary-row,.progress-detail-row,.progress-overview-row,.construction-progress-page .task-table-card{margin-bottom:16px}.progress-summary-row .ant-col,.equal-card-row .ant-col{display:flex}.summary-card .ant-card-body{align-items:center;display:grid;gap:8px 12px;grid-template-columns:auto 1fr;min-height:92px}.summary-card .anticon{align-items:center;border-radius:var(--radius-md);color:var(--color-text-inverse);display:inline-flex;font-size:22px;grid-row:span 2;height:44px;justify-content:center;width:44px}.summary-card span{color:var(--color-text-secondary);font-size:13px}.summary-card strong{color:var(--color-text-primary);font-size:22px;line-height:1.2}.summary-card-plan .anticon{background:var(--color-primary)}.summary-card-current .anticon{background:var(--color-accent)}.summary-card-done .anticon{background:var(--color-success)}.summary-card-risk .anticon{background:var(--color-warning)}.progress-overview-card,.focus-card,.project-progress-card,.recent-feedback-card,.task-table-card{border-radius:var(--radius-card)}.summary-card,.equal-card-row .ant-card{display:flex;flex-direction:column;height:100%;width:100%}.equal-card-row .ant-card-body{display:flex;flex:1;flex-direction:column}.progress-detail-row .ant-card-body,.progress-overview-row .ant-card-body{min-height:360px}.task-table-card .ant-card-body{padding-bottom:12px}.overall-progress{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:24px}.overall-progress span{color:var(--color-text-secondary);display:block;margin-bottom:8px}.month-strip{display:grid;flex:1;gap:10px;grid-template-columns:repeat(6,minmax(0,1fr))}.month-pill{background:var(--color-surface-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);color:var(--color-text-primary);cursor:pointer;display:grid;gap:6px;min-height:112px;padding:10px;text-align:left}.month-pill:hover,.month-pill.active{border-color:var(--color-primary);box-shadow:0 0 0 2px #1f6fbb1a}.month-pill.current{background:var(--color-primary-soft)}.month-pill.has-risk{border-color:var(--color-warning)}.month-pill span,.month-pill small{color:var(--color-text-secondary)}.month-pill strong{font-size:22px}.focus-list,.recent-feedback-list{display:grid;align-content:start;flex:1;gap:10px;max-height:560px;overflow:auto;padding-right:4px}.focus-item{align-items:center;background:var(--color-surface-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);display:flex;gap:10px;justify-content:space-between;padding:10px 12px}.focus-item div{display:grid;gap:3px;min-width:0}.focus-item strong{color:var(--color-text-primary)}.focus-item span{color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-progress-list{align-content:start;display:grid;flex:1;gap:10px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.project-progress-item{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);color:var(--color-text-primary);cursor:pointer;display:grid;gap:8px;padding:12px;text-align:left}.project-progress-item:hover,.project-progress-item.active{border-color:var(--color-primary);box-shadow:0 0 0 2px #1f6fbb1a}.project-progress-head{align-items:flex-start;display:flex;gap:8px;justify-content:space-between}.project-progress-head div{display:grid;gap:2px;min-width:0}.project-progress-head strong{color:var(--color-text-primary)}.project-progress-head span,.owner-row{color:var(--color-text-secondary);font-size:13px}.owner-row{align-items:center;display:flex;gap:6px;min-width:0}.owner-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-feedback-item{background:var(--color-surface-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);display:grid;gap:6px;padding:10px 12px}.recent-feedback-head{align-items:center;display:flex;justify-content:space-between}.recent-feedback-item strong{color:var(--color-text-primary)}.recent-feedback-item p{color:var(--color-text-primary);margin:0;white-space:pre-wrap}.recent-feedback-item small,.recent-feedback-item span{color:var(--color-text-tertiary)}.focus-card .ant-empty,.recent-feedback-card .ant-empty{margin:auto}.task-toolbar{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.task-title{display:grid;gap:4px}.task-title strong{color:var(--color-text-primary)}.task-title span,.progress-cell small,.muted-text{color:var(--color-text-tertiary)}.plan-content{display:grid;gap:4px;line-height:1.55}.plan-content span{color:var(--color-text-primary)}.plan-content span:before{color:var(--color-primary);content:"•";margin-right:6px}.plan-content small{color:var(--color-text-tertiary);margin-top:2px}.progress-cell,.feedback-cell{width:100%}.feedback-cell span{color:var(--color-text-primary);white-space:pre-wrap}.feedback-cell small{color:var(--color-text-tertiary)}.feedback-action-button{align-items:center;background:var(--color-primary-soft);border-color:color-mix(in srgb,var(--color-primary) 24%,var(--color-border));border-radius:var(--radius-sm);color:var(--color-primary);display:inline-flex;height:28px;justify-content:center;min-width:28px;padding:0;width:28px}.feedback-action-button:hover,.feedback-action-button:focus-visible{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary-active)}.feedback-delete-button{background:var(--color-error-bg);border-color:color-mix(in srgb,var(--color-error) 24%,var(--color-border))}.feedback-action-button .anticon{font-size:13px}.focus-record-button{flex:0 0 auto}.drawer-task-context{background:var(--color-surface-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);margin-bottom:24px;padding:14px}.drawer-task-context h3{color:var(--color-text-primary);font-size:18px;margin:10px 0 8px}.drawer-actions{display:flex;justify-content:flex-end;width:100%}@media(max-width:980px){.progress-detail-row .ant-card,.progress-overview-row .ant-card{height:auto}.overall-progress,.month-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.task-toolbar{align-items:stretch;flex-direction:column}}@media(max-width:560px){.overall-progress,.month-strip,.project-progress-list{grid-template-columns:1fr}.summary-card .ant-card-body{min-height:82px}}.tender-card{border-radius:var(--radius-card);margin-bottom:16px}.tender-file-search{background:var(--color-surface-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);margin-bottom:16px;padding:12px}.tender-file-search .ant-form-item{margin-bottom:10px}.tender-file-search-results{display:grid;gap:8px}.tender-file-search-result{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);color:var(--color-text-primary);cursor:pointer;display:grid;gap:7px;padding:9px 10px;text-align:left;transition:border-color .16s ease,box-shadow .16s ease;width:100%}.tender-file-search-result:hover{border-color:var(--color-primary);box-shadow:0 0 0 2px #1f6fbb1a}.tender-file-search-result:disabled{cursor:not-allowed;opacity:.58}.tender-file-search-main{align-items:center;display:flex;gap:8px;justify-content:space-between;min-width:0}.tender-file-search-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tender-file-search-main .anticon{color:var(--color-primary);flex:0 0 auto}.tender-file-search-category{align-items:center;display:flex;flex-wrap:wrap;gap:5px}.tender-file-search-category .ant-tag{margin-inline-end:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}.file-check-list{display:block;max-height:220px;overflow:auto;padding:4px 0 12px}.file-check-list .ant-checkbox-wrapper{align-items:flex-start;width:100%}.tender-file-space{width:100%}.tender-file-checkbox{min-width:0;width:100%}.tender-file-checkbox .ant-checkbox+span{min-width:0;width:calc(100% - 22px)}.tender-file-option{display:grid;gap:4px;min-width:0}.tender-file-name{color:var(--color-text-primary);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tender-file-meta{align-items:center;color:var(--color-text-tertiary);display:flex;flex-wrap:nowrap;gap:6px;min-width:0;overflow:hidden;white-space:nowrap}.tender-file-meta .ant-tag{flex:0 0 auto;margin-inline-end:0}.tender-file-meta>span:not(.ant-tag){overflow:hidden;text-overflow:ellipsis}.tender-vendor-tag{cursor:text;max-width:120px;overflow:hidden;text-overflow:ellipsis}.tender-vendor-inline-input{flex:0 0 130px;width:130px}.generate-button{margin-top:14px}.tender-section-title{align-items:center;display:flex;justify-content:space-between;gap:8px;margin-top:6px}.tender-section-title .ant-typography{margin-bottom:0}.structured-context-box{background:var(--color-surface-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);display:grid;gap:8px;margin:4px 0 14px;padding:10px 12px}.comparison-list{width:100%}.comparison-item{width:100%;border:1px solid var(--color-border);background:var(--color-card-bg);border-radius:var(--radius-card);padding:10px 12px;text-align:left;cursor:pointer}.comparison-item.active{border-color:var(--color-primary);box-shadow:0 0 0 2px #1f6fbb1f}.comparison-item:disabled{cursor:not-allowed;opacity:.58}.comparison-item span,.comparison-item small{display:block;color:var(--color-text-tertiary);margin-top:4px}.tender-workspace{width:100%}.json-editor{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px}.conclusion-label{display:block;margin-top:16px}.progress-log{background:#172033;border-radius:var(--radius-card);color:var(--color-primary-light);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.7;margin-top:12px;max-height:220px;overflow:auto;padding:12px}.structured-inner-tabs,.structured-view{width:100%}.schema-summary{background:var(--color-surface-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);margin-bottom:12px;padding:14px}.schema-summary .ant-typography{margin-bottom:8px}.schema-category-grid,.requirement-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));width:100%}.schema-category-card,.requirement-card{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-card-bg);padding:12px}.schema-category-head,.requirement-card-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.schema-category-card p,.requirement-card p{color:var(--color-text-secondary);margin:0 0 10px;white-space:pre-wrap}.requirement-card h4{font-size:15px;margin:0 0 8px}.requirement-card-head span{color:var(--color-text-tertiary);font-size:12px}.source-box{background:var(--color-surface-bg);border-left:3px solid var(--color-primary);border-radius:var(--radius-sm);color:var(--color-text-secondary);display:grid;gap:4px;margin-top:10px;padding:8px 10px}.source-box strong{color:var(--color-text-primary)}.response-card .ant-typography{display:block;margin-bottom:6px}.markdown-preview{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);color:var(--color-text-primary);line-height:1.75;min-height:120px;padding:14px 16px;width:100%}.markdown-preview .ant-typography{margin:14px 0 8px}.markdown-preview .ant-typography:first-child{margin-top:0}.markdown-preview p{margin:0 0 10px;white-space:pre-wrap}.markdown-preview ul,.markdown-preview ol{margin:0 0 12px 22px;padding:0}.markdown-preview li{margin-bottom:4px}.markdown-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-card);margin:10px 0 14px;overflow:auto;width:100%}.markdown-table-wrap table{border-collapse:collapse;min-width:640px;width:100%}.markdown-table-wrap th,.markdown-table-wrap td{border-bottom:1px solid var(--color-divider);border-right:1px solid var(--color-divider);padding:8px 10px;text-align:left;vertical-align:top}.markdown-table-wrap th{background:var(--color-surface-bg);color:var(--color-text-primary);font-weight:600}.markdown-table-wrap tr:last-child td{border-bottom:0}.markdown-table-wrap th:last-child,.markdown-table-wrap td:last-child{border-right:0}.login-page{min-height:100vh;position:relative;overflow:hidden;background:linear-gradient(180deg,#f3f6fa,#f8f9fd 52%,#edf2fb);background-size:cover;background-position:center;background-repeat:no-repeat;background-blend-mode:normal;display:grid;grid-template-columns:minmax(320px,1fr) 424px;align-items:center;gap:64px;padding:64px 8vw}.login-grid{position:absolute;inset:0;background-image:none;background-color:transparent;-webkit-mask-image:none;mask-image:none;pointer-events:none;z-index:0}.login-brand-panel,.login-card{position:relative;z-index:1}.login-brand-panel{max-width:760px}.login-brand-panel img{width:80px;height:80px;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:#ffffffe6;box-shadow:var(--shadow-card)}.login-brand-panel h1{max-width:760px;margin:24px 0 12px;color:#0f172a;font-size:40px;font-weight:800;line-height:48px;letter-spacing:0}.login-brand-panel p{max-width:600px;color:#475569db;font-size:16px;line-height:24px;letter-spacing:0}.login-card{border:1px solid rgba(203,213,225,.8);border-radius:var(--radius-card);background:#fffffffa;box-shadow:0 20px 46px -28px #0f172a33;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.login-card .ant-card-body{padding:32px}.login-card-title h2{margin:0;color:#0f172a;font-size:24px;font-weight:750;line-height:32px;letter-spacing:0}.login-card-title span{display:block;margin:8px 0 24px;color:#475569e6;line-height:22px}.login-form .ant-input-affix-wrapper,.login-form .ant-input{background:#fffffff7;color:#0f172a}.login-form .ant-input-affix-wrapper .ant-input{color:#0f172a}.login-form .ant-input::placeholder{color:#64748b}.login-form .anticon,.login-options,.login-options .ant-checkbox-wrapper,.login-options .ant-btn-link{color:#475569f0}.login-options{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.login-button{height:var(--control-height-lg);font-size:16px;font-weight:700}.login-hint{margin-top:24px;padding-top:16px;border-top:1px solid rgba(226,232,240,.68);display:flex;flex-direction:column;gap:8px;color:#475569d6;font-size:13px;line-height:20px}@media(max-width:960px){.login-page{grid-template-columns:1fr;padding:32px 16px;gap:32px}.login-brand-panel h1{font-size:30px;line-height:38px}.login-card{width:100%}}.system-config-page{display:grid;gap:16px}.system-config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.system-config-card{border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.system-config-card .ant-card-body{padding:20px}.system-config-card-body{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px}.system-config-card-body>.anticon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);background:var(--color-primary-soft);color:var(--color-primary);font-size:22px}.system-config-card-body strong{display:block;color:var(--color-text-primary);font-size:16px;line-height:1.4}.system-config-card-body span{display:block;margin-top:4px;color:var(--color-text-secondary);line-height:1.5}.system-log-request{display:inline-flex;align-items:center;max-width:100%;gap:6px;min-width:0}.system-log-request code{display:inline-block;max-width:220px;overflow:hidden;color:var(--color-text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-overflow:ellipsis;white-space:nowrap}.system-log-detail{max-height:260px;margin:0;padding:12px;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-bg);color:var(--color-text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.system-log-detail::-webkit-scrollbar{width:8px;height:8px}.system-log-detail::-webkit-scrollbar-track{background:transparent}.system-log-detail::-webkit-scrollbar-thumb{border-radius:999px;background:var(--app-scrollbar-thumb)}@media(max-width:760px){.system-config-card-body{grid-template-columns:44px minmax(0,1fr)}.system-config-card-body .ant-btn{grid-column:1 / -1}}.user-management-page .ant-tabs-nav{margin-bottom:24px}.table-toolbar,.permission-toolbar{margin-bottom:16px}.muted{color:var(--color-text-tertiary)}.permission-panel{display:flex;flex-direction:column}.permission-panel .ant-checkbox-group{width:100%}.permission-groups{display:grid;grid-template-columns:1fr;gap:16px}.permission-group .ant-checkbox-wrapper{align-items:flex-start;width:100%}.permission-option{display:block;min-width:0}.permission-title-row{display:flex;align-items:center;gap:8px;min-width:0}.permission-name{display:block;color:var(--color-text-primary);font-weight:600}.permission-info-icon{color:var(--color-text-tertiary);flex:0 0 auto;font-size:13px}.permission-group small{display:block;color:var(--color-text-tertiary);margin-top:4px;overflow-wrap:anywhere}.permission-tooltip-content{display:grid;gap:4px;line-height:1.5;max-width:320px}.permission-tooltip-content code{color:#ffffffc7;font-size:12px;overflow-wrap:anywhere}*{box-sizing:border-box}:root{--color-primary: #1f6fbb;--color-primary-hover: #185c9f;--color-primary-active: #124a82;--color-primary-light: #dcecff;--color-primary-soft: #eef6ff;--color-secondary: #667085;--color-accent: #0f8f8f;--color-page-bg: #f3f6fa;--color-card-bg: #ffffff;--color-surface-bg: #f8fafc;--color-elevated-bg: #ffffff;--color-overlay-bg: rgba(15, 23, 42, .45);--color-border: #dbe5ef;--color-divider: #e8eef6;--color-text-primary: #172033;--color-text-secondary: #536176;--color-text-tertiary: #8a98aa;--color-text-disabled: #b7c2d0;--color-text-inverse: #ffffff;--color-success: #1c8f5a;--color-warning: #d97706;--color-error: #d92d20;--color-info: #1f6fbb;--color-success-bg: #e8f7ef;--color-warning-bg: #fff4df;--color-error-bg: #fff0ed;--color-info-bg: #eef6ff;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 8px;--radius-card: 8px;--radius-modal: 12px;--radius-pill: 999px;--shadow-card: 0 1px 2px rgba(21, 35, 58, .06);--shadow-floating: 0 12px 28px rgba(21, 35, 58, .12);--shadow-modal: 0 20px 48px rgba(21, 35, 58, .18);--font-family-base: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-family-number: Inter, DIN, "Segoe UI", system-ui, sans-serif;--control-height-sm: 32px;--control-height-md: 40px;--control-height-lg: 48px;--app-scrollbar-size: 9px;--app-scrollbar-thumb: rgba(83, 97, 118, .44);--app-scrollbar-thumb-hover: rgba(83, 97, 118, .64);--app-scrollbar-track: rgba(219, 229, 239, .44)}*{scrollbar-color:var(--app-scrollbar-thumb) transparent;scrollbar-width:thin}*::-webkit-scrollbar{width:var(--app-scrollbar-size);height:var(--app-scrollbar-size)}*::-webkit-scrollbar-track{border-radius:999px;background:var(--app-scrollbar-track)}*::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:var(--app-scrollbar-thumb);background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--app-scrollbar-thumb-hover);background-clip:content-box}*::-webkit-scrollbar-corner{background:transparent}body{margin:0;font-family:var(--font-family-base);background:var(--color-page-bg);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{letter-spacing:0}button,input,textarea{font:inherit}::selection{background:var(--color-primary-light);color:var(--color-text-primary)}.page{max-width:none;margin:0 auto;min-width:0}.page-header{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--color-divider)}.page-header h1{margin:0;color:var(--color-text-primary);font-size:24px;font-weight:700;line-height:32px}.page-header p{margin:8px 0 0;color:var(--color-text-secondary);line-height:22px}.ant-card{border-radius:var(--radius-card);border-color:var(--color-border);background:var(--color-card-bg);box-shadow:var(--shadow-card)}.ant-card .ant-card-head{min-height:48px;border-bottom-color:var(--color-divider)}.ant-card .ant-card-head-title{color:var(--color-text-primary);font-weight:700}.ant-card .ant-card-body{color:var(--color-text-secondary)}.ant-table-wrapper .ant-table{color:var(--color-text-primary);border-radius:var(--radius-card)}.ant-table-wrapper .ant-table-thead>tr>th{background:var(--color-surface-bg);color:var(--color-text-secondary);font-weight:650}.ant-table-wrapper .ant-table-tbody>tr>td{border-bottom-color:var(--color-divider)}.ant-table-wrapper .ant-table-tbody>tr.ant-table-row:hover>td,.ant-table-wrapper .ant-table-tbody>tr>td.ant-table-cell-row-hover{background:var(--color-primary-soft)}.ant-btn{box-shadow:none;font-weight:600}.ant-btn-primary{background:var(--color-primary);border-color:var(--color-primary)}.ant-btn-primary:not(:disabled):not(.ant-btn-disabled):hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.ant-btn-primary:not(:disabled):not(.ant-btn-disabled):active{background:var(--color-primary-active);border-color:var(--color-primary-active)}.ant-btn-default,.ant-input,.ant-input-affix-wrapper,.ant-picker,.ant-select:not(.ant-select-customize-input) .ant-select-selector{border-color:var(--color-border);border-radius:var(--radius-md)}.ant-input:hover,.ant-input-affix-wrapper:hover,.ant-picker:hover,.ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-color:var(--color-primary)}.ant-input:focus,.ant-input-affix-wrapper-focused,.ant-picker-focused,.ant-select-focused:not(.ant-select-disabled) .ant-select-selector{border-color:var(--color-primary)!important;box-shadow:0 0 0 2px #1f6fbb1a!important}.ant-select:not(.ant-select-disabled) .ant-select-arrow,.ant-select:not(.ant-select-disabled):hover .ant-select-arrow,.ant-select-focused:not(.ant-select-disabled) .ant-select-arrow,.ant-select-open:not(.ant-select-disabled) .ant-select-arrow,.ant-select:not(.ant-select-disabled):active .ant-select-arrow{color:var(--color-text-secondary)!important;filter:none;opacity:1!important}.ant-tag:not(.ant-tag-has-color){box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;border-radius:var(--radius-md);font-size:12px;font-weight:600;height:auto;line-height:18px;padding:4px 10px;margin-inline-end:8px;border:1px solid var(--color-border)!important;background:var(--color-surface-bg)!important;color:var(--color-text-secondary)!important;transition:transform .12s ease,box-shadow .12s ease}.ant-tag:hover{box-shadow:0 0 0 2px #1f6fbb14}.ant-tag:not(.ant-tag-has-color) .anticon,.ant-tag:not(.ant-tag-has-color){color:var(--color-text-secondary)!important}.ant-tag-default{color:var(--color-text-secondary)!important;background:var(--color-surface-bg)!important;border-color:var(--color-border)!important}.ant-tag-orange{color:#b35a00!important;background:#fff4df!important;border-color:color-mix(in srgb,#d46b08 38%,var(--color-border))!important}.ant-tag-red{color:#cf1322!important;background:#fff1f0!important;border-color:color-mix(in srgb,#f5222d 38%,var(--color-border))!important}.ant-tag-gold{color:#ad6800!important;background:#fffbe6!important;border-color:color-mix(in srgb,#d4b106 38%,var(--color-border))!important}.ant-tag-volcano{color:#d4380d!important;background:#fff2e8!important;border-color:color-mix(in srgb,#fa541c 38%,var(--color-border))!important}.ant-tag-cyan{color:#08979c!important;background:#e6fffb!important;border-color:color-mix(in srgb,#13c2c2 38%,var(--color-border))!important}.ant-tag-lime{color:#5b8c00!important;background:#fcffe6!important;border-color:color-mix(in srgb,#95de64 38%,var(--color-border))!important}.ant-tag-magenta,.ant-tag-pink{color:#c41d7f!important;background:#fff0f6!important;border-color:color-mix(in srgb,#eb2f96 38%,var(--color-border))!important}.ant-tag-processing,.ant-tag-success{color:var(--color-success)!important;background:var(--color-success-bg)!important;border-color:color-mix(in srgb,var(--color-success) 36%,var(--color-border))!important}.ant-tag-warning{color:var(--color-warning)!important;background:var(--color-warning-bg)!important;border-color:color-mix(in srgb,var(--color-warning) 36%,var(--color-border))!important}.ant-tag-error{color:var(--color-error)!important;background:var(--color-error-bg)!important;border-color:color-mix(in srgb,var(--color-error) 36%,var(--color-border))!important}.ant-tag-blue{color:#0c57a8!important;background:#e6f2ff!important;border-color:#b9dcff!important}.ant-tag-geekblue{color:#2f54eb!important;background:#edf0ff!important;border-color:#c6cbff!important}.ant-tag-purple{color:#6f42c1!important;background:#efe7ff!important;border-color:#d3c3ff!important}.ant-tag-green{color:var(--color-success)!important;background:var(--color-success-bg)!important;border-color:color-mix(in srgb,var(--color-success) 36%,var(--color-border))!important}.ant-tabs .ant-tabs-tab{font-weight:650}.ant-tabs .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn,.ant-tabs .ant-tabs-tab:hover{color:var(--color-primary)}.ant-tabs .ant-tabs-ink-bar{background:var(--color-primary)}.ant-modal .ant-modal-content,.ant-drawer .ant-drawer-content{border-radius:var(--radius-modal);box-shadow:var(--shadow-modal)}.ant-modal .ant-modal-header{border-radius:var(--radius-modal) var(--radius-modal) 0 0}.ant-modal .ant-modal-title,.ant-drawer .ant-drawer-title{color:var(--color-text-primary);font-weight:700}.ant-dropdown .ant-dropdown-menu,.ant-popover .ant-popover-inner,.ant-picker-dropdown .ant-picker-panel-container{border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-floating)}.ant-statistic-title{color:var(--color-text-secondary);font-weight:600}.ant-statistic-content{color:var(--color-text-primary);font-family:var(--font-family-number);font-weight:700}.ant-empty-description{color:var(--color-text-tertiary)}.ant-alert{border-radius:var(--radius-card)}.ant-progress .ant-progress-bg{background:var(--color-primary)}@media(max-width:720px){.page-header{align-items:flex-start;flex-direction:column}.page-header h1{font-size:22px}}
