.web-input[data-v-9929c1f8]{flex-direction:column;gap:8px;display:flex}.web-input-label[data-v-9929c1f8]{color:var(--web-text);font-size:12px;font-weight:600}.web-input-wrap[data-v-9929c1f8]{align-items:center;display:flex}.web-input-field[data-v-9929c1f8]{border-radius:var(--radius-md);border:1px solid var(--web-border);background:var(--web-surface);width:100%;height:40px;color:var(--web-text);font-size:13px;font-family:var(--web-font);outline:none;padding:0 12px}.web-input-field[data-v-9929c1f8]:focus{border-color:var(--web-primary)}.web-input-field[data-v-9929c1f8]:focus-visible{outline:2px solid var(--web-primary);outline-offset:2px}.web-input-field[data-v-9929c1f8]::placeholder{color:var(--web-muted)}.web-input-error[data-v-9929c1f8]{color:var(--web-danger);font-size:11px}.web-btn[data-v-126726b8]{border-radius:var(--radius-md);height:40px;font-size:13px;font-weight:700;font-family:var(--web-font);justify-content:center;align-items:center;gap:8px;padding:0 16px;transition:opacity .15s,background-color .15s,border-color .15s,color .15s;display:inline-flex}.web-btn.sm[data-v-126726b8]{height:32px;padding:0 10px;font-size:12px}.web-btn[data-v-126726b8]:disabled{opacity:.5;cursor:not-allowed}.web-btn[data-v-126726b8]:focus-visible{outline:2px solid var(--web-primary);outline-offset:2px}.primary[data-v-126726b8]{background:var(--web-primary);color:#fff}.primary[data-v-126726b8]:hover:not(:disabled){opacity:.9}.secondary[data-v-126726b8]{background:var(--web-surface);color:var(--web-text);border:1px solid var(--web-border)}.secondary[data-v-126726b8]:hover:not(:disabled){background:#f9fafb}.danger[data-v-126726b8]{background:var(--web-danger);color:#fff}.danger[data-v-126726b8]:hover:not(:disabled){opacity:.9}.web-icon[data-v-fe6de9bf]{flex:none;width:1em;height:1em;display:inline-block}.login-page[data-v-b7679f83]{height:100vh;display:flex}.login-brand[data-v-b7679f83]{background:#fff8ec;flex:1;justify-content:center;align-items:center;padding:0 72px;display:flex}.login-brand-content[data-v-b7679f83]{flex-direction:column;gap:18px;max-width:416px;display:flex}.login-brand-icon[data-v-b7679f83]{width:72px;height:72px;color:var(--web-primary);justify-content:center;align-items:center;font-size:72px;display:flex}.login-brand-title[data-v-b7679f83]{color:var(--web-text);font-size:28px;font-weight:800;line-height:1.35}.login-brand-desc[data-v-b7679f83]{color:var(--web-muted);font-size:14px;font-weight:500;line-height:1.35}.login-form[data-v-b7679f83]{background:var(--web-surface);flex:1;justify-content:center;align-items:center;padding:0 120px;display:flex}.login-form-content[data-v-b7679f83]{flex-direction:column;gap:18px;width:100%;max-width:380px;display:flex}.login-form-title[data-v-b7679f83]{color:var(--web-text);font-size:24px;font-weight:800}.login-form-desc[data-v-b7679f83]{color:var(--web-muted);font-size:13px}.login-submit[data-v-b7679f83]{width:100%}.login-form-footnote[data-v-b7679f83]{color:var(--web-muted);font-size:12px}.sidebar[data-v-41adb15a]{width:var(--web-sidebar-width);background:var(--web-surface);border-right:1px solid var(--web-border);z-index:100;flex-direction:column;gap:8px;height:100vh;padding:24px 18px 18px;display:flex;position:fixed;top:0;left:0}.sidebar-brand[data-v-41adb15a]{align-items:center;gap:10px;height:36px;display:flex}.sidebar-logo[data-v-41adb15a]{width:26px;height:26px;color:var(--web-primary);justify-content:center;align-items:center;font-size:26px;display:flex}.sidebar-brand-text[data-v-41adb15a]{color:var(--web-text);font-size:15px;font-weight:700}.sidebar-nav[data-v-41adb15a]{flex-direction:column;gap:6px;margin-top:8px;display:flex}.sidebar-link[data-v-41adb15a]{border-radius:var(--radius-md);height:40px;color:var(--web-muted);align-items:center;gap:10px;padding:0 12px;font-size:13px;font-weight:500;transition:background-color .15s,color .15s;display:flex}.sidebar-link[data-v-41adb15a]:hover{color:var(--web-text);background:#f9fafb}.sidebar-link.active[data-v-41adb15a]{background:var(--web-primary-soft);color:var(--web-primary);font-weight:700}.sidebar-link[data-v-41adb15a]:focus-visible{outline:2px solid var(--web-primary);outline-offset:2px}.sidebar-link-icon[data-v-41adb15a]{font-size:16px}.sidebar-spacer[data-v-41adb15a]{flex:1}.sidebar-version[data-v-41adb15a]{color:var(--web-muted);font-size:11px}.admin-layout[data-v-e845d2db]{height:100vh;display:flex}.admin-main[data-v-e845d2db]{margin-left:var(--web-sidebar-width);padding:var(--web-content-padding);flex-direction:column;flex:1;gap:20px;display:flex;overflow-y:auto}.modal-overlay[data-v-8512c381]{z-index:1000;overscroll-behavior:contain;background:#00000040;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box[data-v-8512c381]{background:var(--web-surface);border-radius:var(--radius-xl);border:1px solid var(--web-border);box-shadow:var(--shadow-dialog);flex-direction:column;gap:16px;width:360px;padding:20px;display:flex}.modal-title[data-v-8512c381]{color:var(--web-text);font-size:18px;font-weight:800}.modal-message[data-v-8512c381]{color:var(--web-muted);font-size:13px;line-height:1.35}.modal-actions[data-v-8512c381]{justify-content:flex-end;gap:10px;display:flex}.topbar[data-v-b86cbacb]{height:var(--web-topbar-height);justify-content:space-between;align-items:center;padding:0;display:flex}.topbar-left[data-v-b86cbacb]{flex-direction:column;gap:4px;display:flex}.topbar-title[data-v-b86cbacb]{color:var(--web-text);font-size:20px;font-weight:800}.topbar-subtitle[data-v-b86cbacb]{color:var(--web-muted);font-size:13px}.topbar-right[data-v-b86cbacb]{align-items:center;display:flex}.topbar-logout[data-v-b86cbacb]{border-radius:var(--radius-md);background:var(--web-surface);border:1px solid var(--web-border);height:32px;color:var(--web-muted);font-size:12px;font-weight:600;font-family:var(--web-font);align-items:center;gap:6px;padding:0 12px;transition:border-color .15s,color .15s,background-color .15s;display:inline-flex}.topbar-logout[data-v-b86cbacb]:hover{color:var(--web-danger);border-color:var(--web-danger)}.topbar-logout[data-v-b86cbacb]:focus-visible{outline:2px solid var(--web-primary);outline-offset:2px}.web-data-card[data-v-15399e1b]{border-radius:var(--radius-lg);background:var(--web-surface);border:1px solid var(--web-border);flex-direction:column;flex:1;gap:8px;min-width:200px;padding:16px;display:flex}.web-data-card-label[data-v-15399e1b]{color:var(--web-muted);font-size:12px}.web-data-card-value[data-v-15399e1b]{color:var(--web-text);font-size:26px;font-weight:800}.web-data-card-line[data-v-15399e1b]{border-radius:2px;width:100%;height:3px}.empty-state[data-v-58fedcb5]{background:var(--web-surface);border-radius:var(--radius-lg);border:1px solid var(--web-border);flex-direction:column;align-items:center;gap:10px;padding:40px 18px;display:flex}.empty-icon[data-v-58fedcb5]{background:var(--web-primary-soft);width:42px;height:42px;color:var(--web-primary);border-radius:12px;justify-content:center;align-items:center;font-size:24px;display:flex}.empty-title[data-v-58fedcb5]{color:var(--web-text);font-size:14px;font-weight:800}.empty-desc[data-v-58fedcb5]{color:var(--web-muted);font-size:12px}.pagination[data-v-384ee247]{justify-content:center;align-items:center;gap:4px;padding:12px 0;display:flex}.page-btn[data-v-384ee247]{border-radius:var(--radius-sm);border:1px solid var(--web-border);background:var(--web-surface);min-width:32px;height:32px;color:var(--web-text);font-size:12px;font-weight:600;font-family:var(--web-font);cursor:pointer;padding:0 8px}.page-btn[data-v-384ee247]:hover:not(:disabled){border-color:var(--web-primary)}.page-btn[data-v-384ee247]:focus-visible{outline:2px solid var(--web-primary);outline-offset:2px}.page-btn.active[data-v-384ee247]{background:var(--web-primary);color:#fff;border-color:var(--web-primary)}.page-btn[data-v-384ee247]:disabled{opacity:.4;cursor:not-allowed}.page-ellipsis[data-v-384ee247]{color:var(--web-muted);padding:0 4px;font-size:12px}.page-info[data-v-384ee247]{color:var(--web-muted);margin-left:8px;font-size:12px}.web-section[data-v-e5adfc89]{flex-direction:column;gap:12px;display:flex}.web-section-header[data-v-e5adfc89]{justify-content:space-between;align-items:center;gap:16px;display:flex}.web-section-title-wrap[data-v-e5adfc89]{flex-direction:column;gap:3px;min-width:0;display:flex}.web-section-title[data-v-e5adfc89]{color:var(--web-text);font-size:16px;font-weight:800}.web-section-subtitle[data-v-e5adfc89]{color:var(--web-muted);font-size:12px}.web-section-actions[data-v-e5adfc89]{flex:none;align-items:center;gap:10px;display:inline-flex}.overview-page[data-v-16224900]{flex-direction:column;gap:20px;display:flex}.cards-row[data-v-16224900]{gap:16px;display:flex}.overview-body[data-v-16224900]{flex:1;gap:20px;min-height:0;display:flex}.overview-left[data-v-16224900]{flex-direction:column;flex:2;gap:12px;display:flex}.overview-right[data-v-16224900]{flex-direction:column;flex:1;gap:12px;display:flex}.section-header[data-v-16224900]{justify-content:space-between;align-items:center;display:flex}.section-title[data-v-16224900]{color:var(--web-text);font-size:16px;font-weight:800}.log-list[data-v-16224900]{background:var(--web-surface);border:1px solid var(--web-border);border-radius:var(--radius-lg);overflow:hidden}.log-item[data-v-16224900]{border-bottom:1px solid #f3f4f6;align-items:center;gap:12px;padding:14px 16px;display:flex}.log-item[data-v-16224900]:last-child{border-bottom:none}.log-icon[data-v-16224900]{background:var(--web-primary-soft);width:32px;height:32px;color:var(--web-primary);border-radius:10px;justify-content:center;align-items:center;font-size:16px;display:flex}.log-info[data-v-16224900]{flex-direction:column;flex:1;gap:2px;display:flex}.log-name[data-v-16224900]{font-size:13px;font-weight:600}.log-meta[data-v-16224900]{color:var(--web-muted);font-size:11px}.log-pts[data-v-16224900]{font-size:14px;font-weight:700}.log-pts.plus[data-v-16224900]{color:var(--web-success)}.log-pts.minus[data-v-16224900]{color:var(--web-warning)}.quick-actions[data-v-16224900]{flex-direction:column;gap:8px;display:flex}.quick-action[data-v-16224900]{border-radius:var(--radius-md);background:var(--web-surface);border:1px solid var(--web-border);color:var(--web-text);align-items:center;gap:10px;padding:14px 16px;font-size:13px;font-weight:600;display:flex}.quick-action[data-v-16224900]:hover{border-color:var(--web-primary)}.quick-action[data-v-16224900]:focus-visible{outline:2px solid var(--web-primary);outline-offset:2px}.qa-icon[data-v-16224900]{color:var(--web-primary);font-size:18px}.pending-alert[data-v-16224900]{border-radius:var(--radius-md);background:var(--web-warning-bg);color:var(--web-text);align-items:flex-start;gap:10px;padding:14px;font-size:13px;line-height:1.4;display:flex}.pending-alert p[data-v-16224900]{color:var(--web-muted);margin-top:2px;font-size:12px}.pa-icon[data-v-16224900]{color:var(--web-warning);flex:none;font-size:20px}.web-tag[data-v-3725ea6e]{white-space:nowrap;border-radius:13px;justify-content:center;align-items:center;height:26px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.success[data-v-3725ea6e]{background:var(--web-success-bg);color:var(--web-success)}.warning[data-v-3725ea6e]{background:var(--web-warning-bg);color:var(--web-warning)}.danger[data-v-3725ea6e]{background:var(--web-danger-bg);color:var(--web-danger)}.info[data-v-3725ea6e]{background:var(--web-info-bg);color:var(--web-info)}.muted[data-v-3725ea6e]{color:var(--web-muted);background:#f3f4f6}.tasks-page[data-v-9f4b4a25]{flex-direction:column;gap:20px;display:flex}.toolbar[data-v-9f4b4a25]{gap:12px;display:flex}.col-sort[data-v-9f4b4a25]{width:48px}.col-kind[data-v-9f4b4a25]{width:100px}.col-points[data-v-9f4b4a25]{width:80px}.col-goal[data-v-9f4b4a25]{width:90px}.col-status[data-v-9f4b4a25]{width:96px}.col-actions[data-v-9f4b4a25]{width:108px}.task-name[data-v-9f4b4a25]{font-weight:600}.note-box[data-v-9f4b4a25]{border-radius:var(--radius-lg);color:var(--web-text);background:#fff7ec;border:1px solid #fed7aa;flex-direction:column;gap:8px;padding:18px;font-size:13px;display:flex}.note-box strong[data-v-9f4b4a25]{font-size:16px;font-weight:800}.note-box p[data-v-9f4b4a25]{color:var(--web-muted);font-size:13px}.form-row[data-v-9f4b4a25]{gap:12px;display:flex}.form-label[data-v-9f4b4a25]{color:var(--web-text);margin-bottom:8px;font-size:12px;font-weight:600;display:block}.form-select[data-v-9f4b4a25]{border-radius:var(--radius-md);border:1px solid var(--web-border);background:var(--web-surface);width:100%;height:40px;color:var(--web-text);font-size:13px;font-family:var(--web-font);outline:none;padding:0 12px}.form-select[data-v-9f4b4a25]:focus{border-color:var(--web-primary)}.form-check[data-v-9f4b4a25]{color:var(--web-text);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.schedule-weekdays[data-v-9f4b4a25],.schedule-monthly[data-v-9f4b4a25]{flex-direction:column;gap:8px;display:flex}.weekday-grid[data-v-9f4b4a25]{gap:6px;display:flex}.weekday-chip[data-v-9f4b4a25]{border-radius:var(--radius-md);border:1px solid var(--web-border);background:var(--web-surface);width:36px;height:36px;color:var(--web-muted);cursor:pointer;justify-content:center;align-items:center;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s,color .15s;display:flex}.weekday-chip.active[data-v-9f4b4a25]{background:var(--web-primary-soft);color:var(--web-primary);border-color:var(--web-primary)}.weekday-chip[data-v-9f4b4a25]:focus-within{outline:2px solid var(--web-primary);outline-offset:2px}.weekday-check[data-v-9f4b4a25]{display:none}.monthly-grid[data-v-9f4b4a25]{flex-wrap:wrap;gap:4px;display:flex}.monthly-chip[data-v-9f4b4a25]{border-radius:var(--radius-sm);border:1px solid var(--web-border);background:var(--web-surface);width:36px;height:30px;color:var(--web-muted);cursor:pointer;justify-content:center;align-items:center;font-size:11px;font-weight:600;transition:background-color .15s,border-color .15s,color .15s;display:flex}.monthly-chip.active[data-v-9f4b4a25]{background:var(--web-primary-soft);color:var(--web-primary);border-color:var(--web-primary)}.monthly-chip[data-v-9f4b4a25]:focus-within{outline:2px solid var(--web-primary);outline-offset:2px}.monthly-check[data-v-9f4b4a25]{display:none}.rewards-page[data-v-ca7bde2a]{flex-direction:column;gap:20px;display:flex}.cards-row[data-v-ca7bde2a]{gap:16px;display:flex}.section-title[data-v-ca7bde2a]{color:var(--web-text);align-items:center;gap:8px;font-size:16px;font-weight:800;display:flex}.col-sort[data-v-ca7bde2a]{width:60px}.col-cost[data-v-ca7bde2a]{width:108px}.col-stock[data-v-ca7bde2a],.col-sold[data-v-ca7bde2a],.col-status[data-v-ca7bde2a]{width:84px}.col-actions[data-v-ca7bde2a]{width:108px}.col-time[data-v-ca7bde2a]{width:150px}.col-redeem[data-v-ca7bde2a]{width:130px}.badge[data-v-ca7bde2a]{background:var(--web-warning-bg);color:var(--web-warning);border-radius:10px;padding:2px 8px;font-size:12px;font-weight:700}.voucher-icon[data-v-ca7bde2a]{color:var(--web-primary);vertical-align:-2px;margin-right:8px;font-size:16px}.form-row[data-v-ca7bde2a]{gap:12px;display:flex}.form-check[data-v-ca7bde2a]{color:var(--web-text);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.points-page[data-v-9bd66d9b]{flex-direction:column;gap:20px;display:flex}.cards-row[data-v-9bd66d9b]{gap:16px;display:flex}.actions-bar[data-v-9bd66d9b]{gap:12px;display:flex}.col-time[data-v-9bd66d9b]{width:168px}.col-type[data-v-9bd66d9b]{width:88px}.col-points[data-v-9bd66d9b]{width:108px}.col-balance[data-v-9bd66d9b]{width:88px}.tabs[data-v-9bd66d9b]{background:var(--web-bg);border-radius:var(--radius-md);gap:4px;padding:4px;display:flex}.tab-btn[data-v-9bd66d9b]{border-radius:calc(var(--radius-md) - 2px);height:36px;color:var(--web-muted);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--web-font);background:0 0;border:none;flex:1;transition:background-color .15s,color .15s,box-shadow .15s}.tab-btn.active[data-v-9bd66d9b]{background:var(--web-surface);color:var(--web-text);box-shadow:var(--shadow-card)}.tab-btn[data-v-9bd66d9b]:hover:not(.active){color:var(--web-text)}.section[data-v-9bd66d9b]{flex-direction:column;gap:12px;display:flex}.reason[data-v-9bd66d9b]{color:var(--web-muted);font-weight:400}.pts-plus[data-v-9bd66d9b]{color:var(--web-success);font-weight:700}.pts-minus[data-v-9bd66d9b]{color:var(--web-warning);font-weight:700}:root{--web-bg:#f6f7f9;--web-surface:#fff;--web-text:#1f2937;--web-muted:#6b7280;--web-primary:#ffb35c;--web-primary-hover:#f59e0b;--web-primary-soft:#fff2df;--web-success:#16a34a;--web-success-bg:#ecfdf3;--web-warning:#f59e0b;--web-warning-bg:#fff7ed;--web-danger:#dc2626;--web-danger-bg:#fef2f2;--web-info:#60a5fa;--web-info-bg:#eff6ff;--web-border:#e5e7eb;--web-sidebar-width:240px;--web-topbar-height:56px;--web-content-padding:28px;--web-page-max:1440px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:12px;--shadow-card:0 1px 3px #0000000f;--shadow-dialog:0 12px 30px #1118271a;--web-font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--web-font);color:var(--web-text);background:var(--web-bg);-webkit-font-smoothing:antialiased;font-size:14px}#app{height:100%}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:none}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--web-primary);outline-offset:2px}input,select,textarea{font-family:inherit;font-size:inherit}table{border-collapse:collapse;width:100%}.web-table-wrap{background:var(--web-surface);border:1px solid var(--web-border);border-radius:var(--radius-lg);overflow:hidden}.web-table{table-layout:fixed}.web-table th{text-align:left;color:var(--web-muted);border-bottom:1px solid var(--web-border);background:#fff7ec;padding:14px 16px;font-size:12px;font-weight:600}.web-table td{vertical-align:middle;border-bottom:1px solid #f3f4f6;padding:12px 16px;font-size:13px}.web-table tbody tr:last-child td{border-bottom:none}.web-table tbody tr.disabled{opacity:.5}.web-table .item-name{min-width:0;font-weight:600}.web-table .muted{color:var(--web-muted);font-size:12px}.web-table .pts{color:var(--web-primary);font-variant-numeric:tabular-nums;font-weight:700}.web-table .row-actions{gap:8px;display:flex}.web-table .act-link{color:var(--web-primary);padding:0;font-size:12px;font-weight:600}.web-table .act-link.danger{color:var(--web-danger)}.web-table .act-link:hover{opacity:.8}.web-thumb{object-fit:cover;vertical-align:middle;border-radius:8px;width:28px;height:28px;margin-right:8px}
