.category-btn[data-v-ec3f068d]{display:flex;align-items:center;justify-content:center;width:100%;padding:16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:16px;font-weight:500;color:var(--color-text);cursor:pointer;transition:background .2s,box-shadow .2s;box-shadow:var(--shadow-sm)}.category-btn[data-v-ec3f068d]:hover{background:var(--color-bg);box-shadow:var(--shadow-md)}.modal-overlay[data-v-973c874e]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:center;background:var(--color-overlay);z-index:1000;padding:0}.modal-content[data-v-973c874e]{background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:480px;max-height:90dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;box-shadow:var(--shadow-md);animation:slide-up-973c874e .3s ease-out;padding-bottom:var(--safe-area-bottom)}.modal-handle[data-v-973c874e]{width:36px;height:5px;border-radius:3px;background:var(--color-border);margin:8px auto 0}.modal-header[data-v-973c874e]{display:flex;align-items:center;justify-content:space-between;padding:12px 20px 0}.modal-title[data-v-973c874e]{font-size:17px;font-weight:600;color:var(--color-text)}.modal-close[data-v-973c874e]{min-width:var(--touch-target-min);min-height:var(--touch-target-min);background:none;border:none;font-size:22px;cursor:pointer;color:var(--color-text-secondary);line-height:1;display:flex;align-items:center;justify-content:center}.modal-body[data-v-973c874e]{padding:16px 20px 20px}@keyframes slide-up-973c874e{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:768px){.modal-overlay[data-v-973c874e]{align-items:center;padding:16px}.modal-content[data-v-973c874e]{border-radius:var(--radius-lg);max-height:none;animation:none}.modal-handle[data-v-973c874e]{display:none}}.base-btn[data-v-83d4225e]{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;min-height:var(--touch-target-min);border:none;border-radius:var(--radius-md);font-size:15px;font-weight:500;cursor:pointer;transition:background .2s,opacity .2s;width:100%;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.base-btn[data-v-83d4225e]:disabled{opacity:.5;cursor:not-allowed}.base-btn--primary[data-v-83d4225e]{background:var(--color-primary);color:#fff}.base-btn--primary[data-v-83d4225e]:hover:not(:disabled){background:var(--color-primary-dark)}.base-btn--secondary[data-v-83d4225e]{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.base-btn--secondary[data-v-83d4225e]:hover:not(:disabled){background:var(--color-bg)}.base-btn--danger[data-v-83d4225e]{background:var(--color-danger);color:#fff}.add-expense-body[data-v-e72af66b]{display:flex;flex-direction:column;gap:14px}.add-expense-category[data-v-e72af66b]{font-size:14px;color:var(--color-text-secondary);text-align:center}.add-expense-input[data-v-e72af66b]{width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:16px;outline:none}.add-expense-input[data-v-e72af66b]:focus,.add-expense-textarea[data-v-e72af66b]:focus{border-color:var(--color-primary)}.add-expense-textarea[data-v-e72af66b]{width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:15px;outline:none;resize:vertical;font-family:inherit}.add-expense-error[data-v-e72af66b]{color:var(--color-danger);font-size:13px}.add-expense-actions[data-v-e72af66b]{display:flex;flex-direction:column;gap:8px}.settings-container[data-v-e72af66b]{position:relative}.settings-btn[data-v-e72af66b]{background:none;border:none;cursor:pointer;color:var(--color-text-secondary);padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.settings-btn[data-v-e72af66b]:hover{background:var(--color-bg)}.settings-dropdown[data-v-e72af66b]{position:absolute;top:100%;right:0;z-index:1100;min-width:220px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:8px;margin-top:4px}.settings-option[data-v-e72af66b]{display:block;width:100%;padding:10px 12px;border:none;border-radius:var(--radius-sm);background:none;font-size:14px;text-align:left;cursor:pointer;color:var(--color-text);transition:background .2s}.settings-option[data-v-e72af66b]:hover{background:var(--color-bg)}.settings-option--danger[data-v-e72af66b]{color:var(--color-danger)}.settings-label[data-v-e72af66b]{font-size:13px;color:var(--color-text-secondary);margin-bottom:8px;text-align:center}.settings-input[data-v-e72af66b]{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;outline:none;margin-bottom:8px}.settings-input[data-v-e72af66b]:focus{border-color:var(--color-primary)}.settings-error[data-v-e72af66b]{color:var(--color-danger);font-size:12px;margin-bottom:6px;text-align:center}.settings-actions[data-v-e72af66b]{display:flex;flex-direction:column;gap:6px}.add-category-body[data-v-985d375f]{display:flex;flex-direction:column;gap:14px}.add-category-input[data-v-985d375f]{width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:15px;outline:none}.add-category-input[data-v-985d375f]:focus{border-color:var(--color-primary)}.add-category-error[data-v-985d375f]{color:var(--color-danger);font-size:13px}.add-category-actions[data-v-985d375f]{display:flex;flex-direction:column;gap:8px}.tracking-view[data-v-eb7cee84]{display:flex;flex-direction:column;-webkit-overflow-scrolling:touch}.tracking-loading[data-v-eb7cee84]{text-align:center;padding:32px;color:var(--color-text-secondary)}.tracking-grid[data-v-eb7cee84]{display:flex;flex-direction:column;gap:10px}.tracking-add-wrapper[data-v-eb7cee84]{display:flex}.tracking-add-btn[data-v-eb7cee84]{width:100%;padding:16px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:16px;font-weight:500;cursor:pointer;transition:background .2s}.tracking-add-btn[data-v-eb7cee84]:hover{background:var(--color-primary-dark)}.period-picker[data-v-267774d3]{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.period-tabs[data-v-267774d3]{display:flex;gap:6px;overflow-x:auto}.period-tab[data-v-267774d3]{flex-shrink:0;padding:8px 16px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font-size:13px;color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.period-tab--active[data-v-267774d3]{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.period-custom[data-v-267774d3]{display:flex;align-items:center;gap:8px}.period-input[data-v-267774d3]{flex:1;padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px}.period-separator[data-v-267774d3]{color:var(--color-text-secondary)}.chart-wrapper[data-v-80fd49a3]{max-width:300px;margin:0 auto 16px}.stat-table-wrapper[data-v-bfdba236]{overflow-x:auto}.stat-table[data-v-bfdba236]{width:100%;border-collapse:collapse;font-size:14px}.stat-th[data-v-bfdba236]{text-align:left;padding:10px 8px;border-bottom:2px solid var(--color-border);color:var(--color-text-secondary);font-weight:600}.stat-th--right[data-v-bfdba236]{text-align:right}.stat-td[data-v-bfdba236]{padding:10px 8px;border-bottom:1px solid var(--color-border)}.stat-td--right[data-v-bfdba236]{text-align:right}.stat-row--total .stat-td[data-v-bfdba236]{font-weight:600;border-bottom:none}.statistics-view[data-v-6e0216d6]{display:flex;flex-direction:column;-webkit-overflow-scrolling:touch}.statistics-mode-toggle[data-v-6e0216d6]{display:flex;gap:6px;margin-bottom:16px}.mode-btn[data-v-6e0216d6]{flex:1;padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font-size:13px;color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.mode-btn--active[data-v-6e0216d6]{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.statistics-loading[data-v-6e0216d6]{text-align:center;padding:32px;color:var(--color-text-secondary)}.statistics-total[data-v-6e0216d6]{font-size:18px;font-weight:600;text-align:center;margin-bottom:16px;color:var(--color-text)}.login-container[data-v-abfebe92]{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:16px;padding-top:calc(16px + var(--safe-area-top));padding-bottom:calc(16px + var(--safe-area-bottom))}.login-card[data-v-abfebe92]{width:100%;max-width:360px;text-align:center}.login-icon[data-v-abfebe92]{width:56px;height:56px;margin-bottom:12px}.login-title[data-v-abfebe92]{font-size:24px;font-weight:700;color:var(--color-primary)}.login-subtitle[data-v-abfebe92]{font-size:14px;color:var(--color-text-secondary);margin-bottom:24px}.login-form[data-v-abfebe92]{display:flex;flex-direction:column;gap:12px}.login-input[data-v-abfebe92]{width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:15px;outline:none;transition:border-color .2s}.login-input[data-v-abfebe92]:focus{border-color:var(--color-primary)}.login-error[data-v-abfebe92]{color:var(--color-danger);font-size:13px}.app-container[data-v-b0242181]{display:flex;flex-direction:column;min-height:100dvh;background:var(--color-bg);color:var(--color-text)}.app-header[data-v-b0242181]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;padding-top:calc(12px + var(--safe-area-top));background:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-header-left[data-v-b0242181]{display:flex;align-items:center;gap:10px}.app-icon[data-v-b0242181]{width:28px;height:28px}.app-title[data-v-b0242181]{font-size:18px;font-weight:600;color:var(--color-primary)}.btn-logout[data-v-b0242181]{min-height:var(--touch-target-min);background:none;border:1px solid var(--color-border);border-radius:8px;padding:6px 14px;font-size:14px;color:var(--color-text-secondary);cursor:pointer}.app-main[data-v-b0242181]{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:16px}.app-tabbar[data-v-b0242181]{display:flex;border-top:1px solid var(--color-border);background:var(--color-surface);padding-bottom:var(--safe-area-bottom)}.tabbar-item[data-v-b0242181]{flex:1;text-align:center;padding:12px 0;min-height:var(--touch-target-min);display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:14px;color:var(--color-text-secondary);transition:color .2s;-webkit-tap-highlight-color:transparent}.tabbar-item--active[data-v-b0242181]{color:var(--color-primary);font-weight:600}:root{--color-primary: #6b8c7b;--color-primary-light: #8aa99b;--color-primary-dark: #4e6f5f;--color-bg: #f5f3f0;--color-surface: #ffffff;--color-border: #e0ddd8;--color-text: #3a3a3a;--color-text-secondary: #7a7a7a;--color-danger: #c47a7a;--color-success: #7ab88a;--color-overlay: rgba(0, 0, 0, .3);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--touch-target-min: 44px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg);color:var(--color-text);overflow-x:hidden;-webkit-tap-highlight-color:transparent}input,button,select,textarea{font-family:inherit;font-size:inherit}@media(min-width:768px){body{max-width:480px;margin:0 auto;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);min-height:100dvh}}
