.main-layout[data-v-884f52b6]{background:var(--color-bg);width:100vw;height:100vh;display:flex;overflow:hidden}.sidebar[data-v-884f52b6]{width:var(--sidebar-width);background:var(--color-sidebar-bg);height:100vh;color:var(--color-sidebar-text);transition:var(--transition-sidebar);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.sidebar.collapsed[data-v-884f52b6]{width:var(--sidebar-width-collapsed)}.sidebar-header[data-v-884f52b6]{border-bottom:1px solid var(--color-sidebar-divider);flex-shrink:0;align-items:center;height:56px;padding:16px 20px;display:flex}.sidebar.collapsed .sidebar-header[data-v-884f52b6]{justify-content:center;padding:16px}.app-title[data-v-884f52b6]{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-sidebar-text);white-space:nowrap;margin:0;overflow:hidden}.sidebar-nav[data-v-884f52b6]{flex:1;padding:12px 8px;overflow-y:auto}.menu-item[data-v-884f52b6]{border-radius:var(--radius-md);cursor:pointer;color:var(--color-sidebar-text-muted);white-space:nowrap;align-items:center;margin:4px 0;padding:12px 16px;transition:background .2s;display:flex}.sidebar.collapsed .menu-item[data-v-884f52b6]{justify-content:center;padding:12px}.menu-item[data-v-884f52b6]:hover{background:var(--color-sidebar-hover);color:var(--color-sidebar-text)}.menu-item.active[data-v-884f52b6]{background:var(--color-sidebar-active);color:var(--color-sidebar-text)}.menu-icon[data-v-884f52b6]{font-size:var(--font-size-lg);text-align:center;flex-shrink:0;width:24px;margin-right:12px}.sidebar.collapsed .menu-icon[data-v-884f52b6]{margin-right:0}.menu-label[data-v-884f52b6]{font-size:var(--font-size-base);flex:1}.sidebar-footer[data-v-884f52b6]{border-top:1px solid var(--color-sidebar-divider);flex-shrink:0;padding:12px}.user-mini[data-v-884f52b6]{border-radius:var(--radius-md);align-items:center;gap:10px;padding:8px 12px;display:flex}.user-avatar[data-v-884f52b6]{background:var(--color-primary);color:#fff;width:32px;height:32px;font-size:var(--font-size-base);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.user-mini-name[data-v-884f52b6]{font-size:var(--font-size-sm);color:var(--color-sidebar-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.main-content[data-v-884f52b6]{flex-direction:column;flex:1;min-width:0;height:100vh;display:flex;overflow:hidden}.content-header[data-v-884f52b6]{background:var(--color-header-bg);border-bottom:1px solid var(--color-border);height:56px;padding:0 var(--content-padding);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.header-left[data-v-884f52b6]{align-items:center;gap:16px;display:flex}.collapse-btn[data-v-884f52b6]{border-radius:var(--radius-md);width:32px;height:32px;color:var(--color-text-secondary);font-size:var(--font-size-lg);justify-content:center;align-items:center;transition:background .2s;display:flex}.collapse-btn[data-v-884f52b6]:hover{background:var(--color-bg);color:var(--color-text)}.page-title[data-v-884f52b6]{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-text);margin:0}.logout-btn[data-v-884f52b6]{border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-base);padding:6px 14px;transition:background .2s}.logout-btn[data-v-884f52b6]:hover{background:var(--color-danger-bg);color:var(--color-danger)}.content[data-v-884f52b6]{background:var(--color-bg);flex:1;overflow-y:auto}.login-page[data-v-6642d79c]{background:var(--color-login-gradient);justify-content:center;align-items:center;width:100vw;height:100vh;display:flex}.login-card[data-v-6642d79c]{background:var(--color-surface);border-radius:var(--radius-login-card);width:380px;box-shadow:var(--shadow-login);text-align:center;padding:40px 32px}.login-title[data-v-6642d79c]{font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);color:var(--color-text);margin-bottom:8px}.login-subtitle[data-v-6642d79c]{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:20px}.mode-tabs[data-v-6642d79c]{background:var(--color-bg);border-radius:var(--radius-md);margin-bottom:20px;padding:4px;display:flex}.mode-tab[data-v-6642d79c]{border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;flex:1;padding:8px 0;transition:all .2s}.mode-tab.active[data-v-6642d79c]{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm)}.login-form[data-v-6642d79c]{flex-direction:column;gap:12px;display:flex}.form-input[data-v-6642d79c]{border:1px solid var(--color-input-border);border-radius:var(--radius-md);width:100%;font-size:var(--font-size-base);padding:11px 12px}.captcha-row[data-v-6642d79c]{align-items:stretch;gap:10px;display:flex}.captcha-input[data-v-6642d79c]{flex:1}.captcha-img[data-v-6642d79c]{border-radius:var(--radius-md);cursor:pointer;border:1px solid var(--color-border);height:44px}.login-btn[data-v-6642d79c]{background:var(--color-primary);color:#fff;width:100%;font-size:var(--font-size-base);border-radius:var(--radius-md);cursor:pointer;padding:12px;transition:background .2s}.login-btn[data-v-6642d79c]:hover{background:var(--color-primary-hover)}.login-btn[data-v-6642d79c]:disabled{opacity:.6;cursor:default}.wecom-btn[data-v-6642d79c]{background:#07c160}.wecom-btn[data-v-6642d79c]:hover{background:#06ad56}.error-banner[data-v-6642d79c]{background:var(--color-danger-bg);color:var(--color-danger);font-size:var(--font-size-sm);border-radius:var(--radius-md);text-align:left;word-break:break-all;margin-bottom:16px;padding:10px 12px}.login-hint[data-v-6642d79c]{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:16px}.callback-page[data-v-3de82bc5]{background:var(--color-bg);justify-content:center;align-items:center;width:100vw;height:100vh;display:flex}.callback-card[data-v-3de82bc5]{text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-base)}.spinner[data-v-3de82bc5]{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:32px;height:32px;margin:0 auto 12px;animation:.8s linear infinite spin-3de82bc5}@keyframes spin-3de82bc5{to{transform:rotate(360deg)}}.error-text[data-v-3de82bc5]{color:var(--color-danger);word-break:break-all;max-width:420px;margin-bottom:16px}.back-link[data-v-3de82bc5]{color:var(--color-primary)}.dashboard-page[data-v-79c7c9ef]{background:var(--color-bg);box-sizing:border-box;width:100%;min-height:100%}.page-header[data-v-79c7c9ef]{padding:20px var(--content-padding);background:var(--color-header-bg);border-bottom:1px solid var(--color-border)}.greeting-section h1[data-v-79c7c9ef]{font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);color:var(--color-text);margin:0 0 4px}.subtitle[data-v-79c7c9ef]{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.content[data-v-79c7c9ef]{width:100%;padding:var(--content-padding);box-sizing:border-box}.stats-section[data-v-79c7c9ef]{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;display:grid}.stat-card[data-v-79c7c9ef]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;min-width:0;box-shadow:var(--shadow-sm);align-items:center;gap:16px;padding:20px;transition:box-shadow .2s;display:flex}.stat-card[data-v-79c7c9ef]:hover{box-shadow:var(--shadow-md)}.stat-icon[data-v-79c7c9ef]{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex}.stat-info[data-v-79c7c9ef]{flex:1}.stat-value[data-v-79c7c9ef]{font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);color:var(--color-text);margin-bottom:2px}.stat-label[data-v-79c7c9ef]{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.quick-section[data-v-79c7c9ef]{margin-bottom:20px}.section-title[data-v-79c7c9ef]{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-text);margin:0 0 16px}.quick-grid[data-v-79c7c9ef]{grid-template-columns:repeat(6,1fr);gap:12px;display:grid}.quick-item[data-v-79c7c9ef]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;box-shadow:var(--shadow-sm);flex-direction:column;align-items:center;gap:10px;padding:20px 12px;transition:box-shadow .2s;display:flex}.quick-item[data-v-79c7c9ef]:hover{box-shadow:var(--shadow-md)}.quick-icon[data-v-79c7c9ef]{border-radius:var(--radius-md);background:var(--color-info-bg);width:40px;height:40px;font-size:var(--font-size-lg);justify-content:center;align-items:center;display:flex}.quick-label[data-v-79c7c9ef]{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.activity-list[data-v-79c7c9ef]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.activity-empty[data-v-79c7c9ef]{text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm);padding:24px}.activity-item[data-v-79c7c9ef]{border-bottom:1px solid var(--color-border);align-items:center;gap:16px;padding:16px 20px;transition:background .2s;display:flex}.activity-item[data-v-79c7c9ef]:last-child{border-bottom:none}.activity-item[data-v-79c7c9ef]:hover{background:var(--color-table-row-hover)}.activity-icon[data-v-79c7c9ef]{border-radius:var(--radius-md);width:36px;height:36px;font-size:var(--font-size-base);flex-shrink:0;justify-content:center;align-items:center;display:flex}.activity-content[data-v-79c7c9ef]{flex:1}.activity-title[data-v-79c7c9ef]{font-size:var(--font-size-base);color:var(--color-text);margin-bottom:4px}.activity-time[data-v-79c7c9ef]{font-size:var(--font-size-xs);color:var(--color-text-muted)}@media (width<=1024px){.stats-section[data-v-79c7c9ef]{grid-template-columns:repeat(2,1fr)}.quick-grid[data-v-79c7c9ef]{grid-template-columns:repeat(3,1fr)}}:root{--color-primary:#1890ff;--color-primary-hover:#40a9ff;--color-primary-active:#096dd9;--color-primary-bg:#e6f4ff;--color-success:#52c41a;--color-success-bg:#f6ffed;--color-danger:#ff4d4f;--color-danger-bg:#fff1f0;--color-warning:#faad14;--color-warning-bg:#fffbe6;--color-info:#909399;--color-info-bg:#e6f4ff;--color-bg:#f5f7fa;--color-surface:#fff;--color-header-bg:#fff;--color-table-header-bg:#f6f8fa;--color-table-row-hover:#f6f8fa;--color-table-row-even:#f9fafb;--color-border:#e1e4e8;--color-border-light:#ebeef5;--color-input-border:#d1d5da;--color-text:#333;--color-text-secondary:#586069;--color-text-muted:#909399;--color-text-disabled:#c0c4cc;--color-sidebar-bg:#2c3e50;--color-sidebar-hover:#34495e;--color-sidebar-active:#34495e;--color-sidebar-text:#fff;--color-sidebar-text-muted:#95a5a6;--color-sidebar-divider:#34495e;--color-login-gradient:linear-gradient(135deg, #667eea 0%, #764ba2 100%);--badge-pending-bg:#ffeaa7;--badge-pending-text:#d63031;--badge-approved-bg:#c8f7dc;--badge-approved-text:#27ae60;--badge-rejected-bg:#fab1a0;--badge-rejected-text:#c0392b;--badge-cancelled-bg:#dfe6e9;--badge-cancelled-text:#636e72;--badge-active-bg:#c8f7dc;--badge-active-text:#27ae60;--badge-inactive-bg:#dfe6e9;--badge-inactive-text:#636e72;--badge-reward-bg:#d4edda;--badge-reward-text:#155724;--badge-deduct-bg:#f8d7da;--badge-deduct-text:#721c24;--badge-penalty-bg:#fff3cd;--badge-penalty-text:#856404;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-pill:12px;--radius-login-card:16px;--shadow-sm:0 1px 3px #0000000d;--shadow-md:0 1px 3px #0000001a;--shadow-modal:0 2px 8px #00000026;--shadow-login:0 20px 60px #0000004d;--overlay:#00000080;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-size-xs:12px;--font-size-sm:13px;--font-size-base:14px;--font-size-lg:16px;--font-size-xl:20px;--font-weight-normal:400;--font-weight-medium:500;--sidebar-width:220px;--sidebar-width-collapsed:60px;--content-padding:25px;--transition-sidebar:width .25s ease;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-family);font-size:var(--font-size-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--color-bg);color:var(--color-text)}#app{width:100%;min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-border-light)}::-webkit-scrollbar-thumb{background:var(--color-text-muted);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}::selection{color:var(--color-text);background:#1890ff33}a{color:var(--color-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--color-primary-hover)}input,select,textarea{background:var(--color-surface);border:1px solid var(--color-input-border);color:var(--color-text);border-radius:var(--radius-md);font-size:var(--font-size-base);font-family:var(--font-family);padding:8px 12px;transition:border-color .2s}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);outline:none}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.btn{border-radius:var(--radius-md);font-size:var(--font-size-base);cursor:pointer;border:none;padding:8px 16px;transition:opacity .2s}.btn:hover{opacity:.9}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-success{background:var(--color-success);color:#fff}.btn-danger{background:var(--color-danger);color:#fff}.btn-secondary{color:#fff;background:#6c757d}.btn-sm{font-size:var(--font-size-xs);padding:4px 10px}table{background:var(--color-surface);border-collapse:collapse;border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-md);overflow:hidden}thead{background:var(--color-table-header-bg)}th,td{text-align:left;border-bottom:1px solid var(--color-border);padding:12px 15px}th{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);color:var(--color-text-secondary)}tbody tr:nth-child(2n){background:var(--color-table-row-even)}tbody tr:hover{background:var(--color-table-row-hover)}.status-badge{border-radius:var(--radius-pill);font-size:var(--font-size-xs);padding:3px 8px;display:inline-block}.status-pending{background:var(--badge-pending-bg);color:var(--badge-pending-text)}.status-approved{background:var(--badge-approved-bg);color:var(--badge-approved-text)}.status-rejected{background:var(--badge-rejected-bg);color:var(--badge-rejected-text)}.status-cancelled{background:var(--badge-cancelled-bg);color:var(--badge-cancelled-text)}.status-active{background:var(--badge-active-bg);color:var(--badge-active-text)}.status-inactive{background:var(--badge-inactive-bg);color:var(--badge-inactive-text)}.badge-reward{background:var(--badge-reward-bg);color:var(--badge-reward-text)}.badge-deduct{background:var(--badge-deduct-bg);color:var(--badge-deduct-text)}.badge-penalty{background:var(--badge-penalty-bg);color:var(--badge-penalty-text)}.modal-overlay{background:var(--overlay);z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--color-surface);border-radius:var(--radius-lg);width:90%;max-width:500px;max-height:90vh;overflow:auto}.modal-header{border-bottom:1px solid var(--color-border);padding:15px 20px}.modal-body{padding:20px}.modal-footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:10px;padding:15px 20px;display:flex}.filters{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;padding:14px 20px;display:flex}.pagination button,.pagination span{border:1px solid var(--color-input-border);background:var(--color-surface);border-radius:var(--radius-sm);padding:6px 12px}.pagination .active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.form-group{margin-bottom:16px}.form-group label{color:var(--color-text-secondary);font-size:var(--font-size-base);margin-bottom:5px;display:block}.form-group input,.form-group select,.form-group textarea{width:100%}
