@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,500;12..96,600;12..96,700&family=Hanken+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap";@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;tab-size:4;font-size:1rem}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ol,ul{list-style:none}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none}table{border-collapse:collapse;border-spacing:0}:root{--font-size-caption:.75rem}body{color:#27271f;font-family:Hanken Grotesk,Inter,sans-serif;font-size:1rem;font-weight:400;line-height:1.5}.text-caption{font-size:.75rem;line-height:1.5}.text-xs{font-size:.8125rem}h1,h2,h3,h4,h5,h6{color:#27271f;font-family:Bricolage Grotesque,Inter,sans-serif;line-height:1.25}h1{font-size:1.875rem;font-weight:700}h2{font-size:1.5rem;font-weight:700}h3{font-size:1.25rem;font-weight:600}h4{font-size:1.125rem;font-weight:500}small{font-size:.75rem}body{--color-income:#2f3f35;--color-expense:#c65d3b;--color-ink:#17170f;--color-muted:#77786f;--color-chart-grid:#efefeb;--color-chart-hover:#f7f7f4;background-color:#f7f7f4}#root{width:100%;min-height:100vh;display:flex}.btn{white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:.625rem;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1rem;font-family:Hanken Grotesk,Inter,sans-serif;font-size:.875rem;font-weight:500;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn:focus-visible{outline-offset:2px;outline:2px solid #3b7ddd}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn--primary{color:#fff;background:#5d7a68}.btn--primary:hover{background:#435b4c}.btn--primary:active{background:#35483c}.btn--secondary{color:#27271f;background:#fff;border-color:#e4e4df}.btn--secondary:hover{background:#efefeb}.btn--secondary:active{background:#e4e4df}.btn--ghost{color:#77786f;background:0 0}.btn--ghost:hover{color:#27271f;background:#efefeb}.button{white-space:nowrap;border:1px solid #0000;border-radius:.625rem;justify-content:center;align-items:center;gap:.5rem;min-height:38px;padding:0 1rem;font-size:.875rem;font-weight:600;line-height:1;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.button:focus-visible{outline-offset:2px;outline:2px solid #3b7ddd}.button:disabled{cursor:not-allowed;opacity:.45}.button--primary{color:#fff;background:#2f3f35}.button--primary:hover:not(:disabled){background:#24312a}.button--quiet{color:#77786f}.button--quiet:hover{color:#17170f;background:#efefeb}.card{background:#fff;border:1px solid #efefeb;border-radius:1rem;padding:1.5rem;box-shadow:0 1px 4px #0000000f,0 1px 2px #0000000a}.card-surface{background:#fff;border:1px solid #efefeb;border-radius:1rem;padding:0}.stat-card{background:#fff;border:1px solid #efefeb;border-radius:1rem;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem;display:flex;box-shadow:0 1px 4px #0000000f,0 1px 2px #0000000a}.stat-card__body{flex-direction:column;gap:.25rem;display:flex}.stat-card__label{color:#77786f;font-size:.875rem;font-weight:500}.stat-card__value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:#27271f;font-family:Bricolage Grotesque,Inter,sans-serif;font-size:1.5rem;font-weight:600}.stat-card__delta{align-items:center;gap:.25rem;font-size:.8125rem;font-weight:500;display:flex}.stat-card__delta--up{color:#5d7a68}.stat-card__delta--down{color:#c65d3b}.stat-card__icon{border-radius:.625rem;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.stat-card__icon--green{color:#435b4c;background:#f1f5f3}.stat-card__icon--red{color:#c65d3b;background:#fdf1ee}.stat-card__icon--blue{color:#3b82f6;background:#eff6ff}.section-card{background:#fff;border:1px solid #efefeb;border-radius:1rem;padding:1.5rem;box-shadow:0 1px 4px #0000000f,0 1px 2px #0000000a}.section-card__header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.section-card__title{color:#27271f;font-family:Bricolage Grotesque,Inter,sans-serif;font-size:1.125rem;font-weight:600}.table-wrapper{width:100%;overflow-x:auto}.table{width:100%;font-family:Hanken Grotesk,Inter,sans-serif;font-size:.875rem}.table thead tr{border-bottom:1px solid #efefeb}.table thead th{text-align:left;color:#77786f;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;padding:.75rem 1rem;font-size:.8125rem;font-weight:600}.table thead th:last-child{text-align:right}.table tbody tr{border-bottom:1px solid #efefeb;transition:background .15s}.table tbody tr:last-child{border-bottom:none}.table tbody tr:hover{background:#f7f7f4}.table tbody td{color:#27271f;vertical-align:middle;padding:1rem}.table tbody td:last-child{text-align:right}.category-row{align-items:center;gap:.75rem;display:flex}.category-row__icon{border-radius:.625rem;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.125rem;display:flex}.category-row__name{color:#27271f;font-weight:500}.category-row__sub{color:#77786f;margin-top:1px;font-size:.8125rem}.app{background:#f7f7f4;flex-direction:column;width:100%;min-height:100vh;display:flex}.app__content{flex:1;width:100%;margin:0 auto;padding:0}.app__loading{color:#77786f;place-items:center;min-height:40vh;font-size:.875rem;display:grid}.page{width:min(100% - 48px,1320px);margin:0 auto;padding:2.5rem 0 4rem}@media (width<=680px){.page{width:min(100% - 28px,1320px);padding:1.5rem 0 2.5rem}}.demo-banner{color:#77786f;text-align:center;background:#fbfbf9;border-bottom:1px solid #efefeb;margin:0;padding:.75rem 1rem;font-size:.875rem}.demo-banner strong{font-weight:700}.site-nav{z-index:100;background:#fff;border-bottom:1px solid #efefeb;align-items:center;gap:clamp(20px,4vw,48px);min-height:64px;padding:0 max(1.5rem,50vw - 660px);display:flex;position:sticky;top:0}.site-nav__brand{white-space:nowrap;align-items:center;display:flex}.site-nav__logo{box-sizing:content-box;object-fit:contain;background:#2f3f35;border-radius:.625rem;flex-shrink:0;width:2rem;height:2rem;padding:.5rem;display:block}.site-nav__links{align-items:center;gap:6px;display:flex}.site-nav__link{color:#77786f;white-space:nowrap;border-radius:10px;align-items:center;gap:8px;min-height:40px;padding:0 13px;font-size:.875rem;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.site-nav__link:hover{color:#17170f;background:#efefeb}.site-nav__link--active{color:#2f3f35;background:#e8efeb}.site-nav__icon{display:flex}.site-nav__profile{align-items:center;gap:.5rem;margin-left:auto;display:flex}@media (width<=680px){.site-nav{gap:.75rem;min-height:58px;padding:0 .75rem}.site-nav__links{flex:1;justify-content:space-between;gap:0}.site-nav__link{justify-content:center;min-width:40px;padding:0 .5rem}.site-nav__link>span:last-child{display:none}.site-nav__icon svg{width:18px;height:18px}.site-nav__profile{margin-left:0}}.onboarding-help{position:relative}.onboarding-help__button{color:#2f3f35;cursor:pointer;background:#f1f5f3;border:1px solid #dce8e2;border-radius:9999px;justify-content:center;align-items:center;gap:.5rem;min-width:2.5rem;min-height:2.5rem;padding:.5rem .75rem;font-size:.8125rem;font-weight:600;display:inline-flex}.onboarding-help__button:hover{background:#dce8e2}.onboarding-help__button:focus-visible{outline-offset:2px;outline:2px solid #3b7ddd}.onboarding-help__error{color:#c65d3b;background:#fff;border:1px solid #e4e4df;border-radius:.625rem;width:min(18rem,100vw - 2rem);padding:.75rem;font-size:.875rem;position:absolute;top:calc(100% + .75rem);right:0;box-shadow:0 4px 12px #00000012,0 1px 3px #0000000d}.driver-popover.harbr-tour{color:#17170f;background:#f7f7f4;border:1px solid #dce8e2;border-radius:1.25rem;max-width:min(22rem,100vw - 2rem);padding:1.5rem;font-family:Hanken Grotesk,Inter,sans-serif;box-shadow:0 30px 70px #17170f24}.driver-popover.harbr-tour .harbr-tour__mark{background:#2f3f35;border-radius:1rem;place-items:center;width:3rem;height:3rem;margin-bottom:1rem;display:grid;box-shadow:0 1px 4px #0000000f,0 1px 2px #0000000a}.driver-popover.harbr-tour .harbr-tour__mark img{object-fit:contain;width:1.5rem;height:2rem}.driver-popover.harbr-tour .harbr-tour__chapter{color:#35483c;margin-bottom:.5rem;font-family:Hanken Grotesk,Inter,sans-serif;font-size:.8125rem;font-weight:600;display:block}.driver-popover.harbr-tour .harbr-tour__heading{letter-spacing:-.03em;font-family:Bricolage Grotesque,Inter,sans-serif;font-size:1.5rem;font-weight:600;line-height:1.25;display:block}.driver-popover.harbr-tour .driver-popover-title{padding-right:.75rem}.driver-popover.harbr-tour .driver-popover-description{color:#62635b;margin-top:.75rem;font-size:.875rem;line-height:1.75}.driver-popover.harbr-tour .driver-popover-footer{gap:.75rem;margin-top:1.25rem}.driver-popover.harbr-tour .driver-popover-progress-text{color:#77786f;font-size:.8125rem}.driver-popover.harbr-tour .driver-popover-navigation-btns{gap:.5rem}.driver-popover.harbr-tour .driver-popover-footer button{color:#2f3f35;min-height:2.5rem;font:inherit;text-shadow:none;background:#fff;border:1px solid #e4e4df;border-radius:.625rem;padding:.5rem .75rem;font-size:.8125rem;font-weight:600}.driver-popover.harbr-tour .driver-popover-footer button:focus-visible{outline-offset:2px;outline:2px solid #3b7ddd}.driver-popover.harbr-tour .driver-popover-footer button:disabled{opacity:.5;cursor:wait}.driver-popover.harbr-tour .driver-popover-footer .driver-popover-next-btn{color:#fff;background:#2f3f35;border-color:#2f3f35}.driver-popover.harbr-tour .driver-popover-footer .driver-popover-next-btn:hover{background:#24312a}.driver-popover.harbr-tour .driver-popover-close-btn{color:#77786f;border-radius:9999px;width:auto;min-height:2.5rem;padding-inline:.75rem;font-family:Hanken Grotesk,Inter,sans-serif;font-size:.8125rem;font-weight:500;top:.5rem;right:.5rem}.driver-popover.harbr-tour .driver-popover-close-btn:focus-visible{outline-offset:2px;outline:2px solid #3b7ddd}.driver-popover.harbr-tour .driver-popover-arrow-side-left{border-left-color:#f7f7f4}.driver-popover.harbr-tour .driver-popover-arrow-side-right{border-right-color:#f7f7f4}.driver-popover.harbr-tour .driver-popover-arrow-side-top{border-top-color:#f7f7f4}.driver-popover.harbr-tour .driver-popover-arrow-side-bottom{border-bottom-color:#f7f7f4}.driver-popover.harbr-tour--centered{max-height:calc(100dvh - 2rem);overflow-y:auto;transform:translate(-50%,-50%);inset:50% auto auto 50%!important}.driver-popover.harbr-tour--centered .driver-popover-arrow{display:none}@media (width<=680px){.onboarding-help__button{padding:.5rem}.onboarding-help__button span{display:none}.driver-popover.harbr-tour{padding:1.25rem}}@media (prefers-reduced-motion:reduce){.driver-popover.harbr-tour{transition:none;animation:none}}.help-menu{position:relative}.help-menu__panel{z-index:200;background:#fff;border:1px solid #efefeb;border-radius:1rem;width:min(18rem,100vw - 2rem);padding:.5rem;position:absolute;top:calc(100% + .75rem);right:0;box-shadow:0 8px 24px #00000014,0 2px 6px #0000000d}.help-menu__panel>a,.help-menu__panel>button{color:#2f3f35;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.625rem;align-items:center;gap:.75rem;width:100%;padding:.75rem;display:flex}.help-menu__panel>a>span,.help-menu__panel>button>span{flex:1}.help-menu__panel>a strong,.help-menu__panel>a small,.help-menu__panel>button strong,.help-menu__panel>button small{display:block}.help-menu__panel>a strong,.help-menu__panel>button strong{font-size:.875rem;font-weight:600}.help-menu__panel>a small,.help-menu__panel>button small{color:#77786f;margin-top:.25rem;font-size:.8125rem}.help-menu__panel>a:hover,.help-menu__panel>button:hover{background:#f1f5f3}.help-menu__panel>a:focus-visible,.help-menu__panel>button:focus-visible{outline-offset:2px;outline:2px solid #3b7ddd}.help-menu__panel>a:disabled,.help-menu__panel>button:disabled{opacity:.5;cursor:wait}.help-menu__label{color:#77786f;padding:.5rem .75rem;font-size:.8125rem;display:block}.profile-menu{position:relative}.profile-menu__trigger{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.profile-menu__avatar{color:#fff;background:linear-gradient(135deg,#435b4c 0%,#35483c 100%);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-family:Bricolage Grotesque,Inter,sans-serif;font-size:.875rem;font-weight:600;transition:transform .2s;display:flex}.profile-menu__avatar:hover{transform:scale(1.05)}.profile-menu__avatar--large{width:48px;height:48px;font-size:1rem}.profile-menu__dropdown{z-index:1000;background:#fff;border:1px solid #efefeb;border-radius:1rem;min-width:240px;padding:.75rem;animation:.2s fadeInDown;position:absolute;top:calc(100% + .5rem);right:0;box-shadow:0 8px 24px #00000014,0 2px 6px #0000000d}.profile-menu__header{align-items:center;gap:.75rem;padding:.5rem;display:flex}.profile-menu__info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.profile-menu__name{color:#27271f;white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:600;overflow:hidden}.profile-menu__email{color:#77786f;white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}.profile-menu__divider{background:#efefeb;height:1px;margin:.75rem 0}.profile-menu__item{color:#27271f;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:.625rem;align-items:center;gap:.75rem;width:100%;padding:.75rem;font-size:.875rem;transition:background .2s;display:flex}.profile-menu__item:hover{background:#f7f7f4}.profile-menu__item svg{flex-shrink:0}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.demo-button-wrap{display:inline-flex;position:relative}.public-brand{color:#17170f;flex-shrink:0;align-items:center;gap:.5rem;text-decoration:none;display:inline-flex}.public-brand>span{letter-spacing:-.03em;font-family:Bricolage Grotesque,Inter,sans-serif;font-size:1.5rem;font-weight:600}.public-brand img{box-sizing:content-box;object-fit:contain;background:#2f3f35;border-radius:.625rem;flex-shrink:0;padding:.5rem;display:block}.public-brand small{color:#2f3f35;background:#e8efeb;border-radius:9999px;margin-left:.5rem;padding:.25rem .5rem;font-size:.75rem;font-weight:700}.public-header{z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f7f7f4f0;border-bottom:1px solid #e4e4df;position:sticky;top:0}.public-header .public-brand img{width:1.5rem;height:1.5rem}.public-header__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1320px;margin:auto;padding:.75rem 1.5rem;display:flex}.public-header__sections{color:#77786f;flex-wrap:wrap;align-items:center;gap:1.25rem;font-size:.875rem;font-weight:600;display:flex}.public-header__actions{flex-wrap:wrap;gap:.5rem;display:flex}.public-button{min-height:44px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:.625rem;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.public-button--primary{color:#fff;background:#2f3f35}.public-button--primary:hover:not(:disabled){color:#fff;background:#24312a}.public-button--outline{color:#17170f;background:#fff;border-color:#e4e4df}.public-button--outline:hover{background:#efefeb}.public-button:disabled{opacity:.65;cursor:default}.public-footer{background:#fff;border-top:1px solid #e4e4df;margin-top:auto}.public-footer__inner{color:#77786f;flex-wrap:wrap;align-items:center;gap:1rem;max-width:1320px;margin:auto;padding:1.5rem;font-size:.875rem;display:flex}.public-footer nav{flex-wrap:wrap;gap:1.25rem;margin-left:auto;display:flex}.public-skip{z-index:300;background:#fff;padding:.75rem;position:fixed;top:.5rem;left:.5rem;transform:translateY(-200%)}.public-skip:focus{transform:none}.public-header a:focus-visible,.public-footer a:focus-visible,.public-button:focus-visible{outline-offset:2px;outline:2px solid #3b7ddd}@media (width<=1024px){.public-header__sections{order:3;justify-content:center;gap:1rem;width:100%}}@media (width<=480px){.public-header__inner{gap:.5rem;padding:.75rem}.public-header__actions{gap:.25rem}.public-header__actions .public-button{padding:.5rem;font-size:.75rem}.public-brand small{display:none}.public-footer nav{margin-left:0}}.notifications{z-index:300;bottom:calc(1rem + env(safe-area-inset-bottom));pointer-events:none;flex-direction:column;align-items:center;gap:.5rem;width:max-content;max-width:calc(100vw - 2rem);display:flex;position:fixed;left:50%;transform:translate(-50%)}.notification{--notification-detail:#b8d1c4;--notification-border:#b8d1c44d;--notification-control:#b8d1c41f;--notification-control-hover:#b8d1c438;pointer-events:auto;box-sizing:border-box;border:1px solid var(--notification-border);color:#fff;background:#1a1c14;border-radius:9999px;align-items:center;gap:.75rem;max-width:100%;padding:.75rem 1rem;font-size:.875rem;animation:.25s both notification-enter;display:flex;box-shadow:0 4px 12px #00000012,0 1px 3px #0000000d}.notification--edited{--notification-detail:#f8eeda;--notification-border:#cf8a1052;--notification-control:#f8eeda1a;--notification-control-hover:#f8eeda2e;background:#31270f}.notification--deleted{--notification-detail:#fae9e4;--notification-border:#c65d3b52;--notification-control:#fae9e41a;--notification-control-hover:#fae9e42e;background:#302115}.notification__icon{color:#b8d1c4;background:#b8d1c41f;border-radius:9999px;flex:none;padding:.5rem;display:flex}.notification__icon--created{color:#8ab3a1;background:#8ab3a126}.notification__icon--edited{color:#cf8a10;background:#cf8a1026}.notification__icon--deleted{color:#c65d3b;background:#c65d3b26}.notification__copy{overflow-wrap:anywhere;flex-direction:column;gap:.25rem;min-width:0;display:flex}.notification__copy strong{font-weight:600}.notification__detail{color:var(--notification-detail);font-size:.75rem;line-height:1.5}.notification__controls{flex:none;align-items:center;gap:.5rem;display:flex}.notification button.notification__action{border:1px solid var(--notification-border);background:var(--notification-control);border-radius:9999px;gap:.75rem;padding:.25rem .5rem .25rem 1rem;font-weight:600}.notification button.notification__action:hover:not(:disabled){background:var(--notification-control-hover)}.notification button.notification__action:disabled{cursor:wait;opacity:.65}.notification__countdown{font-variant-numeric:tabular-nums;place-items:center;width:2rem;height:2rem;font-size:.75rem;display:grid;position:relative}.notification__countdown svg{position:absolute;inset:0}.notification__countdown-track{opacity:.2}.notification__countdown-progress{stroke-linecap:round;transition:stroke-dasharray .1s linear}.notification--error{color:#27271f;background:#fdf1ee}.notification button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;flex-shrink:0;align-items:center;gap:.25rem;display:inline-flex;position:relative}.notification button:focus-visible{outline-offset:2px;outline:2px solid #3b7ddd}.notification__countdown svg{fill:none;stroke:currentColor;stroke-width:2px;transform:rotate(-90deg)}@keyframes notification-enter{0%{opacity:0;clip-path:inset(0 45% round 9999px);transform:translateY(.5rem)}to{opacity:1;clip-path:inset(0 round 9999px);transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.notification{animation:none}.notification__countdown-progress{transition:none}}@media (width<=480px){.notification{gap:.5rem;padding:.75rem}.notification__icon{padding:.25rem}.notification button.notification__action{padding:.5rem .75rem}}
