.dashboard[data-v-0ca60398]{width:100%;height:100%;padding:16px;overflow-y:auto}.month-nav[data-v-0ca60398]{justify-content:center;align-items:center;gap:16px;margin-bottom:16px;display:flex}.nav-btn[data-v-0ca60398]{border:1.5px solid var(--border-color);background:var(--bg-secondary);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:18px;transition:all .15s;display:flex}.nav-btn[data-v-0ca60398]:hover:not(:disabled){background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.nav-btn[data-v-0ca60398]:disabled{opacity:.3;cursor:not-allowed}.month-label[data-v-0ca60398]{color:var(--text-primary);text-align:center;min-width:100px;font-size:17px;font-weight:700}.summary-cards[data-v-0ca60398]{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;display:grid}.summary-card[data-v-0ca60398]{text-align:center;border-radius:14px;padding:14px 12px}.summary-card.income[data-v-0ca60398]{background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.summary-card.expense[data-v-0ca60398]{background:linear-gradient(135deg,#fee2e2,#fecaca)}.summary-card.balance[data-v-0ca60398]{background:linear-gradient(135deg,#ede9fe,#ddd6fe)}.card-label[data-v-0ca60398]{opacity:.7;color:#374151;margin-bottom:4px;font-size:12px;font-weight:600}.card-amount[data-v-0ca60398]{color:#1f2937;word-break:break-all;font-size:15px;font-weight:800}.income-val[data-v-0ca60398]{color:#059669!important}.expense-val[data-v-0ca60398]{color:#dc2626!important}.positive[data-v-0ca60398]{color:#059669!important}.negative[data-v-0ca60398]{color:#dc2626!important}.balance-sign[data-v-0ca60398]{margin-left:2px;font-size:10px}.charts-section[data-v-0ca60398]{flex-direction:column;gap:12px;margin-bottom:12px;display:flex}.chart-card[data-v-0ca60398]{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;width:100%;padding:14px 12px}.chart-title[data-v-0ca60398]{color:var(--text-secondary);margin-bottom:8px;font-size:13px;font-weight:700}.chart-container[data-v-0ca60398]{width:100%;height:200px}.trend-card[data-v-0ca60398]{margin-bottom:0}.trend-chart[data-v-0ca60398]{height:220px}.empty-chart[data-v-0ca60398]{flex-direction:column;display:flex}.no-data[data-v-0ca60398]{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-376de12e]{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.filter-bar[data-v-376de12e]{border-bottom:1px solid var(--border-color);flex-shrink:0;width:100%;padding:12px 16px 8px}.filter-row[data-v-376de12e]{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.filter-row[data-v-376de12e]:last-child{margin-bottom:0}.search-wrapper[data-v-376de12e]{flex:1;min-width:0;position:relative}.search-icon[data-v-376de12e]{font-size:14px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input[data-v-376de12e]{border:1.5px solid var(--border-color);background:var(--bg-secondary);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:8px;outline:none;padding:8px 32px;font-size:13px}.search-input[data-v-376de12e]:focus{border-color:var(--primary-color)}.clear-btn[data-v-376de12e]{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;font-size:12px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.tags-row[data-v-376de12e]{flex-wrap:wrap;gap:6px}.filter-tag-group[data-v-376de12e]{background:var(--bg-secondary);border-radius:8px;gap:4px;padding:3px;display:flex}.filter-tag[data-v-376de12e]{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 12px;font-size:12px;transition:all .15s}.filter-tag.active[data-v-376de12e]{background:var(--primary-color);color:#fff}.filter-select[data-v-376de12e]{border:1.5px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;flex:1;min-width:0;padding:5px 8px;font-size:12px}.contact-filter-wrap[data-v-376de12e]{flex:1;min-width:100px;position:relative}.contact-filter-btn[data-v-376de12e]{text-align:left;justify-content:space-between;align-items:center;width:100%;display:flex}.arrow[data-v-376de12e]{opacity:.5;font-size:10px}.contact-filter-dropdown[data-v-376de12e]{background:var(--bg-card);border:1px solid var(--border-color);z-index:100;border-radius:10px;max-height:220px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.cf-option[data-v-376de12e]{cursor:pointer;color:var(--text-primary);align-items:center;gap:8px;padding:10px 14px;font-size:13px;transition:background .15s;display:flex}.cf-option[data-v-376de12e]:hover{background:var(--bg-hover)}.cf-check[data-v-376de12e]{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-376de12e],.cf-option .cf-check[data-v-376de12e]:not(:empty){background:var(--primary-color);border-color:var(--primary-color)}.cf-dot[data-v-376de12e]{border-radius:50%;flex-shrink:0;width:10px;height:10px}.cf-empty[data-v-376de12e]{color:var(--text-tertiary);padding:12px 14px;font-size:13px}.active-filter-tip[data-v-376de12e]{color:var(--text-secondary);border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-top:8px;padding-top:8px;font-size:12px;display:flex}.clear-filter-btn[data-v-376de12e]{color:var(--primary-color);cursor:pointer;background:0 0;border:none;font-size:12px;font-weight:600}.records-scroll[data-v-376de12e]{flex:1;width:100%;padding:0 0 16px;overflow-y:auto}.empty-state[data-v-376de12e]{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-376de12e]{font-size:48px}.empty-state p[data-v-376de12e]{text-align:center;font-size:14px}.date-group[data-v-376de12e]{padding:0 16px}.date-header[data-v-376de12e]{justify-content:space-between;align-items:center;padding:14px 0 8px;display:flex}.date-label[data-v-376de12e]{color:var(--text-secondary);font-size:13px;font-weight:700}.date-summary[data-v-376de12e]{gap:10px;font-size:12px;display:flex}.income-text[data-v-376de12e]{color:#10b981}.expense-text[data-v-376de12e]{color:#ff6b6b}.record-item[data-v-376de12e]{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-376de12e]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.record-item:hover .record-actions[data-v-376de12e]{opacity:1}.record-icon[data-v-376de12e]{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-376de12e]{flex:1;min-width:0}.record-main[data-v-376de12e]{align-items:center;gap:6px;margin-bottom:2px;display:flex}.record-category[data-v-376de12e]{color:var(--text-primary);font-size:14px;font-weight:600}.record-note[data-v-376de12e]{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-size:12px;overflow:hidden}.record-meta[data-v-376de12e]{flex-wrap:wrap;gap:6px;display:flex}.contact-badge[data-v-376de12e]{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-376de12e]:hover{opacity:.75}.contact-dot[data-v-376de12e]{border-radius:50%;width:6px;height:6px}.record-amount-col[data-v-376de12e]{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.record-amount[data-v-376de12e]{font-size:16px;font-weight:700}.record-amount.income[data-v-376de12e]{color:#10b981}.record-amount.expense[data-v-376de12e]{color:#ff6b6b}.record-actions[data-v-376de12e]{opacity:0;gap:4px;transition:opacity .15s;display:flex}.action-btn[data-v-376de12e]{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px;font-size:14px;line-height:1}.action-btn[data-v-376de12e]:hover{background:var(--bg-hover)}.load-more[data-v-376de12e]{justify-content:center;padding:16px;display:flex}.load-more-btn[data-v-376de12e]{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-376de12e]{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.delete-confirm-modal[data-v-376de12e]{background:var(--bg-card);text-align:center;border-radius:16px;width:90%;max-width:320px;padding:28px 24px}.delete-icon[data-v-376de12e]{margin-bottom:12px;font-size:40px}.delete-title[data-v-376de12e]{color:var(--text-primary);margin-bottom:8px;font-size:18px;font-weight:700}.delete-desc[data-v-376de12e]{color:var(--text-secondary);margin-bottom:20px;font-size:14px;line-height:1.6}.delete-actions[data-v-376de12e]{gap:10px;display:flex}.btn-cancel[data-v-376de12e]{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-376de12e]{color:#fff;cursor:pointer;background:#ff6b6b;border:none;border-radius:10px;flex:1;padding:11px;font-size:14px;font-weight:600}.contacts-page[data-v-6fa88da2]{width:100%;height:100%;padding:16px;overflow-y:auto}.contacts-header[data-v-6fa88da2]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-title[data-v-6fa88da2]{color:var(--text-primary);margin:0;font-size:18px;font-weight:700}.add-btn[data-v-6fa88da2]{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-6fa88da2]{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-6fa88da2]{font-size:48px}.empty-state p[data-v-6fa88da2]{font-size:14px;line-height:1.6}.contacts-list[data-v-6fa88da2]{flex-direction:column;gap:8px;display:flex}.contact-item[data-v-6fa88da2]{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-6fa88da2]{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-6fa88da2]{flex:1}.contact-name[data-v-6fa88da2]{color:var(--text-primary);font-size:15px;font-weight:600}.contact-stats[data-v-6fa88da2]{color:var(--text-tertiary);margin-top:2px;font-size:12px}.contact-actions[data-v-6fa88da2]{gap:4px;display:flex}.action-btn[data-v-6fa88da2]{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}.action-btn[data-v-6fa88da2]:hover{background:var(--bg-hover)}.modal-overlay[data-v-6fa88da2]{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box[data-v-6fa88da2]{background:var(--bg-card);border-radius:18px;width:90%;max-width:380px;overflow:hidden}.modal-header[data-v-6fa88da2]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.modal-header h4[data-v-6fa88da2]{color:var(--text-primary);margin:0;font-size:16px;font-weight:700}.close-btn[data-v-6fa88da2]{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px}.modal-body[data-v-6fa88da2]{padding:20px}.field-label[data-v-6fa88da2]{color:var(--text-secondary);margin-top:4px;margin-bottom:8px;font-size:12px;font-weight:600}.name-input[data-v-6fa88da2]{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-6fa88da2]:focus{border-color:var(--primary-color)}.color-picker[data-v-6fa88da2]{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.color-dot[data-v-6fa88da2]{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-6fa88da2]{box-shadow:0 0 0 3px var(--primary-color);border-color:#fff}.check[data-v-6fa88da2]{color:#fff;font-size:14px;font-weight:700}.preview[data-v-6fa88da2]{justify-content:center;padding:8px 0;display:flex}.preview-tag[data-v-6fa88da2]{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-6fa88da2]{border-radius:50%;width:8px;height:8px}.modal-footer[data-v-6fa88da2]{border-top:1px solid var(--border-color);gap:10px;padding:16px 20px;display:flex}.btn-cancel[data-v-6fa88da2]{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-6fa88da2]{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-6fa88da2]:disabled{opacity:.4;cursor:not-allowed}.btn-confirm-delete[data-v-6fa88da2]{color:#fff;cursor:pointer;background:#ff6b6b;border:none;border-radius:10px;flex:2;padding:11px;font-size:14px;font-weight:700}.data-manage-page[data-v-6e680a06]{width:100%;height:100%;padding:16px;overflow-y:auto}.page-title[data-v-6e680a06]{color:var(--text-primary);margin:0 0 16px;font-size:18px;font-weight:700}.stats-card[data-v-6e680a06]{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;margin-bottom:14px;padding:16px;display:flex}.stat-item[data-v-6e680a06]{text-align:center;flex:1}.stat-value[data-v-6e680a06]{color:var(--primary-color);font-size:22px;font-weight:800}.stat-label[data-v-6e680a06]{color:var(--text-tertiary);margin-top:2px;font-size:12px}.stat-divider[data-v-6e680a06]{background:var(--border-color);width:1px;margin:0 8px}.section-card[data-v-6e680a06]{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;margin-bottom:14px;padding:16px}.section-title[data-v-6e680a06]{color:var(--text-primary);margin-bottom:6px;font-size:14px;font-weight:700}.section-desc[data-v-6e680a06]{color:var(--text-tertiary);margin-bottom:14px;font-size:12px;line-height:1.5}.warn-text[data-v-6e680a06]{color:#f59e0b}.action-row[data-v-6e680a06]{gap:10px;display:flex}.export-btn[data-v-6e680a06]{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-6e680a06]:hover{border-color:var(--primary-color);background:var(--primary-light)}.btn-icon[data-v-6e680a06]{font-size:24px}.btn-title[data-v-6e680a06]{color:var(--text-primary);font-size:13px;font-weight:700}.btn-sub[data-v-6e680a06]{color:var(--text-tertiary);margin-top:2px;font-size:11px}.import-drop-zone[data-v-6e680a06]{border:2px dashed var(--border-color);text-align:center;cursor:pointer;border-radius:12px;padding:24px;transition:all .15s;display:block}.import-drop-zone[data-v-6e680a06]:hover{border-color:var(--primary-color);background:var(--primary-light)}.file-input[data-v-6e680a06]{display:none}.drop-icon[data-v-6e680a06]{margin-bottom:8px;font-size:28px;display:block}.drop-text[data-v-6e680a06]{color:var(--text-secondary);font-size:13px}.import-result[data-v-6e680a06]{border-radius:8px;margin-top:12px;padding:10px 14px;font-size:13px;font-weight:600}.import-result.success[data-v-6e680a06]{color:#065f46;background:#d1fae5}.import-result.error[data-v-6e680a06]{color:#991b1b;background:#fee2e2}.pwd-form[data-v-6e680a06]{flex-direction:column;gap:10px;display:flex}.pwd-input[data-v-6e680a06]{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:12px 14px;font-size:15px}.pwd-input[data-v-6e680a06]:focus{border-color:var(--primary-color)}.pwd-change-btn[data-v-6e680a06]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;padding:12px;font-size:14px;font-weight:700;transition:opacity .2s}.pwd-change-btn[data-v-6e680a06]:disabled{opacity:.4;cursor:not-allowed}.pwd-msg[data-v-6e680a06]{border-radius:8px;margin-top:10px;padding:10px 14px;font-size:13px;font-weight:600}.pwd-msg.success[data-v-6e680a06]{color:#065f46;background:#d1fae5}.pwd-msg.error[data-v-6e680a06]{color:#991b1b;background:#fee2e2}.danger-zone[data-v-6e680a06]{border-color:#fee2e2}.danger-zone .section-title[data-v-6e680a06]{color:#dc2626}.clear-btn[data-v-6e680a06]{color:#dc2626;cursor:pointer;background:0 0;border:1.5px solid #ff6b6b;border-radius:10px;padding:10px 20px;font-size:13px;font-weight:600;transition:all .15s}.clear-btn[data-v-6e680a06]:hover{background:#fee2e2}.cloud-card[data-v-6e680a06]{background:linear-gradient(135deg, var(--bg-card), #f0f4ff);border-color:#c7d2fe}.device-code-box[data-v-6e680a06]{margin-bottom:14px}.device-code-label[data-v-6e680a06]{color:var(--text-tertiary);margin-bottom:6px;font-size:12px}.device-code-display[data-v-6e680a06]{background:var(--bg-secondary);color:#4f46e5;letter-spacing:3px;cursor:pointer;border:2px dashed #818cf8;border-radius:12px;justify-content:space-between;align-items:center;padding:12px 16px;font-size:20px;font-weight:800;display:flex}.copy-hint[data-v-6e680a06]{color:var(--text-tertiary);letter-spacing:0;font-size:11px;font-weight:500}.sync-status-row[data-v-6e680a06]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sync-indicator[data-v-6e680a06]{align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.sync-dot[data-v-6e680a06]{border-radius:50%;width:8px;height:8px}.sync-indicator.idle .sync-dot[data-v-6e680a06]{background:#9ca3af}.sync-indicator.syncing .sync-dot[data-v-6e680a06]{background:#3b82f6;animation:1s infinite pulse-6e680a06}.sync-indicator.success .sync-dot[data-v-6e680a06]{background:#10b981}.sync-indicator.error .sync-dot[data-v-6e680a06]{background:#ef4444}.sync-indicator.offline .sync-dot[data-v-6e680a06]{background:#9ca3af}@keyframes pulse-6e680a06{0%,to{opacity:1}50%{opacity:.4}}.sync-time[data-v-6e680a06]{color:var(--text-tertiary);font-size:11px}.cloud-actions[data-v-6e680a06]{gap:10px;margin-bottom:4px;display:flex}.cloud-btn[data-v-6e680a06]{cursor:pointer;border:none;border-radius:10px;flex:1;padding:11px;font-size:13px;font-weight:600;transition:opacity .2s}.cloud-btn[data-v-6e680a06]:disabled{opacity:.5;cursor:not-allowed}.sync-now[data-v-6e680a06]{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6)}.restore-btn[data-v-6e680a06]{background:var(--bg-secondary);border:1.5px solid var(--border-color);color:var(--text-primary)}.sync-msg[data-v-6e680a06]{border-radius:8px;margin-top:10px;padding:10px 14px;font-size:13px;font-weight:600}.sync-msg.success[data-v-6e680a06]{color:#065f46;background:#d1fae5}.sync-msg.error[data-v-6e680a06]{color:#991b1b;background:#fee2e2}.restore-other-device[data-v-6e680a06]{border-top:1px solid var(--border-color);margin-top:16px;padding-top:14px}.restore-title[data-v-6e680a06]{color:var(--text-secondary);margin-bottom:10px;font-size:13px;font-weight:600}.restore-input-row[data-v-6e680a06]{gap:8px;display:flex}.restore-input[data-v-6e680a06]{border:2px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);letter-spacing:2px;text-transform:uppercase;border-radius:10px;outline:none;flex:1;padding:10px 14px;font-size:16px;font-weight:700}.restore-input[data-v-6e680a06]:focus{border-color:#6366f1}.restore-go-btn[data-v-6e680a06]{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:10px;padding:10px 20px;font-size:13px;font-weight:700}.restore-go-btn[data-v-6e680a06]:disabled{opacity:.4;cursor:not-allowed}.modal-overlay[data-v-6e680a06]{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-modal[data-v-6e680a06]{background:var(--bg-card);text-align:center;border-radius:18px;width:90%;max-width:320px;padding:28px 24px}.confirm-icon[data-v-6e680a06]{margin-bottom:10px;font-size:40px}.confirm-title[data-v-6e680a06]{color:var(--text-primary);margin-bottom:8px;font-size:18px;font-weight:700}.confirm-desc[data-v-6e680a06]{color:var(--text-secondary);margin-bottom:20px;font-size:13px;line-height:1.6}.confirm-actions[data-v-6e680a06]{gap:10px;display:flex}.btn-cancel[data-v-6e680a06]{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-danger[data-v-6e680a06]{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:10px;flex:1;padding:11px;font-size:14px;font-weight:700}.add-record-modal[data-v-10461a77]{padding:8px 0}.type-switch[data-v-10461a77]{gap:8px;margin-bottom:20px;display:flex}.type-btn[data-v-10461a77]{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-10461a77]{color:#ff6b6b;background:#ff6b6b15;border-color:#ff6b6b}.type-btn.active.income[data-v-10461a77]{color:#10b981;background:#10b98115;border-color:#10b981}.amount-section[data-v-10461a77]{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-10461a77]{color:var(--text-secondary);font-size:24px;font-weight:700}.amount-input[data-v-10461a77]{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-10461a77]::placeholder{color:var(--text-tertiary)}.section-label[data-v-10461a77]{color:var(--text-secondary);margin-top:4px;margin-bottom:8px;font-size:13px;font-weight:600}.optional[data-v-10461a77]{color:var(--text-tertiary);font-weight:400}.category-grid[data-v-10461a77]{grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:16px;display:grid}.cat-btn[data-v-10461a77]{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-10461a77]:hover{background:var(--bg-hover)}.cat-btn.selected[data-v-10461a77]{border-color:var(--primary-color);background:var(--primary-light)}.cat-icon[data-v-10461a77]{font-size:18px}.cat-name[data-v-10461a77]{color:var(--text-secondary);white-space:nowrap;font-size:11px}.date-input[data-v-10461a77]{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:10px 12px;font-size:14px}.contact-multi-area[data-v-10461a77]{margin-bottom:16px;position:relative}.selected-tags[data-v-10461a77]{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.contact-tag[data-v-10461a77]{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-10461a77]{border-radius:50%;width:8px;height:8px}.tag-remove[data-v-10461a77]{cursor:pointer;opacity:.6;margin-left:2px;font-size:11px}.tag-remove[data-v-10461a77]:hover{opacity:1}.contact-search-wrapper[data-v-10461a77]{position:relative}.contact-search-input[data-v-10461a77]{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-10461a77]:focus{border-color:var(--primary-color)}.contact-dropdown[data-v-10461a77]{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-10461a77]{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-10461a77]:hover{background:var(--bg-hover)}.contact-option.selected[data-v-10461a77]{background:var(--primary-light)}.opt-check[data-v-10461a77]{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-10461a77]{background:var(--primary-color);border-color:var(--primary-color)}.opt-dot[data-v-10461a77]{border-radius:50%;flex-shrink:0;width:10px;height:10px}.contact-option.create-new[data-v-10461a77]{color:var(--primary-color);font-weight:600}.create-icon[data-v-10461a77]{font-size:16px}.no-contacts[data-v-10461a77]{color:var(--text-tertiary);padding:12px 14px;font-size:13px}.note-input[data-v-10461a77]{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-10461a77]:focus{border-color:var(--primary-color)}.modal-actions[data-v-10461a77]{gap:10px;display:flex}.btn-cancel[data-v-10461a77]{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-10461a77]{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-10461a77]{color:#fff;background:linear-gradient(135deg,#ff6b6b,#ee5a24)}.btn-save.income[data-v-10461a77]{color:#fff;background:linear-gradient(135deg,#10b981,#059669)}.btn-save[data-v-10461a77]:disabled{opacity:.4;cursor:not-allowed}.auth-gate[data-v-d0a51815]{z-index:9999;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.auth-card[data-v-d0a51815]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;background:#fffffff2;border-radius:24px;width:100%;max-width:340px;padding:40px 28px 32px;box-shadow:0 20px 60px #0003}.auth-logo[data-v-d0a51815]{margin-bottom:12px;font-size:56px}.auth-title[data-v-d0a51815]{color:#1f2937;margin-bottom:4px;font-size:24px;font-weight:800}.auth-subtitle[data-v-d0a51815]{color:#6b7280;margin-bottom:28px;font-size:14px}.auth-input-row[data-v-d0a51815]{margin-bottom:12px}.auth-input[data-v-d0a51815]{color:#1f2937;box-sizing:border-box;text-align:center;letter-spacing:4px;background:#f9fafb;border:2px solid #e5e7eb;border-radius:14px;outline:none;width:100%;padding:14px 16px;font-size:18px;transition:border-color .2s}.auth-input[data-v-d0a51815]:focus{border-color:#667eea}.auth-error[data-v-d0a51815]{color:#ef4444;margin-bottom:8px;font-size:13px;animation:.3s shake-d0a51815}.auth-btn[data-v-d0a51815]{color:#fff;cursor:pointer;letter-spacing:4px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:14px;width:100%;margin-top:8px;padding:14px;font-size:16px;font-weight:700;transition:opacity .2s}.auth-btn[data-v-d0a51815]:disabled{opacity:.4;cursor:not-allowed}.auth-btn[data-v-d0a51815]:active:not(:disabled){transform:scale(.98)}.auth-hint[data-v-d0a51815]{color:#9ca3af;margin-top:16px;font-size:12px}@keyframes shake-d0a51815{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}: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;--shadow:0 2px 8px #00000014}[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;--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{background:var(--bg-card);border-bottom:1px solid var(--border-color);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.top-bar-left{align-items:center;gap:8px;display:flex}.app-logo{font-size:22px}.app-name{color:var(--text-primary);letter-spacing:-.3px;font-size:17px;font-weight:800}.theme-toggle{border:1.5px solid var(--border-color);background:var(--bg-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;transition:all .2s;display:flex}.theme-toggle:hover{background:var(--bg-hover)}.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-icon{filter:none}.nav-item.active .nav-label{color:var(--primary-color);font-weight:700}.fab-float{bottom:calc(90px + env(safe-area-inset-bottom));color:#fff;cursor:pointer;z-index:100;background:linear-gradient(135deg,#6366f1,#818cf8);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);width:100%;max-height:92dvh;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}.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}
