.dashboard[data-v-e1afc0e8]{width:100%;height:100%;padding:16px;overflow-y:auto}.month-nav[data-v-e1afc0e8]{justify-content:center;align-items:center;gap:12px;margin-bottom:16px;display:flex}.nav-btn[data-v-e1afc0e8]{background:var(--bg-secondary);width:36px;height:36px;color:var(--text-primary);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.nav-btn[data-v-e1afc0e8]:hover:not(:disabled){background:var(--primary-color)}.nav-btn:hover:not(:disabled) svg[data-v-e1afc0e8]{stroke:#fff}.nav-btn[data-v-e1afc0e8]:disabled{opacity:.25;cursor:not-allowed}.month-label[data-v-e1afc0e8]{color:var(--text-primary);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;min-width:110px;padding:6px 14px;font-size:17px;font-weight:700;transition:background .15s}.month-label[data-v-e1afc0e8]:hover,.month-label[data-v-e1afc0e8]:active{background:var(--bg-secondary)}.picker-hint[data-v-e1afc0e8]{opacity:.5;margin-left:4px;font-size:11px;font-weight:400}.picker-overlay[data-v-e1afc0e8]{z-index:999;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.picker-panel[data-v-e1afc0e8]{background:var(--bg-card);border-radius:20px 20px 0 0;flex-direction:column;width:100%;max-width:420px;display:flex}.picker-header[data-v-e1afc0e8]{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.picker-cancel[data-v-e1afc0e8]{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:4px 12px;font-size:15px}.picker-confirm[data-v-e1afc0e8]{color:var(--primary-color);cursor:pointer;background:0 0;border:none;padding:4px 12px;font-size:15px;font-weight:600}.picker-title[data-v-e1afc0e8]{color:var(--text-primary);font-size:16px;font-weight:700}.picker-body[data-v-e1afc0e8]{flex:1;height:240px;display:flex;position:relative;overflow:hidden}.picker-column[data-v-e1afc0e8]{touch-action:none;flex:1;height:100%;position:relative;overflow:hidden}.picker-divider[data-v-e1afc0e8]{background:var(--border-color);flex-shrink:0;width:1px;height:100%}.picker-list[data-v-e1afc0e8]{will-change:transform;transition:transform .18s ease-out}.picker-item[data-v-e1afc0e8]{text-align:center;height:48px;color:var(--text-tertiary);cursor:pointer;white-space:nowrap;font-size:17px;line-height:48px;transition:all .15s}.picker-item.active[data-v-e1afc0e8]{color:var(--primary-color);font-size:20px;font-weight:800}.picker-indicator[data-v-e1afc0e8]{border-top:2px solid var(--primary-color);border-bottom:2px solid var(--primary-color);pointer-events:none;opacity:.35;background:var(--primary-light);border-radius:8px;height:48px;position:absolute;top:calc(50% - 42px);left:16px;right:16px}.summary-cards[data-v-e1afc0e8]{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;display:grid}.summary-card[data-v-e1afc0e8]{text-align:center;border-radius:14px;padding:14px 12px}.summary-card.income[data-v-e1afc0e8]{background:var(--income-bg)}.summary-card.expense[data-v-e1afc0e8]{background:var(--expense-bg)}.summary-card.balance[data-v-e1afc0e8]{background:var(--balance-bg)}.card-label[data-v-e1afc0e8]{opacity:.8;color:var(--text-primary);margin-bottom:4px;font-size:12px;font-weight:600}.card-amount[data-v-e1afc0e8]{color:var(--text-primary);word-break:break-all;font-size:15px;font-weight:800}.income-val[data-v-e1afc0e8]{color:var(--success-color)!important}.expense-val[data-v-e1afc0e8]{color:var(--danger-color)!important}.positive[data-v-e1afc0e8]{color:var(--success-color)!important}.negative[data-v-e1afc0e8]{color:var(--danger-color)!important}.balance-sign[data-v-e1afc0e8]{margin-left:2px;font-size:10px}.charts-section[data-v-e1afc0e8]{flex-direction:column;gap:12px;margin-bottom:12px;display:flex}.chart-card[data-v-e1afc0e8]{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;width:100%;padding:14px 12px}.chart-title[data-v-e1afc0e8]{color:var(--text-secondary);margin-bottom:8px;font-size:13px;font-weight:700}.chart-container[data-v-e1afc0e8]{width:100%;height:200px}.trend-card[data-v-e1afc0e8]{margin-bottom:0}.trend-chart[data-v-e1afc0e8]{height:220px}.empty-chart[data-v-e1afc0e8]{flex-direction:column;display:flex}.no-data[data-v-e1afc0e8]{color:var(--text-tertiary);flex:1;justify-content:center;align-items:center;min-height:120px;font-size:13px;display:flex}.record-list-container[data-v-78c5202f]{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.filter-bar[data-v-78c5202f]{border-bottom:1px solid var(--border-color);flex-shrink:0;width:100%;padding:12px 16px 10px}.filter-search-row[data-v-78c5202f]{align-items:center;gap:10px;margin-bottom:12px;display:flex}.search-wrapper[data-v-78c5202f]{flex:1;min-width:0;position:relative}.search-icon[data-v-78c5202f]{color:var(--text-tertiary);font-size:14px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-input[data-v-78c5202f]{border:1.5px solid var(--border-color);background:var(--bg-secondary);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:20px;outline:none;padding:10px 34px 10px 38px;font-size:14px;transition:all .15s}.search-input[data-v-78c5202f]:focus{border-color:var(--primary-color);background:var(--bg-card)}.search-input[data-v-78c5202f]::placeholder{color:var(--text-tertiary)}.clear-btn[data-v-78c5202f]{background:var(--border-color);width:18px;height:18px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:10px;line-height:1;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.filter-reset-btn[data-v-78c5202f]{border:1.5px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:20px;padding:9px 12px;font-size:13px;transition:all .15s}.filter-reset-btn[data-v-78c5202f]:hover{border-color:var(--danger-color);color:var(--danger-color)}.filter-chips-row[data-v-78c5202f]{align-items:center;width:100%;display:flex}.filter-chips-scroll[data-v-78c5202f]{scrollbar-width:none;-ms-overflow-style:none;align-items:center;gap:8px;width:100%;padding-bottom:2px;display:flex;overflow-x:auto}.filter-chips-scroll[data-v-78c5202f]::-webkit-scrollbar{display:none}.type-chips[data-v-78c5202f]{background:var(--bg-secondary);border-radius:18px;flex-shrink:0;gap:6px;padding:3px;display:flex}.type-chip[data-v-78c5202f]{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:15px;padding:5px 14px;font-size:13px;transition:all .15s}.type-chip.active[data-v-78c5202f]{background:var(--primary-color);color:#fff;font-weight:600}.filter-chip[data-v-78c5202f]{border:1.5px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:16px;outline:none;align-items:center;gap:4px;padding:5px 12px;font-size:13px;transition:all .15s;display:inline-flex}.filter-chip[data-v-78c5202f]:hover{border-color:var(--primary-color);color:var(--primary-color)}.filter-chip.active[data-v-78c5202f]{border-color:var(--primary-color);color:var(--primary-color);background:var(--primary-light);font-weight:600}.filter-chip .arrow[data-v-78c5202f]{opacity:.6;margin-left:2px;font-size:10px}.category-filter-wrap[data-v-78c5202f],.contact-filter-wrap[data-v-78c5202f]{flex-shrink:0;position:relative}.category-filter-btn[data-v-78c5202f]{text-align:left;width:100%}.category-filter-dropdown[data-v-78c5202f]{background:var(--bg-card);border:1px solid var(--border-color);z-index:100;border-radius:12px;min-width:160px;max-height:280px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.contact-filter-dropdown[data-v-78c5202f]{background:var(--bg-card);border:1px solid var(--border-color);z-index:100;border-radius:12px;min-width:160px;max-height:240px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.cf-group-label[data-v-78c5202f]{color:var(--text-tertiary);text-transform:uppercase;padding:8px 14px 4px;font-size:11px;font-weight:700}.cf-option[data-v-78c5202f]{cursor:pointer;color:var(--text-primary);white-space:nowrap;align-items:center;gap:8px;padding:10px 14px;font-size:13px;transition:background .15s;display:flex}.cf-option[data-v-78c5202f]:hover{background:var(--bg-hover)}.cf-check[data-v-78c5202f]{border:2px solid var(--border-color);color:#fff;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;display:flex}.cf-option:first-child .cf-check[data-v-78c5202f],.cf-option .cf-check[data-v-78c5202f]:not(:empty){background:var(--primary-color);border-color:var(--primary-color)}.cf-dot[data-v-78c5202f]{border-radius:50%;flex-shrink:0;width:10px;height:10px}.cf-empty[data-v-78c5202f]{color:var(--text-tertiary);padding:12px 14px;font-size:13px}.active-filter-tip[data-v-78c5202f]{color:var(--text-secondary);border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;font-size:12px;display:flex}.clear-filter-btn[data-v-78c5202f]{color:var(--primary-color);cursor:pointer;background:0 0;border:none;font-size:12px;font-weight:600}.records-scroll[data-v-78c5202f]{flex:1;width:100%;padding:0 0 16px;overflow-y:auto}.empty-state[data-v-78c5202f]{color:var(--text-tertiary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.empty-icon[data-v-78c5202f]{font-size:48px}.empty-state p[data-v-78c5202f]{text-align:center;font-size:14px}.date-group[data-v-78c5202f]{padding:0 16px}.date-header[data-v-78c5202f]{justify-content:space-between;align-items:center;padding:14px 0 8px;display:flex}.date-label[data-v-78c5202f]{color:var(--text-secondary);font-size:13px;font-weight:700}.date-summary[data-v-78c5202f]{gap:10px;font-size:12px;display:flex}.income-text[data-v-78c5202f]{color:var(--success-color)}.expense-text[data-v-78c5202f]{color:var(--danger-color)}.record-item[data-v-78c5202f]{background:var(--bg-card);cursor:pointer;border:1px solid var(--border-color);border-radius:12px;align-items:center;gap:12px;margin-bottom:6px;padding:12px;transition:all .15s;display:flex}.record-item[data-v-78c5202f]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.record-item:hover .record-actions[data-v-78c5202f]{opacity:1}.record-icon[data-v-78c5202f]{background:var(--bg-secondary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.record-info[data-v-78c5202f]{flex:1;min-width:0}.record-main[data-v-78c5202f]{align-items:center;gap:6px;margin-bottom:2px;display:flex}.record-category[data-v-78c5202f]{color:var(--text-primary);font-size:14px;font-weight:600}.record-note[data-v-78c5202f]{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-size:12px;overflow:hidden}.record-meta[data-v-78c5202f]{flex-wrap:wrap;gap:6px;display:flex}.contact-badge[data-v-78c5202f]{cursor:pointer;border:1px solid;border-radius:20px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;transition:opacity .15s;display:inline-flex}.contact-badge[data-v-78c5202f]:hover{opacity:.75}.contact-dot[data-v-78c5202f]{border-radius:50%;width:6px;height:6px}.record-amount-col[data-v-78c5202f]{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.record-amount[data-v-78c5202f]{font-size:16px;font-weight:700}.record-amount.income[data-v-78c5202f]{color:var(--success-color)}.record-amount.expense[data-v-78c5202f]{color:var(--danger-color)}.record-time[data-v-78c5202f]{color:var(--text-tertiary);font-size:11px;font-weight:500}.record-actions[data-v-78c5202f]{opacity:0;gap:4px;transition:opacity .15s;display:flex}.action-btn[data-v-78c5202f]{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px;font-size:14px;line-height:1}.action-btn[data-v-78c5202f]:hover{background:var(--bg-hover)}.load-more[data-v-78c5202f]{justify-content:center;padding:16px;display:flex}.load-more-btn[data-v-78c5202f]{border:1.5px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:20px;padding:8px 24px;font-size:13px}.delete-confirm-overlay[data-v-78c5202f]{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.delete-confirm-modal[data-v-78c5202f]{background:var(--bg-card);text-align:center;border-radius:16px;width:90%;max-width:320px;padding:28px 24px}.delete-icon[data-v-78c5202f]{margin-bottom:12px;font-size:40px}.delete-title[data-v-78c5202f]{color:var(--text-primary);margin-bottom:8px;font-size:18px;font-weight:700}.delete-desc[data-v-78c5202f]{color:var(--text-secondary);margin-bottom:20px;font-size:14px;line-height:1.6}.delete-actions[data-v-78c5202f]{gap:10px;display:flex}.btn-cancel[data-v-78c5202f]{border:1.5px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:10px;flex:1;padding:11px;font-size:14px}.btn-confirm-delete[data-v-78c5202f]{background:var(--danger-color);color:#fff;cursor:pointer;border:none;border-radius:10px;flex:1;padding:11px;font-size:14px;font-weight:600}.contacts-page[data-v-3e12f4be]{width:100%;height:100%;padding:16px;overflow-y:auto}.contacts-header[data-v-3e12f4be]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-title[data-v-3e12f4be]{color:var(--text-primary);margin:0;font-size:18px;font-weight:700}.add-btn[data-v-3e12f4be]{background:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:20px;padding:8px 16px;font-size:13px;font-weight:600}.empty-state[data-v-3e12f4be]{color:var(--text-tertiary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.empty-icon[data-v-3e12f4be]{font-size:48px}.empty-state p[data-v-3e12f4be]{font-size:14px;line-height:1.6}.contacts-list[data-v-3e12f4be]{flex-direction:column;gap:8px;display:flex}.contact-item[data-v-3e12f4be]{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;align-items:center;gap:12px;padding:14px;display:flex}.contact-avatar[data-v-3e12f4be]{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;font-weight:700;display:flex}.contact-info[data-v-3e12f4be]{flex:1}.contact-name[data-v-3e12f4be]{color:var(--text-primary);font-size:15px;font-weight:600}.contact-stats[data-v-3e12f4be]{color:var(--text-tertiary);margin-top:2px;font-size:12px}.contact-actions[data-v-3e12f4be]{gap:4px;display:flex}.action-btn[data-v-3e12f4be]{background:var(--bg-secondary);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;transition:background .15s;display:flex}.star-btn[data-v-3e12f4be]{font-size:16px}.star-btn.active[data-v-3e12f4be]{color:var(--warning-color)}.modal-overlay[data-v-3e12f4be]{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box[data-v-3e12f4be]{background:var(--bg-card);border-radius:18px;width:90%;max-width:380px;overflow:hidden}.modal-header[data-v-3e12f4be]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.modal-header h4[data-v-3e12f4be]{color:var(--text-primary);margin:0;font-size:16px;font-weight:700}.close-btn[data-v-3e12f4be]{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px}.modal-body[data-v-3e12f4be]{padding:20px}.field-label[data-v-3e12f4be]{color:var(--text-secondary);margin-top:4px;margin-bottom:8px;font-size:12px;font-weight:600}.name-input[data-v-3e12f4be]{border:2px solid var(--border-color);background:var(--bg-secondary);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:10px;outline:none;margin-bottom:16px;padding:11px 14px;font-size:15px}.name-input[data-v-3e12f4be]:focus{border-color:var(--primary-color)}.color-picker[data-v-3e12f4be]{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.color-dot[data-v-3e12f4be]{cursor:pointer;border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;transition:all .15s;display:flex}.color-dot.selected[data-v-3e12f4be]{box-shadow:0 0 0 3px var(--primary-color);border-color:#fff}.check[data-v-3e12f4be]{color:#fff;font-size:14px;font-weight:700}.preview[data-v-3e12f4be]{justify-content:center;padding:8px 0;display:flex}.preview-tag[data-v-3e12f4be]{border:1px solid;border-radius:20px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:600;display:inline-flex}.preview-dot[data-v-3e12f4be]{border-radius:50%;width:8px;height:8px}.modal-footer[data-v-3e12f4be]{border-top:1px solid var(--border-color);gap:10px;padding:16px 20px;display:flex}.btn-cancel[data-v-3e12f4be]{border:1.5px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:10px;flex:1;padding:11px;font-size:14px}.btn-save[data-v-3e12f4be]{background:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:10px;flex:2;padding:11px;font-size:14px;font-weight:700}.btn-save[data-v-3e12f4be]:disabled{opacity:.4;cursor:not-allowed}.btn-confirm-delete[data-v-3e12f4be]{background:var(--danger-color);color:#fff;cursor:pointer;border:none;border-radius:10px;flex:2;padding:11px;font-size:14px;font-weight:700}.data-manage-page[data-v-98adf531]{width:100%;height:100%;padding:16px;overflow-y:auto}.page-title[data-v-98adf531]{color:var(--text-primary);margin:0 0 16px;font-size:18px;font-weight:700}.stats-card[data-v-98adf531]{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;margin-bottom:14px;padding:16px;display:flex}.stat-item[data-v-98adf531]{text-align:center;flex:1}.stat-value[data-v-98adf531]{color:var(--primary-color);font-size:22px;font-weight:800}.stat-label[data-v-98adf531]{color:var(--text-tertiary);margin-top:2px;font-size:12px}.stat-divider[data-v-98adf531]{background:var(--border-color);width:1px;margin:0 8px}.section-card[data-v-98adf531]{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;margin-bottom:14px;padding:16px}.section-title[data-v-98adf531]{color:var(--text-primary);margin-bottom:6px;font-size:14px;font-weight:700}.section-desc[data-v-98adf531]{color:var(--text-tertiary);font-size:12px;line-height:1.5}.info-card[data-v-98adf531]{background:linear-gradient(135deg, var(--bg-card), #f0f4ff);border-color:#c7d2fe}.action-row[data-v-98adf531]{gap:10px;display:flex}.export-btn[data-v-98adf531]{border:1.5px solid var(--border-color);background:var(--bg-secondary);cursor:pointer;text-align:left;border-radius:12px;flex:1;align-items:center;gap:12px;padding:14px;transition:all .15s;display:flex}.export-btn[data-v-98adf531]:hover{border-color:var(--primary-color);background:var(--primary-light)}.btn-icon[data-v-98adf531]{font-size:24px}.btn-title[data-v-98adf531]{color:var(--text-primary);font-size:13px;font-weight:700}.btn-sub[data-v-98adf531]{color:var(--text-tertiary);margin-top:2px;font-size:11px}.danger-zone[data-v-98adf531]{border-color:var(--danger-light)}.danger-zone .section-title[data-v-98adf531]{color:var(--danger-color)}.clear-btn[data-v-98adf531]{border:1.5px solid var(--danger-color);width:100%;color:var(--danger-color);cursor:pointer;background:0 0;border-radius:10px;padding:12px;font-size:13px;font-weight:600;transition:all .15s}.clear-btn[data-v-98adf531]:hover{background:var(--danger-light)}.modal-overlay[data-v-98adf531]{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-modal[data-v-98adf531]{background:var(--bg-card);text-align:center;border-radius:18px;width:92%;max-width:340px;padding:28px 24px}.confirm-icon[data-v-98adf531]{margin-bottom:10px;font-size:40px}.confirm-title[data-v-98adf531]{color:var(--text-primary);margin-bottom:8px;font-size:18px;font-weight:700}.confirm-desc[data-v-98adf531]{color:var(--text-secondary);margin-bottom:16px;font-size:13px;line-height:1.6}.pwd-row[data-v-98adf531]{margin-bottom:8px}.pwd-input[data-v-98adf531]{border:1.5px solid var(--border-color);background:var(--bg-secondary);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:10px;outline:none;padding:10px 14px;font-size:15px;transition:border-color .15s}.pwd-input[data-v-98adf531]:focus{border-color:var(--primary-color)}.pwd-input[data-v-98adf531]:disabled{opacity:.6}.pwd-error[data-v-98adf531]{color:var(--danger-color);margin-bottom:10px;font-size:12px}.confirm-actions[data-v-98adf531]{gap:10px;display:flex}.btn-cancel[data-v-98adf531]{border:1.5px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:10px;flex:1;padding:11px;font-size:14px}.btn-cancel[data-v-98adf531]:disabled{opacity:.5;cursor:not-allowed}.btn-danger[data-v-98adf531]{background:var(--danger-color);color:#fff;cursor:pointer;border:none;border-radius:10px;flex:1;padding:11px;font-size:14px;font-weight:700}.btn-danger[data-v-98adf531]:disabled{opacity:.5;cursor:not-allowed}.dt-picker[data-v-9598a5f5]{display:block}.dt-trigger[data-v-9598a5f5]{border:2px solid var(--border-color);background:var(--bg-secondary);width:100%;color:var(--text-primary);cursor:pointer;box-sizing:border-box;border-radius:10px;outline:none;justify-content:space-between;align-items:center;padding:10px 12px;font-size:14px;transition:border-color .15s;display:flex}.dt-trigger[data-v-9598a5f5]:focus{border-color:var(--primary-color)}.dt-trigger-text[data-v-9598a5f5]{text-align:left;flex:1}.dt-trigger-arrow[data-v-9598a5f5]{color:var(--text-tertiary);margin-left:8px;font-size:10px}.dt-overlay[data-v-9598a5f5]{z-index:999;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.dt-sheet[data-v-9598a5f5]{background:var(--bg-card);width:100%;max-width:480px;padding-bottom:env(safe-area-inset-bottom);border-radius:20px 20px 0 0}.dt-handle[data-v-9598a5f5]{background:var(--border-color);border-radius:2px;width:40px;height:4px;margin:10px auto 0}.dt-header[data-v-9598a5f5]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.dt-cancel[data-v-9598a5f5]{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:15px}.dt-confirm[data-v-9598a5f5]{color:var(--primary-color);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:15px;font-weight:600}.dt-title[data-v-9598a5f5]{color:var(--text-primary);font-size:16px;font-weight:700}.dt-body[data-v-9598a5f5]{padding:8px 20px 24px}.dt-block[data-v-9598a5f5]{margin-bottom:8px}.dt-block-title[data-v-9598a5f5]{color:var(--text-tertiary);text-align:center;padding:8px 0 4px;font-size:12px;font-weight:600}.dt-wheels[data-v-9598a5f5]{justify-content:center;align-items:flex-start;gap:8px;display:flex;position:relative}.dt-wheels-time[data-v-9598a5f5]{justify-content:center;gap:0}.dt-wheel-col[data-v-9598a5f5]{flex-direction:column;align-items:center;display:flex}.dt-wheel-label[data-v-9598a5f5]{color:var(--text-tertiary);text-align:center;padding:4px 0;font-size:12px;font-weight:600}.dt-wheel-window[data-v-9598a5f5]{touch-action:none;border-radius:8px;width:60px;height:126px;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0%,#000 25% 75%,#0000 100%);mask-image:linear-gradient(#0000 0%,#000 25% 75%,#0000 100%)}.dt-wheels-time .dt-wheel-window[data-v-9598a5f5]{width:66px}.dt-wheel-list[data-v-9598a5f5]{will-change:transform;transition:transform .18s ease-out}.dt-wheel-item[data-v-9598a5f5]{text-align:center;height:42px;color:var(--text-tertiary);cursor:pointer;font-size:18px;line-height:42px;transition:all .15s}.dt-wheel-item.active[data-v-9598a5f5]{color:var(--primary-color);font-size:20px;font-weight:800}.dt-wheel-sep[data-v-9598a5f5]{color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;height:126px;padding:22px 6px 0;font-size:24px;font-weight:600;display:flex}.dt-wheel-indicator[data-v-9598a5f5]{border-top:2px solid var(--primary-color);border-bottom:2px solid var(--primary-color);pointer-events:none;opacity:.25;box-sizing:border-box;border-radius:6px;height:42px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.dt-divider[data-v-9598a5f5]{background:var(--border-color);height:1px;margin:12px 0}@media (width<=360px){.dt-wheel-window[data-v-9598a5f5]{width:54px}.dt-wheels-time .dt-wheel-window[data-v-9598a5f5]{width:60px}.dt-wheel-item[data-v-9598a5f5]{font-size:17px}.dt-wheel-item.active[data-v-9598a5f5]{font-size:19px}}.add-record-modal[data-v-6ac01e55]{padding:8px 0}.type-switch[data-v-6ac01e55]{gap:8px;margin-bottom:20px;display:flex}.type-btn[data-v-6ac01e55]{border:2px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;border-radius:10px;flex:1;padding:10px;font-size:15px;font-weight:600;transition:all .2s}.type-btn.active.expense[data-v-6ac01e55]{background:var(--danger-light);border-color:var(--danger-color);color:var(--danger-color)}.type-btn.active.income[data-v-6ac01e55]{background:var(--success-light);border-color:var(--success-color);color:var(--success-color)}.amount-section[data-v-6ac01e55]{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:12px;align-items:center;gap:8px;margin-bottom:20px;padding:12px 16px;display:flex}.currency-symbol[data-v-6ac01e55]{color:var(--text-secondary);font-size:24px;font-weight:700}.amount-input[data-v-6ac01e55]{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;width:100%;font-size:32px;font-weight:700}.amount-input[data-v-6ac01e55]::placeholder{color:var(--text-tertiary)}.section-label[data-v-6ac01e55]{color:var(--text-secondary);margin-top:4px;margin-bottom:8px;font-size:13px;font-weight:600}.optional[data-v-6ac01e55]{color:var(--text-tertiary);font-weight:400}.category-grid[data-v-6ac01e55]{grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:16px;display:grid}.cat-btn[data-v-6ac01e55]{background:var(--bg-secondary);cursor:pointer;border:2px solid #0000;border-radius:10px;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;transition:all .15s;display:flex}.cat-btn[data-v-6ac01e55]:hover{background:var(--bg-hover)}.cat-btn.selected[data-v-6ac01e55]{border-color:var(--primary-color);background:var(--primary-light)}.cat-icon[data-v-6ac01e55]{font-size:18px}.cat-name[data-v-6ac01e55]{color:var(--text-secondary);white-space:nowrap;font-size:11px}.contact-multi-area[data-v-6ac01e55]{margin-bottom:16px;position:relative}.selected-tags[data-v-6ac01e55]{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.contact-tag[data-v-6ac01e55]{background:var(--primary-light);color:var(--primary-color);border-radius:20px;align-items:center;gap:5px;padding:4px 8px 4px 10px;font-size:13px;font-weight:600;display:inline-flex}.tag-dot[data-v-6ac01e55]{border-radius:50%;width:8px;height:8px}.tag-remove[data-v-6ac01e55]{cursor:pointer;opacity:.6;margin-left:2px;font-size:11px}.tag-remove[data-v-6ac01e55]:hover{opacity:1}.contact-search-wrapper[data-v-6ac01e55]{position:relative}.contact-search-input[data-v-6ac01e55]{border:2px solid var(--border-color);background:var(--bg-secondary);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:10px;outline:none;padding:10px 12px;font-size:14px}.contact-search-input[data-v-6ac01e55]:focus{border-color:var(--primary-color)}.contact-dropdown[data-v-6ac01e55]{background:var(--bg-card);border:1px solid var(--border-color);z-index:100;border-radius:10px;max-height:200px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.contact-option[data-v-6ac01e55]{cursor:pointer;color:var(--text-primary);align-items:center;gap:8px;padding:10px 14px;font-size:14px;transition:background .15s;display:flex}.contact-option[data-v-6ac01e55]:hover{background:var(--bg-hover)}.contact-option.selected[data-v-6ac01e55]{background:var(--primary-light)}.opt-check[data-v-6ac01e55]{border:2px solid var(--border-color);color:#fff;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;display:flex}.contact-option.selected .opt-check[data-v-6ac01e55]{background:var(--primary-color);border-color:var(--primary-color)}.opt-dot[data-v-6ac01e55]{border-radius:50%;flex-shrink:0;width:10px;height:10px}.contact-option.create-new[data-v-6ac01e55]{color:var(--primary-color);font-weight:600}.create-icon[data-v-6ac01e55]{font-size:16px}.no-contacts[data-v-6ac01e55]{color:var(--text-tertiary);padding:12px 14px;font-size:13px}.done-select[data-v-6ac01e55]{background:var(--primary-color);color:#fff;cursor:pointer;border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.done-select[data-v-6ac01e55]:hover{opacity:.85}.note-input[data-v-6ac01e55]{border:2px solid var(--border-color);background:var(--bg-secondary);width:100%;color:var(--text-primary);resize:none;box-sizing:border-box;border-radius:10px;outline:none;margin-bottom:20px;padding:10px 12px;font-family:inherit;font-size:14px}.note-input[data-v-6ac01e55]:focus{border-color:var(--primary-color)}.modal-actions[data-v-6ac01e55]{gap:10px;display:flex}.btn-cancel[data-v-6ac01e55]{border:2px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:12px;flex:1;padding:12px;font-size:15px;font-weight:600}.btn-save[data-v-6ac01e55]{cursor:pointer;border:none;border-radius:12px;flex:2;padding:12px;font-size:15px;font-weight:700;transition:opacity .2s}.btn-save.expense[data-v-6ac01e55]{background:var(--danger-color);color:#fff}.btn-save.income[data-v-6ac01e55]{background:var(--success-color);color:#fff}.btn-save[data-v-6ac01e55]:disabled{opacity:.4;cursor:not-allowed}.login-page[data-v-a2919548]{background:var(--bg-primary);flex-direction:column;justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.login-card[data-v-a2919548]{background:var(--bg-card);border:1px solid var(--border-color);border-radius:20px;width:100%;max-width:360px;padding:32px 24px;box-shadow:0 8px 32px #0000000f}.login-header[data-v-a2919548]{text-align:center;margin-bottom:28px}.app-icon[data-v-a2919548]{margin-bottom:8px;font-size:48px}.app-title[data-v-a2919548]{color:var(--text-primary);margin:4px 0;font-size:22px;font-weight:800}.app-subtitle[data-v-a2919548]{color:var(--text-tertiary);margin-top:2px;font-size:13px}.error-msg[data-v-a2919548]{background:var(--danger-light);color:var(--danger-color);text-align:center;border-radius:10px;margin-bottom:16px;padding:10px 14px;font-size:13px}.form-group[data-v-a2919548]{margin-bottom:18px;position:relative}.form-label[data-v-a2919548]{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.optional[data-v-a2919548]{color:var(--text-tertiary);font-weight:400}.form-input[data-v-a2919548]{border:2px solid var(--border-color);background:var(--bg-secondary);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:12px;outline:none;padding:12px 14px;font-size:15px}.form-input[data-v-a2919548]:focus{border-color:var(--primary-color)}.pwd-input[data-v-a2919548]{padding-right:44px}.toggle-pwd[data-v-a2919548]{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:18px;position:absolute;bottom:11px;right:12px}.remember-row[data-v-a2919548]{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin:14px 0 4px;font-size:13px;display:flex}.remember-row input[type=checkbox][data-v-a2919548]{width:16px;height:16px;accent-color:var(--primary-color);cursor:pointer}.btn-submit[data-v-a2919548]{background:var(--primary-gradient);color:#fff;cursor:pointer;border:none;border-radius:14px;width:100%;margin-top:14px;padding:14px;font-size:16px;font-weight:700;transition:opacity .2s}.btn-submit[data-v-a2919548]:hover:not(:disabled){opacity:.9}.btn-submit[data-v-a2919548]:disabled{opacity:.5;cursor:not-allowed}.switch-mode[data-v-a2919548]{text-align:center;color:var(--text-secondary);margin-top:20px;font-size:13px}.switch-link[data-v-a2919548]{color:var(--primary-color);font-weight:700;text-decoration:none}.switch-link[data-v-a2919548]:hover{text-decoration:underline}.forgot-pwd[data-v-a2919548]{text-align:center;color:var(--text-tertiary);cursor:pointer;margin-top:12px;font-size:13px}.forgot-pwd[data-v-a2919548]:hover{color:var(--primary-color)}.login-footer[data-v-a2919548]{color:var(--text-tertiary);letter-spacing:1px;margin-top:28px;font-size:12px}.modal-overlay[data-v-a2919548]{z-index:500;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-sheet[data-v-a2919548]{background:var(--bg-card);width:100%;max-height:92dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:20px 20px 0 0;overflow-y:auto}.modal-header[data-v-a2919548]{border-bottom:1px solid var(--border-color);background:var(--bg-card);z-index:1;justify-content:space-between;align-items:center;padding:18px 20px;display:flex;position:sticky;top:0}.modal-header h3[data-v-a2919548]{color:var(--text-primary);font-size:17px;font-weight:700}.modal-close[data-v-a2919548]{cursor:pointer;color:var(--text-tertiary);padding:4px 8px;font-size:20px}.modal-body[data-v-a2919548]{padding:20px}.forgot-tip[data-v-a2919548]{color:var(--text-tertiary);margin-bottom:20px;font-size:13px;line-height:1.6}:root,[data-theme=light]{--bg-primary:#f8f9fa;--bg-secondary:#f1f3f5;--bg-card:#fff;--bg-hover:#f0f0f0;--border-color:#e9ecef;--text-primary:#212529;--text-secondary:#6c757d;--text-tertiary:#adb5bd;--primary-color:#6366f1;--primary-light:#eef2ff;--primary-gradient:linear-gradient(135deg, #6366f1, #818cf8);--success-color:#10b981;--success-light:#d1fae5;--danger-color:#ef4444;--danger-light:#fee2e2;--warning-color:#f59e0b;--income-bg:linear-gradient(135deg, #d1fae5, #a7f3d0);--expense-bg:linear-gradient(135deg, #fee2e2, #fecaca);--balance-bg:linear-gradient(135deg, #ede9fe, #ddd6fe);--shadow:0 2px 8px #00000014;--keyboard-height:0px}[data-theme=dark]{--bg-primary:#0f0f0f;--bg-secondary:#1a1a1a;--bg-card:#1e1e1e;--bg-hover:#2a2a2a;--border-color:#333;--text-primary:#f1f3f5;--text-secondary:#adb5bd;--text-tertiary:#6c757d;--primary-color:#818cf8;--primary-light:#1e1b4b;--primary-gradient:linear-gradient(135deg, #6366f1, #818cf8);--success-color:#34d399;--success-light:#064e3b;--danger-color:#f87171;--danger-light:#450a0a;--warning-color:#fbbf24;--income-bg:linear-gradient(135deg, #064e3b, #065f46);--expense-bg:linear-gradient(135deg, #450a0a, #7f1d1d);--balance-bg:linear-gradient(135deg, #1e1b4b, #312e81);--shadow:0 2px 8px #0000004d}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0;padding:0;overflow:hidden}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}#app{background:var(--bg-primary);flex-direction:column;width:100vw;height:100dvh;display:flex;position:relative;overflow:hidden}.top-bar{padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top,0px));background:var(--bg-card);border-bottom:1px solid var(--border-color);z-index:100;flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:relative}.top-bar-left{align-items:center;gap:6px;display:flex}.app-logo{font-size:22px}.app-logo-img{object-fit:cover;border-radius:6px;width:26px;height:26px}.app-name{color:var(--text-primary);letter-spacing:-.3px;font-size:17px;font-weight:800}.top-bar-right{position:relative}.user-avatar-btn{background:var(--bg-secondary);border:1.5px solid var(--border-color);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 12px 4px 4px;transition:background .15s;display:flex}.user-avatar-btn:hover{background:var(--bg-hover)}.avatar-circle{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:13px;font-weight:700;display:flex}.user-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:80px;font-size:13px;font-weight:600;overflow:hidden}.arrow{color:var(--text-tertiary);font-size:12px;transition:transform .2s}.arrow.open{transform:rotate(180deg)}.user-dropdown{background:var(--bg-card);border:1px solid var(--border-color);z-index:200;border-radius:14px;width:max-content;min-width:140px;max-width:200px;padding:5px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 30px #0000001f}.dropdown-item{color:var(--text-primary);cursor:pointer;white-space:nowrap;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:background .12s;display:flex}.dropdown-item:hover{background:var(--bg-hover)}.dropdown-item .item-icon{text-align:center;flex-shrink:0;width:20px;font-size:15px}.dropdown-item.danger{color:var(--danger-color)}.dropdown-item.danger:hover{background:var(--danger-light)}.dropdown-divider{background:var(--border-color);height:1px;margin:3px 6px}.dropdown-enter-active{transition:opacity .15s,transform .15s}.dropdown-leave-active{transition:opacity .1s,transform .1s}.dropdown-enter-from,.dropdown-leave-to{opacity:0;transform:translateY(-6px)}.main-content{flex:1;position:relative;overflow:hidden}.bottom-nav{padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:var(--bg-card);border-top:1px solid var(--border-color);flex-shrink:0;justify-content:space-around;align-items:center;display:flex}.nav-item{cursor:pointer;background:0 0;border:none;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:6px 0;transition:all .15s;display:flex}.nav-icon{font-size:20px}.nav-label{color:var(--text-tertiary);font-size:11px;font-weight:500}.nav-item.active .nav-label{color:var(--primary-color);font-weight:700}.fab-float{bottom:calc(90px + env(safe-area-inset-bottom));background:var(--primary-gradient);color:#fff;cursor:pointer;z-index:100;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:28px;transition:transform .2s,box-shadow .2s;display:flex;position:fixed;right:20px;box-shadow:0 4px 16px #6366f173}.fab-float:hover{transform:scale(1.08);box-shadow:0 6px 20px #6366f18c}.fab-float:active{transform:scale(.95)}.fab-float-icon{margin-top:-2px;line-height:1}.fab-bounce-enter-active{animation:.35s cubic-bezier(.34,1.56,.64,1) fab-in}.fab-bounce-leave-active{animation:.2s ease-in reverse fab-in}@keyframes fab-in{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.modal-overlay{z-index:500;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-sheet{background:var(--bg-card);overscroll-behavior:contain;width:100%;max-height:90dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:20px 20px 0 0;overflow-y:auto}.sheet-handle{background:var(--border-color);border-radius:2px;width:40px;height:4px;margin:10px auto 0}.sheet-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.sheet-title{color:var(--text-primary);margin:0;font-size:17px;font-weight:700}.sheet-close{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:4px;font-size:18px}.sheet-body{padding:16px 20px 20px}.pwd-form{flex-direction:column;gap:14px;display:flex}.pwd-field label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.pwd-field input{border:1.5px solid var(--border-color);background:var(--bg-secondary);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:10px;outline:none;padding:10px 14px;font-size:15px;transition:border-color .15s}.pwd-field input:focus{border-color:var(--primary-color)}.pwd-error-msg{color:#dc2626;font-size:12px}.pwd-submit-btn{background:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;padding:12px;font-size:15px;font-weight:700;transition:opacity .15s}.pwd-submit-btn:disabled{opacity:.5;cursor:not-allowed}.pwd-submit-btn:not(:disabled):hover{opacity:.85}.slide-up-enter-active,.slide-up-leave-active{transition:opacity .25s}.slide-up-enter-active .modal-sheet,.slide-up-leave-active .modal-sheet{transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.slide-up-enter-from,.slide-up-leave-to{opacity:0}.slide-up-enter-from .modal-sheet,.slide-up-leave-to .modal-sheet{transform:translateY(100%)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}
