._auth-loading_ssyof_4{display:flex;justify-content:center;align-items:center;height:100vh}._route-fallback_ssyof_12{text-align:center;padding:80px}._error-container_1btiq_3{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;text-align:center;padding:20px}._error-message_1btiq_13{font-size:16px;margin-bottom:30px;color:#333}._error-actions_1btiq_19{display:flex;gap:10px}._error-btn_1btiq_24{padding:10px 20px;font-size:14px;color:#fff;border:none;border-radius:4px;cursor:pointer}._error-btn-reload_1btiq_33{background-color:#4caf50}._error-btn-home_1btiq_37{background-color:#2196f3}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif}.sider-scroll::-webkit-scrollbar{display:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000047}.login-input input,.login-input .ant-input-affix-wrapper,.login-input .ant-input{background:transparent;color:#fff}.login-input .ant-input::placeholder,.login-input input::placeholder{color:#ffffff59}.login-input .ant-input-affix-wrapper:hover,.login-input .ant-input-affix-wrapper:focus,.login-input .ant-input-affix-wrapper-focused{border-color:#6366f1cc;box-shadow:0 0 0 2px #6366f133}.login-input .ant-input-password-icon,.login-input .anticon{color:#fff6}.table-card.ant-card,.page-filter-card.ant-card,.page-stat-card.ant-card{border-radius:12px!important;background:#fff!important}.page-filter-card.ant-card,.page-stat-card.ant-card{overflow:hidden!important}.table-card.ant-card{overflow:visible!important}.table-card .ant-card-body{padding:0;overflow:visible}.table-card .ant-table-wrapper .ant-table-pagination{margin:12px 16px}.table-card .ant-table-wrapper .ant-table,.table-card .ant-table-wrapper .ant-table-container,.table-card .ant-table-wrapper .ant-table-header,.table-card .ant-table-wrapper .ant-table-sticky-holder,.table-card .ant-table-wrapper .ant-table-container table>thead>tr:first-child>*,.table-card .ant-table-wrapper .ant-table-sticky-holder table>thead>tr:first-child>*{border-radius:0!important}.table-card .ant-table-wrapper .ant-table-sticky-holder{z-index:20!important;background:#fff!important;box-shadow:0 2px 8px #0f172a14}.table-card .ant-table-wrapper .ant-table-sticky-holder .ant-table-thead>tr>th,.table-card .ant-table-wrapper .ant-table-thead>tr>th{background:#e8f0fe!important}.table-card .ant-card-body>.ant-tabs>.ant-tabs-nav{margin:0!important;padding:0 16px}.toolbar-form.ant-form-inline{flex-wrap:wrap}.toolbar-form.ant-form-inline .ant-form-item{margin-bottom:8px}.page-filter-card .ant-card-body{padding:12px 20px}.page-filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.page-filter-bar .ant-form-item{margin:0}.page-filter-spacer{flex:1;min-width:16px}.page-stat-card .ant-card-body{padding:20px 24px}.d-flex{display:flex}.w-full{width:100%}.search-input-md{width:240px}.tag-list{display:flex;flex-wrap:wrap;gap:4px}.tag-no-margin{margin:0}.tag-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.text-placeholder{color:#bfbfbf}.text-placeholder-sm{color:#bfbfbf;font-size:12px}.text-muted-sm{color:#999;font-size:12px}.btn-link-reset{padding:0;height:auto}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.text-sm{font-size:12px}.font-mono{font-family:monospace}.font-mono-sm{font-family:monospace;font-size:12px}.font-mono-spaced{font-family:monospace;letter-spacing:1px}.modal-form{margin-top:16px}.link-trigger{cursor:pointer;color:#1677ff}.link-trigger-sm{cursor:pointer;color:#1677ff;font-size:12px}.icon-white{color:#fff}.icon-primary{color:#1677ff}.icon-orange{color:#d46b08}.icon-muted{color:#bfbfbf}.icon-success{color:#52c41a}.icon-error{color:#ff4d4f}.icon-login{font-size:50px;color:#fff}.icon-input-prefix{color:#bbb}.icon-xl{font-size:28px}.icon-lg{font-size:24px}.icon-md{font-size:22px}.fw-semibold{font-weight:600}.compact-flex-input{flex:1;width:0}.ant-select-dropdown .ant-select-item-option{border-bottom:1px solid #f0f0f0}.ant-select-dropdown .ant-select-item-option:last-child{border-bottom:none}.ant-select-dropdown .ant-select-item-option-selected:not(.ant-select-item-option-disabled){background-color:#f0f5ff!important;font-weight:500}.ant-select-dropdown .ant-select-item-option-selected .ant-select-item-option-state{color:#1677ff}.ant-select-dropdown .ant-select-item-option-active:not(.ant-select-item-option-disabled){background-color:#e6f4ff!important}.avatar-uploader{display:inline-block;cursor:pointer}.avatar-uploader-wrap{position:relative;width:72px;height:72px;border-radius:50%;overflow:hidden;border:1px dashed #d9d9d9;background:#fafafa;display:flex;align-items:center;justify-content:center;transition:border-color .2s}.avatar-uploader-wrap:hover{border-color:#1677ff}.avatar-uploader-wrap img{width:100%;height:100%;object-fit:cover;display:block}.avatar-uploader-wrap .avatar-uploader-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;border-radius:50%;color:#fff;font-size:12px;flex-direction:column;gap:2px}.avatar-uploader-wrap:hover .avatar-uploader-overlay{opacity:1}.avatar-uploader-empty{display:flex;flex-direction:column;align-items:center;gap:4px;color:#bfbfbf;font-size:12px}.ant-card{border-radius:12px;box-shadow:0 1px 4px #0000000f;border:1px solid #e4ecf8;overflow:hidden}.ant-card-head{border-bottom:1px solid #eef3fb;min-height:48px;background:#fff;border-radius:0}.ant-card-head-title{font-weight:700;font-size:15px;color:#0f172a}.ant-table-thead>tr>th{background:linear-gradient(180deg,#eef4ff,#e8f0fd);color:#1e3a8a;font-weight:600;font-size:13px;border-bottom:1px solid #d7e4f7;letter-spacing:0}.ant-table-tbody>tr:hover>td{background:#eff6ff!important}.ant-table-tbody>tr>td{border-bottom:1px solid #eef2fa;font-size:13px;color:#1e293b}.ant-table-tbody>tr:nth-child(2n)>td{background:#fafcff}.ant-table-tbody>tr:last-child>td{border-bottom:none}.ant-btn{border-radius:8px;font-weight:600;font-size:13px;letter-spacing:.01em;transition:background .18s,border-color .18s,box-shadow .18s,color .18s;display:inline-flex;align-items:center;gap:5px}.ant-btn-primary{background:#2563eb;border-color:#2563eb;color:#fff;box-shadow:0 1px 4px #2563eb4d}.ant-btn-primary:not(:disabled):hover{background:#1d4ed8;border-color:#1d4ed8;box-shadow:0 4px 12px #2563eb59;color:#fff}.ant-btn-primary:not(:disabled):active{background:#1e40af;border-color:#1e40af;color:#fff}.ant-btn-default{border:1px solid #d1dce8;color:#374151;background:#fff;box-shadow:0 1px 3px #0000000d}.ant-btn-default:not(:disabled):hover{border-color:#2563eb;color:#2563eb;background:#f0f6ff}.ant-btn-default:not(:disabled):active{border-color:#1d4ed8;color:#1d4ed8}.ant-btn-link{color:#2563eb;font-weight:500}.ant-btn-link:not(:disabled):hover{color:#1d4ed8;background:#2563eb0f}.ant-btn-dashed{border-color:#cbd5e1;color:#475569;background:#fff}.ant-btn-dashed:not(:disabled):hover{border-color:#2563eb;color:#2563eb;background:#f0f6ff}.ant-btn-dangerous.ant-btn-primary{background:#dc2626;border-color:#dc2626;color:#fff;box-shadow:0 1px 4px #dc26264d}.ant-btn-dangerous.ant-btn-primary:not(:disabled):hover{background:#b91c1c;border-color:#b91c1c;box-shadow:0 4px 12px #dc262659}.ant-btn-dangerous.ant-btn-default{border:1px solid #fca5a5;color:#dc2626;background:#fff}.ant-btn-dangerous.ant-btn-default:not(:disabled):hover{background:#fff5f5;border-color:#f87171}.ant-btn.btn-success{background:#16a34a;border-color:#16a34a;color:#fff;box-shadow:0 1px 4px #16a34a4d}.ant-btn.btn-success:not(:disabled):hover{background:#15803d;border-color:#15803d;box-shadow:0 4px 12px #16a34a59;color:#fff}.ant-btn-sm{border-radius:6px;font-size:12px;height:26px;padding:0 10px;font-weight:500}.ant-btn:disabled{opacity:.45;cursor:not-allowed}.ant-input,.ant-input-affix-wrapper,.ant-select-selector,.ant-picker{border-radius:8px;outline:none;transition:all .22s cubic-bezier(.4,0,.2,1)}.ant-input:hover,.ant-input-affix-wrapper:hover,.ant-select:not(.ant-select-disabled):hover .ant-select-selector,.ant-picker:hover{border-color:#60a5fa}.ant-input:focus,.ant-input-focused,.ant-input-affix-wrapper:focus,.ant-input-affix-wrapper-focused,.ant-select-focused .ant-select-selector,.ant-picker-focused{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb1f}.ant-input:focus-visible,.ant-input-affix-wrapper:focus-visible,.ant-select-selector:focus-visible,.ant-picker:focus-visible{outline:none}.ant-form-item .ant-input-number{width:100%}.ant-modal{top:5vh!important;padding-bottom:0!important}.ant-modal-content{border-radius:12px!important;box-shadow:0 24px 48px #0f172a1f,0 4px 16px #0f172a0f!important;overflow:hidden!important;border:none!important;padding:0!important;max-height:90vh!important;display:flex!important;flex-direction:column!important}.ant-modal-header{flex-shrink:0!important;padding:20px 24px 18px!important;border-bottom:1px solid #f1f5f9!important;margin-bottom:0!important;background:#fff!important}.ant-modal-title{font-size:16px!important;font-weight:700!important;color:#0f172a!important;display:flex!important;align-items:center!important;gap:8px!important;padding-left:12px!important;position:relative!important;letter-spacing:.01em!important}.ant-modal-title:before{content:""!important;position:absolute!important;left:0!important;top:50%!important;transform:translateY(-50%)!important;width:3px!important;height:18px!important;background:#2563eb!important;border-radius:99px!important}.ant-modal-body{flex:1!important;overflow-y:auto!important;overflow-x:hidden!important;padding:24px!important;background:#fff!important;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.12) transparent}.ant-modal-body::-webkit-scrollbar{width:5px}.ant-modal-body::-webkit-scrollbar-track{background:transparent}.ant-modal-body::-webkit-scrollbar-thumb{background:#0000001f;border-radius:99px}.ant-modal-footer{flex-shrink:0!important;border-top:1px solid #f1f5f9!important;padding:14px 24px!important;margin-top:0!important;background:#fff!important;display:flex!important;justify-content:flex-end!important;gap:8px!important}.ant-modal-close{top:14px;right:16px;width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#94a3b8;transition:background .18s,color .18s}.ant-modal-close:hover{background:#f1f5f9;color:#475569}.ant-modal-close-x{display:flex;align-items:center;justify-content:center;font-size:14px}.ant-drawer-header{border-bottom:1px solid #f1f5f9;padding:20px 24px 18px;background:#fff}.ant-drawer-title{font-weight:700;font-size:16px;color:#0f172a;padding-left:12px;position:relative;letter-spacing:.01em}.ant-drawer-title:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:18px;background:#2563eb;border-radius:99px}.ant-drawer-content{box-shadow:-8px 0 32px #0000001a}.ant-drawer-close{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;color:#94a3b8}.ant-drawer-close:hover{background:#fee2e2;color:#dc2626}.ant-form-item-label>label{font-weight:500;color:#475569;font-size:13px}.ant-tag{border-radius:6px;font-size:12px;padding:2px 10px;font-weight:500;line-height:20px;border-width:1px;transition:all .2s}.ant-tag-blue{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.ant-tag-green{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.ant-tag-red{background:#fff1f2;border-color:#fecdd3;color:#be123c}.ant-tag-orange{background:#fff7ed;border-color:#fed7aa;color:#c2410c}.ant-tag-purple{background:#faf5ff;border-color:#e9d5ff;color:#7c3aed}.ant-tag-cyan{background:#ecfeff;border-color:#a5f3fc;color:#0e7490}.ant-tooltip-inner{border-radius:8px;font-size:12px;padding:6px 10px;box-shadow:0 4px 14px #00000026}.ant-pagination-item{border-radius:8px;border-color:#d1dcee;font-weight:500;transition:all .2s}.ant-pagination-item-active{background:linear-gradient(135deg,#1d4ed8,#3b82f6)!important;border-color:transparent!important;box-shadow:0 3px 10px #1d4ed859}.ant-pagination-item-active a{color:#fff!important}.ant-pagination-item:hover{border-color:#60a5fa;background:#eff6ff}.ant-pagination-item:hover a{color:#1d4ed8}.ant-pagination-prev button,.ant-pagination-next button{border-radius:8px!important;transition:all .2s}.ant-pagination-prev:hover button,.ant-pagination-next:hover button{color:#1d4ed8;border-color:#60a5fa}.ant-descriptions-item-label{color:#64748b;font-weight:500;font-size:12px;background:#f8fafd}.ant-descriptions-item-content{color:#0f172a;font-size:13px}.ant-descriptions-bordered .ant-descriptions-item-label,.ant-descriptions-bordered .ant-descriptions-item-content{border-color:#e8eef8}.ant-statistic-title{font-size:13px;color:#64748b;font-weight:500}.ant-statistic-content-value{font-size:28px;font-weight:700;color:#0f172a}.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#2563eb;font-weight:600}.ant-tabs-ink-bar{background:linear-gradient(90deg,#1d4ed8,#3b82f6);height:3px;border-radius:2px}.ant-tabs-tab:hover .ant-tabs-tab-btn{color:#3b82f6}.ant-divider-horizontal{border-color:#eef2fa}.ant-alert{font-size:13px}.ant-alert-info{background:#eff6ff;border-color:#bfdbfe;border-radius:8px}.ant-empty-description{color:#94a3b8;font-size:13px}.ant-switch-checked{background:linear-gradient(135deg,#1d4ed8,#3b82f6);box-shadow:0 2px 8px #1d4ed84d}.ant-checkbox-checked .ant-checkbox-inner{background:linear-gradient(135deg,#1d4ed8,#3b82f6);border-color:#2563eb;box-shadow:0 2px 6px #1d4ed840}.ant-checkbox:hover .ant-checkbox-inner,.ant-checkbox-input:focus+.ant-checkbox-inner{border-color:#2563eb}.ant-radio-checked .ant-radio-inner{border-color:#2563eb;background-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.ant-tree-treenode-selected .ant-tree-node-content-wrapper,.ant-tree-node-content-wrapper.ant-tree-node-selected{background:#2563eb1a;color:#1d4ed8}.ant-tree-node-content-wrapper:hover{background:#2563eb0f}.ant-dropdown-menu{border-radius:10px;box-shadow:0 8px 32px #0000001f,0 2px 8px #2563eb0f;padding:6px;border:1px solid #e4ecf8}.ant-dropdown-menu-item{border-radius:7px;font-size:13px;color:#1e293b;transition:all .18s}.ant-dropdown-menu-item:hover{background:#eff6ff;color:#1d4ed8}.ant-dropdown-menu-item-danger:hover{background:#fff1f2;color:#be123c}.page-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;border-bottom:1px dashed #cfdff8}.page-header-title{font-size:18px;font-weight:700;color:#0f172a;position:relative;padding-left:14px;letter-spacing:.01em}.page-header-title:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:18px;background:#2563eb;border-radius:3px}.page-toolbar{background:#fff;border-radius:12px;padding:14px 20px;margin-bottom:16px;box-shadow:0 1px 4px #0000000f,0 4px 16px #2563eb0d;border:1px solid #e4ecf8;display:flex;align-items:center;flex-wrap:wrap;gap:10px}.d-flex>.ant-card:first-of-type{background:#fff;border:1px solid #e6eaf2;border-top:3px solid #1677ff}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:500}.status-badge--active{background:#15803d14;color:#15803d;border:1px solid rgba(21,128,61,.2)}.status-badge--inactive{background:#be123c14;color:#be123c;border:1px solid rgba(190,18,60,.2)}.status-badge--pending{background:#c2410c14;color:#c2410c;border:1px solid rgba(194,65,12,.2)}.status-badge--info{background:#1d4ed814;color:#1d4ed8;border:1px solid rgba(29,78,216,.2)}.ant-drawer-body .ant-descriptions-item-label{color:#64748b;font-weight:500;font-size:12px}.ant-modal-body .ant-form-item-label>label{color:#475569;font-weight:500}.ant-progress-bg{background:linear-gradient(90deg,#1d4ed8,#3b82f6)!important}.ant-progress-success-bg{background:linear-gradient(90deg,#15803d,#22c55e)!important}.ant-spin-dot-item{background-color:#2563eb}.ant-message-notice-content{border-radius:10px;box-shadow:0 8px 28px #0000001f;border:1px solid #e4ecf8;font-size:13px;padding:10px 18px}.ant-popover-inner{border-radius:10px;box-shadow:0 8px 28px #0000001f,0 2px 8px #2563eb0f}.ant-select-dropdown{border-radius:10px;box-shadow:0 8px 28px #0000001a,0 2px 8px #2563eb0f;border:1px solid #e4ecf8;padding:6px}.ant-select-item-option{border-radius:6px;font-size:13px;transition:all .18s}.ant-select-item-option-active{background:#eff6ff}.ant-select-item-option-selected{background:linear-gradient(135deg,#dbeafe,#bfdbfe)!important;color:#1d4ed8;font-weight:600}.ant-upload-drag{border-radius:10px;border-color:#bfdbfe;background:#f8fbff;transition:all .25s}.ant-upload-drag:hover{border-color:#60a5fa;background:#eff6ff}.ant-table-column-sorter-up.active,.ant-table-column-sorter-down.active{color:#2563eb}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.page-enter{animation:fadeInUp .28s cubic-bezier(.22,1,.36,1) both}.card-enter{animation:fadeInUp .3s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--enter-delay, 0ms)}.skeleton-row{height:14px;border-radius:4px;background:linear-gradient(90deg,#f0f3fa 25%,#e4eaf5,#f0f3fa 75%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}.skeleton-row--sm{height:10px}.skeleton-row--lg{height:20px}.skeleton-row--xl{height:36px;border-radius:8px}.skeleton-box{border-radius:8px;background:linear-gradient(90deg,#f0f3fa 25%,#e4eaf5,#f0f3fa 75%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}.empty-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:#94a3b8}.empty-placeholder-icon{font-size:48px;opacity:.4;margin-bottom:12px}.empty-placeholder-text{font-size:14px;color:#94a3b8}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#64748b40;border-radius:99px}*::-webkit-scrollbar-thumb:hover{background:#64748b73}@media (max-width: 768px){.page-toolbar{padding:10px 14px}.page-header{padding-bottom:10px}.ant-modal{top:2vh!important}.ant-modal-content{max-height:96vh}}.cursor-pointer{cursor:pointer}.user-select-none{-webkit-user-select:none;user-select:none}.overflow-hidden{overflow:hidden}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.opacity-50{opacity:.5}.transition-all{transition:all .22s cubic-bezier(.4,0,.2,1)}.badge-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#2563eb;color:#fff;font-size:11px;font-weight:700;line-height:1}.badge-count--red{background:#dc2626}.badge-count--green{background:#16a34a}.badge-count--orange{background:#ea580c}.ant-table-tbody>tr{transition:background .18s}.ant-table-tbody>tr>td{padding-top:10px;padding-bottom:10px}.layout-content-wrap{animation:fadeIn .22s ease both}.sider-user-popup .ant-popover-inner{background:#fff;border:1px solid #e8edf5;border-radius:10px;padding:6px;box-shadow:0 6px 24px #0000001a,0 2px 8px #2563eb0f;min-width:148px}.sider-user-popup .ant-popover-arrow:before,.sider-user-popup .ant-popover-arrow:after{background:#fff}.sider-user-popup .ant-menu-item{border-radius:8px;color:#374151;font-size:13px;padding:8px 12px;height:auto;line-height:1.4;transition:background .18s,color .18s}.sider-user-popup .ant-menu-item:hover{background:#f0f5ff;color:#2563eb}.sider-user-popup .ant-menu-item .anticon{color:#6b7280;font-size:14px}.sider-user-popup .ant-menu-item:hover .anticon{color:#2563eb}.sider-user-popup .ant-menu-item-danger{color:#ef4444}.sider-user-popup .ant-menu-item-danger:hover{background:#fff1f2;color:#dc2626}.sider-user-popup .ant-menu-item-danger .anticon{color:#ef4444}.sider-user-popup .ant-menu-item-divider,.sider-user-popup .ant-menu-divider{background:#f0f0f0;margin:4px 8px}
