: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%}
