@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";:root{font-family:DM Sans,sans-serif;color:#202020;background:#f7f7f6;font-synthesis:none;text-rendering:optimizeLegibility;font-optical-sizing:auto}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:258px;background:#fff;border-right:1px solid #e7e7e4;display:flex;flex-direction:column;z-index:30;transition:transform .38s cubic-bezier(.22,.75,.25,1);overflow:hidden;will-change:transform}.sidebar.collapsed{width:72px;transform:translate(0)}.brand{height:82px;display:flex;align-items:center;padding:0 22px;gap:12px;border-bottom:1px solid #ededeb;flex-shrink:0}.brand-mark{width:36px;height:36px;border:1.5px solid #262626;display:grid;place-items:center;font:800 12px Manrope;letter-spacing:-1px;flex-shrink:0}.brand-copy{display:flex;flex-direction:column;gap:3px;white-space:nowrap}.brand-copy strong{font:800 11px Manrope;letter-spacing:1.1px}.brand-copy span{font-size:9px;color:#888;letter-spacing:1.2px}.sidebar-close{display:none;margin-left:auto}.side-scroll{padding:19px 13px;overflow:auto;flex:1}.nav-group{margin-bottom:22px}.nav-label{font-size:9px;font-weight:700;letter-spacing:1.35px;color:#a0a09d;padding:0 11px 9px;text-transform:uppercase;white-space:nowrap}.nav-link{height:40px;display:flex;align-items:center;gap:12px;padding:0 11px;color:#696966;font-size:12px;font-weight:500;border-radius:3px;margin:2px 0;white-space:nowrap;transition:background .18s,color .18s;position:relative}.nav-link svg{flex-shrink:0}.nav-link:hover{background:#f5f5f3;color:#222}.nav-link.active{background:#eeeeeb;color:#171717;font-weight:700}.nav-link.active:before{content:"";position:absolute;left:0;width:3px;height:25px;background:#282828}.sidebar-bottom{padding:13px;border-top:1px solid #eee;flex-shrink:0}.user-mini{display:flex;align-items:center;gap:10px;padding:5px 3px}.avatar,.top-avatar{width:31px;height:31px;background:#252525;color:#fff;display:grid;place-items:center;font-weight:700;font-size:12px;border-radius:50%;flex-shrink:0}.user-copy{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.user-copy strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-copy span{font-size:10px;color:#92928e}.secure-note{font-size:9px;color:#92928e;padding:13px 5px 1px;letter-spacing:.5px}.secure-dot{display:inline-block;width:6px;height:6px;background:#777;border-radius:50%;margin-right:7px}.icon-btn{border:0;background:transparent;color:#696966;display:inline-grid;place-items:center;width:33px;height:33px;border-radius:3px;cursor:pointer;flex-shrink:0}.icon-btn:hover{background:#f0f0ee;color:#111}.logout{width:28px}.main-area{margin-left:258px;min-height:100vh;display:flex;flex-direction:column;transition:margin-left .38s cubic-bezier(.22,.75,.25,1);min-width:0}.main-area.expanded{margin-left:72px}.sidebar.collapsed .brand{justify-content:center;padding:0 10px}.sidebar.collapsed .brand-copy,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-link span,.sidebar.collapsed .user-copy,.sidebar.collapsed .secure-note{display:none}.sidebar.collapsed .side-scroll{padding:19px 10px}.sidebar.collapsed .nav-group{margin-bottom:14px}.sidebar.collapsed .nav-link{justify-content:center;padding:0}.sidebar.collapsed .user-mini{justify-content:center}.sidebar.collapsed .logout{display:none}.topbar{height:64px;background:#fffffff5;border-bottom:1px solid #e9e9e7;display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:sticky;top:0;z-index:15;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.top-left,.top-actions{display:flex;align-items:center;gap:14px}.breadcrumb{display:flex;align-items:center;gap:9px;font-size:11px;color:#9a9a96}.breadcrumb strong{color:#333;font-weight:600}.top-actions{gap:15px}.global-search{height:34px;width:225px;border:1px solid #e9e9e7;display:flex;align-items:center;gap:8px;padding:0 9px;color:#92928e;border-radius:3px}.global-search input,.table-search input{border:0;outline:0;background:transparent;width:100%;font-size:11px;color:#333;min-width:0}.global-search kbd{font-size:9px;border:1px solid #e5e5e2;padding:2px 4px;border-radius:2px;white-space:nowrap}.notification{position:relative}.top-avatar{width:29px;height:29px}.page-content{padding:30px 32px 38px;max-width:1660px;width:100%;margin:0 auto;flex:1;min-width:0}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:23px}.eyebrow{font-size:9px;letter-spacing:1.55px;font-weight:700;color:#92928e;margin-bottom:8px}.page-heading h1{font:700 clamp(22px,2.2vw,30px) Manrope;margin:0;letter-spacing:-1.1px;color:#202020}.page-heading p{font-size:12px;color:#858580;margin:8px 0 0;line-height:1.6}.heading-actions{display:flex;align-items:center;gap:8px}.primary-btn,.outline-btn{min-height:36px;padding:0 13px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap}.primary-btn{background:#252525;color:#fff;border:1px solid #252525}.primary-btn:hover{background:#444}.primary-btn:disabled{opacity:.6;cursor:wait}.outline-btn{background:#fff;color:#393936;border:1px solid #dededb}.outline-btn:hover{background:#f5f5f3}.period-strip{height:39px;border-top:1px solid #e8e8e5;border-bottom:1px solid #e8e8e5;display:flex;align-items:center;gap:13px;margin-bottom:15px;font-size:10px}.period-strip>span:first-child{font-size:9px;letter-spacing:1px;color:#999;font-weight:700}.period-strip strong{font-weight:600}.period-date{margin-left:auto;color:#999}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:17px}.metric-panel{background:#fff;border:1px solid #e9e9e6;padding:17px 18px;min-height:112px;min-width:0}.metric-panel.featured{border-color:#cfcfca;background:#fdfdfc}.metric-top{display:flex;justify-content:space-between;align-items:center;color:#8c8c87;font-size:9px;font-weight:700;letter-spacing:1px;gap:8px}.metric-top svg{color:#777}.metric-value{font:700 clamp(18px,1.9vw,25px) Manrope;letter-spacing:-.8px;margin-top:14px;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-sub{font-size:10px;color:#9a9a95;margin-top:5px}.dashboard-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:13px;margin-bottom:14px}.panel{background:#fff;border:1px solid #e9e9e6;min-width:0}.cashflow-panel,.accounts-panel,.spending-panel,.goals-panel{padding:19px 20px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.panel-head h3,.settings-panel h3{font:700 15px Manrope;letter-spacing:-.3px;margin:0}.panel-head .eyebrow{margin-bottom:5px}.quiet-link{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:#777;white-space:nowrap}.quiet-link:hover{color:#111}.chart-legend{display:flex;gap:17px;margin:17px 0 4px;font-size:10px;color:#777}.chart-legend span{display:flex;align-items:center;gap:6px}.chart-legend i{width:7px;height:7px;border-radius:50%;background:#333}.chart-legend .legend-expense{background:#aaa}.chart-area{height:205px;width:100%;margin-top:8px}.account-list{margin-top:15px}.account-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #f0f0ee}.account-symbol{width:32px;height:32px;border:1px solid #ededeb;display:grid;place-items:center;color:#666}.account-name{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.account-name strong{font-size:11px;font-weight:600}.account-name span{font-size:9px;color:#999;text-transform:capitalize}.account-balance{font-size:11px;white-space:nowrap}.account-foot{display:flex;justify-content:space-between;padding-top:14px;font-size:10px;color:#888}.account-foot strong{font-size:12px;color:#222}.inline-empty{font-size:11px;color:#999;padding:25px 0;text-align:center}.inline-empty a{color:#333;text-decoration:underline}.inline-empty.small{padding:10px 0}.spend-total{font:700 23px Manrope;margin:17px 0 14px}.spend-total span{font:400 10px DM Sans;color:#999;margin-left:5px}.spend-item{margin:13px 0}.spend-item>div:first-child,.goal-item>div:first-child{display:flex;justify-content:space-between;font-size:10px;margin-bottom:7px;gap:12px}.spend-item strong{font-weight:600}.bar-track{height:5px;background:#efefed;overflow:hidden}.bar-track i{display:block;height:100%;background:#4c4c4a}.goals-panel .goal-item{margin-top:17px}.goal-item>div:first-child strong{font-size:11px}.goal-item>div:first-child span{font-size:10px;color:#888}.upcoming-title{font-size:9px;font-weight:700;letter-spacing:1.1px;color:#999;border-top:1px solid #eee;margin-top:20px;padding-top:14px}.bill-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid #f0f0ee}.bill-row div{display:flex;flex-direction:column;gap:3px}.bill-row strong{font-size:10px}.bill-row span{font-size:9px;color:#999}.recent-panel{padding:19px 20px}.table-wrap{width:100%;overflow-x:auto;margin-top:14px}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;font-size:9px;letter-spacing:.85px;color:#999;font-weight:700;padding:11px 12px;border-bottom:1px solid #e9e9e7}td{font-size:10px;color:#666;padding:13px 12px;border-bottom:1px solid #f0f0ee}tbody tr:last-child td{border-bottom:0}.right{text-align:right}.desc-cell{font-weight:600;color:#333}.amount{font-weight:600;color:#555}.amount.positive{color:#222}.table-empty{text-align:center!important;color:#999;padding:35px 10px!important}.app-footer{min-height:43px;border-top:1px solid #e9e9e7;display:flex;align-items:center;justify-content:space-between;padding:0 32px;color:#aaa;font-size:8px;letter-spacing:.8px}.data-panel{padding:0 18px 10px}.data-toolbar{display:flex;justify-content:space-between;align-items:center;padding:15px 0 0;gap:12px}.record-count{font-size:10px;color:#888}.record-count strong{color:#222;font-size:12px}.record-count span{padding:0 5px;color:#ccc}.toolbar-tools{display:flex;align-items:center;gap:8px}.table-search{height:32px;width:210px;border:1px solid #e9e9e7;display:flex;align-items:center;gap:7px;padding:0 9px;color:#999}.actions-cell{display:flex;justify-content:flex-end;gap:2px}.danger-icon:hover{color:#9c3333}.type-label,.status-label{font-size:9px;text-transform:capitalize;padding:4px 7px;background:#f1f1ef;color:#555;border-radius:2px;display:inline-block}.notice-error,.form-error{background:#f8eeee;color:#8b3333;border:1px solid #efdada;padding:10px 12px;font-size:11px;margin:0 0 14px;display:flex;justify-content:space-between;align-items:center}.notice-error button{border:0;background:transparent;color:inherit}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14141457;display:grid;place-items:center;padding:20px;z-index:80;overflow:auto}.modal{width:min(620px,100%);background:#fff;border:1px solid #e4e4e0;padding:23px;box-shadow:0 18px 60px #00000024;max-height:calc(100vh - 40px);overflow:auto}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:22px}.modal-head h2{font:700 20px Manrope;margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid label,.auth-form label,.settings-panel label{display:flex;flex-direction:column;gap:7px;font-size:10px;color:#686864;font-weight:600}.form-grid input,.form-grid select,.auth-form input,.settings-panel input,.settings-panel select{width:100%;height:38px;border:1px solid #e2e2de;background:#fff;padding:0 10px;color:#222;font-size:11px;outline:none;border-radius:2px}.form-grid input:focus,.form-grid select:focus,.auth-form input:focus,.settings-panel input:focus,.settings-panel select:focus{border-color:#777}.span-2{grid-column:span 2}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.form-hint{font-size:10px;color:#8c8c87;line-height:1.6;margin:15px 0 0}.report-chart-panel{padding:19px 20px;margin-bottom:14px}.report-chart{height:260px;margin-top:15px}.table-panel-head{padding:17px 0 0}.settings-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings-panel{padding:21px;display:flex;flex-direction:column;gap:17px}.settings-panel>label{max-width:460px}.settings-panel .panel-head{margin-bottom:3px}.setting-row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:13px 0;border-bottom:1px solid #eee}.setting-row strong{font-size:11px}.setting-row p{font-size:10px;color:#888;margin:5px 0 0;line-height:1.6}.muted{font-size:11px;color:#888}.empty-state,.loading-screen{padding:50px 20px;text-align:center;color:#888;font-size:12px}.text-btn{border:0;background:transparent;text-decoration:underline;margin-left:10px}.auth-page{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:#fff}.auth-aside{background:#f3f3f1;padding:35px 7vw;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.auth-brand{padding:0;border:0;height:auto}.auth-message{max-width:520px;margin:auto 0}.auth-message h1{font:700 clamp(34px,4vw,55px) Manrope;letter-spacing:-2px;line-height:1.13;margin:15px 0}.auth-message p{font-size:13px;color:#777;line-height:1.8;max-width:440px}.auth-stats{display:flex;gap:38px;margin-top:40px}.auth-stats div{display:flex;flex-direction:column;gap:5px}.auth-stats strong{font:700 19px Manrope}.auth-stats span,.auth-aside-foot{font-size:9px;color:#888;letter-spacing:1px}.auth-aside-foot span{padding:0 8px}.auth-form-wrap{display:grid;place-items:center;padding:30px}.auth-form{width:min(390px,100%);display:flex;flex-direction:column;gap:16px}.auth-icon{width:42px;height:42px;border:1px solid #e5e5e2;display:grid;place-items:center;margin-bottom:5px}.auth-form h2{font:700 25px Manrope;margin:0;letter-spacing:-.8px}.auth-form .muted{margin:-8px 0 3px}.auth-form label{gap:8px}.auth-switch{font-size:10px;color:#888;text-align:center}.auth-switch button{border:0;background:transparent;text-decoration:underline;font-weight:700;color:#222}.auth-security{border-top:1px solid #eee;padding-top:17px;font-size:9px;color:#aaa;text-align:center}.full{width:100%;height:41px}.auth-form .form-error{margin:0}.sidebar-scrim{display:none}.status-label{background:#eee}.report-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1100px){.page-content{padding:25px 22px}.topbar{padding:0 22px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr 1fr}.global-search{width:185px}.settings-layout{grid-template-columns:1fr}.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.sidebar{width:min(290px,86vw);transform:translate(-102%);box-shadow:12px 0 35px #00000014}.sidebar.mobile-open{transform:translate(0)}.sidebar.collapsed{width:min(290px,86vw);transform:translate(-102%)}.main-area{margin-left:0!important}.topbar{height:58px;padding:0 13px}.mobile-toggle{display:inline-grid}.desktop-toggle{display:none}.sidebar-close{display:inline-grid}.sidebar-scrim.visible{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000047;z-index:25}.breadcrumb{font-size:10px;gap:5px}.top-actions{gap:5px}.global-search{width:min(38vw,160px);height:32px}.global-search kbd,.notification{display:none}.top-avatar{width:27px;height:27px}.page-content{padding:22px 14px 30px}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:18px}.page-heading p{font-size:11px}.heading-actions{width:100%;flex-wrap:wrap}.heading-actions .primary-btn{margin-left:auto}.metric-grid,.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.metric-panel{padding:13px;min-height:100px}.metric-value{font-size:18px}.dashboard-grid{grid-template-columns:1fr}.cashflow-panel,.accounts-panel,.spending-panel,.goals-panel,.recent-panel{padding:16px}.chart-area{height:190px}.period-strip{gap:8px;font-size:9px}.period-date{font-size:8px}.data-panel{padding:0 11px 8px}.data-toolbar{align-items:flex-start;flex-direction:column}.toolbar-tools,.table-search{width:100%}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.modal{padding:18px}.app-footer{padding:12px 14px;gap:8px;flex-wrap:wrap;font-size:7px}.auth-page{grid-template-columns:1fr}.auth-aside{min-height:220px;padding:22px 24px}.auth-message{margin:30px 0 20px}.auth-message h1{font-size:32px}.auth-message p{font-size:11px}.auth-stats{margin-top:20px;gap:25px}.auth-aside-foot{display:none}.auth-form-wrap{padding:35px 22px}.hide-small{display:none}.report-chart{height:220px}}@media print{.sidebar,.topbar,.app-footer,.heading-actions,.data-toolbar,.actions-cell{display:none!important}.main-area{margin:0!important}.page-content{padding:0;max-width:none}.panel,.metric-panel{break-inside:avoid;border:1px solid #ccc}.auth-page{display:none}}.budget-meta{font-size:9px;color:#888;margin-top:5px}.budgets-panel{padding:19px 20px}.sidebar{width:278px;transform:translate(-102%);box-shadow:14px 0 38px #00000017;transition:transform .48s cubic-bezier(.22,.75,.25,1)}.sidebar.mobile-open{width:278px;transform:translate(0)}.sidebar.collapsed{width:278px;transform:translate(-102%)}.sidebar .brand-copy,.sidebar .nav-label,.sidebar .nav-link span,.sidebar .user-copy,.sidebar .secure-note{display:initial}.sidebar .nav-label{display:block}.sidebar .brand{justify-content:flex-start;padding:0 22px}.sidebar .side-scroll{padding:19px 13px}.sidebar .nav-group{margin-bottom:22px}.sidebar .nav-link{justify-content:flex-start;padding:0 11px}.sidebar .user-mini{justify-content:flex-start}.sidebar .logout{display:inline-grid}.main-area,.main-area.expanded{margin-left:0}.desktop-toggle{display:inline-grid}.mobile-toggle{display:none}.sidebar-close{display:inline-grid}.sidebar-scrim.visible{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#1414144d;z-index:25;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);animation:scrim-in .25s ease both}@keyframes scrim-in{0%{opacity:0}to{opacity:1}}.desktop-toggle svg{transition:transform .25s ease}.desktop-toggle.menu-active{background:#eeeeeb;color:#171717}@media(max-width:760px){.sidebar,.sidebar.mobile-open,.sidebar.collapsed{width:min(290px,86vw)}.sidebar.mobile-open{transform:translate(0)}.sidebar.collapsed{transform:translate(-102%)}.main-area,.main-area.expanded{margin-left:0!important}.desktop-toggle{display:inline-grid}.mobile-toggle{display:none}.sidebar-close{display:inline-grid}}
