:root{--color-bg: var(--libai-background);--color-surface: var(--libai-surface);--color-xuan: var(--libai-surface-subtle);--color-text: var(--libai-text);--color-text-muted: var(--libai-text-muted);--color-border: var(--libai-border);--color-border-strong: var(--libai-border-strong);--color-gilt: var(--libai-accent);--color-gilt-hover: var(--libai-accent-hover);--color-gilt-soft: var(--libai-accent-subtle);--color-primary-subtle: var(--libai-accent-subtle);--color-danger: var(--libai-danger);--color-expense: var(--libai-danger);--color-income: var(--libai-success);--color-warning: var(--libai-warning);--color-info: var(--libai-info);--tag-expense-bg: var(--libai-danger-subtle);--tag-income-bg: var(--libai-success-subtle);--tag-pending-bg: var(--libai-warning-subtle);--tag-transfer-bg: var(--libai-info-subtle);--btn-primary-text: var(--libai-accent-contrast);--color-sidebar-bg: var(--libai-background-deep);--color-sidebar-text: var(--libai-text-soft);--sidebar-logo-color: var(--libai-text);--sidebar-hover-bg: var(--libai-control-hover);--sidebar-hover-text: var(--libai-text);--sidebar-icon-hover-bg: var(--libai-control-hover);--sidebar-ledger-add-color: var(--libai-text-muted);--nav-active-bg: var(--libai-selected);--nav-active-text: var(--libai-accent);--font-display: var(--libai-font-display);--font-body: var(--libai-font-body);--radius: var(--libai-radius-sm);--radius-lg: var(--libai-radius-md);--shadow-card: var(--libai-shadow-soft);--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--mobile-header-total: calc(56px + var(--safe-top))}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--font-mono: "SF Mono", "Cascadia Code", monospace;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--mobile-header-bar: 56px;--mobile-header-total: calc(var(--mobile-header-bar) + var(--safe-top))}html,body,#app{height:100%;font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px;flex-wrap:wrap}.page-title{font-family:var(--font-display);font-size:1.5rem;color:var(--color-text)}.chart-title{font-family:var(--font-display);font-size:.9375rem;font-weight:600;margin-bottom:16px;color:var(--color-text);letter-spacing:.02em}.empty-state{text-align:center;padding:60px 24px;color:var(--color-text-muted);font-size:14px;line-height:1.6}.card{background:var(--color-surface)}.amount-expense{color:var(--color-expense);font-variant-numeric:tabular-nums}.amount-income{color:var(--color-income);font-variant-numeric:tabular-nums}.amount-transfer{color:var(--color-info);font-variant-numeric:tabular-nums}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--radius);font-size:12px;font-weight:500;letter-spacing:.02em}.tag-expense{background:var(--tag-expense-bg);color:var(--color-expense)}.tag-income{background:var(--tag-income-bg);color:var(--color-income)}.tag-transfer{background:var(--tag-transfer-bg);color:var(--color-info)}.tag-pending{background:var(--tag-pending-bg);color:var(--color-warning)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-size:14px;font-weight:500;font-family:var(--font-body);cursor:pointer;border:none;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}.btn:focus-visible{outline:2px solid var(--color-gilt);outline-offset:2px}.btn-primary{background:var(--color-gilt);color:var(--btn-primary-text)}.btn-primary:hover:not(:disabled){background:var(--color-gilt-hover)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border)}.btn-ghost:hover:not(:disabled){background:var(--color-xuan);border-color:var(--color-border-strong)}.btn-danger{background:var(--tag-expense-bg);color:var(--color-danger);border:1px solid var(--color-border)}.btn-danger:hover{background:var(--tag-expense-bg);filter:brightness(.95)}.input{width:100%;padding:9px 12px;border-radius:var(--radius);border:1.5px solid var(--color-border);font-size:14px;font-family:var(--font-body);color:var(--color-text);background:var(--color-surface);outline:none;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--color-gilt);box-shadow:0 0 0 3px var(--color-gilt-soft)}.input::placeholder{color:var(--color-text-muted)}.form-row{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:500;color:var(--color-text-muted)}.n-message-container{top:calc(12px + var(--safe-top))!important}@media (max-width: 768px){.page-title{font-size:1.25rem}.page-header{margin-bottom:16px}.n-message-container{top:calc(var(--mobile-header-total) + 8px)!important}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root,:root[data-theme=light]{color-scheme:light;--libai-background: #f5f8fc;--libai-background-deep: #eaf1fb;--libai-surface: #ffffff;--libai-surface-subtle: #f0f5fc;--libai-surface-raised: rgb(255 255 255 / .92);--libai-surface-overlay: rgb(255 255 255 / .82);--libai-canvas: #eef4fb;--libai-surface-inspector: #f8fbff;--libai-control-background: #ffffff;--libai-control-hover: #edf4ff;--libai-selected: #e6f0ff;--libai-text: #091a35;--libai-text-soft: #334a69;--libai-text-muted: #687c98;--libai-text-inverse: #f8fbff;--libai-border: #d8e3f1;--libai-border-strong: #b8c9df;--libai-accent: #1768ff;--libai-accent-hover: #0754da;--libai-accent-subtle: #e6f0ff;--libai-accent-contrast: #ffffff;--libai-success: #16794a;--libai-success-subtle: #e5f7ed;--libai-warning: #9a6410;--libai-warning-subtle: #fff3d6;--libai-danger: #c93650;--libai-danger-subtle: #ffebef;--libai-info: #1768ff;--libai-info-subtle: #e6f0ff;--libai-focus: #1768ff;--libai-shadow-soft: 0 16px 50px rgb(24 65 116 / .08);--libai-shadow-float: 0 24px 70px rgb(24 65 116 / .14)}:root[data-theme=dark]{color-scheme:dark;--libai-background: #070b12;--libai-background-deep: #0c1320;--libai-surface: #111a28;--libai-surface-subtle: #151f2e;--libai-surface-raised: rgb(18 28 43 / .94);--libai-surface-overlay: rgb(17 26 40 / .86);--libai-canvas: #060a10;--libai-surface-inspector: #0d1623;--libai-control-background: #162235;--libai-control-hover: #1c2c43;--libai-selected: #193253;--libai-text: #edf4ff;--libai-text-soft: #c0cce0;--libai-text-muted: #8fa0b9;--libai-text-inverse: #07101d;--libai-border: #26354a;--libai-border-strong: #40526b;--libai-accent: #6ca4ff;--libai-accent-hover: #91bbff;--libai-accent-subtle: #172b49;--libai-accent-contrast: #07101d;--libai-success: #79dda5;--libai-success-subtle: #123424;--libai-warning: #f3c66c;--libai-warning-subtle: #3a2c13;--libai-danger: #ff8799;--libai-danger-subtle: #3d1c25;--libai-info: #83b1ff;--libai-info-subtle: #172b49;--libai-focus: #92baff;--libai-shadow-soft: 0 18px 54px rgb(0 0 0 / .26);--libai-shadow-float: 0 28px 80px rgb(0 0 0 / .42)}:root{--libai-font-body: "Microsoft YaHei UI", "Noto Sans SC", "PingFang SC", system-ui, sans-serif;--libai-font-display: "Microsoft YaHei UI", "Noto Sans SC", "PingFang SC", system-ui, sans-serif;--libai-font-data: "Cascadia Code", "SFMono-Regular", Consolas, monospace;--libai-space-2xs: .25rem;--libai-space-xs: .5rem;--libai-space-sm: .75rem;--libai-space-md: 1rem;--libai-space-lg: 1.5rem;--libai-space-xl: 2rem;--libai-space-2xl: 3rem;--libai-radius-sm: .5rem;--libai-radius-md: .75rem;--libai-radius-lg: 1.125rem;--libai-control-height: 2.75rem;--libai-duration-fast: .16s;--libai-duration-medium: .28s;--libai-ease-out: cubic-bezier(.16, 1, .3, 1)}@media (prefers-reduced-motion: reduce){:root{--libai-duration-fast: 0ms;--libai-duration-medium: 0ms}}.lb-brand-block{min-width:0;flex:0 1 auto;font-family:var(--libai-font-body)}.lb-brand{display:flex;min-width:0;align-items:center;gap:11px;padding:0;border:0;color:var(--libai-text);background:transparent;text-align:left;text-decoration:none;cursor:pointer}.lb-brand .lb-brand-mark{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;border:0;border-radius:11px;background:var(--libai-accent);color:var(--libai-accent-contrast);font:800 16px/1 var(--libai-font-body)}.lb-brand .lb-brand-copy{display:grid;min-width:0;gap:3px}.lb-brand .lb-brand-name{display:block;margin:0;color:var(--libai-text);font:700 16px/1.4 var(--libai-font-body);letter-spacing:.08em}.lb-brand .lb-brand-description{display:block;margin:0;color:var(--libai-text-muted);font:400 10px/1.5 var(--libai-font-body);letter-spacing:0}.lb-brand-block .lb-brand-poem{display:block;margin:14px 0 0;padding:0;color:var(--libai-text-muted);font:400 11px/1.65 var(--libai-font-body);text-align:left;letter-spacing:0}.lb-brand-poem .lb-brand-source{display:block;margin-top:2px;font:400 10px/1.5 var(--libai-font-body)}.lb-header-tools{display:flex;min-width:0;flex:0 0 auto;align-items:center;gap:10px;font-family:var(--libai-font-body)}.lb-home-link{display:inline-flex;min-height:38px;flex:0 0 auto;align-items:center;justify-content:space-between;gap:12px;box-sizing:border-box;padding:0 10px;border:0;border-radius:9px;background:transparent;color:var(--libai-text-soft);font:400 12px/1.5 var(--libai-font-body);text-decoration:none;white-space:nowrap}.lb-home-link:hover{background:var(--libai-control-hover);color:var(--libai-accent)}.lb-footer{display:grid;gap:10px;margin-top:auto;padding-top:12px;border-top:1px solid var(--libai-border)}.lb-footer>.lb-home-link{display:flex}.lb-account{display:flex;min-width:0;align-items:center;gap:9px;min-height:38px;font:400 12px/1.5 var(--libai-font-body);color:var(--libai-text)}.lb-account-identity{display:flex;min-width:0;align-items:center;gap:9px;flex:1;padding:0;border:0;border-radius:9px;background:transparent;color:var(--libai-text);font:inherit;text-align:left;text-decoration:none}button.lb-account-identity,a.lb-account-identity{cursor:pointer}.lb-account .lb-avatar{display:grid;width:30px;height:30px;flex:0 0 30px;place-items:center;border-radius:9px;background:var(--libai-accent-subtle);color:var(--libai-accent);font:700 12px/1 var(--libai-font-body);text-transform:uppercase}.lb-account .lb-account-name{display:block;max-width:140px;min-width:0;overflow:hidden;color:var(--libai-text);font:400 12px/1.5 var(--libai-font-body);text-overflow:ellipsis;white-space:nowrap}.lb-account .lb-account-exit{flex:0 0 auto;min-height:38px;padding:0 4px;border:0;border-radius:8px;background:transparent;color:var(--libai-text-muted);font:400 12px/1.5 var(--libai-font-body);cursor:pointer;white-space:nowrap}.lb-account .lb-account-exit:hover{color:var(--libai-danger);background:var(--libai-danger-subtle)}.lb-theme{position:relative;flex:0 0 auto;font-family:var(--libai-font-body)}.lb-theme .lb-theme-trigger{display:flex;width:auto;min-height:42px;align-items:center;justify-content:center;gap:10px;box-sizing:border-box;padding:5px 10px;border:1px solid var(--libai-border);border-radius:12px;background:var(--libai-control-background);color:var(--libai-text);font:400 12px/1.4 var(--libai-font-body);cursor:pointer;white-space:nowrap}.lb-theme .lb-theme-trigger:hover{background:var(--libai-control-hover)}.lb-theme .lb-theme-trigger .lb-theme-icon{display:grid;width:28px;height:28px;flex:0 0 28px;place-items:center;border:0;border-radius:8px;background:var(--libai-accent-subtle);color:var(--libai-accent);font-size:16px;box-shadow:none}.lb-theme .lb-theme-copy{display:grid;gap:1px;text-align:left}.lb-theme-copy small{display:block;margin:0;color:var(--libai-text-muted);font:400 9px/1.4 var(--libai-font-body)}.lb-theme-copy strong{display:block;color:var(--libai-text);font:650 12px/1.4 var(--libai-font-body)}.lb-theme-chevron{color:var(--libai-text-muted)}.lb-theme .lb-theme-popover{position:absolute;z-index:1200;top:calc(100% + 8px);right:0;width:230px;max-width:calc(100vw - 24px);box-sizing:border-box;padding:6px;border:1px solid var(--libai-border);border-radius:12px;background:var(--libai-surface-raised);box-shadow:var(--libai-shadow-float)}.lb-theme .lb-theme-popover[hidden]{display:none}.lb-theme-popover>button{display:flex;width:100%;min-height:52px;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:0;border-radius:9px;background:transparent;color:var(--libai-text);font:400 13px/1.4 var(--libai-font-body);text-align:left;cursor:pointer}.lb-theme-popover>button:hover{background:var(--libai-control-hover)}.lb-theme-popover>button[aria-checked=true]{background:var(--libai-accent-subtle)}.lb-theme-popover strong,.lb-theme-popover small{display:block}.lb-theme-popover strong{font-size:13px;font-weight:650}.lb-theme-popover small{margin-top:3px;color:var(--libai-text-muted);font-size:11px}.lb-theme-popover b{color:var(--libai-accent)}.lb-brand:focus-visible,.lb-home-link:focus-visible,.lb-account :focus-visible,.lb-theme :focus-visible{outline:2px solid var(--libai-focus);outline-offset:3px}@media (max-width:768px){.lb-header-tools{gap:6px}.lb-theme .lb-theme-copy,.lb-theme .lb-theme-chevron{display:none}.lb-theme .lb-theme-trigger{width:42px;height:42px;padding:6px}.lb-header-tools>.lb-account .lb-account-name{max-width:76px}}@media (max-width:480px){.lb-header-tools>.lb-account .lb-account-name{display:none}.lb-header-tools>.lb-home-link{padding:0 6px;font-size:11px}.lb-header-tools>.lb-home-link>span[aria-hidden]{display:none}}.lb-mobile-actions{display:flex;align-items:center;gap:4px;flex:0 0 auto}.lb-mobile-menu-trigger{display:none}.lb-mobile-close,.lb-mobile-menu-trigger{width:44px;height:44px;flex:0 0 44px;align-items:center;justify-content:center;padding:0;border:1px solid var(--libai-border);border-radius:10px;color:var(--libai-text);background:var(--libai-control-background);font:400 20px/1 var(--libai-font-body);cursor:pointer}.lb-mobile-close{display:flex}.lb-mobile-backdrop{position:fixed;z-index:1600;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;background:#0000007a}.lb-mobile-panel{width:100%;max-height:calc(100dvh - max(12px,env(safe-area-inset-top)));box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;padding:18px max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));border:1px solid var(--libai-border);border-bottom:0;border-radius:20px 20px 0 0;background:var(--libai-surface);color:var(--libai-text);font-family:var(--libai-font-body)}.lb-mobile-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.lb-panel-navigation{display:grid;gap:4px;margin:16px 0}.lb-panel-navigation>a{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border-radius:10px;color:var(--libai-text-soft);text-decoration:none;font:500 14px/1.5 var(--libai-font-body)}.lb-panel-navigation>a.router-link-active{color:var(--libai-accent);background:var(--libai-accent-subtle)}.lb-panel-navigation>a>span{width:22px;text-align:center}.lb-mobile-theme-row{padding:12px 0;border-top:1px solid var(--libai-border)}.lb-mobile-theme-row>span{display:block;margin-bottom:8px;color:var(--libai-text-muted);font-size:11px}.lb-mobile-theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.lb-mobile-theme-options>button{min-height:44px;padding:6px;border:1px solid var(--libai-border);border-radius:9px;color:var(--libai-text-soft);background:var(--libai-control-background);font:500 12px/1.5 var(--libai-font-body);cursor:pointer}.lb-mobile-theme-options>button[aria-checked=true]{border-color:var(--libai-accent);color:var(--libai-accent);background:var(--libai-accent-subtle)}.lb-mobile-panel .lb-footer{margin-top:4px}.lb-mobile-panel .lb-account-identity,.lb-mobile-panel .lb-account-exit{min-height:44px}.lb-mobile-panel :focus-visible,.lb-mobile-menu-trigger:focus-visible{outline:2px solid var(--libai-focus);outline-offset:2px}@media (max-width:900px){.lb-mobile-header{box-sizing:border-box;align-items:center;justify-content:space-between;gap:8px}.lb-mobile-header .lb-brand{gap:9px}.lb-mobile-header .lb-brand-name{font-size:16px}.lb-mobile-header .lb-theme-trigger{width:44px;height:44px;padding:6px}.lb-mobile-header .lb-theme-copy,.lb-mobile-header .lb-theme-chevron{display:none}.lb-mobile-header .lb-account-identity{display:grid;min-width:44px;min-height:44px;place-items:center}.lb-mobile-header .lb-account-name{display:none}.lb-mobile-header .lb-mobile-menu-trigger{display:flex}}
