:root{color-scheme:light;--background: #f4f4f5;--foreground: #111113;--card: #ffffff;--card-foreground: #111113;--primary: #18181b;--primary-foreground: #ffffff;--secondary: #f1f1f2;--secondary-foreground: #27272a;--muted: #f1f1f2;--muted-foreground: #737378;--accent: #ededee;--accent-foreground: #18181b;--destructive: #b91c1c;--border: #dedee1;--input-border: #ceced2;--ring: #27272a;--sidebar: #111113;--sidebar-foreground: #fafafa;--radius: 8px;--shadow-sm: 0 1px 2px rgba(17, 17, 19, .035);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;color:var(--foreground);background:var(--background);font-size:14px;line-height:1.5}button,input,textarea{font:inherit}button{cursor:pointer;border:0}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid color-mix(in srgb,var(--ring) 35%,transparent);outline-offset:2px}h1,h2,h3,h4,p{margin:0}svg{display:block;flex:0 0 auto}.app-shell{display:flex;min-height:100vh}.sidebar{position:sticky;top:0;width:248px;flex:0 0 auto;height:100vh;padding:22px 14px 16px;color:var(--sidebar-foreground);background:var(--sidebar);border-right:1px solid #27272a;display:flex;flex-direction:column;transition:width .16s ease}.sidebar-header{min-height:40px;margin-bottom:28px;display:flex;align-items:center;gap:8px}.brand{min-width:0;flex:1;display:flex;align-items:center;gap:11px;min-height:40px;padding:0 8px}.brand-mark{width:34px;height:34px;border:1px solid #3f3f46;border-radius:7px;display:grid;place-items:center;color:#fff;background:#202023;font-size:16px;font-weight:700}.brand strong,.brand small{display:block}.brand strong{font-size:15px;font-weight:700}.brand small{margin-top:1px;color:#a1a1aa;font-size:11px}.sidebar .sidebar-toggle{width:32px;min-height:32px;padding:0;flex:0 0 32px;color:#e4e4e7;background:#27272a;border-color:#3f3f46}.sidebar .sidebar-toggle:hover{color:#fff;background:#3f3f46;border-color:#52525b}.sidebar.is-collapsed{width:72px;padding-right:8px;padding-left:8px}.sidebar.is-collapsed .sidebar-header{justify-content:center}.sidebar.is-collapsed .brand,.sidebar.is-collapsed .nav-section-label,.sidebar.is-collapsed .nav-item span,.sidebar.is-collapsed .sidebar-account-copy{display:none}.sidebar.is-collapsed .nav-item{padding-right:9px;padding-left:9px;justify-content:center;gap:0}.sidebar.is-collapsed .nav-dirty-dot{position:absolute;top:8px;right:8px;margin:0}.sidebar.is-collapsed .sidebar-account{padding-right:4px;padding-left:4px;flex-direction:column;justify-content:center;gap:6px}.sidebar nav{display:flex;flex-direction:column;gap:22px}.nav-section{display:grid;gap:4px}.nav-section-label{min-height:24px;padding:2px 10px 7px;color:#6b6b70;font-size:10px;font-weight:650}.nav-item{width:100%;min-height:40px;padding:9px 10px;border-radius:6px;display:flex;align-items:center;gap:11px;color:#a7a7ad;background:transparent;text-align:left;font-size:13px;font-weight:500}.nav-item:hover{color:#fafafa;background:#242427}.nav-item.active{color:#fff;background:#303034;box-shadow:inset 3px 0 #f4f4f5}.side-bottom{margin-top:auto}.sidebar-account{min-height:58px;padding:10px 8px;border-top:1px solid #3f3f46;display:flex;align-items:center;gap:10px}.sidebar-account-copy{min-width:0;flex:1}.sidebar-account-copy strong,.sidebar-account-copy span{display:block}.sidebar-account-copy strong{overflow:hidden;color:#f4f4f5;font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.sidebar-account-copy span{margin-top:2px;overflow:hidden;color:#a1a1aa;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.sidebar .logout{width:32px;min-height:32px;padding:0;color:#e4e4e7;background:#27272a;border-color:#3f3f46}.sidebar .logout:hover{color:#fff;background:#3f3f46;border-color:#52525b}.main{min-width:0;flex:1}.topbar{height:84px;padding:0 40px;position:sticky;top:0;z-index:20;background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.eyebrow{margin-bottom:4px;color:var(--muted-foreground);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0}.topbar h1{font-size:22px;line-height:1.25;font-weight:650}.topbar-title{min-width:0}.topbar-account{min-width:0;display:flex;align-items:center;gap:10px}.topbar-account-copy{min-width:0;text-align:right}.topbar-account-copy strong,.topbar-account-copy span{display:block}.topbar-account-copy strong{color:var(--foreground);font-size:11px;font-weight:650}.topbar-account-copy span{margin-top:1px;color:var(--muted-foreground);font-size:9px}.user-chip{display:flex;align-items:center;gap:10px}.user-chip b,.user-chip small{display:block}.user-chip b{font-size:12px;font-weight:600}.user-chip small{margin-top:1px;color:var(--muted-foreground);font-size:10px}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#27272a;border:1px solid #3f3f46;font-size:12px;font-weight:700}.content{width:100%;padding:28px 40px 52px}.welcome-row,.toolbar{margin-bottom:22px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.welcome-row h2{margin-bottom:4px;font-size:18px;font-weight:650}.welcome-row p,.panel-head p,.card-header p{color:var(--muted-foreground);font-size:12px}.btn{min-height:36px;padding:8px 14px;border:1px solid transparent;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;font-size:12px;font-weight:600;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{color:var(--primary-foreground);background:var(--primary)}.btn-primary:hover{background:#303034}.btn-secondary{color:var(--secondary-foreground);background:var(--card);border-color:var(--border)}.btn-secondary:hover,.btn-ghost:hover{background:var(--secondary)}.btn-ghost{color:var(--secondary-foreground);background:transparent}.btn-destructive{color:#fff;background:var(--destructive)}.btn-sm{min-height:32px;padding:6px 10px}.btn-icon{width:36px;min-height:36px;padding:0}.full{width:100%}.card,.panel,.stat-card{color:var(--card-foreground);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.panel,.stat-card{transition:border-color .14s ease,box-shadow .14s ease}.panel:hover,.stat-card:hover{border-color:#c9c9cd;box-shadow:0 3px 10px #1111130b}.card-header,.panel-head{padding:20px 22px 16px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.card-header h3,.panel-head h3{margin-bottom:3px;font-size:15px;font-weight:650}.card-content{padding:0 22px 20px}.badge,.tag{min-height:22px;padding:3px 8px;border-radius:5px;display:inline-flex;align-items:center;color:#52525b;background:#f4f4f5;border:1px solid #e4e4e7;font-size:10px;font-weight:600;white-space:nowrap}.badge-default{color:#fff;background:var(--primary);border-color:var(--primary)}.badge-success{color:#3f3f46;background:#f4f4f5;border-color:#d4d4d8}.input{width:100%;height:38px;padding:8px 10px;color:var(--foreground);background:var(--card);border:1px solid var(--input-border);border-radius:6px}.select-trigger{width:100%;min-height:38px;padding:8px 10px;border:1px solid var(--input-border);border-radius:6px;display:inline-flex;align-items:center;justify-content:space-between;gap:8px;color:var(--foreground);background:#fff;font-size:12px;line-height:1.2}.select-trigger.income-year-select{width:112px}.select-trigger:hover{border-color:#a1a1aa}.select-trigger[data-state=open]{border-color:#71717a;box-shadow:0 0 0 3px #18181b14}.select-trigger[data-disabled]{color:#a1a1aa;background:#f4f4f5;cursor:not-allowed}.select-content{z-index:120;min-width:var(--radix-select-trigger-width);max-height:min(320px,var(--radix-select-content-available-height));border:1px solid var(--border);border-radius:7px;overflow:hidden;background:#fff;box-shadow:0 12px 28px #11111324}.select-viewport{padding:4px}.select-item{min-height:32px;padding:7px 28px 7px 9px;position:relative;border-radius:5px;display:flex;align-items:center;color:#27272a;font-size:12px;outline:0;-webkit-user-select:none;user-select:none}.select-item[data-highlighted]{background:#f4f4f5}.select-item[data-state=checked]{color:#111113;font-weight:650}.select-item-indicator{position:absolute;right:8px;color:#18181b}.input::placeholder,input::placeholder,textarea::placeholder{color:#a1a1aa}.separator{width:100%;height:1px;background:var(--border)}.stats-grid{margin-bottom:20px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat-card{min-height:128px;padding:19px 20px;position:relative;overflow:hidden}.stat-card.featured{color:#fff;background:#18181b;border-color:#18181b;padding-top:19px}.stat-card.featured .stat-label,.stat-card.featured .stat-foot{color:#a1a1aa}.stat-label{display:block;margin-bottom:13px;color:var(--muted-foreground);font-size:11px;font-weight:500}.stat-card strong{display:block;overflow-wrap:anywhere;font-size:23px;line-height:1.25;font-variant-numeric:tabular-nums;font-weight:650}.stat-foot{display:block;margin-top:10px;color:var(--muted-foreground);font-size:10px}.positive{color:var(--foreground)!important}.negative{color:var(--destructive)!important}.spark{position:absolute;right:18px;bottom:18px;height:34px;display:flex;align-items:flex-end;gap:4px}.spark i{width:4px;border-radius:2px 2px 0 0;display:block;background:#71717a}.dashboard-grid,.ledger-layout,.settings-grid{margin-bottom:20px;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:12px}.chart{height:218px;padding:10px 22px 20px 16px;display:flex}.y-axis{width:58px;padding-bottom:22px;display:flex;flex-direction:column;justify-content:space-between;color:#a1a1aa;font-size:9px;font-variant-numeric:tabular-nums}.bars{min-width:0;flex:1;padding:0 4px;border-bottom:1px solid var(--border);display:flex;align-items:flex-end;justify-content:space-around;gap:5px;background-image:linear-gradient(to bottom,transparent 49px,#f4f4f5 50px);background-size:100% 50px}.bar-col{min-width:13px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:7px}.bar{width:18px;min-height:4px;border-radius:3px 3px 0 0;background:var(--primary)}.bar-col span{color:#a1a1aa;font-size:9px}.source-list{padding:0 22px 18px}.source-row{margin:10px 0;display:grid;grid-template-columns:8px minmax(80px,1fr) auto;grid-template-rows:22px 4px;column-gap:9px;align-items:center}.source-dot{width:7px;height:7px;border-radius:50%;grid-row:1 / 3}.source-row b{color:#52525b;font-size:10px;font-variant-numeric:tabular-nums}.source-track{height:4px;border-radius:2px;grid-column:2 / 4;overflow:hidden;background:#f4f4f5}.source-track i{height:100%;display:block}.green,.teal,.blue,.yellow,.orange{background:#3f3f46}.source-row:nth-child(2) .source-dot,.source-row:nth-child(2) .source-track i{background:#5a5a60}.source-row:nth-child(3) .source-dot,.source-row:nth-child(3) .source-track i{background:#737379}.source-row:nth-child(4) .source-dot,.source-row:nth-child(4) .source-track i{background:#8e8e93}.source-row:nth-child(5) .source-dot,.source-row:nth-child(5) .source-track i{background:#a9a9ad}.recent{overflow:hidden}.recent table,.table-scroll{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{color:var(--muted-foreground);background:#fafafa;text-align:left;font-size:10px;font-weight:600}th,td{height:44px;padding:10px 18px;border-top:1px solid var(--border);white-space:nowrap}.table-group-row th{height:32px;padding-top:7px;padding-bottom:7px;border-right:1px solid var(--border);background:#f4f4f5;color:var(--foreground);text-align:center;font-size:11px;font-weight:650}.table-group-row th[rowspan]{vertical-align:middle}.table-column-row th{height:38px;border-top-color:#e4e4e7}th.summary-column,td.summary-column{color:#18181b;font-weight:700}td{color:#3f3f46;font-size:11px;font-variant-numeric:tabular-nums}td:first-child{color:var(--foreground)}td.muted,.muted{color:var(--muted-foreground)}.text-button,.month-link{padding:0;display:inline-flex;align-items:center;gap:5px;color:var(--primary);background:transparent;font-size:11px;font-weight:600}.row-action{width:30px;height:30px;border-radius:5px;display:grid;place-items:center;color:#71717a;background:transparent}.row-action:hover{background:var(--secondary)}.toolbar{align-items:center}.month-picker{height:38px;overflow:hidden;display:flex;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:6px}.month-picker button{width:36px;height:36px;display:grid;place-items:center;color:#52525b;background:transparent}.month-picker button:hover{background:var(--secondary)}.month-picker input{height:36px;padding:7px 12px;border:0;border-left:1px solid var(--border);border-right:1px solid var(--border);outline:0;color:var(--foreground);background:var(--card)}.entry-panel{padding-bottom:22px}.form-section{padding:0 22px 18px}.form-section h4{margin:4px 0 14px;padding-top:14px;border-top:1px solid var(--border);font-size:12px;font-weight:650}.form-section h4 small{margin-left:8px;color:var(--muted-foreground);font-weight:400}.field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px 15px}.field-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}label{display:block;color:#52525b;font-size:11px;font-weight:500}.input-prefix{height:38px;margin-top:6px;display:flex;align-items:center;background:var(--card);border:1px solid var(--input-border);border-radius:6px}.input-prefix:focus-within{border-color:var(--ring);box-shadow:0 0 0 2px color-mix(in srgb,var(--ring) 15%,transparent)}.input-prefix span{padding-left:10px;color:#a1a1aa;font-size:11px}.input-prefix input{width:100%;min-width:0;height:36px;padding:8px;border:0;outline:0;color:var(--foreground);background:transparent;font-size:12px;font-variant-numeric:tabular-nums}.readonly-amount{justify-content:flex-start;background:color-mix(in srgb,var(--muted) 45%,var(--card));color:var(--foreground)}.readonly-amount strong{padding:8px;font-size:12px;font-variant-numeric:tabular-nums}.note-item-form{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(140px,.9fr) minmax(120px,.7fr) minmax(200px,1.6fr);align-items:end;gap:12px}.note-item-key-toggle{min-height:34px;grid-column:1 / -1;border-top:1px solid var(--border);display:inline-flex;align-items:flex-end;gap:7px;color:#52525b;font-size:11px;font-weight:600;cursor:pointer}.note-item-key-toggle input{width:15px;height:15px;margin:0;accent-color:#b45309}.note-item-key-toggle svg{color:#b45309}.note-item-field{min-width:0}.note-item-field input,.note-item-field select{width:100%;height:38px;margin-top:6px;padding:8px 9px;color:var(--foreground);background:var(--card);border:1px solid var(--input-border);border-radius:6px;outline:0;font-size:12px}.ledger-note-panel{margin-bottom:20px;overflow:hidden}.ledger-note-table-shell{position:relative;isolation:isolate}.ledger-note-table{padding:0 22px 18px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.ledger-note-row{min-width:780px;padding:10px 0;border-bottom:1px solid #f0f0f1;display:grid;grid-template-columns:minmax(200px,1.45fr) 64px 108px 76px minmax(150px,1fr);align-items:center;gap:12px}.ledger-note-row.has-actions{min-width:832px;grid-template-columns:minmax(190px,1.4fr) 64px 108px 76px minmax(140px,1fr) 60px}.ledger-note-row:last-child{border-bottom:0}.ledger-note-row strong,.ledger-note-row em,.ledger-note-row b,.ledger-note-row small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ledger-note-row strong{color:var(--foreground);font-size:11px;font-weight:650}.ledger-note-row-title{display:flex;align-items:center;gap:5px}.ledger-note-row-title span{min-width:0;overflow:hidden;text-overflow:ellipsis}.ledger-note-key-event-icon{flex:0 0 auto;color:#b45309}.ledger-note-row em{display:inline-flex;align-items:center;justify-content:center;padding:3px 7px;border-radius:999px;font-size:10px;font-style:normal;font-weight:650;background:#f4f4f5}.ledger-note-row em.income{color:#4f75a6;background:#dbeafe}.ledger-note-row em.expense{color:#b58914;background:#fef3c7}.ledger-note-row b{color:var(--foreground);font-size:11px;font-variant-numeric:tabular-nums}.ledger-note-row small{color:var(--muted-foreground);font-size:10px}.ledger-note-row-note{text-align:left}.ledger-note-action{position:sticky;right:0;z-index:3;min-width:0;overflow:hidden;align-self:stretch;display:flex;align-items:center;justify-content:flex-end;gap:6px;background:#fff}.ledger-note-action-rail{position:absolute;top:0;right:22px;bottom:18px;z-index:2;width:60px;pointer-events:none;background:#fff;box-shadow:-10px 0 18px -7px #18181b4d}.ledger-note-action-rail:after{position:absolute;top:0;bottom:0;left:100%;width:22px;content:"";background:#fff}.ledger-note-edit,.ledger-note-delete{height:34px;padding:0;border:0;border-radius:0;background:transparent;font-size:11px;font-weight:600;cursor:pointer}.ledger-note-edit{color:#4f75a6}.ledger-note-edit:hover,.ledger-note-delete:hover{text-decoration:underline;text-underline-offset:2px}.ledger-note-edit:hover{color:#365f8d}.ledger-note-delete{color:#b91c1c}.ledger-note-delete:hover{color:#991b1b}.ledger-note-edit:disabled,.ledger-note-delete:disabled{opacity:.55;cursor:wait}.ledger-note-empty{margin:0;padding:14px 0 4px;color:var(--muted-foreground);font-size:11px}.note-item-field select:disabled{color:#a1a1aa;background:#f4f4f5;cursor:not-allowed}.note-item-field input:focus,.note-item-field select:focus{border-color:var(--ring);box-shadow:0 0 0 2px color-mix(in srgb,var(--ring) 15%,transparent)}.note-item-field .input-prefix{margin-top:6px;background:var(--card)}.note-item-field .input-prefix input{height:36px;margin-top:0;border:0;background:transparent;box-shadow:none}.note-item-field .input-prefix input:focus{box-shadow:none}.calc-panel{align-self:start}.calc-list{padding:0 22px 14px}.calc-list>div{padding:13px 0;border-top:1px solid var(--border);display:grid;grid-template-columns:minmax(0,1fr) auto}.calc-list span{color:#52525b;font-size:11px}.calc-list strong{font-size:15px;font-variant-numeric:tabular-nums;font-weight:650}.done{color:var(--foreground)!important}.source-config-list{padding:0 22px 14px}.config-row{min-height:54px;padding:9px 0;border-top:1px solid var(--border);display:flex;align-items:center;gap:10px}.drag-handle{color:#a1a1aa;font-size:14px}.config-index{width:25px;color:#a1a1aa;font-size:10px;font-variant-numeric:tabular-nums}.config-row input{min-width:0;height:36px;padding:8px 10px;flex:1;color:var(--foreground);background:var(--card);border:1px solid var(--input-border);border-radius:6px;font-size:12px}.delete-button{width:32px;height:32px;border-radius:5px;display:grid;place-items:center;color:var(--destructive);background:transparent}.delete-button:hover{background:#fef2f2}.settings-foot{min-height:62px;margin:0 22px;padding:14px 0;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted-foreground);font-size:11px}.account-info{padding:5px 22px 20px;display:flex;align-items:center;gap:12px}.avatar.big{width:46px;height:46px;font-size:16px}.account-info strong,.account-info span{display:block}.account-info span{margin-top:2px;color:var(--muted-foreground);font-size:10px}.account-panel>.full{width:calc(100% - 44px);margin:0 22px}.admin-divider{height:1px;margin:24px 22px 18px;background:var(--border)}.admin-head{padding:0 22px}.admin-head h4{font-size:13px;font-weight:650}.admin-head p{margin:3px 0 12px;color:var(--muted-foreground);font-size:11px}.tip-band{padding:14px 16px;border:1px solid #d4d4d8;border-radius:7px;display:flex;gap:11px;color:#3f3f46;background:#f4f4f5}.tip-band p{margin-top:3px;color:#71717a;font-size:10px}.toast{position:fixed;left:50%;bottom:24px;z-index:50;max-width:min(420px,calc(100vw - 32px));padding:10px 15px;transform:translate(-50%);color:#fff;background:#18181b;border-radius:6px;box-shadow:0 8px 24px #18181b2e;font-size:12px}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#18181b7a;animation:dialog-fade .14s ease-out}.dialog-content{position:fixed;top:50%;left:50%;z-index:90;width:min(460px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:22px;overflow-y:auto;transform:translate(-50%,-50%);color:var(--foreground);background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 20px 45px #18181b2e;animation:dialog-enter .16s ease-out}.dialog-close{position:absolute;top:16px;right:16px;width:30px;height:30px;border-radius:5px;display:grid;place-items:center;color:#71717a;background:transparent}.dialog-close:hover{background:var(--secondary)}.dialog-header{padding-right:34px}.dialog-title{display:block;font-size:17px;font-weight:650}.dialog-description{display:block;margin-top:5px;color:var(--muted-foreground);font-size:12px}.dialog-form-grid{margin-top:22px;display:grid;gap:14px}.dialog-form-grid .input{margin-top:6px}.form-error{margin-top:12px;color:var(--destructive);font-size:11px}.dialog-footer{margin-top:22px;padding-top:16px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}.user-table-cell{display:flex;align-items:center;gap:10px}.user-table-cell .avatar{width:30px;height:30px}.user-table-cell strong{font-weight:600}@keyframes dialog-fade{0%{opacity:0}}@keyframes dialog-enter{0%{opacity:0;transform:translate(-50%,calc(-50% + 6px))}}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(400px,.9fr) minmax(440px,1.1fr);background:#fff}.login-art{min-height:100vh;padding:11vh clamp(48px,8vw,112px);position:relative;overflow:hidden;display:flex;align-items:center;color:#fafafa;background:#111113}.login-art-inner{width:100%;max-width:520px}.brand-mark.large{width:46px;height:46px;margin-bottom:64px;border-color:#52525b;font-size:18px}.login-art h1{max-width:500px;font-size:42px;line-height:1.25;font-weight:650}.login-art em{color:#d4d4d8;font-style:normal}.login-art p{margin-top:16px;color:#a1a1aa;font-size:14px}.login-metrics{width:min(440px,100%);margin-top:70px;padding-top:22px;border-top:1px solid #3f3f46;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.login-metrics strong,.login-metrics span{display:block}.login-metrics strong{color:#fafafa;font-size:13px;font-weight:650}.login-metrics span{margin-top:4px;color:#71717a;font-size:10px}.login-panel{min-height:100vh;padding:32px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}.login-box{width:min(360px,100%)}.mobile-brand{display:none}.login-box h2{margin-bottom:7px;font-size:26px;line-height:1.25;font-weight:650}.login-box .muted{margin-bottom:28px;color:var(--muted-foreground);font-size:12px}.login-box label{margin-bottom:15px}.login-box .input{margin-top:6px}.error{min-height:21px;color:var(--destructive);font-size:11px}.login-panel footer{position:absolute;bottom:20px;color:#a1a1aa;font-size:10px}@media(max-width:1100px){.sidebar{width:220px}.topbar,.content{padding-left:28px;padding-right:28px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.ledger-layout,.settings-grid{grid-template-columns:1fr}.field-grid.four{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:768px){.sidebar-header{display:none}}@media(max-width:720px){.login-page{display:block}.login-art{display:none}.mobile-brand{margin-bottom:42px;display:flex;align-items:center;gap:10px}.mobile-brand strong{font-size:18px}.sidebar{width:64px;padding:18px 8px}.brand{padding:0 7px;margin-bottom:30px}.brand>div,.nav-item span,.nav-section-label,.sidebar-account-copy{display:none}.nav-item{justify-content:center;padding:9px}.sidebar-account{padding:10px 4px 0;flex-direction:column;justify-content:center;gap:6px}.topbar{height:76px;padding:0 16px}.topbar h1{font-size:20px}.content{padding:20px 14px 38px}.welcome-row{align-items:flex-start}.welcome-row h2{font-size:16px}.welcome-row .btn{width:36px;padding:0;font-size:0}.stats-grid{gap:8px}.stat-card{min-height:118px;padding:15px 13px}.stat-card.featured{padding-top:13px}.stat-card strong{font-size:17px}.spark{display:none}.field-grid,.field-grid.four{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.panel-head,.card-header{padding:17px 15px 14px}.form-section,.source-list,.source-config-list,.calc-list,.ledger-note-table{padding-left:15px;padding-right:15px}.ledger-note-row{gap:10px}.login-panel{padding:28px}}@media(max-width:430px){.stats-grid,.field-grid,.field-grid.four{grid-template-columns:1fr}}.ledger-note-add-dialog{width:min(760px,calc(100vw - 32px))}@media(max-width:720px){.ledger-note-panel .panel-head{align-items:stretch;flex-direction:column}.ledger-note-panel .panel-head .btn{width:100%;min-height:42px}.ledger-note-table{padding:0 15px 16px;overflow-x:auto}.ledger-note-action-rail{right:15px;bottom:16px}.ledger-note-action-rail:after{width:15px}.ledger-note-row{min-width:568px;padding:10px 0;grid-template-columns:140px 56px 96px 64px minmax(140px,1fr);gap:8px}.ledger-note-row.has-actions{min-width:636px;grid-template-columns:140px 56px 96px 64px minmax(140px,1fr) 60px}.ledger-note-action{width:60px}.ledger-note-edit,.ledger-note-delete{height:38px}.ledger-note-add-dialog{width:calc(100vw - 20px)}.note-item-form{grid-template-columns:1fr}.ledger-note-add-dialog .note-item-field input,.ledger-note-add-dialog .note-item-field .select-trigger{min-height:44px}.ledger-note-add-dialog .dialog-footer{display:grid;grid-template-columns:1fr 1fr}.ledger-note-add-dialog .dialog-footer .btn{width:100%;min-height:44px}}.session-gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f4f4f5}.session-card{width:min(460px,100%);padding:28px;background:#fff;border:1px solid #e4e4e7;border-radius:8px;box-shadow:0 1px 2px #18181b0a}.session-card h2{margin:8px 0 10px;color:#18181b;font-size:23px;font-weight:650}.session-card p{color:#71717a;font-size:13px;line-height:1.7}.session-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.toolbar-actions{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}@media(max-width:720px){.toolbar-actions{margin-left:0;width:100%;display:grid;grid-template-columns:1fr 1fr}.toolbar-actions .btn:last-child{grid-column:1/-1}.toolbar{align-items:stretch;flex-direction:column}}.nav-item{position:relative}.nav-dirty-dot{width:6px;height:6px;margin-left:auto;border-radius:50%;background:#fbbf24}.overview-empty-wrap{min-height:calc(100vh - 88px);display:grid;place-items:center}.overview-empty{width:min(680px,100%);padding:32px;border:1px dashed #d4d4d8;border-radius:8px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:18px;background:#fff}.overview-page{max-width:none}.overview-toolbar{margin-bottom:22px}.overview-toolbar h1{font-size:26px}.overview-toolbar .page-header-description{color:var(--muted-foreground);font-size:12px}.overview-primary-stats,.overview-structure-stats{margin-bottom:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.overview-trend-panel,.overview-investment-panel{min-width:0;overflow:hidden}.overview-trend-pair-grid{margin-bottom:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.overview-trend-pair-grid .overview-spending-card{grid-column:1 / -1}.overview-mini-card{min-width:0;overflow:hidden}.overview-mini-wide{grid-column:1 / -1}.overview-mini-head{padding:14px 18px 0}.overview-mini-head strong{color:#18181b;font-size:14px;font-weight:650}.overview-mini-head p{margin-top:3px;color:var(--muted-foreground);font-size:11px}.overview-mini-card .overview-mini-stage{height:270px;padding:0 20px 4px}.overview-trend-pair-grid .overview-chart-legend{margin-left:18px;margin-right:18px}.overview-investment-panel{margin-bottom:12px}.overview-investment-layout{padding:0 20px 20px;display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:22px;align-items:stretch}.overview-investment-trend{min-width:0}.overview-investment-legend{margin-left:0;margin-right:0;flex-wrap:wrap;row-gap:6px}.overview-investment-legend .legend-swatch.investment-bar{background:#93c5fd;border:1px solid #60a5fa}.overview-investment-stage{height:270px;padding:0 0 4px}.overview-investment-summary{min-width:0}.overview-product-bars{min-height:0;padding:6px 4px 2px;display:grid;align-content:start;gap:14px}.overview-product-row{min-width:0;display:grid;gap:7px}.overview-product-row-top,.overview-product-row-foot{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px}.overview-product-row-top span{min-width:0;display:flex;align-items:center;gap:7px;color:#3f3f46;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview-product-row-top i{width:8px;height:8px;border-radius:2px;flex:0 0 auto;background:#18181b}.overview-product-row-top b{color:#27272a;font-size:11px;font-variant-numeric:tabular-nums;font-weight:650;white-space:nowrap}.overview-product-row-top b.negative{color:#b91c1c}.overview-product-track{height:10px;border-radius:999px;overflow:hidden;background:#f1f1f2}.overview-product-track span{height:100%;min-width:0;border-radius:inherit;display:block;background:#18181b}.overview-product-track span.negative{margin-left:auto}.overview-product-row-foot{color:#a1a1aa;font-size:9px;font-variant-numeric:tabular-nums}.overview-investment-empty{min-height:140px;padding:18px 22px 22px;display:grid;place-items:center;color:#a1a1aa;background:linear-gradient(to bottom,transparent,#fafafa);font-size:12px;text-align:center}.overview-investment-empty.compact{min-height:92px;padding:12px}.asset-structure-panel{min-width:0;overflow:hidden}.asset-structure-content{padding:0 20px 20px;display:grid;grid-template-columns:minmax(170px,.95fr) minmax(0,1.05fr);align-items:center;gap:12px}.asset-pie-wrap{position:relative;width:100%;height:230px}.asset-pie-center{position:absolute;inset:50% auto auto 50%;width:108px;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.asset-pie-center span{display:block;color:var(--muted-foreground);font-size:10px}.asset-pie-center strong{display:block;margin-top:5px;color:#18181b;font-size:13px;line-height:1.25;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.asset-pie-empty{height:230px;display:grid;place-items:center;color:#a1a1aa;font-size:11px}.asset-pie-legend{display:grid;gap:10px}.asset-pie-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;color:#52525b;font-size:11px}.asset-pie-row span{min-width:0;display:flex;align-items:center;gap:7px}.asset-pie-row span i{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.asset-pie-row b{display:flex;align-items:baseline;gap:7px;color:#3f3f46;font-size:10px;font-variant-numeric:tabular-nums}.asset-pie-row small{color:#a1a1aa;font-size:9px}.overview-empty-icon{width:46px;height:46px;border-radius:7px;display:grid;place-items:center;color:#fff;background:#27272a}.overview-empty h2{margin-bottom:4px;font-size:18px;font-weight:650}.overview-empty p{color:var(--muted-foreground);font-size:12px}.save-status{min-width:78px;min-height:32px;display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;color:#71717a;font-size:10px}.save-status.is-dirty{color:#52525b}.save-status .lucide-loader-circle{animation:ledger-spin .8s linear infinite}.ledger-page .toolbar{margin-bottom:18px}.ledger-main-layout{align-items:stretch}.month-calendar-panel{min-width:0;height:100%;overflow:hidden}.ledger-main-layout .calc-panel{min-width:0;height:100%;align-self:stretch;display:flex;flex-direction:column}.ledger-main-layout .calc-list{flex:0 0 auto}.ledger-main-layout .calc-note{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.ledger-main-layout .calc-note p,.ledger-main-layout .calc-note-items{flex:1 1 auto}.month-calendar-head{align-items:center}.calendar-kicker{margin-bottom:8px;display:flex;align-items:center;gap:6px;color:var(--muted-foreground);font-size:10px;font-weight:650;letter-spacing:.04em;text-transform:uppercase}.month-calendar-head h3{font-size:16px}.annual-summary-panel{min-width:0;overflow:hidden}.annual-summary-head h3{font-size:16px}.annual-year-grid{padding:0 22px 22px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.annual-year-tile{min-width:0;min-height:132px;padding:16px;border:1px solid var(--border);border-radius:7px;display:flex;flex-direction:column;align-items:flex-start;color:var(--foreground);background:#fff;text-align:left;transition:border-color .12s ease,box-shadow .12s ease}.annual-year-tile:hover{border-color:#a1a1aa;box-shadow:0 3px 10px #1111130f}.annual-year-tile.selected{border-color:#18181b;box-shadow:inset 0 0 0 1px #18181b}.annual-year-tile strong{font-size:26px;line-height:1;font-variant-numeric:tabular-nums}.annual-year-tile span{margin-top:18px;color:var(--muted-foreground);font-size:10px}.annual-year-tile em{margin-top:5px;color:#3f3f46;font-size:15px;font-style:normal;font-variant-numeric:tabular-nums;font-weight:650}.key-event-summary{width:100%;min-height:20px;padding:3px 0 3px 7px;border-left:2px solid #b45309;display:flex;align-items:center;gap:5px;overflow:hidden;color:#8a4b08;font-size:10px;font-weight:650;line-height:1.2;text-align:left}.key-event-summary svg{flex:0 0 auto}.key-event-summary-copy{min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.key-event-summary b{flex:0 0 auto;font-size:9px;font-variant-numeric:tabular-nums}.annual-year-tile .key-event-summary,.month-tile .key-event-summary{margin-top:auto}.annual-year-tile .key-event-summary span{margin-top:0;color:inherit;font-size:inherit}.month-calendar-grid{padding:0 22px 16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.month-tile{min-width:0;min-height:108px;padding:13px 15px 12px;position:relative;border:1px solid var(--border);border-radius:7px;color:var(--foreground);background:#fff;display:flex;flex-direction:column;align-items:flex-start;text-align:left;transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}.month-tile.has-key-events{min-height:118px}.month-tile:hover{border-color:#a1a1aa;box-shadow:0 3px 10px #1111130f}.month-tile.selected{border-color:#93c5fd;background:#eff6ff;box-shadow:inset 0 0 0 1px #bfdbfe}.month-tile.empty{background:#fafafa}.month-tile.selected.empty{background:#eff6ff}.month-tile.selected,.month-tile.selected .month-tile-topline span,.month-tile.selected .month-tile-net,.month-tile.selected .month-tile-net.pending{color:#4f75a6!important}.month-tile .month-tile-net.negative,.month-tile.selected .month-tile-net.negative{color:#b91c1c!important}.month-tile-topline{width:100%;display:flex;align-items:baseline;justify-content:space-between}.month-tile-topline b{font-size:25px;line-height:1;font-weight:650;font-variant-numeric:tabular-nums}.month-tile-topline span{color:var(--muted-foreground);font-size:10px}.month-tile-net{margin-top:15px;color:#3f3f46;font-size:16px;line-height:1.2;font-variant-numeric:tabular-nums;font-weight:650}.month-tile-net.pending{color:#a1a1aa;font-size:13px;font-weight:550}.calc-list .net-value,.calc-list .net-value.positive,.calc-list .net-value.negative{color:#4f75a6!important}.calc-list .net-value.negative{color:#d97474!important}.calc-note{margin:0 22px 14px;padding-top:13px;border-top:1px solid var(--border)}.calc-note span{color:#52525b;font-size:11px;font-weight:600}.calc-note p{margin-top:6px;padding:10px 0 2px;color:#71717a;font-size:11px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.calc-note-items{margin-top:8px;display:grid;align-content:start;gap:7px}.calc-note-item{padding:8px 9px;border:1px solid #ececef;border-radius:7px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;background:#fafafa;color:#52525b;font-size:10px}.calc-note-item strong{min-width:0;color:#27272a;font-size:11px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calc-note-item em,.calc-note-item small{padding:2px 5px;border-radius:4px;font-style:normal;font-size:9px;white-space:nowrap}.calc-note-item em.expense{color:#b45309;background:#fffbeb}.calc-note-item em.income{color:#047857;background:#ecfdf5}.calc-note-item b{color:#18181b;font-variant-numeric:tabular-nums}.calc-note-item small{color:#71717a;background:#f4f4f5}.calc-note-item .calc-note-item-note{grid-column:1 / -1;overflow:hidden;color:#71717a;background:#fff;text-overflow:ellipsis}.ledger-edit-dialog{width:min(980px,calc(100vw - 32px))}.ledger-edit-dialog .entry-panel{margin:20px -22px 0;border:0;border-radius:0;box-shadow:none}.ledger-edit-dialog .entry-form-plain{background:transparent}.ledger-edit-dialog .form-section:first-of-type h4{padding-top:0;border-top:0}.ledger-edit-dialog .dialog-footer{margin-left:-22px;margin-right:-22px;padding-left:22px;padding-right:22px}.expected-grid{padding:0 22px 20px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px 15px}.expectation-summary{margin-bottom:20px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dashboard-summary-grid{margin-bottom:20px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dashboard-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dashboard-module{min-height:230px;padding:20px}.dashboard-module-head{margin-bottom:26px;display:flex;align-items:center;justify-content:space-between}.dashboard-module-icon{width:36px;height:36px;border:1px solid var(--border);border-radius:7px;display:grid;place-items:center;color:#27272a;background:#f4f4f5}.dashboard-module h3{margin-bottom:5px;font-size:15px;font-weight:650}.dashboard-module p{min-height:38px;color:var(--muted-foreground);font-size:11px;line-height:1.7}.dashboard-module-items{margin-top:20px;padding-top:14px;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:6px}.dashboard-module-items span{padding:3px 7px;color:#52525b;background:#f4f4f5;border-radius:4px;font-size:9px}.expected-plan-panel{max-width:980px}.expected-grid-page{grid-template-columns:repeat(4,minmax(0,1fr));padding-top:4px}.expected-item{min-width:0}.expected-item>span{display:block;margin-bottom:6px;color:#52525b;font-size:11px;font-weight:500}.expected-item .input-prefix{margin-top:0}.table-empty{height:96px;color:#a1a1aa;text-align:center}@keyframes ledger-spin{to{transform:rotate(360deg)}}@media(max-width:768px){html,body,#root{height:100%;overflow:hidden}.app-shell{display:block;height:100dvh;overflow:hidden;--mobile-nav-height: clamp(56px, 15vw, 68px);--mobile-nav-font: clamp(7px, 2.15vw, 10px);--mobile-nav-icon: clamp(13px, 4.2vw, 17px)}.sidebar{position:fixed;inset:auto 0 0;z-index:40;width:auto;height:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));padding:0 0 env(safe-area-inset-bottom);color:#52525b;background:#fff;border-top:1px solid var(--border);border-right:0;box-shadow:0 -4px 14px #18181b0f}.sidebar.is-collapsed{width:auto;padding:0 0 env(safe-area-inset-bottom)}.sidebar .brand,.sidebar .side-bottom,.sidebar .sidebar-header,.nav-section-label{display:none}.sidebar nav{width:100%;height:var(--mobile-nav-height);display:grid;grid-template-columns:repeat(var(--mobile-nav-count, 7),minmax(0,1fr));gap:0;overflow:hidden;scrollbar-width:none}.sidebar nav::-webkit-scrollbar{display:none}.nav-section{display:contents}.nav-item[data-view=users]{display:none}.nav-item{width:auto;min-width:0;height:var(--mobile-nav-height);padding:clamp(5px,1.6vw,8px) 2px clamp(4px,1.4vw,7px);flex:1 1 0;border-radius:0;flex-direction:column;justify-content:center;gap:clamp(2px,.9vw,4px);color:#71717a;font-size:var(--mobile-nav-font);line-height:1.05;text-align:center;white-space:normal}.sidebar.is-collapsed .nav-item{width:auto;min-width:0;height:var(--mobile-nav-height);padding:clamp(5px,1.6vw,8px) 2px clamp(4px,1.4vw,7px);flex:1 1 0;flex-direction:column;justify-content:center;gap:clamp(2px,.9vw,4px)}.nav-item svg{width:var(--mobile-nav-icon);height:var(--mobile-nav-icon);flex:0 0 auto}.nav-item span{display:block;width:100%;overflow:hidden;line-height:1.05;overflow-wrap:anywhere}.sidebar.is-collapsed .nav-item span{display:block}.nav-item.active,.nav-item:hover{color:#18181b;background:#f1f1f2;box-shadow:none}.nav-item.active:before{position:absolute;top:0;left:24%;width:52%;height:3px;border-radius:0 0 3px 3px;content:"";background:#18181b}.nav-dirty-dot{position:absolute;top:clamp(7px,2vw,10px);right:calc(50% - clamp(12px,4vw,18px));margin:0}.sidebar.is-collapsed .nav-dirty-dot{top:clamp(7px,2vw,10px);right:calc(50% - clamp(12px,4vw,18px))}.main{height:100dvh;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;padding-bottom:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.topbar{position:sticky;top:0;z-index:20}.overview-empty-wrap{min-height:calc(100vh - 164px)}.overview-empty{padding:24px 18px;grid-template-columns:auto 1fr}.overview-empty .btn{width:100%;grid-column:1 / 3}.toolbar{align-items:stretch;flex-direction:column}.month-picker{width:100%}.month-picker input{min-width:0;flex:1;text-align:center}.save-status{min-width:0;justify-content:flex-start}.expected-grid{padding:0 15px 18px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px}.expectation-summary,.dashboard-summary-grid,.dashboard-module-grid{grid-template-columns:1fr;gap:8px}.dashboard-module{min-height:0}.month-calendar-grid{padding-left:15px;padding-right:15px;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.month-tile{min-height:92px;padding:10px 7px 9px}.month-tile.has-key-events{min-height:102px}.month-tile-topline b{font-size:19px}.month-tile-net{margin-top:11px;font-size:13px;white-space:nowrap}.calc-note{margin-left:15px;margin-right:15px}.annual-year-grid{padding-left:15px;padding-right:15px;grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:360px){.app-shell{--mobile-nav-height: 54px;--mobile-nav-font: 7px;--mobile-nav-icon: 13px}.nav-item span{max-height:2.1em}}@media(prefers-reduced-motion:reduce){.save-status .lucide-loader-circle{animation:none}}.income-page{max-width:none}.income-toolbar{margin-bottom:22px}.income-toolbar h1{font-size:26px}.income-toolbar .page-header-description{color:var(--muted-foreground);font-size:12px}.income-controls{display:flex;align-items:center;gap:8px}.period-switch{min-height:28px;padding:3px;border:0;border-radius:999px;display:inline-flex;align-items:center;gap:1px;background:#f4f4f5;box-shadow:inset 0 0 0 1px #18181b0a}.period-switch button{min-height:22px;padding:3px 9px;border-radius:999px;display:inline-flex;align-items:center;gap:5px;color:#71717a;background:transparent;font-size:10px;font-weight:650}.period-switch button:hover{color:var(--foreground);background:#ffffff94}.period-switch button.active{color:var(--foreground);background:#fff;box-shadow:0 1px 4px #1111131f}.income-year-select{height:38px;padding:0 10px;border:1px solid var(--border);border-radius:6px;color:var(--foreground);background:#fff;font-size:12px}.income-stat-grid{margin-bottom:14px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.income-stat-grid .stat-card{min-height:124px}.income-stat-grid .stat-card:not(.featured) strong{color:#18181b}.income-stat-grid .stat-card.featured strong.positive{color:#fff!important}.income-stat-grid .stat-card.featured .stat-foot.positive,.muted-detail{color:#a1a1aa!important}.income-stat-grid .income-stat-spending{border:0;color:#18181b!important}.income-stat-grid .stat-foot.income-stat-spending{color:var(--muted-foreground)!important}.income-main-grid{margin-bottom:14px;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,1fr);gap:12px}.income-secondary-grid{margin-bottom:14px;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(300px,.88fr);gap:12px}.income-trend-panel,.income-spending-panel,.achievement-panel,.investment-panel,.income-detail-panel{min-width:0;overflow:hidden}.income-chart-wrap{padding:0 18px 18px}.recharts-stage{width:100%;height:260px;font-size:10px}.spending-recharts-stage{height:260px}.overview-chart-legend{margin:0 22px 2px;justify-content:center}.overview-recharts-stage{height:250px;padding:0 12px 16px}.recharts-stage .recharts-cartesian-grid-horizontal line{stroke:#eeeeef}.recharts-stage .recharts-cartesian-axis-line{stroke:#dedee1}.recharts-stage .recharts-cartesian-axis-tick-value{fill:#a1a1aa;font-size:9px;font-family:inherit}.recharts-stage .recharts-tooltip-cursor{stroke:#a1a1aa;stroke-dasharray:3 3}.recharts-tooltip-card{min-width:154px;padding:8px 10px;border:1px solid rgba(222,222,225,.9);border-radius:7px;display:grid;gap:5px;color:#27272a;background:#fffffffa;box-shadow:0 8px 22px #11111321;font-size:10px}.recharts-tooltip-card strong{color:#18181b;font-size:11px;font-weight:650}.recharts-tooltip-card span{display:grid;grid-template-columns:8px 1fr auto;align-items:center;gap:6px;color:#71717a;font-variant-numeric:tabular-nums}.recharts-tooltip-card b{color:#27272a;font-weight:650}.recharts-tooltip-card b.negative{color:#b91c1c}.key-event-tooltip-list{max-width:280px;max-height:150px;margin-top:3px;padding-top:6px;border-top:1px solid #eeeeef;display:grid;gap:5px;overflow-y:auto}.recharts-tooltip-card .key-event-tooltip-list>span{padding-left:7px;border-left:2px solid #b45309;display:grid;grid-template-columns:1fr;align-items:start;gap:2px}.recharts-tooltip-card .key-event-tooltip-list b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recharts-tooltip-card .key-event-tooltip-list small{color:#71717a;line-height:1.4;white-space:normal}.tooltip-dot{width:7px;height:7px;border-radius:2px;display:inline-block}.tooltip-dot.total{background:#4f75a6}.tooltip-dot.net{background:#6f94bd}.tooltip-dot.spending{background:#e0b84a}.tooltip-dot.recurring{background:#5f8fc6}.tooltip-dot.target{background:#dbeafe}.tooltip-dot.growth{background:#bfdbfe}.tooltip-dot.investment{background:#4f75a6}.tooltip-dot.bar{background:#dbeafe}.tooltip-dot.average{background:#a1a1aa}.income-chart-legend{margin:0 0 4px 48px;display:flex;align-items:center;gap:15px;color:var(--muted-foreground);font-size:10px}.income-chart-legend span{display:inline-flex;align-items:center;gap:5px}.legend-swatch{width:18px;height:3px;border-radius:2px;display:inline-block;background:#4f75a6}.legend-swatch.income{background:#4f75a6}.legend-swatch.net{background:#6f94bd}.legend-swatch.target{background:#dbeafe}.legend-swatch.growth{width:9px;height:9px;border-radius:2px;background:#bfdbfe;border:1px solid #bfdbfe}.legend-swatch.investment{width:18px;height:3px;border-radius:2px;background:#4f75a6;border:0}.legend-swatch.average{width:18px;height:3px;border-radius:2px;background:#a1a1aa;border:0}.legend-swatch.investment-bar{width:9px;height:9px;border-radius:2px}.legend-swatch.bar{width:9px;height:9px;border-radius:2px;background:#dbeafe;border:1px solid #bfdbfe}.legend-swatch.recurring-bar{width:9px;height:9px;border-radius:2px;background:#bfdbfe;border:1px solid #93c5fd}.legend-swatch.spending-bar{width:9px;height:9px;border-radius:2px;background:#f7de97;border:1px solid #e0b84a}.legend-swatch.daily-spending{width:9px;height:9px;border-radius:2px;background:#fef3c7;border:1px solid #f7de97}.legend-key-event{width:2px;height:13px;display:inline-block;background:#b45309}.income-chart{width:100%;height:auto;display:block;overflow:visible}.income-dashboard-page .income-stat-grid,.expense-dashboard-page .income-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.income-dashboard-page .income-stat-grid .stat-card.featured .stat-foot{color:#a1a1aa!important}.income-dashboard-main-grid{margin-bottom:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:stretch}.income-dashboard-combined-grid{grid-template-columns:minmax(0,2fr) minmax(320px,1fr)}.income-dashboard-combined-grid .income-dashboard-main-panel,.income-dashboard-combined-grid .income-dashboard-pie-panel{grid-column:span 1}.expense-dashboard-page .income-dashboard-combined-grid{grid-template-columns:minmax(0,2fr) minmax(320px,1fr)}.expense-dashboard-page .income-dashboard-combined-grid .income-dashboard-main-panel,.expense-dashboard-page .income-dashboard-combined-grid .income-dashboard-pie-panel{grid-column:span 1}.income-dashboard-main-panel{grid-column:span 2;min-width:0;overflow:hidden}.income-dashboard-chart-wrap{padding:0 20px 20px}.income-dashboard-legend{margin:0 18px 4px;flex-wrap:wrap;justify-content:center}.income-dashboard-recharts-stage{height:330px;padding:0 0 4px}.income-dashboard-tooltip{min-width:190px}.income-dashboard-pie-panel{grid-column:span 1;min-width:0;overflow:hidden}.income-dashboard-daily-panel,.income-dashboard-recurring-panel,.income-dashboard-category-panel{margin-bottom:20px;min-width:0;overflow:hidden}.recurring-income-stage,.daily-expense-stage{height:280px}.income-pie-layout{padding:0 22px 20px}.income-pie-layout-split{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:18px;align-items:center}.income-pie-stage{height:230px;position:relative;overflow:visible}.income-dashboard-composition-panel .income-pie-layout{padding:0 10px 16px}.income-dashboard-composition-panel .income-pie-stage{height:300px}.income-pie-center{position:absolute;inset:50% auto auto 50%;width:128px;transform:translate(-50%,-50%);display:grid;gap:5px;text-align:center;pointer-events:none}.income-pie-center span{color:#a1a1aa;font-size:10px}.income-pie-center strong{color:#18181b;font-size:17px;line-height:1.2;font-variant-numeric:tabular-nums}.income-pie-list{margin-top:4px;display:grid;gap:9px;max-height:154px;padding-right:6px;overflow-y:auto;scrollbar-gutter:stable}.income-pie-layout-split .income-pie-list{max-height:none;padding-right:0;overflow:visible}.income-pie-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;color:#52525b;font-size:10px;font-variant-numeric:tabular-nums}.income-pie-row span{min-width:0;display:flex;align-items:center;gap:6px}.income-pie-row span i{width:8px;height:8px;border:1px solid rgba(24,24,27,.08);border-radius:50%;flex:0 0 auto}.income-pie-row em{padding:2px 5px;border-radius:4px;color:#a1a1aa;background:#f4f4f5;font-style:normal;font-size:9px;white-space:nowrap}.income-pie-row b{color:#27272a;font-weight:650}.income-pie-row small{color:#71717a}.income-pie-callout-line{fill:none;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}.income-pie-callout-dot{stroke:#fff;stroke-width:1.2}.income-pie-callout-title{fill:#27272a;font-size:10px;font-weight:650}.income-pie-callout-share{fill:#71717a;font-size:9px}.chart-grid-line{stroke:#eeeeef;stroke-width:1}.chart-axis-label,.chart-x-label{fill:#a1a1aa;font-size:9px;font-family:inherit}.chart-bar{fill:#dbeafe;opacity:.95}.chart-bar.negative{fill:#fee2e2}.chart-line{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.chart-line.total{stroke:#4f75a6}.chart-line.net{stroke:#6f94bd;stroke-dasharray:5 4}.chart-dot.total{fill:#fff;stroke:#4f75a6;stroke-width:2}.chart-dot.net{fill:#6f94bd;stroke:#fff;stroke-width:1.5}.chart-hit-area{cursor:crosshair}.chart-hover-tooltip{opacity:0;transition:opacity .1s ease}.chart-hit-area:hover .chart-hover-tooltip{opacity:1}.chart-hover-tooltip rect{fill:#18181b;opacity:.96}.chart-hover-tooltip text{fill:#fff;font-size:9px;font-family:inherit}.chart-note{margin:-1px 0 0 48px;color:#a1a1aa;font-size:10px}.spending-chart{min-height:260px;padding:14px 17px 18px;display:grid;grid-template-columns:repeat(12,minmax(16px,1fr));align-items:end;gap:6px;border-bottom:1px solid var(--border);background-image:linear-gradient(to bottom,transparent 49px,#f4f4f5 50px);background-size:100% 50px}.spending-mini-legend{padding:0 17px;display:flex;gap:14px;color:#a1a1aa;font-size:10px}.spending-mini-legend span{display:inline-flex;align-items:center;gap:5px}.spending-legend-bar{width:8px;height:8px;border-radius:2px;background:#e0b84a}.spending-legend-line{width:17px;height:2px;border-radius:2px;background:#e0b84a}.spending-chart{position:relative}.spending-col{position:relative;z-index:1;cursor:crosshair}.spending-line-chart{position:absolute;top:14px;right:17px;bottom:18px;left:17px;width:calc(100% - 34px);height:calc(100% - 32px);overflow:visible;pointer-events:none}.spending-line-chart polyline{fill:none;stroke:#e0b84a;stroke-width:1.5;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3 2}.spending-line-chart circle{fill:#e0b84a;stroke:#fff;stroke-width:.8;vector-effect:non-scaling-stroke}.spending-col-tooltip{position:absolute;z-index:3;bottom:calc(100% + 8px);left:50%;min-width:132px;padding:8px 10px;transform:translate(-50%);border-radius:5px;color:#fff;background:#18181bf5;box-shadow:0 4px 12px #11111329;display:none;flex-direction:column;gap:2px;pointer-events:none;font-size:9px;white-space:nowrap}.spending-col-tooltip:after{content:"";position:absolute;left:50%;bottom:-4px;width:8px;height:8px;transform:translate(-50%) rotate(45deg);background:#18181bf5}.spending-col:hover .spending-col-tooltip{display:flex}.spending-col-tooltip strong{margin-bottom:2px;color:#fff;font-size:10px}.spending-col-tooltip span{color:#d4d4d8;font-variant-numeric:tabular-nums}.spending-col{min-width:0;height:224px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px}.spending-bar-track{width:100%;max-width:22px;height:178px;display:flex;align-items:flex-end;border-radius:4px 4px 0 0;overflow:hidden;background:transparent}.spending-bar-track i{width:100%;min-height:3px;display:block;border-radius:4px 4px 0 0;background:#e0b84a}.spending-col span{color:#a1a1aa;font-size:9px}.spending-col b{color:#71717a;font-size:9px;font-variant-numeric:tabular-nums}.spending-summary{padding:15px 22px 17px;display:flex;justify-content:space-between;gap:12px;color:var(--muted-foreground);font-size:11px}.spending-summary b{margin-left:4px;color:#18181b;font-variant-numeric:tabular-nums}.spending-summary .achievement-good{color:#4f75a6}.achievement-content{padding:0 22px 21px}.achievement-row{padding:13px 0 12px;border-bottom:1px solid #f0f0f1}.achievement-row:last-of-type{border-bottom:0}.achievement-topline,.achievement-foot{display:flex;justify-content:space-between;align-items:center;gap:10px}.achievement-topline{color:#3f3f46;font-size:12px}.achievement-topline strong{color:#52525b;font-size:15px;font-variant-numeric:tabular-nums}.achievement-good{color:#4f75a6!important}.achievement-track{height:7px;margin:10px 0 7px;border-radius:4px;overflow:hidden;background:#f1f1f2}.achievement-track i{height:100%;display:block;border-radius:inherit}.achievement-track.blue i{background:#4f75a6}.achievement-track.orange i{background:#e0b84a}.achievement-foot{color:#a1a1aa;font-size:10px;font-variant-numeric:tabular-nums}.achievement-callout{margin-top:12px;padding:11px 12px;border:1px solid #dbeafe;border-radius:6px;display:flex;align-items:center;gap:8px;color:#1d4ed8;background:#eff6ff;font-size:11px}.investment-total{margin:0 22px 18px;padding:13px 14px;border-left:3px solid #4f75a6;background:#eff6ff}.investment-total span,.investment-total small{display:flex;align-items:center;gap:6px;color:#64748b;font-size:10px}.investment-total strong{display:block;margin:7px 0 2px;color:#4f75a6;font-size:22px;font-variant-numeric:tabular-nums}.investment-total small{color:#94a3b8}.investment-list{padding:0 22px 18px}.investment-row{margin:11px 0}.investment-row-top{display:flex;justify-content:space-between;align-items:center;gap:10px;color:#52525b;font-size:11px}.investment-row-top span{display:inline-flex;align-items:center;gap:7px}.investment-row-top span i{width:7px;height:7px;border-radius:50%;display:inline-block}.investment-row-top b{color:#3f3f46;font-size:10px;font-variant-numeric:tabular-nums}.investment-track{height:5px;margin-top:6px;border-radius:3px;overflow:hidden;background:#f1f1f2}.investment-track i{height:100%;min-width:3px;display:block;border-radius:inherit}.income-detail-panel{margin-bottom:20px}.income-detail-table{padding:0 22px 8px}.income-detail-row{min-height:44px;padding:10px 0;border-bottom:1px solid #f0f0f1;display:grid;grid-template-columns:1.1fr 1.3fr 1.2fr 1.3fr 1.7fr;align-items:center;gap:12px;color:#52525b;font-size:11px;font-variant-numeric:tabular-nums}.income-detail-row:last-child{border-bottom:0}.income-detail-row strong{color:#27272a;font-size:12px}.income-detail-head{min-height:32px;padding-top:0;color:#a1a1aa;font-size:10px}.status-pills{display:flex;flex-wrap:wrap;gap:5px}.status-pills em{padding:3px 6px;border-radius:4px;font-style:normal;font-size:9px}.status-pills .done{color:#4f75a6;background:#eff6ff}.status-pills .pending{color:#a16207;background:#fefce8}.income-no-data{min-height:120px;display:flex;align-items:center;justify-content:center;gap:8px;color:#a1a1aa;font-size:11px}@media(max-width:1100px){.income-stat-grid,.income-dashboard-page .income-stat-grid,.expense-dashboard-page .income-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.income-main-grid,.income-secondary-grid,.income-dashboard-main-grid{grid-template-columns:1fr}.overview-primary-stats,.overview-structure-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-trend-pair-grid,.overview-investment-layout{grid-template-columns:1fr}.overview-mini-wide{grid-column:auto}}@media(max-width:620px){.asset-structure-content{padding-left:14px;padding-right:14px;grid-template-columns:minmax(118px,.9fr) minmax(0,1.1fr);gap:8px}.asset-pie-wrap{height:180px}.asset-pie-center{width:88px}.asset-pie-center strong{font-size:11px}.asset-pie-legend{gap:7px}.asset-pie-row{gap:6px;font-size:10px}.asset-pie-row b{gap:5px;font-size:9px}.overview-toolbar{align-items:flex-start;flex-direction:column}.overview-toolbar .income-controls{width:100%;justify-content:space-between}.overview-mini-head{padding-left:14px;padding-right:14px}.overview-mini-card .overview-mini-stage{height:230px;padding-left:14px;padding-right:14px}.overview-investment-layout{padding-left:14px;padding-right:14px}.overview-investment-stage{height:230px}.income-toolbar{align-items:flex-start;flex-direction:column}.income-controls{width:100%;justify-content:space-between}.period-switch{flex:1}.period-switch button{flex:1;justify-content:center}.income-year-select{flex:0 0 112px}.income-stat-grid{grid-template-columns:1fr 1fr;gap:8px}.income-dashboard-page .income-stat-grid,.expense-dashboard-page .income-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.income-stat-grid .stat-card{min-height:112px;padding:14px 12px}.income-stat-grid .stat-card strong{font-size:16px}.income-dashboard-page .income-stat-grid .stat-card,.expense-dashboard-page .income-stat-grid .stat-card{min-height:96px;padding:12px 8px}.income-dashboard-page .income-stat-grid .stat-card strong,.expense-dashboard-page .income-stat-grid .stat-card strong{font-size:14px}.income-dashboard-page .income-stat-grid .stat-foot,.expense-dashboard-page .income-stat-grid .stat-foot{font-size:9px}.income-chart-wrap{padding-left:8px;padding-right:8px}.income-dashboard-page .income-dashboard-chart-wrap,.expense-dashboard-page .income-dashboard-chart-wrap{padding-left:14px;padding-right:14px}.income-chart-legend,.chart-note{margin-left:42px}.income-pie-layout-split{padding-left:14px;padding-right:14px;grid-template-columns:minmax(200px,250px) minmax(0,1fr);gap:14px}.income-pie-callout-title{font-size:9px}.income-pie-callout-share{font-size:8px}.spending-chart{padding-left:9px;padding-right:9px;gap:3px}.income-detail-table{padding-left:14px;padding-right:14px;overflow-x:auto}.income-detail-row{min-width:570px}}@media(max-width:430px){.income-pie-layout-split{grid-template-columns:1fr}.income-pie-stage{height:220px}.income-dashboard-composition-panel .income-pie-stage{height:260px}.asset-structure-content{grid-template-columns:minmax(104px,.85fr) minmax(0,1.15fr)}.asset-pie-wrap{height:160px}.asset-pie-center{width:76px}.asset-pie-center span,.asset-pie-row small{font-size:8px}.asset-pie-center strong{font-size:10px}.overview-primary-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-primary-stats .stat-card{min-height:104px;padding:13px 11px}.overview-primary-stats .stat-card strong{font-size:16px}.overview-primary-stats .stat-foot{font-size:10px}.overview-structure-stats{grid-template-columns:1fr}.month-calendar-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.month-tile{min-height:82px;padding-left:6px;padding-right:6px}.month-tile-topline span{font-size:9px}.month-tile-net{font-size:12px}}.expected-page{max-width:1320px}.expected-hero{margin-bottom:22px;padding:2px 0 4px}.expected-hero h1{font-size:26px;letter-spacing:0}.expected-hero .page-header-description{max-width:620px;color:var(--muted-foreground);font-size:12px}.expected-actions,.expected-quick-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.expected-dirty{display:inline-flex;align-items:center;gap:6px;color:#9a6700;font-size:11px;white-space:nowrap}.expected-dirty i{width:7px;height:7px;border-radius:50%;background:#d99b1d}.expected-kpi-grid{margin-bottom:20px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.expected-kpi{min-height:126px;padding:18px 18px 16px;border:1px solid var(--border);border-radius:8px;background:#fff;box-shadow:var(--shadow-sm)}.expected-kpi span{display:flex;align-items:center;gap:6px;color:#606066;font-size:11px;font-weight:650}.expected-kpi strong{display:block;margin-top:14px;color:#18181b;font-size:24px;line-height:1;font-variant-numeric:tabular-nums}.expected-kpi small{display:block;margin-top:9px;color:#909096;font-size:10px}.expected-kpi-income{border-top:3px solid #4f75a6}.expected-kpi-income svg{color:#4f75a6}.expected-kpi-spending{border-top:3px solid #e0b84a}.expected-kpi-spending svg{color:#e0b84a}.expected-editor{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff;box-shadow:var(--shadow-sm)}.expected-editor-head{padding:20px 22px 17px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px;border-bottom:1px solid var(--border)}.expected-editor-head h3{margin-top:5px;font-size:17px;font-weight:700}.expected-editor-head p{margin-top:5px;color:var(--muted-foreground);font-size:11px}.expected-quick-actions button{min-height:30px;padding:5px 9px;border:1px solid var(--border);border-radius:5px;display:inline-flex;align-items:center;gap:5px;color:#52525b;background:#fafafa;font-size:10px;font-weight:600}.expected-quick-actions button:hover{color:#18181b;border-color:#a1a1aa;background:#f4f4f5}.expected-table{overflow-x:auto}.expected-table-row{min-width:940px;padding:10px 22px;display:grid;grid-template-columns:92px minmax(150px,1fr) minmax(150px,1fr) 150px minmax(190px,1.25fr);align-items:center;gap:18px;border-bottom:1px solid #eeeeef}.expected-table-row:last-child{border-bottom:0}.expected-table-header{min-height:38px;padding-top:8px;padding-bottom:8px;color:#8a8a91;background:#fafafa;font-size:10px;font-weight:650}.expected-month-cell{display:flex;align-items:baseline;gap:8px}.expected-month-cell strong{font-size:13px}.expected-month-cell small{color:#a1a1aa;font-size:10px;font-variant-numeric:tabular-nums}.expected-input-cell{min-width:0}.expected-input-cell .input-prefix{height:34px;margin:0;border-color:#d4d4d8;background:#fff}.expected-input-cell .input-prefix:focus-within{border-color:#52525b;box-shadow:0 0 0 2px #52525b1a}.expected-input-cell .input-prefix b{color:#a1a1aa;font-size:11px;font-weight:500}.expected-input-cell input{font-size:13px;font-variant-numeric:tabular-nums}.expected-bar{height:3px;margin-top:7px;display:block;border-radius:2px;transition:width .16s ease}.expected-bar.income{background:#4f75a6}.expected-bar.spending{background:#e0b84a}.expected-note-cell input{width:100%;height:34px;padding:7px 10px;border:1px solid #d4d4d8;border-radius:5px;color:#3f3f46;background:#fff;font-size:11px}.expected-note-cell input::placeholder{color:#b4b4ba}.expected-note-cell input:focus{border-color:#52525b}@media(max-width:900px){.expected-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.expected-hero{align-items:flex-start;flex-direction:column}.expected-actions{width:100%;justify-content:flex-end}}@media(max-width:560px){.expected-hero h1{font-size:22px}.expected-kpi-grid{grid-template-columns:1fr;gap:8px}.expected-kpi{min-height:108px}.expected-kpi strong{margin-top:11px;font-size:21px}.expected-editor-head{padding:17px 15px 14px;align-items:flex-start;flex-direction:column}.expected-quick-actions{width:100%}.expected-quick-actions button{flex:1;justify-content:center}.expected-table-row{min-width:0;padding:14px 15px;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.expected-table-header{display:none}.expected-month-cell,.expected-note-cell{grid-column:1 / -1}.expected-input-cell:before{content:"净收益目标";display:block;margin-bottom:5px;color:#8a8a91;font-size:10px;font-weight:650}.expected-input-cell:nth-child(3):before{content:"消费预算"}.expected-note-cell:before{content:"月度备注";display:block;margin-bottom:5px;color:#8a8a91;font-size:10px;font-weight:650}}.topbar-account{padding:6px 8px 6px 10px;border:1px solid transparent;border-radius:7px;color:inherit;background:transparent;transition:background-color .12s ease,border-color .12s ease}.topbar-account:hover,.topbar-account.active{background:#f4f4f5;border-color:#e4e4e7}.settings-page,.profile-page{max-width:1240px;margin:0 auto}.settings-intro{min-height:112px;margin-bottom:16px;padding:2px 2px 18px;border-bottom:1px solid var(--border)}.settings-kicker,.profile-kicker{margin-bottom:6px;display:block;color:#71717a;font-size:10px;font-weight:650}.settings-intro h1{font-size:20px;line-height:1.35;font-weight:650}.settings-intro .page-header-description{margin-top:6px;color:var(--muted-foreground);font-size:11px}.settings-workspace{min-height:520px;overflow:hidden;border:1px solid var(--border);border-radius:8px;display:grid;grid-template-columns:224px minmax(0,1fr);background:#fff;box-shadow:var(--shadow-sm)}.settings-switcher{padding:14px 10px;border-right:1px solid var(--border);background:#f7f7f8;display:flex;flex-direction:column;gap:5px}.settings-switcher button{width:100%;min-height:58px;padding:9px 10px;position:relative;border:1px solid transparent;border-radius:6px;display:flex;align-items:center;gap:10px;color:#52525b;background:transparent;text-align:left}.settings-switcher button:hover{color:#18181b;background:#eeeeef}.settings-switcher button.active{color:#18181b;background:#fff;border-color:#d4d4d8;box-shadow:0 1px 3px #18181b0d}.settings-switcher button>i{width:6px;height:6px;margin-left:auto;border-radius:50%;background:#e0b84a}.settings-switcher-icon{width:32px;height:32px;border:1px solid #dedee1;border-radius:6px;display:grid;place-items:center;color:#52525b;background:#fff}.settings-switcher button.active .settings-switcher-icon{color:#fff;background:#27272a;border-color:#27272a}.settings-switcher-copy{min-width:0;flex:1}.settings-switcher-copy strong,.settings-switcher-copy small{display:block}.settings-switcher-copy strong{font-size:12px;font-weight:650}.settings-switcher-copy small{margin-top:3px;color:#8a8a91;font-size:9px}.settings-editor,.config-editor-panel{min-width:0}.settings-expected-panel{min-width:0;padding:20px 22px 22px}.settings-expected-panel .expected-editor{min-height:518px}.settings-expected-panel .expected-table{flex:1}.config-editor-panel{min-height:518px;display:flex;flex-direction:column}.config-editor-head{min-height:88px;padding:19px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px}.config-editor-title{min-width:0;display:flex;align-items:center;gap:11px}.config-editor-title>span{width:38px;height:38px;border:1px solid var(--border);border-radius:7px;display:grid;place-items:center;color:#27272a;background:#f4f4f5}.config-editor-title h3{font-size:15px;font-weight:650}.config-editor-title p{margin-top:3px;color:var(--muted-foreground);font-size:10px}.config-limit{min-width:50px;min-height:28px;padding:5px 9px;border:1px solid var(--border);border-radius:5px;color:#71717a;background:#fafafa;text-align:center;font-size:10px;font-variant-numeric:tabular-nums}.config-column-labels,.config-item{display:grid;grid-template-columns:48px minmax(160px,1fr) 124px 116px;gap:12px;align-items:center}.config-column-labels{min-height:38px;padding:0 22px;color:#8a8a91;background:#fafafa;border-bottom:1px solid #eeeeef;font-size:9px;font-weight:600}.config-column-labels span:last-child{text-align:right}.config-column-labels span:nth-child(3){text-align:center}.config-item-list{flex:1}.config-item{min-height:66px;padding:0 22px;border-bottom:1px solid #eeeeef}.config-item:hover{background:#fcfcfc}.config-order{color:#8a8a91;text-align:center;font-size:10px;font-variant-numeric:tabular-nums}.config-order svg{margin:0 auto}.config-name-wrap{min-width:0;position:relative}.config-name-wrap input{width:100%;height:38px;padding:8px 10px;color:#18181b;background:#fff;border:1px solid #d4d4d8;border-radius:6px;font-size:12px;transition:border-color .12s ease,box-shadow .12s ease}.config-name-wrap input:hover:not(:disabled){border-color:#a1a1aa}.config-name-wrap input:focus{border-color:#52525b;box-shadow:0 0 0 3px #52525b14}.config-item.has-error .config-name-wrap input{border-color:#dc2626;padding-right:74px}.config-error,.config-name-wrap>small:not(.config-error){position:absolute;top:50%;right:10px;transform:translateY(-50%);color:#991b1b;font-size:9px}.config-name-wrap>small:not(.config-error){color:#8a8a91}.config-item.is-locked{color:#71717a;background:#fafafa}.config-item.is-locked input{color:#71717a;background:#f4f4f5;border-color:#e4e4e7;opacity:1}.config-locked-label{color:#8a8a91;text-align:right;font-size:9px}.config-switch{min-width:0;height:36px;padding:0 10px;border:1px solid #d4d4d8;border-radius:6px;display:inline-flex;align-items:center;justify-content:space-between;gap:10px;color:#52525b;background:#fff;font-size:11px;font-weight:600}.config-switch i{width:30px;height:18px;border-radius:999px;position:relative;display:inline-block;flex:0 0 auto;background:#e4e4e7;transition:background .12s ease,box-shadow .12s ease}.config-switch i:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #1111132e;transition:transform .12s ease}.config-switch.active{color:#18181b;border-color:#18181b;background:#f4f4f5}.config-switch.active i{background:#18181b}.config-switch.active i:after{transform:translate(12px)}.config-switch.is-locked{justify-content:center;color:#8a8a91;border-color:#e4e4e7;background:#f4f4f5}.config-item-actions{display:flex;justify-content:flex-end;gap:4px}.config-item-actions button{width:32px;height:32px;border:1px solid transparent;border-radius:5px;display:grid;place-items:center;color:#71717a;background:transparent}.config-item-actions button:hover:not(:disabled){color:#18181b;background:#f1f1f2;border-color:#e4e4e7}.config-item-actions button.is-destructive:hover:not(:disabled){color:#b91c1c;background:#fef2f2;border-color:#fecaca}.config-item-actions button:disabled{cursor:not-allowed;opacity:.28}.note-category-list{flex:1;padding:18px 22px 24px;display:grid;align-content:start;gap:12px;background:#fcfcfd;overflow:auto}.note-category-panel .config-editor-head{flex-wrap:wrap}.note-category-toolbar{margin-left:auto;display:flex;align-items:center;flex:0 0 auto;gap:12px}.note-category-tabs{width:fit-content;padding:3px;border:0;border-radius:999px;display:inline-flex;gap:1px;background:#f4f4f5;box-shadow:inset 0 0 0 1px #18181b0a}.note-category-tabs button{min-width:0;height:22px;padding:0 9px;border:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:5px;color:#71717a;background:transparent;font-size:10px;font-weight:600;cursor:pointer}.note-category-tabs button small{min-width:16px;height:16px;padding:0 4px;border-radius:999px;display:inline-grid;place-items:center;color:#71717a;background:#fff;font-size:9px;font-weight:700}.note-category-tabs button.is-active{color:#18181b;background:#fff;box-shadow:0 1px 4px #1111131f}.note-category-tabs button.is-active small{color:#18181b;background:#e4e4e7}.note-category-toolbar-action{width:fit-content}.note-category-card{overflow:hidden;border:1px solid #e4e4e7;border-radius:8px;background:#fff;box-shadow:0 1px 2px #18181b08}.note-category-card-head{min-height:54px;padding:8px 14px;border-bottom:1px solid #eeeeef;display:grid;grid-template-columns:36px minmax(160px,1fr) max-content 102px;align-items:center;gap:8px;background:#fff}.note-category-card-head-spacer{width:100%;min-height:1px}.note-category-card.has-error>.note-category-card-head .config-name-wrap input,.note-category-item.has-error .config-name-wrap input{border-color:#dc2626;padding-right:74px}.note-category-items{padding:0;display:grid;gap:0;background:#fff}.note-category-flags{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.note-category-flag{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 8px;border:1px solid #e4e4e7;border-radius:999px;color:#52525b;background:#fafafa;font-size:11px;white-space:nowrap}.note-category-flag input{accent-color:#18181b}.note-category-item{min-height:46px;padding:8px 14px;display:grid;grid-template-columns:36px minmax(160px,1fr) max-content 102px;align-items:center;gap:8px}.note-category-item+.note-category-item{border-top:1px solid #eeeeef}.note-category-item-spacer{width:100%;min-height:1px}.note-category-item-flags{display:flex;align-items:center;justify-content:flex-start;gap:6px;flex-wrap:nowrap;white-space:nowrap}.note-category-card-head .config-name-wrap input,.note-category-item .config-name-wrap input{height:34px;padding-top:6px;padding-bottom:6px}.note-category-card-head .config-item-actions button,.note-category-item .config-item-actions button{width:30px;height:30px}.note-category-card-head .config-order{font-size:9px}.note-category-add-item{width:fit-content;height:32px;padding:0 10px;color:#52525b}.config-action-bar{min-height:70px;margin-top:auto;padding:14px 22px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fafafa}.config-action-bar>div:last-child{display:flex;align-items:center;gap:6px}.config-status{display:flex;align-items:center;gap:7px;color:#71717a;font-size:10px}.config-status:before{content:"";width:7px;height:7px;border-radius:50%;background:#4f75a6;box-shadow:0 0 0 3px #dbeafe}.config-status.is-dirty{color:#92400e}.config-status.is-dirty:before{background:#e0b84a;box-shadow:0 0 0 3px #fef3c7}.config-status.is-error{color:#991b1b}.config-status.is-error:before{background:#d97474;box-shadow:0 0 0 3px #fee2e2}.spin{animation:ledger-spin .8s linear infinite}.profile-identity{position:relative;min-height:132px;margin-bottom:16px;padding:26px 28px;border:1px solid #27272a;border-radius:14px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;color:#fff;background:radial-gradient(circle at top right,rgba(82,82,91,.45),transparent 30%),linear-gradient(135deg,#18181b,#27272a);box-shadow:0 18px 44px #18181b38}.profile-logout{width:34px;height:34px;border:1px solid rgba(244,244,245,.14);border-radius:999px;display:grid;place-items:center;color:#f4f4f5;background:#f4f4f514;transition:color .16s ease,background .16s ease,border-color .16s ease,transform .16s ease}.profile-logout:hover{border-color:#f8717161;color:#fecaca;background:#7f1d1d61;transform:translateY(-1px)}.profile-avatar{width:64px;height:64px;border-color:#f4f4f53d;background:#f4f4f51f;font-size:22px}.profile-heading{min-width:0;flex:1}.profile-heading .profile-kicker{color:#a1a1aa}.profile-heading h2{overflow-wrap:anywhere;font-size:24px;font-weight:650}.profile-heading p{margin-top:3px;color:#a1a1aa;font-size:12px}.profile-actions{display:flex;align-items:center;gap:10px}.profile-role{min-height:30px;padding:6px 10px;border:1px solid rgba(244,244,245,.14);border-radius:999px;display:inline-flex;align-items:center;gap:6px;color:#e4e4e7;background:#f4f4f514;font-size:10px;font-weight:600}.profile-password-trigger{border-color:#f4f4f529;color:#18181b;background:#fff;box-shadow:0 10px 24px #0000002e}.profile-password-trigger:hover{background:#f4f4f5}.profile-password-dialog{width:min(520px,calc(100vw - 32px))}.profile-password-dialog label>span{margin-bottom:6px;display:block;color:#52525b;font-size:10px;font-weight:600}.profile-user-management{margin-top:16px}.user-table-summary{padding:12px 16px 16px;border-top:1px solid var(--border);color:var(--muted-foreground);text-align:center;font-size:11px}.profile-grid{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(440px,1.22fr);gap:12px;align-items:start}.profile-section{overflow:hidden;border:1px solid var(--border);border-radius:8px;background:#fff;box-shadow:var(--shadow-sm)}.profile-section>header{min-height:76px;padding:17px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.profile-section>header>span{width:34px;height:34px;border:1px solid var(--border);border-radius:6px;display:grid;place-items:center;color:#3f3f46;background:#f4f4f5}.profile-section h3{font-size:13px;font-weight:650}.profile-section header p{margin-top:3px;color:var(--muted-foreground);font-size:10px}.profile-details{margin:0;padding:4px 20px 14px}.profile-details>div{min-height:52px;border-bottom:1px solid #eeeeef;display:flex;align-items:center;justify-content:space-between;gap:16px}.profile-details>div:last-child{border-bottom:0}.profile-details dt{color:#71717a;font-size:10px}.profile-details dd{margin:0;overflow-wrap:anywhere;text-align:right;font-size:11px;font-weight:600}.password-section form{padding:20px}.password-section label>span{margin-bottom:6px;display:block;color:#52525b;font-size:10px;font-weight:600}.profile-password-grid{margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.password-form-foot{margin-top:18px;padding-top:16px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.password-visibility{padding:5px 0;display:inline-flex;align-items:center;gap:6px;color:#71717a;background:transparent;font-size:10px}.password-visibility:hover{color:#18181b}@media(max-width:920px){.settings-workspace{grid-template-columns:1fr}.settings-switcher{padding:8px;border-right:0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.settings-switcher button{min-height:54px}.profile-grid{grid-template-columns:1fr}}@media(max-width:720px){.topbar-account-copy{display:none}.topbar-account{padding:5px}.settings-intro{min-height:0;padding-top:4px;align-items:flex-start}.config-editor-head,.config-column-labels,.config-action-bar,.config-item{padding-left:14px;padding-right:14px}.config-column-labels,.config-item{grid-template-columns:34px minmax(120px,1fr) 108px 108px;gap:6px}.note-category-list{padding:14px}.note-category-toolbar-action{width:fit-content}.note-category-card-head{min-height:50px;grid-template-columns:28px minmax(120px,1fr) max-content 96px;gap:6px}.note-category-items{padding:0}.note-category-item{min-height:42px;grid-template-columns:28px minmax(120px,1fr) max-content 96px;gap:6px}.config-action-bar{align-items:flex-start;flex-direction:column}.config-action-bar>div:last-child{width:100%}.config-action-bar .btn{flex:1}.profile-identity{min-height:116px;padding:20px}}@media(max-width:520px){.settings-switcher-copy small,.config-column-labels,.config-status span{display:none}.settings-switcher button{justify-content:center}.settings-switcher-copy{flex:0 1 auto}.settings-switcher button>i{position:absolute;top:7px;right:7px}.config-item{grid-template-columns:24px minmax(100px,1fr) 102px 100px}.note-category-card-head,.note-category-item{grid-template-columns:1fr}.note-category-card-head .config-order{display:none}.note-category-toolbar{width:100%;margin-left:0;justify-content:space-between}.note-category-tabs{width:100%}.note-category-tabs button{flex:1;min-width:0}.note-category-items{padding:0}.config-item{padding-left:8px;padding-right:8px}.config-editor-head{padding-left:12px;padding-right:12px}.config-item-actions{gap:1px}.config-item-actions button{width:31px}.config-switch{height:32px;padding:0 8px;font-size:10px}.profile-identity{display:grid;grid-template-columns:52px minmax(0,1fr) 36px;align-items:center;gap:12px}.profile-avatar{width:52px;height:52px;font-size:19px}.profile-heading h2{font-size:18px}.profile-actions{width:100%;margin:2px 0 0;grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(118px,1fr);justify-content:space-between;gap:8px}.profile-role{width:100%;min-height:34px;margin:0;grid-column:auto;justify-content:center}.profile-password-trigger{width:100%;min-height:34px;justify-content:center}.profile-logout{width:34px;height:34px;grid-column:3;grid-row:1;align-self:center;justify-self:end}.profile-password-grid{grid-template-columns:1fr}.profile-user-management .panel-head{align-items:center}.profile-user-management .panel-head .btn{min-height:32px;padding:0 10px;justify-content:center}}@media(prefers-reduced-motion:reduce){.spin{animation:none}}.settings-page,.profile-page,.expected-page{max-width:none;margin-right:0;margin-left:0}.expected-table-row{min-width:0;grid-template-columns:150px minmax(180px,.9fr) minmax(180px,.9fr) minmax(220px,1.2fr)}@media(max-width:560px){.expected-table-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.page-layout{width:100%;min-width:0}.page-header{min-width:0;margin-bottom:22px;padding:2px 0 4px;display:grid;gap:8px}.page-header-top{min-width:0;display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.page-header-copy{min-width:0}.page-header h1{margin:0;color:var(--foreground);font-size:26px;line-height:1.25;font-weight:650}.page-header-description{max-width:680px;color:var(--muted-foreground);font-size:12px}.ledger-page-header h1,.analytics-one-page>.page-header h1{margin:0}.ledger-page,.settings-page,.profile-page{max-width:none;margin-right:0;margin-left:0;padding:24px clamp(20px,2vw,40px) 36px}.page-header-actions{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.page-header-controls{gap:8px}.page-header-controls .period-switch{min-height:36px;padding:3px;border:1px solid var(--border);border-radius:7px;background:#f0f0f1;box-shadow:none}.page-header-controls .period-switch button{min-height:28px;padding:5px 11px;border-radius:5px;color:#71717a;font-size:11px}.page-header-controls .period-switch button:hover{color:var(--foreground);background:#ffffffa8}.page-header-controls .period-switch button.active{color:#2f3033;background:var(--card);box-shadow:0 1px 3px #1e1e201a}.page-header-controls .income-year-select{height:36px;border-color:var(--border);color:var(--foreground);background:var(--card)}.overview-empty-wrap{display:block}.overview-empty-wrap .overview-empty{margin:96px auto 0}.ledger-page .recent .panel-head{align-items:center}.ledger-history-actions{margin-left:0}.ledger-history-actions .btn{min-height:32px;padding:6px 10px;font-size:11px}.settings-intro,.expected-hero{min-height:0;padding:2px 0 4px;border-bottom:0}.settings-intro h1,.expected-hero h1,.overview-toolbar h1,.income-toolbar h1{margin:0}@media(max-width:720px){.page-header{gap:0}.page-header-top{align-items:center;flex-direction:row;gap:10px}.page-header-actions{width:auto;flex:0 0 auto;justify-content:flex-end}.page-header-description{display:none}.page-header h1{font-size:22px}.ledger-page,.settings-page,.profile-page{padding:18px 14px 30px}.page-header-controls{width:auto;justify-content:flex-end}.page-header-controls .period-switch{flex:0 0 auto}.page-header-controls .period-switch button{flex:0 0 auto;justify-content:center}.page-header-controls .income-year-select{flex:0 0 92px}.ledger-page .recent .panel-head{align-items:flex-start;flex-direction:column}.ledger-history-actions{width:100%;display:flex;justify-content:flex-start}.ledger-history-actions .save-status{min-height:24px;justify-content:flex-start}}.main{container-type:inline-size}.overview-page,.income-dashboard-page,.overview-empty-wrap{max-width:1540px;margin-right:auto;margin-left:auto}.analytics-header{margin-bottom:16px}.income-dashboard-secondary-grid{margin-bottom:20px;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.85fr);gap:10px;align-items:stretch}.income-dashboard-secondary-grid .income-dashboard-recurring-panel,.income-dashboard-secondary-grid .income-dashboard-daily-panel,.income-dashboard-secondary-grid .income-dashboard-category-panel{margin-bottom:0}.breakdown-ranking{padding:2px 20px 20px;display:grid;gap:2px}.breakdown-ranking-row{min-width:0;min-height:50px;padding:9px 0;border-bottom:1px solid #f0f0f1;display:grid;grid-template-columns:22px minmax(0,1fr) 40px;align-items:center;gap:8px}.breakdown-ranking-row:last-child{border-bottom:0}.breakdown-rank{width:20px;height:20px;border-radius:4px;display:grid;place-items:center;color:#71717a;background:#f4f4f5;font-size:9px;font-variant-numeric:tabular-nums;font-weight:650}.breakdown-ranking-main{min-width:0;display:grid;gap:7px}.breakdown-ranking-head{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px}.breakdown-ranking-head>span{overflow:hidden;color:#3f3f46;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.breakdown-ranking-head small{max-width:84px;padding:1px 5px;overflow:hidden;border-radius:4px;color:#71717a;background:#f4f4f5;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.breakdown-ranking-head strong,.breakdown-ranking-row>b{color:#27272a;font-size:10px;font-variant-numeric:tabular-nums;font-weight:650;white-space:nowrap}.breakdown-ranking-track{height:5px;overflow:hidden;border-radius:3px;background:#f1f1f2}.breakdown-ranking-track i{height:100%;min-width:2px;border-radius:inherit;display:block}.breakdown-ranking-row>b{color:#71717a;text-align:right}.analytics-data-alert{min-height:38px;margin:0 0 10px;padding:9px 12px;border:1px solid #f5c2c2;border-radius:6px;color:#991b1b;background:#fff7f7;font-size:11px}.overview-page .panel:hover,.overview-page .stat-card:hover,.income-dashboard-page .panel:hover,.income-dashboard-page .stat-card:hover{border-color:var(--border);box-shadow:var(--shadow-sm)}@container (min-width: 980px){.income-dashboard-main-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.income-dashboard-main-panel{grid-column:span 2}.overview-trend-pair-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1800px){.overview-page,.income-dashboard-page,.overview-empty-wrap{padding-right:52px;padding-left:52px}}@media(max-width:1100px){.income-dashboard-secondary-grid{grid-template-columns:1fr}}@media(max-width:720px){.analytics-header{margin-bottom:10px}.analytics-filters{width:100%}.breakdown-ranking{padding-right:14px;padding-left:14px}}@media(max-width:620px){.income-dashboard-page .income-stat-grid,.expense-dashboard-page .income-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}@media(max-width:430px){.income-dashboard-page .income-stat-grid,.expense-dashboard-page .income-stat-grid{grid-template-columns:1fr}.breakdown-ranking-head{grid-template-columns:minmax(0,1fr) auto}.breakdown-ranking-head small{display:none}}.asset-change-panel{min-width:0;overflow:hidden}.asset-change-content{padding:0 20px 20px}.asset-change-details{padding-bottom:12px;display:grid;gap:8px}.asset-change-legend-row,.asset-change-formula-row{min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}.asset-change-legend-row{justify-content:center;color:#52525b;font-size:10px;font-variant-numeric:tabular-nums;text-align:center}.asset-change-legend-row span{min-width:0;display:inline-flex;align-items:center;gap:6px}.asset-change-legend-row span{white-space:nowrap}.asset-change-legend-row strong{color:#18181b;font-size:11px;font-weight:700}.asset-change-legend-row i{width:8px;height:8px;border:1px solid rgba(24,24,27,.08);border-radius:50%;flex:0 0 auto}.asset-change-formula-row{justify-content:center}.asset-change-formula-box{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #cfe3f8;border-radius:10px;background:linear-gradient(180deg,#f7fbff,#eef6ff);color:#27496d}.asset-change-formula-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:999px;background:#dbeafe;color:#4f75a6}.asset-change-formula-text{flex:1 1 auto;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:start;column-gap:8px;color:#27496d;font-size:11px;font-weight:600;line-height:1.5;text-align:center}.asset-change-formula-term{min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px}.asset-change-formula-term>span{color:#5d7690;font-size:10px;font-weight:600;white-space:nowrap}.asset-change-formula-operator{padding-top:1px;color:#5d7690;font-size:12px;line-height:1.5}.asset-change-formula-text strong{color:#18181b;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.asset-change-chart{height:230px}.asset-change-chart .recharts-cartesian-grid-horizontal line{stroke:#eef2f7}.asset-change-chart .recharts-cartesian-axis-line{stroke:#d8dce3}.asset-change-chart .recharts-cartesian-axis-tick-value{fill:#73849a;font-size:10px;font-family:inherit}.asset-change-chart .recharts-tooltip-cursor{stroke:#9fb0c2;stroke-dasharray:3 3}.asset-change-tooltip{min-width:170px}.asset-change-rows{display:grid;gap:13px}.asset-change-row{min-width:0;display:grid;gap:6px}.asset-change-row-head{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#52525b;font-size:10px}.asset-change-row-head strong{color:#27272a;font-size:10px;font-variant-numeric:tabular-nums;font-weight:650;white-space:nowrap}.asset-change-track{height:7px;overflow:hidden;border-radius:4px;background:#f1f1f2}.asset-change-track i{height:100%;border-radius:inherit;display:block;background:#f7de97}.asset-change-track i.investment{background:#6f94bd}.asset-change-track i.salary{background:#4f75a6}.asset-change-track i.negative{margin-left:auto;background:#d97474}.asset-change-empty{min-height:244px;padding:20px;text-align:center}@media(max-width:620px){.asset-change-content{padding-right:14px;padding-left:14px}.asset-change-legend-row{justify-content:center;gap:6px 10px}.asset-change-legend-row,.asset-change-formula-row{font-size:9px;line-height:1.45}.asset-change-legend-row strong,.asset-change-formula-text strong{font-size:11px}.asset-change-formula-box{padding:9px 10px}.asset-change-formula-icon{display:none}.asset-change-formula-text{column-gap:4px}.asset-change-chart{height:190px}}.analytics-one-page{width:100%;min-width:0;background:#fafafa}.analytics-one-page .overview-page,.analytics-one-page .income-dashboard-page,.analytics-one-page .overview-empty-wrap{width:100%;max-width:none;margin:0;padding:24px clamp(20px,2vw,40px) 36px}.analytics-scroll-section{min-width:0;scroll-margin-top:12px}.analytics-scroll-section+.analytics-scroll-section{border-top:8px solid #f1f1f2}.analytics-one-page .panel,.analytics-one-page .stat-card{border-color:#e5e5e7;border-radius:8px;background:#fff;box-shadow:none}.analytics-one-page .stat-card,.analytics-one-page .income-stat-grid .stat-card{min-height:108px;padding:16px 18px}.analytics-one-page .stat-card.featured{border-color:#e5e5e7;color:#18181b;background:#fff}.analytics-one-page .stat-card.featured .stat-label,.analytics-one-page .stat-card.featured .stat-foot{color:#71717a}.analytics-one-page .stat-card strong{font-size:24px}.analytics-one-page .panel-head{padding:16px 18px 12px}.analytics-one-page .panel-head h3{font-size:14px}.analytics-one-page .panel-head p{font-size:10px}.analytics-one-page .dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.analytics-one-page .overview-trend-pair-grid,.analytics-one-page .income-dashboard-main-grid,.analytics-one-page .income-dashboard-secondary-grid{gap:10px}.analytics-one-page .overview-mini-card .overview-mini-stage{height:300px}.analytics-one-page .income-dashboard-recharts-stage{height:320px}.analytics-one-page .recurring-income-stage,.analytics-one-page .daily-expense-stage{height:290px}.analytics-one-page .recharts-cartesian-grid-horizontal line{stroke:#eeeeef}.analytics-one-page .recharts-cartesian-axis-line{stroke:#d4d4d8}.analytics-one-page .legend-swatch.bar,.analytics-one-page .tooltip-dot.bar{border-color:#737373;background:#737373}.analytics-one-page .legend-swatch.recurring-bar,.analytics-one-page .tooltip-dot.recurring{border-color:#5f8fc6;background:#5f8fc6}.analytics-one-page .legend-swatch.spending-bar,.analytics-one-page .tooltip-dot.spending{border-color:#e0b84a;background:#e0b84a}.analytics-one-page .legend-swatch.daily-spending{border-color:#918b9b;background:#918b9b}.analytics-one-page{padding:24px clamp(20px,2vw,40px) 36px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.analytics-one-page>.analytics-scroll-section,.analytics-one-page>.analytics-scroll-section>.content,.analytics-one-page .dashboard-grid,.analytics-one-page .overview-trend-pair-grid,.analytics-one-page .income-dashboard-main-grid,.analytics-one-page .income-dashboard-secondary-grid{display:contents}.analytics-one-page>.page-header,.analytics-one-page .overview-primary-stats,.analytics-one-page .income-stat-grid,.analytics-one-page .overview-investment-panel,.analytics-one-page .analytics-data-alert{grid-column:1 / -1;margin-bottom:0}.analytics-one-page>.page-header{order:0}.analytics-one-page .overview-primary-stats{order:10}.analytics-one-page .overview-amount-growth-card,.analytics-one-page .asset-change-panel{order:20}.analytics-one-page .overview-amount-growth-card,.analytics-one-page .asset-change-panel{grid-column:span 2}.analytics-one-page #analytics-income{order:30}.analytics-one-page .overview-net-card,.analytics-one-page .analytics-income-section .income-dashboard-pie-panel,.analytics-one-page .analytics-income-section .income-dashboard-category-panel{order:40}.analytics-one-page .overview-net-card{grid-column:span 2}.analytics-one-page .analytics-income-section .income-dashboard-pie-panel,.analytics-one-page .analytics-income-section .income-dashboard-category-panel{grid-column:span 1}.analytics-one-page .analytics-income-section .income-dashboard-main-panel,.analytics-one-page .analytics-income-section .income-dashboard-recurring-panel{order:50;grid-column:span 2}.analytics-one-page #analytics-expense{order:60}.analytics-one-page .expense-dashboard-page .income-dashboard-main-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-pie-panel{order:70}.analytics-one-page .overview-spending-card{grid-column:span 2}.analytics-one-page .expense-dashboard-page .income-dashboard-main-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-pie-panel{grid-column:span 6}.analytics-one-page .analytics-data-alert{order:85}.analytics-one-page .overview-investment-panel{order:90}@media(max-width:1100px){.analytics-one-page{grid-template-columns:1fr}.analytics-one-page .overview-amount-growth-card,.analytics-one-page .asset-change-panel,.analytics-one-page .overview-net-card,.analytics-one-page .overview-spending-card,.analytics-one-page .income-dashboard-main-panel,.analytics-one-page .income-dashboard-pie-panel,.analytics-one-page .income-dashboard-recurring-panel,.analytics-one-page .income-dashboard-daily-panel,.analytics-one-page .income-dashboard-category-panel{grid-column:1 / -1}}@media(max-width:720px){.analytics-one-page .overview-page,.analytics-one-page .income-dashboard-page,.analytics-one-page .overview-empty-wrap{padding:0}.analytics-one-page{padding:18px 14px 30px}.analytics-one-page .stat-card,.analytics-one-page .income-stat-grid .stat-card{min-height:96px;padding:13px 12px}.analytics-one-page .stat-card strong{font-size:18px}}.analytics-one-page{--analytics-canvas: #f7f7f8;--analytics-surface: #ffffff;--analytics-surface-soft: #fafafa;--analytics-border: #e0e0e3;--analytics-border-strong: #d2d2d6;--analytics-text: #242528;--analytics-muted: #74767c;--analytics-income: #5f8fc6;--analytics-income-soft: #dbeafe;--analytics-income-strong: #4f75a6;--analytics-expense: #e0b84a;--analytics-expense-soft: #fef3c7;--analytics-expense-strong: #d19c20;--analytics-investment: #6f94bd;--analytics-investment-soft: #bfdbfe;--analytics-negative: #d97474;--analytics-negative-soft: #fee2e2;--analytics-primary: var(--analytics-income);--analytics-primary-soft: var(--analytics-income-soft);padding:22px clamp(20px,2.4vw,48px) 48px;column-gap:12px;row-gap:16px;color:var(--analytics-text);background:var(--analytics-canvas)}.analytics-one-page>.page-header{min-height:78px;padding:2px 2px 18px;align-items:flex-end}.analytics-one-page>.page-header h1{color:var(--analytics-text);font-size:27px;font-weight:680}.analytics-one-page>.page-header .page-header-description{margin-top:5px;color:var(--analytics-muted);font-size:12px}.analytics-one-page .analytics-filters{gap:8px}.analytics-one-page .period-switch{min-height:36px;padding:3px;border:1px solid var(--analytics-border);border-radius:7px;background:#f0f0f1;box-shadow:none}.analytics-one-page .period-switch button{min-height:28px;padding:5px 11px;border-radius:5px;color:var(--analytics-muted);font-size:11px}.analytics-one-page .period-switch button:hover{color:var(--analytics-text);background:#ffffffa8}.analytics-one-page .period-switch button.active{color:#2f3033;background:var(--analytics-surface);box-shadow:0 1px 3px #1e1e201a}.analytics-one-page .income-year-select{height:36px;border-color:var(--analytics-border-strong);color:var(--analytics-text);background:var(--analytics-surface)}.analytics-one-page .panel,.analytics-one-page .stat-card{border-color:var(--analytics-border);border-radius:7px;color:var(--analytics-text);background:var(--analytics-surface);box-shadow:0 1px 2px #283f5b0d}.analytics-one-page .panel:hover,.analytics-one-page .stat-card:hover{border-color:var(--analytics-border);box-shadow:0 1px 2px #283f5b0d}.analytics-one-page .overview-primary-stats,.analytics-one-page .income-stat-grid{gap:12px}.analytics-one-page #analytics-income,.analytics-one-page #analytics-expense{margin-top:4px;padding-top:16px;border-top:1px solid var(--analytics-border-strong)}.analytics-one-page .stat-card,.analytics-one-page .income-stat-grid .stat-card{min-height:116px;padding:17px 18px 15px;box-shadow:0 1px 2px #283f5b0d}.analytics-one-page .stat-card.featured{border-color:var(--analytics-border);color:var(--analytics-text);background:var(--analytics-surface)}.analytics-one-page .analytics-income-section .stat-card{box-shadow:0 1px 2px #283f5b0d}.analytics-one-page .analytics-income-section .stat-card.featured{border-color:var(--analytics-border);background:var(--analytics-surface)}.analytics-one-page .analytics-expense-section .stat-card{box-shadow:0 1px 2px #283f5b0d}.analytics-one-page .analytics-expense-section .stat-card.featured{border-color:var(--analytics-border);background:var(--analytics-surface)}.analytics-one-page .overview-primary-stats .stat-card:nth-child(2){box-shadow:0 1px 2px #283f5b0d}.analytics-one-page .overview-primary-stats .stat-card:nth-child(4){box-shadow:0 1px 2px #283f5b0d}.analytics-one-page .stat-label{margin-bottom:10px;color:var(--analytics-muted);font-size:10px;font-weight:650}.analytics-one-page .stat-card.featured .stat-label,.analytics-one-page .stat-card.featured .stat-foot{color:var(--analytics-muted)}.analytics-one-page .stat-card strong{color:var(--analytics-text);font-size:25px;line-height:1.18;font-weight:680}.analytics-one-page .stat-foot{margin-top:9px;color:var(--analytics-muted);font-size:10px}.analytics-one-page .negative{color:var(--analytics-negative)!important}.analytics-one-page .panel-head{min-height:60px;padding:15px 18px 13px 22px;position:relative;border-bottom:0;align-items:center;background:var(--analytics-surface)}.analytics-one-page .panel-head:before{content:"";position:absolute;top:17px;bottom:17px;left:12px;width:3px;border-radius:2px;background:var(--analytics-primary)}.analytics-one-page .analytics-income-section .panel-head:before{background:var(--analytics-income)}.analytics-one-page .analytics-expense-section .panel-head:before{background:var(--analytics-expense)}.analytics-one-page .overview-investment-panel .panel-head:before{background:var(--analytics-investment)}.analytics-one-page .panel-head h3{color:var(--analytics-text);font-size:14px;font-weight:680}.analytics-one-page .panel-head p{margin-top:3px;color:var(--analytics-muted);font-size:10px}.analytics-one-page .badge,.analytics-one-page .tag{border-color:var(--analytics-border);color:var(--analytics-muted);background:#f4f4f5}.analytics-one-page .overview-mini-switch{min-height:30px;background:#f0f0f1}.analytics-one-page .overview-mini-switch button{min-height:22px;padding:3px 8px;font-size:10px}.analytics-one-page .overview-mini-card .overview-mini-stage{height:276px}.analytics-one-page .income-dashboard-recharts-stage{height:282px}.analytics-one-page .recurring-income-stage,.analytics-one-page .daily-expense-stage{height:264px}.analytics-one-page .overview-investment-stage{height:276px}.analytics-one-page .recharts-cartesian-grid-horizontal line{stroke:#e6ebf2}.analytics-one-page .recharts-cartesian-axis-line{stroke:#c9d4e0}.analytics-one-page .recharts-cartesian-axis-tick-value{fill:#8290a2}.analytics-one-page .recharts-tooltip-card{border-color:var(--analytics-border-strong);color:var(--analytics-text);background:#fffffffa;box-shadow:0 10px 28px #233a5721}.analytics-one-page .recharts-tooltip-card strong,.analytics-one-page .recharts-tooltip-card b{color:var(--analytics-text)}.analytics-one-page .legend-swatch.total,.analytics-one-page .tooltip-dot.total{background:var(--analytics-income-strong)}.analytics-one-page .legend-swatch.growth,.analytics-one-page .tooltip-dot.growth{border-color:var(--analytics-income-soft);background:var(--analytics-income-soft)}.analytics-one-page .legend-swatch.bar,.analytics-one-page .tooltip-dot.bar,.analytics-one-page .legend-swatch.recurring-bar,.analytics-one-page .tooltip-dot.recurring{border-color:var(--analytics-income);background:var(--analytics-income)}.analytics-one-page .legend-swatch.spending-bar,.analytics-one-page .tooltip-dot.spending{border-color:var(--analytics-expense);background:var(--analytics-expense)}.analytics-one-page .legend-swatch.daily-spending{border-color:var(--analytics-expense-soft);background:var(--analytics-expense-soft)}.analytics-one-page .income-pie-center span,.analytics-one-page .income-pie-row small{color:var(--analytics-muted)}.analytics-one-page .income-pie-center strong,.analytics-one-page .income-pie-row b{color:var(--analytics-text)}.analytics-one-page .income-pie-callout-title{fill:var(--analytics-text)}.analytics-one-page .income-pie-callout-share{fill:var(--analytics-muted)}.analytics-one-page .income-pie-row em,.analytics-one-page .breakdown-rank,.analytics-one-page .breakdown-ranking-head small{color:var(--analytics-muted);background:#edf1f6}.analytics-one-page .breakdown-ranking{padding:8px 18px 18px}.analytics-one-page .breakdown-ranking-row{border-bottom-color:#e7ecf2}.analytics-one-page .breakdown-ranking-track,.analytics-one-page .asset-change-track,.analytics-one-page .overview-product-track{background:#e8edf3}.analytics-one-page .asset-change-row-head{color:var(--analytics-muted)}.analytics-one-page .asset-change-row-head strong{color:var(--analytics-text)}.analytics-one-page .asset-change-track i{background:var(--analytics-income-soft)}.analytics-one-page .asset-change-track i.investment{background:var(--analytics-income)}.analytics-one-page .asset-change-track i.salary{background:var(--analytics-income-strong)}.analytics-one-page .asset-change-track i.negative{background:var(--analytics-negative)}.analytics-one-page .overview-investment-panel{border-color:#dedee1}.analytics-one-page .overview-investment-panel .panel-head{background:var(--analytics-surface)}.analytics-one-page .overview-product-row-top span,.analytics-one-page .overview-product-row-foot{color:var(--analytics-muted)}.analytics-one-page .overview-product-row-top b{color:var(--analytics-text)}.analytics-one-page .overview-product-track span{background:#6f94bd}.analytics-one-page .income-no-data,.analytics-one-page .overview-investment-empty{color:var(--analytics-muted);background:#fbfcfb}.analytics-one-page .analytics-data-alert{border-color:var(--analytics-negative-soft);color:#9f4f52;background:#fff7f7}@media(max-width:1200px){.analytics-one-page{grid-template-columns:1fr}.analytics-one-page .overview-amount-growth-card,.analytics-one-page .asset-change-panel,.analytics-one-page .overview-net-card,.analytics-one-page .overview-spending-card,.analytics-one-page .income-dashboard-main-panel,.analytics-one-page .income-dashboard-pie-panel,.analytics-one-page .income-dashboard-recurring-panel,.analytics-one-page .income-dashboard-daily-panel,.analytics-one-page .income-dashboard-category-panel,.analytics-one-page .analytics-income-section .income-dashboard-main-panel,.analytics-one-page .analytics-income-section .income-dashboard-pie-panel,.analytics-one-page .analytics-income-section .income-dashboard-recurring-panel,.analytics-one-page .analytics-income-section .income-dashboard-category-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-main-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-pie-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-daily-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-category-panel{grid-column:1 / -1}}@container (max-width: 980px){.analytics-one-page{grid-template-columns:1fr}.analytics-one-page .overview-amount-growth-card,.analytics-one-page .asset-change-panel,.analytics-one-page .overview-net-card,.analytics-one-page .overview-spending-card,.analytics-one-page .analytics-income-section .income-dashboard-main-panel,.analytics-one-page .analytics-income-section .income-dashboard-pie-panel,.analytics-one-page .analytics-income-section .income-dashboard-recurring-panel,.analytics-one-page .analytics-income-section .income-dashboard-category-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-main-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-pie-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-daily-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-category-panel{grid-column:1 / -1}}@container (max-width: 620px){.analytics-one-page .overview-primary-stats,.analytics-one-page .income-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}@media(max-width:720px){.analytics-one-page{padding:16px 14px 30px;row-gap:12px}.analytics-one-page>.page-header{min-height:0;padding-bottom:4px}.analytics-one-page>.page-header h1{font-size:22px}.analytics-one-page #analytics-income,.analytics-one-page #analytics-expense{padding-top:12px}.analytics-one-page .stat-card,.analytics-one-page .income-stat-grid .stat-card{min-height:100px;padding:14px 13px 12px}.analytics-one-page .stat-card strong{font-size:19px}.analytics-one-page .panel-head{min-height:56px;padding:13px 14px 11px 20px}.analytics-one-page .panel-head:before{top:15px;bottom:15px;left:10px}.analytics-one-page .overview-mini-card .overview-mini-stage,.analytics-one-page .income-dashboard-recharts-stage,.analytics-one-page .overview-investment-stage{height:250px}.analytics-one-page .overview-amount-growth-card,.analytics-one-page .asset-change-panel{min-height:0}.analytics-one-page .overview-amount-growth-card .overview-mini-stage{height:250px}.analytics-one-page .asset-change-chart{height:220px}}@media(max-width:620px){.analytics-one-page .overview-primary-stats,.analytics-one-page .income-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.analytics-one-page .stat-card,.analytics-one-page .income-stat-grid .stat-card{min-height:96px;padding:13px 11px 11px}.analytics-one-page .stat-label{margin-bottom:7px;font-size:9px}.analytics-one-page .stat-card strong{font-size:16px}.analytics-one-page .stat-foot{margin-top:7px;font-size:9px}}@media(max-width:380px){.analytics-one-page{padding-right:10px;padding-left:10px}.analytics-one-page .overview-primary-stats,.analytics-one-page .income-stat-grid{gap:6px}.analytics-one-page .stat-card,.analytics-one-page .income-stat-grid .stat-card{padding-right:9px;padding-left:9px}.analytics-one-page .stat-card strong{font-size:15px}}.analytics-one-page{grid-template-columns:repeat(12,minmax(0,1fr))}.analytics-one-page .overview-primary-stats,.analytics-one-page .analytics-income-section .income-stat-grid,.analytics-one-page .analytics-expense-section .income-stat-grid{display:contents}.analytics-one-page .overview-primary-stats .stat-card,.analytics-one-page .analytics-income-section .income-stat-grid .stat-card:nth-child(3),.analytics-one-page .analytics-expense-section .income-stat-grid .stat-card:nth-child(3){grid-column:span 2;order:10;margin-bottom:0}.analytics-one-page .analytics-income-section .income-stat-grid .stat-card:nth-child(-n+2),.analytics-one-page .analytics-expense-section .income-stat-grid .stat-card:nth-child(-n+2){display:none}.analytics-one-page .overview-amount-growth-card,.analytics-one-page .asset-change-panel,.analytics-one-page .overview-net-card,.analytics-one-page .analytics-income-section .income-dashboard-main-panel,.analytics-one-page .analytics-income-section .income-dashboard-recurring-panel,.analytics-one-page .overview-spending-card,.analytics-one-page .expense-dashboard-page .income-dashboard-main-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-pie-panel{grid-column:span 6}.analytics-one-page .analytics-income-section .income-dashboard-pie-panel,.analytics-one-page .analytics-income-section .income-dashboard-category-panel{grid-column:span 3}.analytics-one-page .expense-dashboard-page .income-dashboard-pie-panel{grid-column:span 6}.analytics-one-page .expense-dashboard-page .income-dashboard-category-panel{grid-column:span 3}@media(max-width:1200px){.analytics-one-page{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-one-page .overview-primary-stats .stat-card,.analytics-one-page .analytics-income-section .income-stat-grid .stat-card:nth-child(3),.analytics-one-page .analytics-expense-section .income-stat-grid .stat-card:nth-child(3){grid-column:span 1}.analytics-one-page .overview-amount-growth-card,.analytics-one-page .asset-change-panel,.analytics-one-page .overview-net-card,.analytics-one-page .analytics-income-section .income-dashboard-main-panel,.analytics-one-page .analytics-income-section .income-dashboard-pie-panel,.analytics-one-page .analytics-income-section .income-dashboard-recurring-panel,.analytics-one-page .analytics-income-section .income-dashboard-category-panel,.analytics-one-page .overview-spending-card,.analytics-one-page .expense-dashboard-page .income-dashboard-main-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-pie-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-category-panel{grid-column:1 / -1}}@container (max-width: 980px){.analytics-one-page{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-one-page .overview-primary-stats .stat-card,.analytics-one-page .analytics-income-section .income-stat-grid .stat-card:nth-child(3),.analytics-one-page .analytics-expense-section .income-stat-grid .stat-card:nth-child(3){grid-column:span 1}.analytics-one-page .overview-amount-growth-card,.analytics-one-page .asset-change-panel,.analytics-one-page .overview-net-card,.analytics-one-page .analytics-income-section .income-dashboard-main-panel,.analytics-one-page .analytics-income-section .income-dashboard-pie-panel,.analytics-one-page .analytics-income-section .income-dashboard-recurring-panel,.analytics-one-page .analytics-income-section .income-dashboard-category-panel,.analytics-one-page .overview-spending-card,.analytics-one-page .expense-dashboard-page .income-dashboard-main-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-pie-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-category-panel{grid-column:1 / -1}}@media(max-width:720px){.analytics-one-page{width:100%;max-width:100%;grid-template-columns:repeat(12,minmax(0,1fr));overflow-x:hidden}.analytics-one-page .overview-primary-stats .stat-card,.analytics-one-page .analytics-income-section .income-stat-grid .stat-card:nth-child(3),.analytics-one-page .analytics-expense-section .income-stat-grid .stat-card:nth-child(3){grid-column:span 4;min-width:0}.analytics-one-page .overview-amount-growth-card,.analytics-one-page .asset-change-panel,.analytics-one-page .overview-net-card,.analytics-one-page .analytics-income-section .income-dashboard-main-panel,.analytics-one-page .analytics-income-section .income-dashboard-pie-panel,.analytics-one-page .analytics-income-section .income-dashboard-recurring-panel,.analytics-one-page .analytics-income-section .income-dashboard-category-panel,.analytics-one-page .overview-spending-card,.analytics-one-page .expense-dashboard-page .income-dashboard-main-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-pie-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-category-panel{grid-column:1 / -1}}@container (max-width: 620px){.analytics-one-page{grid-template-columns:repeat(12,minmax(0,1fr))}.analytics-one-page .overview-primary-stats .stat-card,.analytics-one-page .analytics-income-section .income-stat-grid .stat-card:nth-child(3),.analytics-one-page .analytics-expense-section .income-stat-grid .stat-card:nth-child(3){grid-column:span 4;min-width:0}}.overview-asset-analysis-grid{margin-bottom:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch}.overview-asset-analysis-grid>.overview-amount-growth-card,.overview-asset-analysis-grid>.asset-change-panel{min-width:0;margin-bottom:0}.analytics-one-page .overview-asset-analysis-grid{order:20;display:contents;margin-bottom:0}@media(min-width:981px){.analytics-one-page .overview-amount-growth-card .overview-mini-stage{height:340px}.analytics-one-page .asset-change-chart{height:270px}}@media(max-width:900px){.overview-asset-analysis-grid{grid-template-columns:1fr}}.analytics-one-page .analytics-income-section .income-dashboard-composition-panel{order:40;grid-column:span 4}.analytics-one-page .analytics-income-section .income-dashboard-trend-switch-panel{order:40;grid-column:span 8}.analytics-one-page .expense-dashboard-page .income-dashboard-trend-switch-panel{grid-column:span 8}.analytics-one-page .expense-dashboard-page .income-dashboard-composition-panel{grid-column:span 4}@media(max-width:1200px){.analytics-one-page .analytics-income-section .income-dashboard-composition-panel,.analytics-one-page .analytics-income-section .income-dashboard-trend-switch-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-composition-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-trend-switch-panel{grid-column:1 / -1}}@container (max-width: 980px){.analytics-one-page .analytics-income-section .income-dashboard-composition-panel,.analytics-one-page .analytics-income-section .income-dashboard-trend-switch-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-composition-panel,.analytics-one-page .expense-dashboard-page .income-dashboard-trend-switch-panel{grid-column:1 / -1}}.analytics-one-page .overview-trend-pair-grid .overview-spending-card{grid-column:1 / -1}.ledger-main-layout{grid-template-columns:minmax(560px,1.4fr) minmax(460px,1fr)}.ledger-main-layout .calc-panel{min-width:460px}.ledger-detail-totals{padding:0 20px 16px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 24px;color:#71717a;font-size:11px;font-variant-numeric:tabular-nums}.ledger-detail-totals span{display:inline-flex;align-items:baseline;gap:7px;white-space:nowrap}.ledger-detail-totals strong{color:#18181b;font-size:15px;font-weight:700}.ledger-page .page-header-top,.ledger-page .panel-head{align-items:center;flex-direction:row}.ledger-page .page-header-copy,.ledger-page .panel-head>div:first-child{min-width:0}.ledger-page .page-header h1,.ledger-page .panel-head h3{margin-bottom:0;white-space:nowrap}.ledger-page .page-header-actions,.ledger-page .panel-head>:last-child:not(:first-child){margin-left:auto;flex:0 0 auto}.ledger-page .ledger-history-actions{width:auto;justify-content:flex-end;flex-wrap:nowrap}.ledger-page .ledger-note-panel .panel-head .btn{width:auto;min-height:32px}@media(max-width:720px){.ledger-page .ledger-history-actions .btn{display:none}}@media(max-width:380px){.asset-change-formula-box{padding-right:6px;padding-left:6px}.asset-change-formula-text{column-gap:2px}.asset-change-formula-text strong,.asset-change-formula-term>span{font-size:9px}.ledger-page .panel-head{gap:8px}}@media(max-width:1100px){.ledger-main-layout{grid-template-columns:1fr}.ledger-main-layout .calc-panel{min-width:0}}@media(max-width:920px){.settings-switcher{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}}@media(max-width:720px){.settings-workspace{min-height:0;border-radius:7px}.settings-switcher{padding:7px;gap:4px}.settings-switcher button{min-width:0;min-height:64px;padding:7px 3px;flex-direction:column;justify-content:center;gap:5px;text-align:center}.settings-switcher-icon{width:28px;height:28px;border-radius:5px}.settings-switcher-copy{width:100%}.settings-switcher-copy strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.settings-switcher-copy small{display:none}.settings-switcher button>i{position:absolute;top:7px;right:7px}.config-editor-panel{min-height:0}.config-editor-head{min-height:74px;padding:13px 14px;gap:10px}.config-editor-title{gap:9px}.config-editor-title>span{width:34px;height:34px}.config-editor-title h3{font-size:14px;white-space:nowrap}.config-editor-title p{margin-top:2px}.config-column-labels{display:none}.config-item-list{padding:10px;display:grid;align-content:start;gap:8px;background:#fafafa}.config-item{min-height:0;padding:10px;border:1px solid #e4e4e7;border-radius:7px;gap:8px;background:#fff}.config-item.is-locked{background:#f7f7f8}.source-config-panel .config-item{grid-template-columns:28px minmax(0,1fr) auto}.income-config-panel .config-item{grid-template-columns:28px minmax(0,1fr) auto;grid-template-rows:auto auto}.income-config-panel .config-order{grid-row:1 / 3}.income-config-panel .config-name-wrap{grid-column:2 / -1}.income-config-panel .config-switch{grid-column:2}.income-config-panel .config-item-actions,.income-config-panel .config-locked-label{grid-column:3}.config-name-wrap input{height:40px}.config-item-actions button{width:34px;height:34px}.config-action-bar{min-height:0;padding:12px 14px 14px;align-items:center;flex-direction:row;gap:12px;background:#fafafaf5}.config-action-bar>div:last-child{width:auto;flex:0 0 auto}.config-action-bar .btn{min-height:36px;flex:0 0 auto}.config-status{min-width:0;min-height:18px;white-space:nowrap}.config-status span{overflow:hidden;text-overflow:ellipsis}.note-category-panel .config-editor-head{align-items:center;flex-wrap:nowrap}.note-category-toolbar{width:auto;margin-left:auto;gap:8px}.note-category-list{padding:10px;gap:10px}.note-category-tabs{min-width:0;flex:1;border:1px solid #e4e4e7;border-radius:6px;background:#f4f4f5}.note-category-tabs button{height:28px;border-radius:4px;flex:1}.note-category-toolbar-action{min-height:36px;padding-right:11px;padding-left:11px}.note-category-card-head{min-height:58px;padding:9px 10px;grid-template-columns:24px minmax(0,1fr) auto;gap:6px}.note-category-card-head-spacer,.note-category-item-spacer{display:none}.note-category-item{min-height:0;padding:10px;grid-template-columns:minmax(0,1fr) max-content auto;gap:8px}.note-category-item .config-name-wrap{grid-column:1}.note-category-item-flags{grid-column:2}.note-category-item .config-item-actions{grid-column:3}.note-category-add-item{width:calc(100% - 20px);min-height:36px;margin:4px 10px 10px;border:1px dashed #d4d4d8}.settings-expected-panel{padding:0}.settings-expected-panel .expected-editor{min-height:0;border:0;border-radius:0;box-shadow:none}.settings-expected-panel .expected-editor-head{padding-right:14px;padding-left:14px}}@media(max-width:520px){.settings-switcher{padding:6px 4px}.settings-switcher button{min-height:60px;padding-right:1px;padding-left:1px}.settings-switcher-icon{width:26px;height:26px}.config-editor-head{padding-right:10px;padding-left:10px}.config-editor-head>.btn{min-height:34px;padding-right:10px;padding-left:10px}.config-editor-title>span{display:none}.config-editor-title p{display:none}.config-item-list,.note-category-list{padding:8px}.source-config-panel .config-item{padding:10px;grid-template-columns:minmax(0,1fr) auto}.income-config-panel .config-item{padding:10px;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto}.source-config-panel .config-order,.income-config-panel .config-order{display:none}.source-config-panel .config-name-wrap,.income-config-panel .config-name-wrap{grid-column:1;grid-row:1}.source-config-panel .config-item-actions,.source-config-panel .config-locked-label,.income-config-panel .config-item-actions,.income-config-panel .config-locked-label{grid-column:2;justify-self:end}.source-config-panel .config-item-actions,.source-config-panel .config-locked-label,.income-config-panel .config-item-actions,.income-config-panel .config-name-wrap{grid-row:1}.income-config-panel .config-switch,.income-config-panel .config-locked-label{grid-row:2}.income-config-panel .config-switch{grid-column:1 / -1}.income-config-panel .config-item.is-locked .config-switch{grid-column:1}.income-config-panel .config-locked-label{grid-column:2}.config-item-actions{justify-content:flex-end;gap:2px;white-space:nowrap}.source-config-panel .config-item-actions button,.income-config-panel .config-item-actions button{width:32px;height:32px}.config-locked-label{min-height:28px;display:flex;align-items:center;justify-content:flex-end}.config-switch{width:100%;height:36px}.source-config-panel .config-name-wrap>small:not(.config-error),.income-config-panel .config-name-wrap>small:not(.config-error){display:none}.note-category-card-head{grid-template-columns:minmax(0,1fr) auto}.note-category-card-head .config-order{display:none}.note-category-toolbar{display:flex;width:auto;flex-wrap:nowrap}.note-category-tabs button{padding-right:5px;padding-left:5px}.note-category-card-head .config-item-actions button,.note-category-item .config-item-actions button{width:32px}.config-action-bar{padding-right:10px;padding-left:10px}.config-status span{display:inline}.settings-expected-panel .expected-table-row{padding-right:12px;padding-left:12px}}@media(max-width:440px){.note-category-panel .config-editor-head{align-items:flex-start;flex-wrap:wrap}.note-category-toolbar{width:100%;margin-left:0}.note-category-item{grid-template-columns:minmax(0,1fr) auto}.note-category-item .config-name-wrap{grid-column:1 / -1}.note-category-item-flags{grid-column:1}.note-category-item .config-item-actions{grid-column:2}}@media(max-width:400px){.config-action-bar{align-items:stretch;flex-direction:column;gap:8px}.config-action-bar>div:last-child{width:100%}.config-action-bar .btn{flex:1}}@media(max-width:360px){.note-category-toolbar{width:100%;margin-left:0;display:grid;grid-template-columns:1fr}.note-category-toolbar-action{width:100%}}
