body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--kp-color-text-primary);background:var(--kp-color-page-bg)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}:root{--kp-color-primary: #1677ff;--kp-color-secondary: #13c2c2;--kp-color-accent: #722ed1;--kp-color-success: #52c41a;--kp-color-warning: #faad14;--kp-color-danger: #ff4d4f;--kp-color-text-primary: #1f1f1f;--kp-color-text-secondary: #595959;--kp-color-text-tertiary: #8c8c8c;--kp-color-border: #f0f0f0;--kp-color-page-bg: #f5f7fa;--kp-color-card-bg: #ffffff;--kp-color-hover-bg: #fafafa;--kp-font-size-h1: 28px;--kp-font-size-h2: 20px;--kp-font-size-h3: 16px;--kp-font-size-body: 14px;--kp-font-size-body-sm: 13px;--kp-font-size-caption: 12px;--kp-line-height-h1: 36px;--kp-line-height-h2: 28px;--kp-line-height-h3: 24px;--kp-line-height-body: 22px;--kp-line-height-body-sm: 20px;--kp-line-height-caption: 18px;--kp-space-1: 4px;--kp-space-2: 8px;--kp-space-3: 12px;--kp-space-4: 16px;--kp-space-5: 24px;--kp-space-6: 32px;--kp-radius-sm: 6px;--kp-radius-md: 8px;--kp-radius-lg: 12px;--kp-shadow-card: 0 1px 2px rgba(0, 0, 0, .04);--kp-shadow-card-hover: 0 4px 12px rgba(0, 0, 0, .08);--kp-shadow-modal: 0 8px 24px rgba(0, 0, 0, .16)}.kp-page{padding:var(--kp-space-5);min-height:100%;background:var(--kp-color-page-bg)}.kp-page-header{margin-bottom:var(--kp-space-4);padding:var(--kp-space-4);border-radius:var(--kp-radius-lg);background:var(--kp-color-card-bg);box-shadow:var(--kp-shadow-card)}.kp-page-header-main{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--kp-space-4)}.kp-page-title{margin:0;font-size:var(--kp-font-size-h2);line-height:var(--kp-line-height-h2);color:var(--kp-color-text-primary);font-weight:600}.kp-page-subtitle{margin-top:var(--kp-space-2);margin-bottom:0;font-size:var(--kp-font-size-body-sm);line-height:var(--kp-line-height-body-sm);color:var(--kp-color-text-secondary)}.kp-page-section{margin-top:var(--kp-space-4)}.kp-toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--kp-space-3);margin-bottom:var(--kp-space-4)}.kp-toolbar-left{flex:1;min-width:0}.kp-toolbar-right{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--kp-space-2)}.kp-user-search-form{display:flex;flex-wrap:wrap;gap:var(--kp-space-2)}.kp-user-search-form .ant-form-item{margin-bottom:0}.kp-market-filters{display:flex;gap:var(--kp-space-3);flex-wrap:wrap}@media(max-width:992px){.kp-page{padding:var(--kp-space-4)}.kp-page-header-main,.kp-toolbar{flex-direction:column;align-items:stretch}.kp-toolbar-right{justify-content:flex-start}.kp-market-filters>.kp-market-search,.kp-market-filters>.kp-market-category{width:100%!important}.kp-user-search-form .ant-form-item{width:100%;margin-right:0}.kp-user-search-form .ant-form-item-control{width:100%}.kp-user-search-form .ant-space{width:100%;justify-content:flex-start;flex-wrap:wrap}}@media(max-width:768px){.kp-page,.kp-page-header{padding:var(--kp-space-3)}.kp-page-title{font-size:18px;line-height:26px}}.kp-card{border-radius:var(--kp-radius-lg);box-shadow:var(--kp-shadow-card);background:var(--kp-color-card-bg)}.kp-card-hoverable:hover{box-shadow:var(--kp-shadow-card-hover)}.kp-card-title{margin:0;font-size:var(--kp-font-size-h3);line-height:var(--kp-line-height-h3);color:var(--kp-color-text-primary);font-weight:600}.kp-card-desc{margin:var(--kp-space-2) 0 0;color:var(--kp-color-text-secondary);font-size:var(--kp-font-size-body-sm);line-height:var(--kp-line-height-body-sm)}.kp-table .ant-table-thead>tr>th{background:#fafbfc}.kp-table .ant-table-tbody>tr:hover>td{background:var(--kp-color-hover-bg)}.kp-table-action-group{max-width:190px;row-gap:2px}.kp-action-btn.ant-btn{min-width:24px;height:24px;padding-inline:4px;border-radius:6px}.kp-action-btn.ant-btn:hover{background:#e6f4ff}.kp-table-ellipsis{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.kp-form .ant-form-item{margin-bottom:var(--kp-space-4)}.kp-form-modal .ant-modal-content{border-radius:var(--kp-radius-lg);box-shadow:var(--kp-shadow-modal)}.kp-btn-primary{border-radius:var(--kp-radius-md)}.kp-metric-card .ant-card-head{padding:16px 20px 0;border-bottom:none}.kp-metric-card .ant-card-body{padding:0 20px 16px}.kp-metric-value-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;gap:8px}.kp-metric-value{font-size:30px;font-weight:700;color:var(--kp-color-text-primary);line-height:1.1}.kp-metric-label{color:var(--kp-color-text-tertiary)}.kp-status-row{margin-top:16px;padding-top:8px;border-top:1px solid var(--kp-color-border);display:flex;justify-content:space-between;gap:8px;font-size:12px}.kp-market-card-main{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.kp-market-stat{min-width:120px;border-radius:10px}.kp-market-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.kp-integration-list .ant-list-item{padding:0;margin-bottom:var(--kp-space-3)}.kp-integration-card{width:100%}.kp-integration-card-active{background:#f6ffed;border:1px solid #b7eb8f}.kp-integration-title{display:flex;justify-content:space-between;align-items:center;gap:var(--kp-space-3)}.kp-integration-title-main{display:flex;align-items:center;gap:var(--kp-space-2);min-width:0}.kp-integration-tip-icon{color:#bfbfbf;font-size:14px}.kp-integration-platform-hint{font-size:12px;color:#1677ff;margin-top:4px}.kp-incident-card .ant-card-head{min-height:56px}.kp-incident-card .ant-card-body{padding-top:14px}.kp-incident-title-row{display:flex;align-items:center;gap:var(--kp-space-2);min-width:0}.kp-incident-title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kp-incident-meta{display:grid;gap:var(--kp-space-2)}.kp-incident-meta-row{display:flex;gap:6px;align-items:flex-start;font-size:var(--kp-font-size-body-sm);color:var(--kp-color-text-primary);line-height:var(--kp-line-height-body-sm)}.kp-dept-layout .ant-card-head{min-height:54px}.kp-dept-tree-panel{max-height:640px;overflow:auto;padding-right:4px}.kp-dept-tree-node{display:flex;justify-content:space-between;align-items:center;width:100%;gap:8px;padding-right:6px}.kp-dept-tree-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kp-dept-current-tip{color:var(--kp-color-text-secondary);font-size:var(--kp-font-size-body-sm)}.kp-audit-trace{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;line-height:1.5;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kp-audit-uri{max-width:240px}.kp-audit-uri-full{word-break:break-all}.kp-audit-descriptions .ant-descriptions-item-label{min-width:100px}.kp-tender-status-tag{min-width:72px;text-align:center}.kp-tender-detail-steps{margin-bottom:16px}.kp-tender-detail-stack{width:100%}.kp-tender-detail-text{line-height:1.65;white-space:pre-wrap;word-break:break-word}.kp-tender-detail-time{font-size:12px;color:var(--kp-color-text-tertiary)}.kp-tender-detail-timeline .ant-timeline-item-content{line-height:1.65}.kp-profile-tabs .ant-tabs-content-holder{padding-top:8px}.kp-profile-avatar-panel{display:flex;flex-direction:column;align-items:center;margin-bottom:24px}.kp-profile-avatar-btn{margin-top:16px}.kp-profile-form{max-width:600px;margin:0 auto}.kp-profile-password-form{margin-top:24px}.kp-calendar-main-card .ant-card-body{padding:14px 16px}.kp-calendar-side-card .ant-card-head{min-height:56px}.kp-calendar-side-card .ant-card-body{max-height:740px;overflow:auto}.kp-calendar-side-actions{display:flex;align-items:center;gap:8px}.kp-calendar-cell{height:100%;min-height:60px}.kp-calendar-events{list-style:none;padding:0;margin:0}.kp-calendar-event-item{margin-bottom:4px}.kp-calendar-badge,.kp-calendar-badge-finished{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px}.kp-calendar-badge-finished,.kp-calendar-list-title-finished{text-decoration:line-through;color:#999}.kp-calendar-list-desc{line-height:1.55}.kp-calendar-list-remark{margin-top:4px;color:#666;font-size:12px;white-space:pre-wrap}.kp-third-party-grid{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:24px}.kp-third-party-card .ant-card-body{padding:24px 20px;display:flex;flex-direction:column;align-items:flex-start}.kp-third-party-icon-wrap{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;box-shadow:0 6px 14px #00000014}.kp-third-party-title{margin-bottom:6px!important}.kp-third-party-desc{font-size:13px;line-height:1.6;margin-bottom:0!important}@media(max-width:1200px){.kp-metric-value{font-size:26px}.kp-calendar-side-actions{flex-wrap:wrap;justify-content:flex-end}.kp-third-party-grid{grid-template-columns:repeat(2,minmax(260px,1fr))}}@media(max-width:992px){.kp-metric-value{font-size:24px}.kp-status-row{flex-wrap:wrap}.kp-market-card-main{flex-direction:column}.kp-market-stat{width:100%}.kp-market-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kp-integration-title{align-items:flex-start;flex-direction:column}.kp-incident-card .ant-card-head-wrapper{align-items:flex-start}.kp-dept-tree-panel{max-height:360px}.kp-audit-uri{max-width:180px}.kp-profile-form{max-width:100%}.kp-calendar-main-card .ant-picker-calendar-date-content{min-height:46px}.kp-third-party-grid{grid-template-columns:1fr;gap:16px}.kp-market-grid{grid-template-columns:1fr}}.kp-state-loading,.kp-state-empty,.kp-state-error{border-radius:var(--kp-radius-lg);background:var(--kp-color-card-bg);box-shadow:var(--kp-shadow-card);padding:48px 24px;text-align:center}.kp-state-error{color:var(--kp-color-danger)}.kp-state-title{margin:0 0 var(--kp-space-2);font-size:var(--kp-font-size-h3);line-height:var(--kp-line-height-h3);color:var(--kp-color-danger)}.kp-state-description{margin:0;color:var(--kp-color-text-secondary)}.kp-state-actions{margin-top:var(--kp-space-4)}.kp-disabled-note{color:var(--kp-color-text-tertiary);font-size:var(--kp-font-size-caption)}.kp-page .ant-btn:disabled,.kp-page .ant-btn[disabled]{color:#bfbfbf;border-color:#d9d9d9;background:#f5f5f5}@media(max-width:992px){.kp-state-loading,.kp-state-empty,.kp-state-error{padding:32px 16px}}
