@charset "UTF-8";.app-layout{min-height:100vh}.app-layout .app-sider{background:#f5f6f7!important}.app-layout .logo{height:48px;margin:0;padding:12px 16px;display:flex;align-items:center;justify-content:flex-start;background:#f5f5f5}.app-layout .sider-trigger{font-size:16px;cursor:pointer;color:#666;transition:color .3s;display:flex;align-items:center;justify-content:center}.app-layout .sider-trigger:hover{color:#1677ff}.app-layout .sider-menu{background:#f5f5f5!important;border-right:none;padding:8px 0;border-inline-end:none!important}.app-layout .sider-menu .menu-item-with-badge{width:100%;display:inline-flex;align-items:center;justify-content:space-between;gap:8px}.app-layout .sider-menu .ant-menu-item{margin:4px 8px;border-radius:4px;height:40px;line-height:40px}.app-layout .sider-menu .ant-menu-item-selected{background:#d5def7!important;color:#1456f0!important}.app-layout .sider-menu .ant-menu-item-selected .ant-menu-item-icon{color:#1677ff!important}.app-layout .sider-menu .ant-menu-item:hover:not(.ant-menu-item-selected){background:#e4e6e7!important}.app-layout .app-content{background:#fff}.app-layout .header{height:48px;padding:0 24px;background:#fff;border-bottom:1px solid #e8e8e8;display:flex;align-items:center;justify-content:space-between}.app-layout .header-title{font-size:18px;font-weight:600;color:#333}.app-layout .header-right{display:flex;align-items:center}.app-layout .user-info{padding:0 16px}.app-layout .user-avatar{width:32px;height:32px;border-radius:50%;cursor:pointer}.app-layout .trigger{font-size:18px;cursor:pointer;transition:color .3s}.app-layout .trigger:hover{color:#1677ff}.app-layout .content{padding:24px;min-height:calc(100vh - 48px)}.login-container{width:100%;height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(135deg,#f0f7ff,#e6f2ff)}.login-container .login-loading{text-align:center;color:#333}.login-container .login-loading p{margin-top:16px;font-size:16px}.login-container .login-title{text-align:center;font-size:32px;font-weight:600;color:#1890ff;margin-bottom:30px}.login-container .login-box{width:400px;padding:48px 40px;background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000014;display:flex;flex-direction:column;align-items:center}.login-container .login-icon{margin-bottom:24px}.login-container .icon-circle{width:64px;height:64px;background:#4a9eff;border-radius:50%;display:flex;align-items:center;justify-content:center}.login-container .login-header{text-align:center;margin-bottom:40px}.login-container .login-header p{color:#000;font-size:14px;margin:0}.login-container .login-content{width:100%}.login-container .feishu-login-section{margin-bottom:0}.login-container .feishu-login-btn{height:48px;border-radius:8px;font-size:16px;font-weight:500;background:#1890ff;border:none}.login-container .feishu-login-btn:hover{background:#40a9ff!important}.login-container .login-footer{margin-top:auto;padding-top:32px;text-align:center;width:100%}.login-container .login-footer p{margin:0;color:#999;font-size:12px}.auth-callback-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.auth-callback-container .auth-callback-loading{display:flex;flex-direction:column;align-items:center;gap:16px}.auth-callback-container .auth-callback-loading p{color:#fff;font-size:16px;margin:0}.customer-management{width:100%}.customer-management .toolbar{background:#fff;margin-bottom:16px;border-radius:4px}.customer-management .toolbar .ant-form-item{margin-bottom:16px}.customer-management .toolbar .ant-form-item-label{padding-bottom:4px}.customer-management .button-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.customer-management .data-table{background:#fff}.customer-management .data-table .ant-table-thead>tr>th{background:#f6f7fa;font-weight:600}.customer-management .data-table .ant-tag{margin:0;padding:2px 8px;border-radius:12px;font-size:12px}.customer-management .data-table .ellipsis-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;display:block;width:100%}.customer-detail-modal .ant-modal-body{padding:24px}.customer-detail-modal .customer-detail-content{padding:0}.customer-detail-modal .customer-detail-content .detail-item{margin-bottom:24px}.customer-detail-modal .customer-detail-content .detail-label{font-size:14px;color:#8c8c8c;margin-bottom:8px;line-height:22px}.customer-detail-modal .customer-detail-content .detail-value{font-size:14px;color:#262626;line-height:22px;word-break:break-all}.customer-detail-modal .customer-detail-content .ant-row{margin-bottom:0}.customer-form-modal .ant-modal-body{padding:24px}.customer-form-modal .ant-form-item{margin-bottom:24px}.function-package-management{width:100%}.function-package-management .page-title{font-size:24px;font-weight:600;margin-bottom:24px;color:#262626}.function-package-management .toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;background:#fff;border-radius:4px}.function-package-management .button-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.function-package-management .data-table{margin-top:16px}.function-package-management .data-table .ellipsis-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;display:block;width:100%}.permission-config{border:1px solid #d9d9d9;border-radius:4px;padding:16px;background-color:#fafafa;max-height:400px;overflow-y:auto}.permission-config .ant-tree{background:transparent;font-size:14px}.permission-config .ant-tree .ant-tree-node-content-wrapper{padding:4px 8px;border-radius:4px;transition:all .3s}.permission-config .ant-tree .ant-tree-node-content-wrapper:hover{background-color:#f5f5f5}.permission-config .ant-tree .ant-tree-treenode{margin-bottom:0}.permission-config .ant-tree .ant-tree-checkbox{margin-right:8px}.permission-config .ant-tree .permission-tree-node{display:flex;align-items:center;font-weight:500}.permission-config .ant-tree .ant-tree-switcher{align-self:center}.permission-hint{margin-top:12px;font-size:12px;color:#8c8c8c;line-height:1.5}.approval-center{min-height:100%}.approval-center__header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.approval-center__title{font-size:24px;font-weight:600;color:#1f2329;line-height:1.4}.approval-center__subtitle{margin-top:4px;font-size:14px;color:#86909c}.approval-center__toolbar{margin-bottom:20px;padding:20px 24px 16px;background:#fff;border:1px solid #dee0e3;border-radius:8px}.approval-center__toolbar .ant-tabs{margin-bottom:12px}.approval-center__toolbar .ant-tabs-nav{margin-bottom:0}.approval-center__chips{display:flex;gap:8px;flex-wrap:wrap}.approval-center__list{display:flex;flex-direction:column;gap:16px}.approval-center__empty{padding:48px 0;background:#fff;border:1px solid #dee0e3;border-radius:8px}.approval-center__modal-tip{margin-bottom:12px;color:#646a73;font-size:13px}.approval-chip{height:32px;padding:0 14px;border:1px solid #dee0e3;border-radius:16px;background:#fff;color:#4e5969;cursor:pointer;transition:all .2s ease}.approval-chip:hover{color:#3370ff;border-color:#3370ff}.approval-chip.active{color:#3370ff;border-color:#3370ff;background:#e8f3ff}.approval-card{padding:20px 24px;background:#fff;border:1px solid #dee0e3;border-radius:8px;transition:all .2s ease}.approval-card:hover{border-color:#3370ff;box-shadow:0 8px 24px #3370ff14}.approval-card__header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.approval-card__header-left{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.approval-card__doc-no{font-size:16px;font-weight:600;color:#1f2329}.approval-card__sub-type{font-size:14px;color:#86909c}.approval-card__split{display:flex;gap:24px;justify-content:space-between}.approval-card__main{flex:1;min-width:0;display:flex;gap:20px}.approval-card__images{display:flex;gap:12px;flex-shrink:0}.approval-card__grid{flex:1;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}.approval-card__grid--expense{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}.approval-card__side{width:240px;display:grid;gap:12px}.approval-card__reason{margin-top:16px;padding:12px 14px;background:#fff7e6;border:1px solid #ffd591;border-radius:8px;color:#ad6800;font-size:13px}.approval-card__footer{margin-top:16px;padding-top:16px;border-top:1px solid #f0f0f0;display:flex;align-items:center;gap:12px}.approval-card__footer-spacer{flex:1}.approval-thumb{width:120px;height:90px;overflow:hidden;border:1px solid #dee0e3;border-radius:8px;background:#f7f8fa;display:flex;align-items:center;justify-content:center;color:#86909c;font-size:12px}.approval-thumb .ant-image,.approval-thumb img{width:100%;height:100%;object-fit:cover}.approval-type-tag{margin:0;padding:0 10px;border:none;border-radius:4px;font-size:12px;line-height:24px;font-weight:500}.approval-field{display:flex;flex-direction:column;gap:6px}.approval-field span{font-size:13px;color:#86909c}.approval-field strong{font-size:15px;color:#1f2329;font-weight:600;word-break:break-all}.approval-field--highlight strong{color:#3370ff}.approval-field--danger strong{color:#ff4d4f}.approval-field--link strong{color:#3370ff}.approval-btn{min-width:88px}@media (max-width: 1200px){.approval-card__split,.approval-card__main{flex-direction:column}.approval-card__side{width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 900px){.approval-card__grid,.approval-card__grid--expense,.approval-card__side{grid-template-columns:repeat(2,minmax(0,1fr))}.approval-card__footer{flex-wrap:wrap}}.duplicate-modal__meta{font-size:12px;color:#94a3b8;margin-bottom:16px}.duplicate-modal__section{margin-bottom:16px}.duplicate-modal__section-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;margin-bottom:8px}.duplicate-modal__hit{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:10px 12px;margin-bottom:6px}.duplicate-modal__hit-title{color:#2563eb;font-weight:500;font-size:13px}.duplicate-modal__hit-link{color:#2563eb;font-weight:500;font-size:13px;background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-align:left}.duplicate-modal__hit-reason{font-size:11px;color:#94a3b8;margin-top:3px}.duplicate-modal__hit-detail{font-size:11px;color:#64748b;margin-top:4px}.duplicate-modal__empty{color:#94a3b8;padding:8px 0;font-size:12px}.duplicate-modal__footer{margin-top:12px;padding-top:12px;border-top:1px solid #e2e8f0}.approval-detail-page{min-height:100%;padding-bottom:96px}.approval-detail-page__empty{padding:56px 0;background:#fff;border:1px solid #dee0e3;border-radius:8px}.approval-detail-page__header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;padding:20px 24px;background:#fff;border:1px solid #dee0e3;border-radius:8px}.approval-detail-page__header-main{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.approval-detail-page__back{padding-inline:0}.approval-detail-page__title{font-size:22px;font-weight:600;color:#1f2329}.approval-detail-page__doc-no{font-size:15px;color:#4e5969;font-weight:500}.approval-detail-page__content{display:flex;gap:20px;align-items:flex-start}.approval-detail-page__left{flex:1;min-width:0;display:flex;flex-direction:column;gap:20px}.approval-detail-page__right{width:380px;flex-shrink:0}.approval-detail-page__footer{position:fixed;left:248px;right:24px;bottom:24px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:#fffffff5;border:1px solid #dee0e3;border-radius:8px;box-shadow:0 8px 24px #0f235f14;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.approval-detail-page__footer-actions{display:flex;gap:12px}.approval-detail-page__modal-tip{margin-bottom:12px;color:#646a73;font-size:13px}.approval-section{padding:20px 24px;background:#fff;border:1px solid #dee0e3;border-radius:8px}.approval-section__title{margin-bottom:16px;font-size:16px;font-weight:600;color:#1f2329}.approval-section--sticky{position:sticky;top:24px}.approval-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px}.approval-detail-field label{display:block;margin-bottom:6px;font-size:13px;color:#86909c}.approval-detail-field div{font-size:15px;color:#1f2329;font-weight:500;word-break:break-all}.approval-detail-field .highlight{color:#3370ff;font-weight:600}.approval-attachment-list{display:flex;gap:12px;flex-wrap:wrap}.approval-attachment-card{width:120px;padding:8px;border:1px solid #dee0e3;border-radius:8px;background:#fff;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;gap:8px;align-items:center}.approval-attachment-card:hover,.approval-attachment-card.active{border-color:#3370ff;box-shadow:0 6px 16px #3370ff1a}.approval-attachment-card .ant-image,.approval-attachment-card img{width:100%;height:72px;object-fit:cover;border-radius:6px;background:#f7f8fa}.approval-attachment-card__pdf{width:100%;height:72px;border-radius:6px;background:#f7f8fa;display:flex;align-items:center;justify-content:center;color:#86909c}.approval-attachment-card__pdf .anticon{font-size:24px}.approval-attachment-card span{width:100%;font-size:12px;color:#4e5969;text-align:center}.approval-preview-panel{min-height:520px;border:1px solid #f0f0f0;border-radius:8px;background:#f7f8fa;overflow:hidden;display:flex;align-items:center;justify-content:center}.approval-preview-panel .ant-image,.approval-preview-panel__image,.approval-preview-panel img{width:100%;height:100%;object-fit:contain;background:#fff}.approval-preview-panel__iframe{width:100%;height:520px;border:none;background:#fff}.approval-preview-panel__placeholder{display:flex;flex-direction:column;align-items:center;gap:12px;color:#86909c;text-align:center;font-size:14px}.approval-preview-panel__placeholder .anticon{font-size:40px;color:#c9cdd4}.approval-preview-panel__placeholder span{font-size:12px}.approval-timeline-dot{display:inline-flex;align-items:center;justify-content:center;font-size:16px;background:#fff}.approval-timeline-item__title{font-size:15px;font-weight:600;color:#1f2329}.approval-timeline-item__meta{margin-top:4px;font-size:13px;color:#86909c}.approval-timeline-item__remark{margin-top:8px;padding:10px 12px;background:#fff7e6;border:1px solid #ffd591;border-radius:8px;color:#ad6800;font-size:13px}.approval-type-tag{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:4px;font-size:12px;font-weight:500}.approval-type-tag.waybill{color:#3370ff;background:#e8f3ff}.approval-type-tag.expense{color:#d46b08;background:#fff7e6}.approval-status-badge{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:14px;border:1px solid transparent;font-size:13px;font-weight:500}.approval-status-badge.pending{color:#d48806;background:#fff7e6;border-color:#ffd591}.approval-status-badge.approved{color:#389e0d;background:#e8f8ee;border-color:#b7eb8f}.approval-status-badge.rejected{color:#cf1322;background:#fff1f0;border-color:#ffa39e}.approval-btn{min-width:100px}.approval-btn--success{background:#34c759;border-color:#34c759}.approval-btn--success:hover,.approval-btn--success:focus{background:#2fb350!important;border-color:#2fb350!important}@media (max-width: 1440px){.approval-detail-page__footer{left:104px}}@media (max-width: 1200px){.approval-detail-page__content{flex-direction:column}.approval-detail-page__right{width:100%}.approval-detail-page__footer{position:static;margin-top:20px}}.dup-meta{font-size:12px;color:#94a3b8;margin-bottom:16px}.dup-section{margin-bottom:16px}.dup-section-title{font-size:13px;font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:8px}.dup-badge{padding:2px 10px;border-radius:10px;font-size:11px;font-weight:600}.dup-badge--red{background:#fee2e2;color:#dc2626}.dup-badge--green{background:#dcfce7;color:#16a34a}.dup-badge--orange{background:#ffedd5;color:#ea580c}.dup-hit-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:10px 12px;margin-bottom:6px}.dup-hit-link{color:#2563eb;font-weight:500;font-size:13px;background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-align:left}.dup-hit-reason{font-size:11px;color:#94a3b8;margin-top:3px}.dup-hit-detail{font-size:11px;color:#64748b;margin-top:4px}.dup-empty{color:#94a3b8;padding:8px 0;font-size:12px}.dup-footer{margin-top:12px;padding-top:12px;border-top:1px solid #e2e8f0}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;height:100vh}
