.overview[data-v-c1afcf49]{grid-template-columns:1.25fr 1fr 1fr;gap:16px;margin-bottom:28px;display:grid}.summary[data-v-c1afcf49]{border:1px solid var(--line);background:var(--card);border-radius:18px;min-height:150px;padding:23px 24px}.summary.primary[data-v-c1afcf49]{border-color:var(--sage);background:var(--sage);color:#fff}.summary-label[data-v-c1afcf49]{color:var(--muted);font-size:13px}.primary .summary-label[data-v-c1afcf49]{color:#ffffffad}.summary-value[data-v-c1afcf49]{letter-spacing:-.04em;margin-top:16px;font-family:Georgia,Times New Roman,serif;font-size:33px}.summary-note[data-v-c1afcf49]{color:var(--muted);margin-top:10px;font-size:12px}.primary .summary-note[data-v-c1afcf49]{color:#ffffffa6}.summary-error[data-v-c1afcf49]{color:var(--rose);font-size:13px}@media (width<=820px){.overview[data-v-c1afcf49]{grid-template-columns:1fr 1fr}.summary.primary[data-v-c1afcf49]{grid-column:span 2}}@media (width<=480px){.overview[data-v-c1afcf49]{gap:10px}.summary[data-v-c1afcf49]{min-height:126px;padding:18px}.summary-value[data-v-c1afcf49]{font-size:27px}}.month-picker[data-v-5f924be9]{vertical-align:middle;flex-direction:column;align-items:center;width:3.5em;display:inline-flex}.month-label[data-v-5f924be9]{white-space:nowrap;line-height:1.5}.month-arrow[data-v-5f924be9]{width:100%;height:18px;color:var(--sage);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex}.month-arrow[data-v-5f924be9]:disabled{opacity:.3;cursor:default}.month-arrow[data-v-5f924be9]:focus-visible{outline:2px solid var(--sage);border-radius:4px}.record-actions[data-v-2454c229]{grid-column:2/-1;justify-content:flex-end;gap:8px;display:flex}.record-actions button[data-v-2454c229]{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:7px;padding:6px 10px}.record-actions button[data-v-2454c229]:disabled{cursor:default;opacity:.5}.panel[data-v-2454c229]{border:1px solid var(--line);background:var(--card);border-radius:18px}.records-panel[data-v-2454c229]{overflow:hidden}.records-head[data-v-2454c229]{justify-content:space-between;align-items:center;padding:24px 25px 17px;display:flex}.panel-title[data-v-2454c229]{margin:0;font-size:17px;font-weight:600}.record[data-v-2454c229]{border-top:1px solid var(--line);grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:14px;padding:17px 25px;display:grid}.icon[data-v-2454c229]{background:#f3f2ee;border-radius:12px;place-items:center;width:40px;height:40px;font-size:18px;display:grid}.record-name[data-v-2454c229]{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.record-meta[data-v-2454c229]{color:var(--muted);margin-top:5px;font-size:12px}.amount[data-v-2454c229]{text-align:right;font-family:Georgia,serif;font-size:17px}.amount.income[data-v-2454c229]{color:var(--sage)}.amount.expense[data-v-2454c229]{color:var(--rose)}.empty[data-v-2454c229]{color:var(--muted);text-align:center;padding:58px 20px;font-size:14px}.empty span[data-v-2454c229]{margin-bottom:12px;font-size:28px;display:block}.empty.error[data-v-2454c229]{color:var(--rose)}.filters[data-v-2454c229]{gap:8px;display:flex}.filter[data-v-2454c229]{color:var(--muted);background:0 0;border:0;border-radius:7px;padding:7px 10px;font-size:12px}.filter[data-v-2454c229]:hover,.filter.active[data-v-2454c229]{color:var(--sage);background:#f1f3ef}.tip[data-v-2454c229]{color:#999;font-size:10px}.records-title[data-v-2454c229]{align-items:center;gap:4px;display:flex}.panel[data-v-894bb3ee]{border:1px solid var(--line);background:var(--card);border-radius:18px}.form-panel[data-v-894bb3ee]{padding:25px;position:sticky;top:20px}.panel-title[data-v-894bb3ee]{margin:0 0 23px;font-size:17px;font-weight:600}.form-grid[data-v-894bb3ee]{border:0;gap:17px;min-width:0;margin:0;padding:0;display:grid}.type-switch[data-v-894bb3ee]{background:#f2f2ee;border-radius:10px;grid-template-columns:1fr 1fr;padding:3px;display:grid}.type-switch button[data-v-894bb3ee]{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:8px;font-size:13px}.type-switch button.active[data-v-894bb3ee]{color:var(--ink);background:#fff;box-shadow:0 1px 3px #00000014}.two-col[data-v-894bb3ee]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.quick-create[data-v-894bb3ee]{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.quick-create button[data-v-894bb3ee]{border:1px solid var(--line);background:var(--card);color:var(--sage);border-radius:10px;padding:0 12px;font-size:12px;font-weight:600}.quick-create button[data-v-894bb3ee]:hover{background:var(--sage-soft)}.quick-create button[data-v-894bb3ee]:disabled{cursor:wait;opacity:.6}.submit[data-v-894bb3ee]{background:var(--ink);color:#fff;border:0;border-radius:10px;margin-top:6px;padding:13px;font-size:14px;font-weight:600}.submit[data-v-894bb3ee]:hover{background:var(--sage)}.submit[data-v-894bb3ee]:disabled{cursor:wait;opacity:.6}.form-actions[data-v-894bb3ee]{grid-template-columns:1fr;align-items:end;gap:10px;display:grid}.form-actions .submit[data-v-894bb3ee]{width:100%}.save-notice[data-v-894bb3ee]{color:var(--sage);font-size:12px;line-height:1.5}.cancel-edit[data-v-894bb3ee]{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:10px;padding:12px}.form-error[data-v-894bb3ee]{color:var(--rose);margin:0;font-size:12px}@media (width<=820px){.form-panel[data-v-894bb3ee]{position:static}}.content[data-v-238efcfd]{grid-template-columns:350px minmax(0,1fr);align-items:start;gap:28px;display:grid}@media (width<=820px){.content[data-v-238efcfd]{grid-template-columns:1fr}}:root{--ink:#20201d;--muted:#8e8e87;--line:#e9e9e3;--paper:#fbfbf8;--card:#fff;--sage:#285e52;--sage-soft:#eaf2ed;--rose:#a65252;--rose-soft:#f9eeee;--shadow:0 18px 50px #2a2d2312}*{box-sizing:border-box}body{background:var(--paper);min-width:320px;color:var(--ink);margin:0;font-family:PingFang SC,Microsoft YaHei,Inter,system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer}input,select{appearance:none;border:1px solid var(--line);width:100%;color:var(--ink);background:#fbfbf9;border-radius:10px;outline:none;padding:11px 12px;font-size:14px;transition:border .2s,box-shadow .2s}input:focus,select:focus{border-color:#91b4a9;box-shadow:0 0 0 3px #285e5214}label{color:#666660;gap:8px;font-size:12px;display:grid}.brand-mark{background:var(--sage);border-radius:50% 50% 50% 8px;flex:none;width:31px;height:31px;transform:rotate(-18deg)}.auth-screen{z-index:1000;background:var(--paper);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.auth-card{border:1px solid var(--line);background:var(--card);width:min(420px,100%);box-shadow:var(--shadow);border-radius:22px;padding:34px}.auth-brand{letter-spacing:.08em;justify-content:center;align-items:center;gap:12px;margin-bottom:34px;font-size:20px;font-weight:700;display:flex}.auth-card h1{text-align:center;margin:0 0 8px;font-size:30px}.auth-subtitle{color:var(--muted);text-align:center;margin:0 0 27px;font-size:14px}.auth-form{gap:17px;display:grid}.auth-form input{padding:12px 13px}.auth-submit{background:var(--ink);color:#fff;border:0;border-radius:10px;margin-top:3px;padding:13px;font-size:14px;font-weight:600}.auth-submit:hover{background:var(--sage)}.auth-submit:disabled{cursor:wait;opacity:.6}.auth-switch{color:var(--muted);text-align:center;margin:21px 0 0;font-size:13px}.auth-switch button{color:var(--sage);background:0 0;border:0;padding:0;font-weight:600}.auth-error{min-height:18px;color:var(--rose);font-size:12px;line-height:1.5}.app{max-width:1240px;min-height:100vh;margin:0 auto;padding:36px 42px 64px}header{justify-content:space-between;align-items:center;margin-bottom:44px;display:flex}.brand{letter-spacing:.08em;align-items:center;gap:12px;font-size:18px;font-weight:700;display:flex}.header-right{align-items:center;gap:14px;display:flex}.user-info{text-align:right;gap:2px;display:grid}.user-nickname{font-size:13px;font-weight:600}.user-email{color:var(--muted);font-size:11px}.logout-button{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:8px;padding:7px 10px;font-size:12px}.logout-button:hover{background:var(--rose-soft);color:var(--rose)}.logout-button:disabled{cursor:wait;opacity:.6}.greeting{margin-bottom:30px}.greeting h1{letter-spacing:-.045em;margin:0 0 9px;font-size:clamp(28px,4vw,42px);font-weight:600}.greeting p{color:var(--muted);margin:0;font-size:15px}@media (width<=820px){.app{padding:26px 18px 44px}header{margin-bottom:34px}}@media (width<=600px){.auth-card{padding:27px 22px}.header-right{gap:8px}.user-info{display:none}}
