:root{color-scheme:light;--color-background: #f6f7f3;--color-surface: #ffffff;--color-surface-subtle: #edf2ed;--color-primary: #245b4b;--color-primary-hover: #1b463a;--color-on-primary: #ffffff;--color-text: #202922;--color-text-muted: #5c6b61;--color-border: #d9e0d9;--color-control-border: #7c8b81;--color-income: #245ea8;--color-expense: #9a451b;--color-danger: #b42318;--color-success: #245b4b;--color-focus: #245b4b;--chart-1: #245b4b;--chart-2: #779783;--chart-3: #b5c8a5;--chart-4: #d8b886;--chart-5: #8aaeb7;--chart-6: #b59cad;--chart-7: #8e99b0;--chart-8: #ada58d;--color-hero-muted: #d6e5dc;--color-hero-accent: #dce9c0;--color-danger-subtle: #fff0ed;--color-income-subtle: #edf3fb;--color-expense-subtle: #faf0e7;--color-demo-background: #f3f0e4;--color-demo-text: #6d5a30;--font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-size-caption: .875rem;--font-size-body: 1rem;--font-size-section: 1.25rem;--font-size-title: 1.5rem;--font-size-amount: 2rem;--line-height-body: 1.6;--line-height-heading: 1.3;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-control: 10px;--radius-card: 16px;--radius-pill: 999px;--shadow-card: 0 4px 20px rgb(32 41 34 / 4%);--shadow-dialog: 0 20px 60px rgb(32 41 34 / 16%);--content-max-width: 1200px;--page-gutter: 16px;--sidebar-width: 224px;--touch-target-min: 44px;--input-height: 48px;--bottom-navigation-height: 64px;--focus-width: 2px;--focus-offset: 3px;--transition-duration: .15s}@media(min-width:768px){:root{--page-gutter: 32px;--font-size-title: 1.75rem}}@media(prefers-reduced-motion:reduce){:root{--transition-duration: 0ms}}*{box-sizing:border-box}body{margin:0;background:var(--color-background);font-family:var(--font-family);font-size:var(--font-size-body);line-height:var(--line-height-body);color:var(--color-text);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.5}button{border:0;background:none}a{color:var(--color-primary)}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:var(--line-height-heading)}h1{font-size:var(--font-size-title);font-weight:600;letter-spacing:.01em}h2{font-size:var(--font-size-section);font-weight:600}h3{font-size:17px;font-weight:600}small{font-size:var(--font-size-caption)}svg{flex-shrink:0}button:focus-visible,a:focus-visible,summary:focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset)}input,select,textarea{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-control-border);border-radius:var(--radius-control);padding:11px 13px;max-width:100%;min-width:0;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 13%,transparent)}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);flex-shrink:0}input[type=date],input[type=datetime-local]{min-height:var(--input-height)}textarea{resize:vertical}label{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:500}label input,label select,label textarea{font-size:16px;font-weight:400}input[type=month]{width:135px;padding:0;border:0;background:transparent;font-size:14px}input[type=month]:focus{box-shadow:none}.button{min-height:44px;padding:10px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius-control);font-size:14px;font-weight:500;white-space:nowrap;border:1px solid transparent;transition:background var(--transition-duration),transform var(--transition-duration)}.button:not(:disabled):active{transform:translateY(1px)}.button.primary{background:var(--color-primary);color:var(--color-on-primary)}.button.primary:hover{background:var(--color-primary-hover)}.button.secondary{background:var(--color-surface);border-color:var(--color-border)}.button.secondary:hover{background:var(--color-surface-subtle)}.button.small{padding:8px 13px}.button.danger{background:var(--color-danger-subtle);color:var(--color-danger)}.button.danger-solid{background:var(--color-danger);color:var(--color-on-primary)}.button.full{width:100%}.button-group{display:flex;align-items:center;gap:12px}.icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:var(--radius-control);color:var(--color-text-muted);padding:8px}.icon-button:hover{background:var(--color-surface-subtle);color:var(--color-primary)}.text-button{display:inline-flex;gap:7px;align-items:center;min-height:44px;font-size:14px;color:var(--color-primary);white-space:nowrap}.brand{display:flex;gap:12px;align-items:center}.brand-mark{position:relative;display:flex;align-items:center;justify-content:center;border-radius:13px;background:var(--color-primary);color:var(--color-on-primary);width:43px;height:43px}.brand-leaf{position:absolute;width:10px;height:6px;right:6px;top:7px;border-radius:8px 0;background:var(--color-hero-accent);transform:rotate(-30deg)}.brand strong{font-size:26px;letter-spacing:3px;line-height:1.1;display:block;font-weight:600}.brand strong>span{color:var(--color-primary);margin-left:2px}.brand small{font-size:11px;letter-spacing:1.5px;color:var(--color-text-muted);display:block;margin-top:5px}.eyebrow{display:block;font-size:10px;letter-spacing:2px;color:var(--color-text-muted);font-weight:500;margin-bottom:9px}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);z-index:30;padding:34px 20px 20px;display:flex;flex-direction:column}.sidebar>.brand{padding-left:8px}.family-badge{font-size:13px;margin:32px 8px 28px;display:flex;align-items:center;gap:9px;color:var(--color-text-muted)}.family-dot,.nav-dot,.member-status{height:6px;width:6px;border-radius:50%;background:var(--color-primary);flex-shrink:0}.nav-caption{font-size:11px;letter-spacing:1px;color:var(--color-text-muted);margin:0 16px 10px}.nav-item{display:flex;width:100%;gap:13px;align-items:center;padding:13px 15px;min-height:50px;margin:4px 0;border-radius:10px;color:var(--color-text-muted);font-size:15px}.nav-item:hover{background:var(--color-background)}.nav-item.active{background:var(--color-surface-subtle);color:var(--color-primary);font-weight:600}.nav-dot{margin-left:auto;width:5px;height:5px}.sidebar-note{margin-top:auto;padding:44px 12px 28px;color:var(--color-primary)}.sidebar-note p{font-size:12px;line-height:1.9;margin-top:8px;color:var(--color-text-muted)}.sidebar-note>span{font-size:8px;letter-spacing:1.4px;display:block;margin-top:14px;color:var(--color-text-muted)}.sidebar-user{display:flex;align-items:center;gap:10px;padding:19px 5px 0;border-top:1px solid var(--color-border);text-align:left}.sidebar-user>span:nth-child(2){flex:1;min-width:0}.sidebar-user strong{display:block;font-size:14px}.sidebar-user small{display:block;font-size:11px;color:var(--color-text-muted)}.avatar{height:36px;width:36px;display:inline-flex;justify-content:center;align-items:center;border-radius:50%;background:var(--color-hero-accent);color:var(--color-primary);font-size:14px;font-weight:600;flex-shrink:0}.avatar-1{background:var(--color-income-subtle);color:var(--color-income)}.avatar-2{background:var(--color-expense-subtle);color:var(--color-expense)}.avatar-button{padding:0;border-radius:50%}.main-wrap{margin-left:var(--sidebar-width)}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--page-gutter);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.topbar-left,.topbar-right{display:flex;align-items:center;gap:15px;font-size:12px;color:var(--color-text-muted)}.topbar-family{display:inline-flex;align-items:center;gap:8px}.topbar-left>span:last-child{color:var(--color-text)}.topbar-right{gap:12px}.today-label{font-size:12px;letter-spacing:.5px;margin-right:6px}.mobile-menu,.bottom-nav,.drawer-backdrop,.mobile-break{display:none}.demo-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--color-demo-background);padding:7px var(--page-gutter);font-size:12px;color:var(--color-demo-text)}.demo-banner>span{display:flex;align-items:center;gap:6px}.demo-dot{width:5px;height:5px;background:currentColor;border-radius:50%}.demo-banner button{font-size:12px;display:flex;align-items:center;gap:6px;min-height:30px;white-space:nowrap}.main-content{max-width:calc(var(--content-max-width) + 64px);margin:auto;padding:32px var(--page-gutter) 0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}.page-heading p{font-size:13px;color:var(--color-text-muted);margin-top:10px}.greeting-dot{font-size:24px;color:var(--color-expense);margin-left:12px}.welcome-card{border-radius:var(--radius-card);background:var(--color-primary);color:var(--color-on-primary);padding:30px 36px;position:relative;overflow:hidden;min-height:210px;display:flex;align-items:center;margin-bottom:30px}.welcome-card>div:first-child{position:relative;z-index:1}.welcome-pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--color-hero-accent);letter-spacing:1px;margin-bottom:13px}.welcome-card h2{font-size:28px;font-weight:500;letter-spacing:2px}.welcome-card p{color:var(--color-hero-muted);font-size:12px;margin-top:12px;letter-spacing:.3px}.hero-link{padding:0;display:flex;gap:9px;align-items:center;font-size:12px;color:var(--color-hero-accent);margin-top:16px;min-height:32px}.hero-art{position:absolute;right:0;top:0;width:330px;height:100%;pointer-events:none;color:var(--color-hero-accent)}.art-orbit{position:absolute;border:1px solid currentColor;border-radius:50%;opacity:.13}.orbit-one{width:290px;height:290px;right:-40px;top:-30px}.orbit-two{width:350px;height:350px;right:-30px;top:-55px}.art-leaf{position:absolute;opacity:.5}.leaf-one{bottom:32px;right:80px;transform:rotate(-25deg)}.leaf-two{bottom:42px;right:45px;transform:rotate(28deg)}.art-sun{position:absolute;width:52px;height:52px;right:96px;top:25px;background:currentColor;opacity:.18;border-radius:50%}.art-caption{position:absolute;right:28px;bottom:20px;writing-mode:vertical-rl;font-size:9px;letter-spacing:3px;opacity:.8}.section-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:16px}.section-toolbar h2{font-size:18px;display:flex;align-items:center;gap:10px}.subtle-tag{display:inline-flex;align-items:center;background:var(--color-surface-subtle);color:var(--color-primary);border-radius:5px;padding:3px 8px;font-size:10px;font-weight:400;white-space:nowrap}.month-picker{display:flex;align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);flex-shrink:0;height:40px}.month-picker .icon-button{min-width:32px;min-height:38px}.month-picker label{flex-direction:row;align-items:center;gap:8px;font-size:13px}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:24px}.stat-card{padding:22px 24px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);min-width:0}.stat-top{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--color-text-muted)}.stat-icon{display:flex;align-items:center;justify-content:center;height:30px;width:30px;background:var(--color-income-subtle);border-radius:9px;color:var(--color-income)}.stat-card.expense .stat-icon{background:var(--color-expense-subtle);color:var(--color-expense)}.stat-card.balance .stat-icon{background:var(--color-surface-subtle);color:var(--color-primary)}.stat-card>strong{font-size:var(--font-size-amount);font-weight:600;display:block;letter-spacing:-1px;line-height:1.4;margin:12px 0 5px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stat-card>strong small{font-size:18px;margin-right:7px;letter-spacing:0;font-weight:400}.stat-caption{color:var(--color-text-muted);font-size:11px;display:block}.dashboard-charts,.dashboard-lists{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:24px;margin-bottom:24px}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);min-width:0;overflow:hidden;align-self:start}.panel-heading{padding:22px 24px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-heading h2{font-size:16px;display:flex;align-items:center;gap:8px}.panel-heading p{font-size:11px;color:var(--color-text-muted);margin-top:6px}.panel-heading>svg{color:var(--color-primary)}.outline-icon{width:32px;height:32px;display:flex;justify-content:center;align-items:center;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:8px}.trend-scale{padding:0 24px;display:flex;justify-content:space-between;font-size:10px;color:var(--color-text-muted)}.legend-inline{display:flex;align-items:center;gap:6px}.legend-inline i{width:7px;height:7px;border-radius:2px;background:var(--chart-1)}.legend-inline i:nth-of-type(2){margin-left:10px;background:var(--chart-3)}.bar-chart{height:176px;position:relative;margin:20px 24px 8px 20px;padding-left:45px}.chart-grid{position:absolute;inset:0 0 26px;display:flex;flex-direction:column;justify-content:space-between;font-size:9px;color:var(--color-text-muted)}.chart-grid>span{position:relative}.chart-grid>span:after{content:"";position:absolute;left:45px;right:0;top:50%;border-top:1px dashed var(--color-border)}.bar-columns{position:relative;display:flex;justify-content:space-around;height:100%;gap:10px}.bar-group{width:15%;display:flex;flex-direction:column;align-items:center;padding:0;justify-content:space-between}.bar-pair{height:140px;display:flex;align-items:flex-end;justify-content:center;width:100%;gap:5px}.bar-pair>span{background:var(--chart-1);width:15px;max-width:38%;border-radius:3px 3px 0 0;min-height:1px}.bar-pair>span:nth-child(2){background:var(--chart-3)}.bar-group small{font-size:10px;color:var(--color-text-muted);line-height:25px}.bar-group.active small{color:var(--color-primary);font-weight:600}.bar-group:hover .bar-pair{background:var(--color-background);border-radius:5px}.chart-data{margin:0 24px 16px;color:var(--color-text-muted);font-size:11px}.chart-data summary{cursor:pointer;width:max-content}.chart-data p{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--color-border);font-size:10px}.expense-chart{display:flex;align-items:center;gap:18px;padding:4px 24px 24px;min-height:210px}.donut-wrap{flex-shrink:0}.donut{width:132px;height:132px;border-radius:50%;display:grid;place-items:center}.donut>div{width:100px;height:100px;background:var(--color-surface);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.donut small{font-size:10px;color:var(--color-text-muted)}.donut strong{font-size:15px;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.chart-legend{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.chart-legend>div{display:grid;grid-template-columns:7px 1fr auto;column-gap:6px;align-items:center;font-size:11px}.legend-dot{height:6px;width:6px;border-radius:2px}.chart-legend small{font-size:10px;color:var(--color-text-muted)}.chart-legend strong{grid-column:2/4;font-size:10px;font-weight:400;color:var(--color-text-muted);margin-top:2px}.transaction-list{padding:0 24px 8px}.transaction-row{width:100%;display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--color-border);text-align:left}.transaction-row:last-child{border-bottom:0}.transaction-row:hover{background:var(--color-background)}.category-icon{height:40px;width:40px;border-radius:12px;display:flex;justify-content:center;align-items:center;background:var(--color-expense-subtle);color:var(--color-expense);flex-shrink:0}.category-icon.is-income{background:var(--color-income-subtle);color:var(--color-income)}.transaction-main{flex:1;min-width:0}.transaction-main>strong{display:block;font-size:13px;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.transaction-main>small{display:flex;gap:7px;color:var(--color-text-muted);font-size:10px;margin-top:5px;flex-wrap:wrap}.transaction-meta{text-align:right;flex-shrink:0}.transaction-meta>strong{display:block;font-variant-numeric:tabular-nums;font-size:14px;font-weight:500}.income{color:var(--color-income)}.expense{color:var(--color-expense)}.stat-card{color:var(--color-text)}.visibility{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--color-text-muted);white-space:nowrap}.visibility.shared{color:var(--color-primary)}.row-chevron{color:var(--color-text-muted);margin-left:3px}.event-list{padding:0 24px}.event-row{display:flex;gap:13px;align-items:center;width:100%;text-align:left;border-bottom:1px solid var(--color-border);padding:15px 0}.event-row:last-child{border-bottom:0}.event-row:hover{background:var(--color-background)}.event-date{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;background:var(--color-surface-subtle);width:44px;height:51px;flex-shrink:0;color:var(--color-primary)}.event-date small{font-size:10px}.event-date strong{font-size:19px;line-height:1.2;font-weight:500}.event-main{flex:1;min-width:0}.event-main>strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;font-weight:500}.event-main>small{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--color-text-muted);margin-top:3px;overflow-wrap:anywhere}.event-row>svg{color:var(--color-text-muted)}.calendar-link{min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;width:calc(100% - 48px);margin:6px 24px 14px;color:var(--color-primary);border-top:1px solid var(--color-border);font-size:12px}.empty{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:35px 20px;gap:10px;min-height:210px;width:100%;color:var(--color-text-muted)}.empty-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-surface-subtle);color:var(--color-primary);margin-bottom:4px}.empty strong{font-size:14px;font-weight:500;color:var(--color-text)}.empty p{font-size:12px;max-width:240px}.empty .button{margin-top:5px}.page-footer{display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--color-text-muted);padding:12px 0 24px;margin-top:24px}.page-footer>span:first-child{display:flex;gap:6px;align-items:center}.segmented{display:inline-flex;padding:4px;gap:4px;background:var(--color-surface-subtle);border-radius:var(--radius-control)}.segmented button{display:flex;align-items:center;justify-content:center;gap:7px;font-size:13px;min-height:36px;padding:7px 15px;border-radius:7px;white-space:nowrap;color:var(--color-text-muted)}.segmented button.selected{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-card);font-weight:500}.filter-bar{display:flex;gap:16px;align-items:center;margin:0 0 22px}.search-field{display:flex;flex-direction:row;align-items:center;background:var(--color-surface);border:1px solid var(--color-control-border);border-radius:var(--radius-control);padding-left:13px;color:var(--color-text-muted);flex:1;max-width:380px}.search-field input{border:0;background:transparent;width:100%;font-size:13px}.search-field:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}.search-field input:focus{box-shadow:none}.filter-selects{display:flex;align-items:center;gap:10px;color:var(--color-text-muted)}.filter-selects select{font-size:13px;padding:9px 12px;min-height:44px}.ledger-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px}.ledger-layout .expense-chart{flex-direction:column;padding:8px 24px 24px;gap:24px}.ledger-layout .donut{height:155px;width:155px}.ledger-layout .donut>div{height:117px;width:117px}.ledger-layout .chart-legend{width:100%}.ledger-layout .chart-legend>div{grid-template-columns:7px 1fr 40px auto;padding:5px 0}.ledger-layout .chart-legend strong{grid-column:auto;margin:0}.count-badge{font-size:11px;display:inline-flex;min-width:22px;justify-content:center;padding:3px 5px;border-radius:6px;background:var(--color-background);color:var(--color-text-muted);font-weight:400}.calendar-filters{display:flex;align-items:center;gap:20px;margin:4px 0 18px}.calendar-filters button{font-size:13px;padding:9px 0;border-bottom:2px solid transparent;min-height:44px;color:var(--color-text-muted)}.calendar-filters button.active{border-bottom-color:var(--color-primary);color:var(--color-primary)}.calendar-filters>small{margin-left:auto;color:var(--color-text-muted);font-size:11px}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(260px,1fr);gap:22px}.calendar-layout.list-only{display:block}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays{padding:14px 0;border-bottom:1px solid var(--color-border);background:var(--color-background);text-align:center;font-size:11px;color:var(--color-text-muted)}.day-cell{display:flex;flex-direction:column;min-width:0;min-height:94px;padding:6px;border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);text-align:left;overflow:hidden}.day-cell:nth-child(7n){border-right:0}.day-cell.outside{color:var(--color-text-muted);background:var(--color-background)}.day-cell.selected{background:var(--color-surface-subtle);box-shadow:inset 0 0 0 1px var(--color-primary)}.day-number{height:25px;width:25px;display:flex;align-items:center;justify-content:center;font-size:11px;border-radius:50%;margin-bottom:4px}.day-cell.today .day-number{background:var(--color-primary);color:var(--color-on-primary)}.day-events{width:100%;min-width:0;display:flex;flex-direction:column;gap:3px}.day-event{display:block;padding:2px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:3px;font-size:9px;color:var(--color-primary);background:var(--color-surface-subtle);border-left:2px solid var(--color-primary)}.day-event.private{background:var(--color-income-subtle);color:var(--color-income);border-left-color:var(--color-income)}.day-events small{font-size:9px;color:var(--color-text-muted)}.calendar-foot{padding:13px 16px;display:flex;gap:18px;font-size:10px;color:var(--color-text-muted)}.calendar-foot span{display:flex;align-items:center;gap:6px}.calendar-foot i{height:5px;width:5px;background:var(--color-primary);border-radius:50%}.calendar-foot span+span i{background:var(--color-income)}.mobile-event-dots{display:none}.calendar-agenda .event-list{padding:0 20px}.calendar-agenda .panel-heading{padding:22px 20px 12px}.profile-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px}.profile-cover{padding:28px 24px;display:flex;align-items:center;gap:14px;background:var(--color-surface-subtle)}.profile-cover .avatar{width:56px;height:56px;font-size:24px;background:var(--color-hero-accent)}.profile-cover>div{flex:1;min-width:0}.profile-cover h2{font-size:20px}.profile-cover p{font-size:12px;color:var(--color-text-muted);overflow-wrap:anywhere;margin-top:5px}.profile-forms{padding:28px 24px}.profile-forms form{display:flex;flex-direction:column;align-items:flex-start;gap:20px}.profile-forms label{width:100%}.form-divider{border-top:1px solid var(--color-border);margin:30px 0}.profile-side{display:flex;flex-direction:column;gap:24px}.profile-side .panel{width:100%}.members{padding:0 24px}.members>div{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--color-border)}.members>div:last-child{border:0}.members>div>span:nth-child(2){flex:1}.members strong{display:block;font-size:14px;font-weight:500}.members small{font-size:11px;color:var(--color-text-muted);display:block}.members strong small{display:inline}.panel-note{font-size:11px;color:var(--color-text-muted);padding:12px 24px 20px}.settings-actions{padding:0 24px 12px}.settings-actions button{width:100%;display:flex;align-items:center;gap:12px;text-align:left;min-height:60px;border-bottom:1px solid var(--color-border);padding:12px 0}.settings-actions button:last-child{border:0}.settings-actions button>span{flex:1;font-size:13px}.settings-actions small{display:block;font-size:10px;color:var(--color-text-muted);margin-top:3px}.settings-actions svg{color:var(--color-text-muted)}.modal{padding:0;border:0;border-radius:20px;width:min(540px,calc(100% - 32px));max-height:calc(100dvh - 48px);color:var(--color-text);box-shadow:var(--shadow-dialog);overflow:auto;background:var(--color-surface)}.modal::backdrop{background:#14261d66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{min-width:0}.modal-header{padding:24px 28px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--color-border)}.modal-header .eyebrow{font-size:9px;margin-bottom:7px}.modal-header h2{font-size:21px;overflow-wrap:anywhere}.form-body{padding:24px 28px;display:flex;flex-direction:column;gap:20px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.kind-switch{align-self:flex-start}.kind-switch button{min-width:100px}.amount-field{color:var(--color-text-muted)}.amount-field>span{display:flex;align-items:center;border-bottom:1px solid var(--color-border);gap:12px}.amount-field b{font-size:28px;font-weight:400;color:var(--color-text)}.amount-field input{border:0;box-shadow:none!important;font-size:38px;padding:8px 0;width:100%;border-radius:0;font-weight:500}.check-card{display:flex;flex-direction:row;align-items:center;gap:12px;padding:15px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-control);cursor:pointer}.check-card>span{flex:1}.check-card strong{font-size:13px;font-weight:500;display:block}.check-card small{font-size:11px;line-height:1.6;display:block;color:var(--color-text-muted);margin-top:3px}.check-card>svg{color:var(--color-primary)}.checkbox-line{display:flex;flex-direction:row;align-items:center;gap:8px;min-height:44px}.optional{display:inline;font-size:11px;color:var(--color-text-muted);font-weight:400}.field-hint{font-size:12px;color:var(--color-text-muted);line-height:1.8}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:18px 28px;border-top:1px solid var(--color-border);background:var(--color-surface);position:sticky;bottom:0;z-index:1}.error-note{display:flex;align-items:flex-start;gap:9px;padding:13px 15px;background:var(--color-danger-subtle);border:1px solid color-mix(in srgb,var(--color-danger) 25%,transparent);border-radius:var(--radius-control);font-size:13px;color:var(--color-danger)}.error-note svg{margin-top:2px}.profile-forms>.error-note{margin-top:18px}.transaction-detail{display:flex;align-items:center;flex-direction:column;gap:8px;padding:8px 0 18px}.transaction-detail>span:first-child{font-size:13px;color:var(--color-text-muted)}.transaction-detail strong{font-size:36px;font-weight:500;overflow-wrap:anywhere;max-width:100%}.detail-dl{margin:0;display:grid;grid-template-columns:70px 1fr;gap:15px;font-size:14px}.detail-dl dt{color:var(--color-text-muted)}.detail-dl dd{margin:0;text-align:right;white-space:pre-wrap;overflow-wrap:anywhere}.detail-list{display:flex;flex-direction:column;gap:20px;font-size:14px}.detail-list p{display:flex;gap:10px;align-items:flex-start;white-space:pre-wrap;overflow-wrap:anywhere}.detail-list p>svg{color:var(--color-primary);margin-top:3px}.detail-list small{display:block;color:var(--color-text-muted);font-size:11px;margin-top:5px}.detail-note{padding:16px;background:var(--color-background);border-radius:var(--radius-control);white-space:pre-wrap;overflow-wrap:anywhere}.delete-symbol{color:var(--color-danger);background:var(--color-danger-subtle);width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;align-self:center}.delete-description{font-size:14px;color:var(--color-text-muted);text-align:center;overflow-wrap:anywhere}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%);background:var(--color-primary);color:var(--color-on-primary);border-radius:var(--radius-control);padding:13px 20px;z-index:100;box-shadow:var(--shadow-dialog);display:flex;align-items:center;gap:9px;font-size:13px;max-width:calc(100% - 32px);width:max-content}.busy{min-height:55vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;color:var(--color-primary)}.busy p{font-size:14px;color:var(--color-text-muted)}.connection-state{max-width:600px;margin:60px auto}.connection-state .button-group{margin-top:20px}.load-error{display:flex;gap:12px;margin-bottom:20px;align-items:center}.load-error .error-note{flex:1}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skip-link{position:fixed;top:-70px;left:16px;background:var(--color-primary);color:var(--color-on-primary);padding:10px 18px;z-index:200}.skip-link:focus{top:8px}.login-page{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr;background:var(--color-surface)}.login-story{background:var(--color-surface-subtle);padding:46px 12%;display:flex;flex-direction:column;position:relative;overflow:hidden}.story-copy{margin:auto 0;padding:64px 0 20px}.story-copy .eyebrow{font-size:9px;letter-spacing:2px;color:var(--color-primary)}.story-copy h1{font-size:42px;font-weight:500;line-height:1.5;letter-spacing:3px;margin:20px 0}.story-copy p{font-size:14px;line-height:2.2;color:var(--color-text-muted)}.story-footer{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--color-text-muted);margin-top:30px}.story-illustration{position:relative;height:230px;width:310px;max-width:100%;margin-top:38px}.house-body{position:absolute;width:136px;height:112px;left:70px;bottom:27px;border:2px solid var(--color-primary);border-radius:0 0 5px 5px;background:var(--color-surface-subtle)}.house-roof{position:absolute;width:112px;height:112px;transform:rotate(45deg);bottom:85px;left:82px;border-left:2px solid var(--color-primary);border-top:2px solid var(--color-primary);background:var(--color-surface-subtle)}.house-door{position:absolute;width:33px;height:64px;border:2px solid var(--color-primary);border-bottom:0;bottom:0;right:20px;border-radius:18px 18px 0 0;background:var(--color-hero-accent)}.house-window{position:absolute;width:32px;height:32px;border:2px solid var(--color-primary);top:25px;left:20px}.house-window:before,.house-window:after{content:"";position:absolute;background:var(--color-primary)}.house-window:before{width:2px;height:100%;left:13px}.house-window:after{height:2px;width:100%;top:13px}.sun{position:absolute;width:44px;height:44px;top:14px;right:23px;background:var(--chart-4);border-radius:50%;opacity:.7}.plant{position:absolute;bottom:19px;left:7px;transform:rotate(-25deg);color:var(--color-primary)}.ground{position:absolute;left:0;right:0;bottom:25px;height:1px;background:var(--color-primary);opacity:.5}.login-side{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:64px 32px 32px;min-width:0}.login-card{max-width:360px;width:100%;margin:auto}.welcome-label{font-size:10px;letter-spacing:2px;color:var(--color-primary)}.login-card h2{font-size:30px;margin-top:12px}.login-card>p:first-of-type{font-size:13px;color:var(--color-text-muted);margin:12px 0 30px}.login-card form{display:flex;flex-direction:column;gap:20px}.login-card form>.button{margin-top:5px}.password-input{display:flex;position:relative;align-items:center}.password-input input{width:100%;padding-right:46px}.password-input button{position:absolute;right:0}.login-note{font-size:11px;color:var(--color-text-muted);display:flex;justify-content:center;align-items:center;gap:6px;margin-top:19px}.setup-note{font-size:12px;line-height:1.8;background:var(--color-background);padding:12px 14px;border-radius:var(--radius-control);margin-top:22px;color:var(--color-text-muted)}.demo-entry{margin-top:26px;border-top:1px solid var(--color-border);padding-top:20px;display:flex;flex-direction:column;gap:12px;align-items:center}.demo-entry>span{font-size:11px;color:var(--color-text-muted)}.demo-entry>small{font-size:10px;color:var(--color-text-muted)}.help-text{margin-top:22px;font-size:11px;color:var(--color-text-muted);text-align:center}.login-copyright{font-size:10px;color:var(--color-text-muted);margin-top:40px}.mobile-login-brand{display:none}@media(min-width:1600px){.main-content{padding-top:40px}.welcome-card{min-height:230px}.expense-chart{gap:28px}.donut{width:146px;height:146px}.donut>div{width:111px;height:111px}}@media(max-width:1199px){.dashboard-charts,.dashboard-lists{gap:18px;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.expense-chart{flex-direction:column;gap:15px}.dashboard-charts .chart-legend{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.dashboard-charts .expense-chart{min-height:265px}.stats-grid{gap:12px}.stat-card{padding:18px}.stat-card>strong{font-size:28px}.calendar-layout{grid-template-columns:1fr}.calendar-agenda .event-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.day-cell{min-height:90px}.ledger-layout{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.transaction-list,.panel-heading{padding-inline:18px}.transaction-row{gap:10px}.transaction-meta>strong{font-size:12px}.row-chevron{display:none}}@media(max-width:960px){.dashboard-charts,.dashboard-lists,.ledger-layout,.profile-layout{grid-template-columns:1fr}.dashboard-charts .expense-chart{flex-direction:row;min-height:230px;padding:12px 30px 30px}.dashboard-charts .chart-legend{display:flex;gap:10px}.dashboard-charts .chart-legend>div{grid-template-columns:7px 1fr 42px auto}.dashboard-charts .chart-legend strong{grid-column:auto}.profile-side{display:grid;grid-template-columns:1fr}.filter-bar{flex-wrap:wrap}.search-field{max-width:none;min-width:200px}.hero-art{right:-90px;opacity:.6}.login-story{padding-inline:10%}.story-copy h1{font-size:34px}}@media(min-width:768px)and (max-width:1050px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card.balance{grid-column:1 / -1}.stat-card>strong{font-size:26px}}@media(max-width:767px){body{font-size:15px}.sidebar{visibility:hidden;transform:translate(-100%);transition:transform var(--transition-duration);width:240px}.sidebar.open{visibility:visible;transform:translate(0)}.drawer-backdrop{display:block;position:fixed;inset:0;background:#14261d59;z-index:29}.main-wrap{margin-left:0}.topbar{height:60px;padding-inline:12px}.topbar-left{gap:8px}.topbar-family{font-size:11px}.mobile-menu{display:inline-flex}.topbar-right{gap:5px}.today-label{display:none}.topbar .avatar{width:30px;height:30px;font-size:12px}.demo-banner{padding:6px 16px;font-size:10px}.demo-banner button{font-size:10px}.demo-description{font-size:9px}.main-content{padding:24px 16px 86px}.page-heading{margin-bottom:22px;gap:10px}.page-heading p{font-size:12px;max-width:245px}.page-heading .button{padding:10px 13px;font-size:12px}.eyebrow{font-size:8px;letter-spacing:1.5px}.greeting-dot{font-size:20px}.welcome-card{padding:26px 24px;min-height:210px;margin-bottom:24px}.welcome-card h2{font-size:26px}.welcome-card p{max-width:220px;font-size:11px;line-height:1.8}.hero-art{right:-70px;width:240px;opacity:.55}.hero-art .art-caption{display:none}.welcome-pill{font-size:10px}.section-toolbar h2{font-size:16px;gap:8px}.section-toolbar{gap:10px;flex-wrap:wrap}.month-picker{height:38px}.month-picker label{gap:4px}.month-picker input{width:111px;font-size:12px}.month-picker label>svg{display:none}.month-picker .icon-button{min-width:27px}.stats-grid{gap:12px}.stat-card{padding:16px}.stat-card>strong{font-size:25px}.stat-top{font-size:12px}.stat-caption{font-size:10px}.dashboard-charts,.dashboard-lists{gap:18px;margin-bottom:18px}.panel-heading{padding:20px 20px 14px}.transaction-list{padding:0 20px 8px}.transaction-row{padding:15px 0}.transaction-main>strong{font-size:13px}.transaction-meta>strong{font-size:13px}.event-list{padding:0 20px}.dashboard-charts .expense-chart{padding:10px 20px 24px;gap:22px}.donut{width:120px;height:120px}.donut>div{height:92px;width:92px}.donut strong{font-size:13px}.dashboard-charts .chart-legend>div{grid-template-columns:7px 1fr 35px}.dashboard-charts .chart-legend strong{grid-column:2/4}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top:1px solid var(--color-border);z-index:25;padding:7px 8px max(8px,env(safe-area-inset-bottom));height:calc(64px + env(safe-area-inset-bottom))}.bottom-nav button{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:10px;color:var(--color-text-muted);border-radius:10px}.bottom-nav button.active{color:var(--color-primary);background:var(--color-surface-subtle)}.page-footer{margin-top:16px;font-size:9px;padding-bottom:8px}.page-footer>span:last-child{display:none}.toast{bottom:calc(80px + env(safe-area-inset-bottom));font-size:12px}.segmented button{padding:7px 10px;font-size:12px;gap:5px}.segmented button svg{width:14px}.filter-bar{gap:12px}.search-field{flex-basis:100%;max-width:none}.filter-selects{flex:1}.filter-selects select{flex:1;min-width:0}.calendar-toolbar{flex-wrap:wrap}.calendar-filters{gap:17px}.calendar-filters button{font-size:12px}.calendar-filters small{font-size:10px}.calendar-layout{gap:18px}.calendar-agenda .event-list{display:block}.day-cell{min-height:62px;padding:5px;align-items:center}.day-events{display:none}.mobile-event-dots{display:flex;gap:3px;margin-top:4px}.mobile-event-dots i{width:4px;height:4px;border-radius:50%;background:var(--color-primary)}.weekdays{font-size:10px;padding:12px 0}.day-number{font-size:12px}.profile-cover{padding:22px 20px;gap:10px}.profile-cover .avatar{width:48px;height:48px;font-size:20px}.profile-cover h2{font-size:18px}.profile-cover .subtle-tag{font-size:9px}.profile-forms{padding:24px 20px}.profile-forms form{gap:16px}.modal{width:100%;max-width:none;max-height:calc(100dvh - 20px);margin:auto 0 0;border-radius:20px 20px 0 0}.modal-header{padding:20px}.form-body{padding:22px 20px;gap:18px}.modal-footer{padding:16px 20px max(16px,env(safe-area-inset-bottom))}.modal-footer .button{flex:1}.form-grid{gap:12px}.form-grid input{font-size:13px;padding-inline:9px;width:100%}.amount-field input{font-size:34px}.modal-header h2{font-size:20px}.transaction-detail strong{font-size:30px}.login-page{display:block;min-height:100dvh;background:var(--color-background)}.login-story{display:none}.login-side{min-height:100dvh;padding:34px 26px 24px;justify-content:flex-start}.mobile-login-brand{display:block;align-self:flex-start;margin-bottom:45px}.mobile-login-brand .brand-mark{width:38px;height:38px}.mobile-login-brand .brand strong{font-size:23px}.mobile-login-brand .brand small{font-size:10px}.login-card{margin:auto;width:100%}.login-card h2{font-size:29px}.login-copyright{margin-top:38px}}@media(max-width:480px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card.balance{grid-column:1/3;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:5px 12px}.stat-card.balance .stat-top{grid-column:1}.stat-card.balance>strong{grid-column:2;grid-row:1/3;margin:0;font-size:25px;text-align:right}.stat-card.balance .stat-caption{grid-column:1;max-width:150px}.stat-card.balance .stat-icon{display:none}.stat-card>strong{font-size:clamp(20px,5.2vw,25px);letter-spacing:-.6px}.stat-card>strong small{font-size:14px;margin-right:3px}.stat-icon{width:25px;height:25px;border-radius:7px}.stat-icon svg{width:15px}.section-toolbar>h2 .subtle-tag{display:none}.section-toolbar>.segmented button{padding:7px 9px}.section-toolbar>.segmented svg{display:none}.page-heading p{max-width:215px}.demo-description{max-width:215px;line-height:1.5}.demo-banner>span{flex-wrap:wrap;gap:2px 5px}.demo-banner button{flex-shrink:0}.transaction-main>small{column-gap:4px;row-gap:0}.transaction-row{gap:9px}.transaction-meta>strong{font-size:12px}.category-icon{width:35px;height:35px;border-radius:10px}.category-icon svg{width:17px}.transaction-main>strong{font-size:12px}.transaction-list,.panel-heading{padding-inline:16px}.visibility{font-size:9px}.visibility svg{width:10px}.event-main>strong{font-size:12px}.event-main>small{font-size:10px}.expense-chart{gap:16px!important}.chart-legend>div{font-size:10px}.chart-legend strong,.chart-legend small{font-size:9px}.ledger-layout .chart-legend>div{font-size:12px}.ledger-layout .chart-legend strong{font-size:11px}.ledger-layout .chart-legend small{font-size:10px}.welcome-card h2{font-size:25px}.hero-art{right:-80px;opacity:.4}.calendar-toolbar .button-group{gap:8px}.calendar-toolbar .button.small{padding:7px 10px;font-size:12px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
