:root{--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-primary-light: rgba(59, 130, 246, .1);--color-primary-lighter: rgba(59, 130, 246, .08);--color-success: #10b981;--color-success-hover: #059669;--color-success-light: rgba(16, 185, 129, .1);--color-warning: #f59e0b;--color-warning-hover: #d97706;--color-warning-light: rgba(245, 158, 11, .1);--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-danger-light: rgba(239, 68, 68, .1);--color-info: #8b5cf6;--color-info-light: rgba(139, 92, 246, .1);--color-pink: #ec4899;--color-pink-light: rgba(236, 72, 153, .1);--color-text-title: #1a1f36;--color-text-regular: #333;--color-text-secondary: #666;--color-text-placeholder: #999;--color-text-disabled: #bbb;--color-border: #d9d9d9;--color-border-light: #e8e8e8;--color-divider: #f0f0f0;--color-bg-hover: #f5f5f5;--color-bg-page: #f0f2f5;--color-bg-card: #fff;--color-bg-sidebar: #1a1f36;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-pill: 12px;--shadow-sm: 0 1px 4px rgba(0, 0, 0, .04);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 20px rgba(0, 0, 0, .12);--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--el-color-primary: #3b82f6;--el-color-primary-rgb: 59, 130, 246;--el-color-primary-light-3: #76a8f9;--el-color-primary-light-5: #9dc1fa;--el-color-primary-light-7: #c4d9fc;--el-color-primary-light-8: #d8e6fd;--el-color-primary-light-9: #ebf2fe;--el-color-primary-dark-2: #2563eb;--el-color-success: #10b981;--el-color-success-light-3: #58cea7;--el-color-success-light-5: #87dcc5;--el-color-success-light-7: #b7eae3;--el-color-success-light-8: #cff1f2;--el-color-success-light-9: #e7f8fe;--el-color-success-dark-2: #059669;--el-color-warning: #f59e0b;--el-color-warning-light-3: #f8bb54;--el-color-warning-light-5: #face85;--el-color-warning-light-7: #fce2b6;--el-color-warning-light-8: #fdecce;--el-color-warning-light-9: #fef5e7;--el-color-warning-dark-2: #d97706;--el-color-danger: #ef4444;--el-color-danger-light-3: #f38888;--el-color-danger-light-5: #f7b4b4;--el-color-danger-light-7: #fbe0e0;--el-color-danger-light-8: #fcecec;--el-color-danger-light-9: #fef9f9;--el-color-danger-dark-2: #dc2626;--el-color-error: #ef4444;--el-color-error-light-3: #f38888;--el-color-error-light-5: #f7b4b4;--el-color-error-light-7: #fbe0e0;--el-color-error-light-8: #fcecec;--el-color-error-light-9: #fef9f9;--el-color-error-dark-2: #dc2626;--el-color-info: #8b5cf6;--el-color-info-light-3: #bea2fa;--el-color-info-light-5: #d3c2fb;--el-color-info-light-7: #e8e1fd;--el-color-info-light-8: #f3eefe;--el-color-info-light-9: #f8f6ff;--el-color-info-dark-2: #6f4ac5;--el-text-color-primary: #333;--el-text-color-regular: #333;--el-text-color-secondary: #666;--el-text-color-placeholder: #bbb;--el-text-color-disabled: #ccc;--el-border-color: #d9d9d9;--el-border-color-light: #e8e8e8;--el-border-color-lighter: #f0f0f0;--el-border-color-extra-light: #f5f5f5;--el-border-color-dark: #c9cdd4;--el-border-color-darker: #b4b8bf;--el-fill-color: #f5f5f5;--el-fill-color-light: #f5f5f5;--el-fill-color-lighter: #fafafa;--el-fill-color-blank: #fff;--el-bg-color: #fff;--el-bg-color-page: #f0f2f5;--el-bg-color-overlay: #fff;--el-mask-color: rgba(0, 0, 0, .45);--el-border-radius-base: 6px;--el-border-radius-small: 4px;--el-border-radius-round: 20px;--el-font-size-extra-large: 20px;--el-font-size-large: 16px;--el-font-size-medium: 14px;--el-font-size-base: 13px;--el-font-size-small: 12px;--el-font-size-extra-small: 11px;--el-font-family: var(--font-family);--el-font-weight-primary: 500;--el-component-size: 36px;--el-component-size-small: 30px;--el-component-size-large: 40px;--el-box-shadow: 0 4px 20px rgba(0, 0, 0, .12);--el-box-shadow-light: 0 1px 4px rgba(0, 0, 0, .04);--el-box-shadow-lighter: 0 1px 4px rgba(0, 0, 0, .04);--el-transition-duration: .2s;--el-transition-duration-fast: .15s;--el-table-border-color: #f0f0f0;--el-table-border: 1px solid var(--el-table-border-color);--el-table-bg-color: #fff;--el-table-tr-bg-color: #fff;--el-table-header-bg-color: #fafafa;--el-table-header-text-color: #666;--el-table-text-color: #333;--el-table-row-hover-bg-color: #fafbff;--el-table-current-row-bg-color: rgba(59, 130, 246, .08);--el-table-fixed-box-shadow: 0 0 10px rgba(0, 0, 0, .06)}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;padding:0}body{font-family:var(--font-family);font-size:13px;color:var(--color-text-regular);background:var(--color-bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none;color:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}::-webkit-scrollbar-track{background:transparent}.el-button{font-weight:500;transition:all .2s ease}.el-button+.el-button{margin-left:8px}.el-button--primary:not(.is-plain):hover,.el-button--primary:not(.is-plain):focus{background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:0 4px 12px #3b82f666}.el-button--success:not(.is-plain):hover,.el-button--success:not(.is-plain):focus{background:var(--color-success-hover);border-color:var(--color-success-hover)}.el-button--warning:not(.is-plain):hover,.el-button--warning:not(.is-plain):focus{background:var(--color-warning-hover);border-color:var(--color-warning-hover)}.el-button--danger:not(.is-plain):hover,.el-button--danger:not(.is-plain):focus{background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.el-button:not(.is-plain):not(.el-button--text):hover,.el-button:not(.is-plain):not(.el-button--text):focus{color:var(--color-primary);border-color:var(--color-primary);background:#fff}.el-button--primary.is-plain:hover,.el-button--primary.is-plain:focus{background:var(--color-primary-lighter);border-color:var(--color-primary);color:var(--color-primary-hover)}.el-button.is-link{color:var(--color-primary)}.el-button.is-text:not(.is-disabled):hover{background:var(--color-primary-light);color:var(--color-primary)}.el-input__wrapper,.el-textarea__inner,.el-select__wrapper{border-radius:var(--radius-sm);box-shadow:0 0 0 1px var(--color-border) inset;transition:all .2s ease}.el-input__wrapper:hover,.el-textarea__inner:hover,.el-select__wrapper:hover{box-shadow:0 0 0 1px #b6c7db inset}.el-input__wrapper.is-focus,.el-textarea__inner:focus,.el-select__wrapper.is-focused{box-shadow:0 0 0 1px var(--color-primary) inset,0 0 0 3px #3b82f61a}.el-form-item__label{font-size:13px;font-weight:500;color:var(--color-text-secondary);line-height:1.4}.el-form-item{margin-bottom:16px}.el-form--label-top .el-form-item__label{margin-bottom:6px}.el-radio-button__inner{font-weight:500}.el-card{border-radius:var(--radius-lg);border:1px solid var(--color-divider);box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,transform .2s ease}.el-card__header{padding:16px 20px;border-bottom:1px solid var(--color-divider);font-size:15px;font-weight:600;color:var(--color-text-title)}.el-card__body{padding:20px}.el-table{font-size:13px;border-radius:var(--radius-lg);overflow:hidden}.el-table th.el-table__cell{font-size:13px;font-weight:600;color:var(--color-text-secondary);background:#fafafa;padding:12px 14px}.el-table td.el-table__cell{padding:12px 14px;color:var(--color-text-regular)}.el-table--small th.el-table__cell,.el-table--small td.el-table__cell{padding:8px 10px}.el-table .el-table__cell{border-bottom:1px solid var(--color-divider)}.el-table__row:hover>td.el-table__cell{background:#fafbff!important}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:#fcfcfd}.el-table__empty-text{color:var(--color-text-placeholder);font-size:13px}.el-table .el-button.is-link,.el-table .el-button--small{margin-left:0;margin-right:6px}.el-table__fixed-right-patch{background:#fafafa}.el-table th.el-table__cell.is-sortable:hover{background:#f2f4f8}.el-table .caret-wrapper .sort-caret{border-width:4px}.el-tag{border-radius:var(--radius-pill);font-weight:500;font-size:12px;padding:0 10px;height:24px;line-height:22px;border:1px solid transparent}.el-tag--small{height:22px;line-height:20px;padding:0 8px}.el-tag.el-tag--primary{--el-tag-bg-color: #eff6ff;--el-tag-border-color: #bfdbfe;--el-tag-text-color: #2563eb}.el-tag.el-tag--success{--el-tag-bg-color: #ecfdf5;--el-tag-border-color: #a7f3d0;--el-tag-text-color: #059669}.el-tag.el-tag--warning{--el-tag-bg-color: #fff7ed;--el-tag-border-color: #fed7aa;--el-tag-text-color: #d97706}.el-tag.el-tag--danger{--el-tag-bg-color: #fef2f2;--el-tag-border-color: #fecaca;--el-tag-text-color: #dc2626}.el-tag.el-tag--info{--el-tag-bg-color: #f5f3ff;--el-tag-border-color: #ddd6fe;--el-tag-text-color: #6f4ac5}.el-overlay{background:#00000073}.el-dialog{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden;padding:0}.el-dialog__header{padding:20px 24px;margin:0;border-bottom:1px solid var(--color-divider)}.el-dialog__title{font-size:16px;font-weight:600;color:var(--color-text-title);line-height:1.4}.el-dialog__headerbtn{top:14px;right:14px;width:28px;height:28px;border-radius:var(--radius-sm);transition:background .2s ease}.el-dialog__headerbtn:hover{background:var(--color-divider)}.el-dialog__body{padding:24px;max-height:calc(85vh - 130px);overflow-y:auto;color:var(--color-text-regular)}.el-dialog__footer{padding:16px 24px;border-top:1px solid var(--color-divider);text-align:right}.el-drawer{border-radius:var(--radius-xl) 0 0 var(--radius-xl)}.el-drawer__header{padding:20px 24px;margin-bottom:0;border-bottom:1px solid var(--color-divider);color:var(--color-text-title);font-size:16px;font-weight:600}.el-drawer__body{padding:24px}.el-drawer__footer{padding:16px 24px;border-top:1px solid var(--color-divider)}.el-message-box{border-radius:var(--radius-xl);padding:24px;box-shadow:var(--shadow-lg);border:none}.el-message-box__title{font-size:16px;font-weight:600;color:var(--color-text-title)}.el-message-box__content{font-size:13px;color:var(--color-text-regular);padding-top:12px}.el-message-box__btns .el-button{min-width:76px}.el-popper.is-light,.el-dropdown-menu{border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border:1px solid var(--color-divider);padding:4px}.el-dropdown-menu__item{padding:8px 16px;font-size:13px;color:var(--color-text-secondary);border-radius:var(--radius-sm);line-height:1.5}.el-dropdown-menu__item:not(.is-disabled):hover{background:var(--color-primary-lighter);color:var(--color-primary)}.el-select-dropdown__item{font-size:13px;padding:0 14px;border-radius:var(--radius-sm)}.el-select-dropdown__item.is-hovering{background:var(--color-primary-lighter)}.el-select-dropdown__item.is-selected{color:var(--color-primary);font-weight:600;background:var(--color-primary-lighter)}.el-pagination{font-weight:400;--el-pagination-button-color: var(--color-text-secondary)}.el-pagination .btn-prev,.el-pagination .btn-next,.el-pager li{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;min-width:32px;height:32px;line-height:30px;margin:0 3px;font-size:13px;transition:all .2s ease}.el-pager li.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.el-pagination .btn-prev:not(.is-disabled):hover,.el-pagination .btn-next:not(.is-disabled):hover,.el-pager li:not(.is-active):hover{color:var(--color-primary);border-color:var(--color-primary)}.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-next.is-disabled{color:var(--color-text-disabled)}.el-pagination__total,.el-pagination__sizes{font-size:13px;color:var(--color-text-placeholder)}.el-tabs__item{font-size:14px;font-weight:500;color:var(--color-text-secondary);padding:0 24px;height:46px;line-height:46px;transition:color .2s ease}.el-tabs__item:hover{color:var(--color-primary)}.el-tabs__item.is-active{color:var(--color-primary);font-weight:600}.el-tabs__active-bar{background-color:var(--color-primary);height:2px}.el-tabs__nav-wrap:after{height:1px;background-color:var(--color-divider)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-message{border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:12px 16px;min-width:260px}.el-message__content{font-size:13px;line-height:1.5}.el-tooltip__popper.is-dark,.el-popper.is-dark{background:var(--color-text-title);border-radius:var(--radius-sm);font-size:12px;padding:6px 12px}.el-popper.is-dark .el-popper__arrow:before{background:var(--color-text-title)}.el-empty__description p{font-size:13px;color:var(--color-text-placeholder)}.el-divider--horizontal{margin:16px 0;border-color:var(--color-divider)}.el-descriptions__label{color:var(--color-text-secondary);font-weight:500}.el-descriptions__content{color:var(--color-text-regular)}.el-breadcrumb__inner{font-size:13px}.el-loading-mask{background-color:#ffffffb3}.el-switch.is-checked .el-switch__core{border-color:var(--color-primary);background-color:var(--color-primary)}.el-checkbox__input.is-checked .el-checkbox__inner,.el-radio__input.is-checked .el-radio__inner{background-color:var(--color-primary);border-color:var(--color-primary)}.el-radio__input.is-checked+.el-radio__label{color:var(--color-primary)}.el-radio-button__original-radio:checked+.el-radio-button__inner{background-color:var(--color-primary);border-color:var(--color-primary);box-shadow:-1px 0 0 0 var(--color-primary)}.el-radio-button__inner:hover{color:var(--color-primary)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{background-color:var(--color-primary)}.el-upload-dragger{border-radius:var(--radius-lg)}.el-step__head.is-finish{color:var(--color-primary);border-color:var(--color-primary)}.el-progress-bar__inner{background-color:var(--color-primary)}.crm-app{display:flex;min-width:1200px;height:100vh;overflow:hidden}.crm-sidebar{width:240px;flex:0 0 240px;height:100vh;background:var(--color-bg-sidebar);display:flex;flex-direction:column;transition:width .2s ease,flex-basis .2s ease;overflow:hidden}.crm-sidebar.collapsed{width:64px;flex-basis:64px}.crm-logo{display:flex;align-items:center;gap:12px;padding:20px;height:56px;border-bottom:1px solid rgba(255,255,255,.08);font-weight:700;color:#fff;font-size:16px;white-space:nowrap;overflow:hidden;flex:0 0 auto}.crm-logo .dot{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);flex:0 0 28px;display:flex;align-items:center;justify-content:center}.crm-menu{flex:1;padding:12px 10px;overflow-y:auto;overflow-x:hidden}.crm-menu::-webkit-scrollbar{width:4px}.crm-menu::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.crm-menu-group{padding:14px 14px 6px;font-size:11px;letter-spacing:1px;color:#ffffff59;text-transform:uppercase;white-space:nowrap}.crm-menu-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:2px;cursor:pointer;color:#ffffffa6;font-size:14px;white-space:nowrap;overflow:hidden;position:relative;transition:background .2s ease,color .2s ease;-webkit-user-select:none;user-select:none}.crm-menu-item .el-icon{flex:0 0 20px;font-size:18px}.crm-menu-item:hover{background:#ffffff0f;color:#fff}.crm-menu-item.active{background:#3b82f626;color:#fff;font-weight:500;box-shadow:inset 3px 0 0 var(--color-primary)}.crm-menu-children{overflow:hidden}.crm-menu-child{padding-left:34px;font-size:13px}.crm-menu-grand{overflow:hidden}.crm-menu-grandchild{padding-left:48px;font-size:13px}.crm-menu-chevron{margin-left:auto;font-size:12px;color:#fff6;transition:transform .2s ease}.crm-menu-parent,.crm-menu-subparent{position:relative}.crm-menu-bulk{margin-top:14px;padding:12px 10px 4px;display:flex;gap:8px;border-top:1px solid rgba(255,255,255,.08)}.crm-menu-bulk .el-button{flex:1;background:#ffffff0f;border-color:#ffffff1f;color:#ffffffb3}.crm-menu-bulk .el-button:hover{background:#3b82f633;border-color:#3b82f680;color:#fff}.crm-sidebar.collapsed .crm-menu-item{padding:11px 0;justify-content:center;gap:0}.crm-sidebar.collapsed .crm-logo{padding:20px 0;justify-content:center}.crm-main{flex:1;display:flex;flex-direction:column;height:100vh;overflow:hidden;min-width:0}.crm-header{height:56px;flex:0 0 56px;background:#fff;border-bottom:1px solid var(--color-border-light);box-shadow:var(--shadow-sm);display:flex;align-items:center;padding:0 20px;gap:14px;z-index:10}.crm-header .title{font-size:16px;font-weight:600;color:var(--color-text-title)}.crm-header .el-button.is-text{padding:6px;color:var(--color-text-secondary)}.crm-header .el-button.is-text:hover{color:var(--color-primary);background:var(--color-primary-light)}.crm-crumb{font-size:13px;color:var(--color-text-placeholder);display:flex;align-items:center;gap:6px}.crm-crumb .sep{color:var(--color-border)}.crm-crumb .cur{color:var(--color-text-title);font-weight:500}.crm-content{flex:1;overflow-y:auto;padding:20px 24px;background:var(--color-bg-page)}.crm-page{animation:crmFadeIn .3s ease}@keyframes crmFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.crm-card{background:var(--color-bg-card);border:1px solid var(--color-divider);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm)}.crm-card+.crm-card{margin-top:16px}.section-title{font-size:15px;font-weight:600;color:var(--color-text-title);margin:0 0 16px;display:flex;align-items:center;gap:8px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;background:#fff;border:1px solid var(--color-divider);border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:16px;box-shadow:var(--shadow-sm)}.el-card.toolbar{display:block;padding:0}.el-card.toolbar>.el-card__body{padding:16px 20px}.toolbar-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.toolbar-row+.toolbar-row{margin-top:10px}.toolbar-row.right{margin-left:auto;justify-content:flex-end}.toolbar .tip{font-size:12px;color:var(--color-text-placeholder);margin-left:auto}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.stat-card{background:#fff;border:1px solid var(--color-divider);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:14px;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-card .stat-icon{width:48px;height:48px;flex:0 0 48px;border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;font-size:22px}.stat-card .stat-body{min-width:0}.stat-card .label{color:var(--color-text-placeholder);font-size:12px;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-card .value{font-size:22px;font-weight:700;line-height:1.2;color:var(--color-text-title);font-variant-numeric:tabular-nums}.crm-table-wrap{background:#fff;border:1px solid var(--color-divider);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.pager{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;background:#fff;border:1px solid var(--color-divider);border-radius:var(--radius-lg);padding:12px 16px;margin-top:16px;box-shadow:var(--shadow-sm);font-size:13px;color:var(--color-text-placeholder)}.pipeline-row{display:flex;align-items:center;gap:12px;margin-bottom:14px}.pipeline-row:last-child{margin-bottom:0}.pipeline-row .stage-name{width:120px;flex:0 0 120px;font-size:13px;color:var(--color-text-regular)}.pipeline-row .bar-wrap{flex:1;background:#f5f7fa;border-radius:var(--radius-sm);overflow:hidden;height:22px}.pipeline-row .bar{height:100%;background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:var(--radius-sm);transition:width .4s ease;min-width:2px}.pipeline-row .bar-amount{width:120px;flex:0 0 120px;text-align:right;font-size:13px;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.tag-customer{background:#eff6ff!important;color:#2563eb!important;border-color:#bfdbfe!important}.tag-lead{background:#fff7ed!important;color:#d97706!important;border-color:#fed7aa!important}.tag-ok{background:#ecfdf5!important;color:#059669!important;border-color:#a7f3d0!important}.tag-warn{background:#fff7ed!important;color:#d97706!important;border-color:#fed7aa!important}.tag-bad{background:#fef2f2!important;color:#dc2626!important;border-color:#fecaca!important}.tag-info{background:#f5f5f5!important;color:#666!important;border-color:#e5e7eb!important}.text-muted{color:var(--color-text-placeholder)}.mt-16{margin-top:16px}.mb-16{margin-bottom:16px}
