:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#f1f3f5;--border:#e3e6ea;--text:#16191d;--muted:#69717c;--accent:#0f766e;--accent-strong:#0b5f58;--accent-soft:#e6f4f2;--positive:#15803d;--negative:#c2410c;--negative-soft:#fff1ea;--radius:12px;--shadow:0 1px 2px #1018280f, 0 1px 3px #1018280a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f1214;--surface:#171b1e;--surface-2:#1f2427;--border:#2a3034;--text:#e8ebed;--muted:#949ca5;--accent:#2dd4bf;--accent-strong:#5eead4;--accent-soft:#11302d;--positive:#4ade80;--negative:#fb923c;--negative-soft:#33200f;--shadow:none}}*{box-sizing:border-box}body{min-height:100vh;margin:0}h1,h2,h3{margin:0;line-height:1.25}h1{letter-spacing:-.02em;font-size:1.75rem}h2{font-size:1.1rem}h3{margin:1.5rem 0 .5rem;font-size:.95rem}p{margin:0}a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:.85rem}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.brand{color:var(--text);align-items:center;gap:.5rem;font-weight:700;text-decoration:none;display:flex}.brand-sub{color:var(--muted);font-weight:400}.page{flex-direction:column;gap:1.25rem;max-width:1040px;margin:0 auto;padding:1.5rem;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.actions{flex-wrap:wrap;gap:.5rem;display:flex}.btn-stacked{flex-direction:column;gap:0;line-height:1.2}.btn-sub{color:var(--muted);font-size:.75rem;font-weight:400}.back-link{margin-bottom:-.5rem;font-size:.9rem;text-decoration:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.empty{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:3rem 1.5rem;display:flex}.empty p{max-width:28rem}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:.4rem;padding:.5rem .9rem;font-size:.9rem;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-strong)}@media (prefers-color-scheme:dark){.btn-primary{color:#04201d}}.btn-ghost{background:0 0;border-color:#0000}.btn-danger-ghost{color:var(--negative)}.btn-danger{background:var(--negative);border-color:var(--negative);color:#fff}.btn-danger:hover{background:color-mix(in srgb, var(--negative) 85%, #000)}.btn-small{padding:.3rem .65rem;font-size:.85rem}.btn-icon{padding:.2rem .55rem;font-size:1.4rem;line-height:1}.btn-block{width:100%}.segmented{background:var(--surface-2);border-radius:8px;gap:2px;padding:3px;display:inline-flex}.segmented button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:.35rem .75rem;font-size:.85rem;font-weight:500}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.segmented button.active.out{color:var(--negative)}.segmented button.active.in{color:var(--positive)}.form{flex-direction:column;gap:.9rem;display:flex}.form-row{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.9rem;display:grid}.form-actions{justify-content:flex-end;gap:.5rem;margin-top:.25rem;display:flex}.field{flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:500;display:flex}.field small{font-weight:400}input,select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;width:100%;padding:.5rem .65rem;font-size:.95rem}input:focus,select:focus,.btn:focus-visible,.segmented button:focus-visible,.tab:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.checkbox{align-items:center;gap:.5rem;font-size:.9rem;display:flex}.checkbox input{width:auto;accent-color:var(--accent)}.field-error{color:var(--negative)}.schedule{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.9rem;margin:0;padding:.75rem .9rem .9rem;display:flex}.schedule legend{padding:0 .3rem;font-size:.85rem;font-weight:600}.schedule-summary{color:var(--accent);font-size:.9rem;font-weight:500}.alert{background:var(--negative-soft);color:var(--negative);border-radius:8px;padding:.6rem .8rem;font-size:.9rem}.modal{border-radius:var(--radius);background:var(--surface);width:min(32rem,100vw - 2rem);color:var(--text);border:0;padding:0;box-shadow:0 20px 50px #00000040}.modal::backdrop{background:#0f121473}.modal-body{padding:1.25rem}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.auth{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.auth-card{flex-direction:column;gap:1rem;width:min(24rem,100%);padding:2rem;display:flex}.auth-brand{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.auth-brand h1{font-size:1.3rem}.google-signin{justify-content:center;min-height:44px;display:flex}.auth-divider{color:var(--muted);align-items:center;gap:.75rem;font-size:.85rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";border-top:1px solid var(--border);flex:1}.auth-switch{text-align:center;font-size:.9rem}.account-grid{grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:1rem;display:grid}.account-card{color:inherit;flex-direction:column;gap:1rem;text-decoration:none;transition:border-color .15s;display:flex}.account-card:hover{border-color:var(--accent)}.account-card-head{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.account-card-foot{margin-top:auto}.table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.9rem}.data-table th,.data-table td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:.6rem .75rem}.data-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.75rem;font-weight:600}.data-table tbody tr:last-child td{border-bottom:none}.data-table .numeric{text-align:right;font-variant-numeric:tabular-nums}.stats{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1rem;margin-bottom:1rem;display:grid}.stat{flex-direction:column;gap:.15rem;display:flex}.stat-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.8rem;font-weight:600}.stat-value{letter-spacing:-.02em;font-size:1.6rem;font-weight:650}.stat-list{grid-template-columns:1fr 1fr;gap:.75rem;margin:0;display:grid}.stat-list dt{color:var(--muted);font-size:.8rem}.stat-list dd{margin:0;font-weight:600}.amount{font-variant-numeric:tabular-nums;white-space:nowrap}.positive{color:var(--positive)}.negative{color:var(--negative)}.badge{background:var(--surface-2);color:var(--muted);vertical-align:1px;white-space:nowrap;border-radius:999px;margin-left:.5rem;padding:.1rem .45rem;font-size:.72rem;font-weight:600;display:inline-block}.badge-accent{background:var(--accent-soft);color:var(--accent)}.badge-negative{background:var(--negative-soft);color:var(--negative);margin-left:0}.forecast-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.forecast .alert{margin-bottom:1rem}.chart{margin:0 -.5rem}.chart-tooltip{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px;min-width:12rem;padding:.6rem .75rem;font-size:.85rem}.chart-tooltip-row{color:var(--muted);justify-content:space-between;gap:1rem;display:flex}.tabs-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:-.25rem 0 .5rem;display:flex}.tabs{gap:1rem;display:flex;overflow-x:auto}.tab{font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:.6rem 0;font-size:.9rem;font-weight:500}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.list{margin:0;padding:0;list-style:none}.list-row{border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:.65rem 0;display:flex}.list-row:last-child{border-bottom:0}.list-row.inactive{opacity:.6}.list-date{width:6.5rem;color:var(--muted);flex-shrink:0;font-size:.85rem}.list-main{flex-direction:column;flex:1;min-width:0;display:flex}.bulk-pick{cursor:pointer;flex:1;gap:.75rem;min-width:0}.row-actions{gap:.1rem;display:flex}.loading{padding:1rem 0}@media (width<=640px){.page{padding:1rem}.topbar{padding:.75rem 1rem}.brand-sub{display:none}.list-row{flex-wrap:wrap;gap:.25rem .75rem}.list-date{width:auto}.list-main{flex-basis:100%;order:-1}}.stat-list dd .muted{font-weight:400;display:block}.forecast-subheader{justify-content:flex-end;margin-bottom:1rem;display:flex}.calendar-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;margin-bottom:.75rem;display:flex}.calendar-nav{align-items:center;gap:.25rem;display:flex}.calendar-nav .btn-small{margin-right:.5rem}.calendar-title{min-width:10rem;margin:0 0 0 .5rem;font-size:1.15rem}.calendar-summary{flex-wrap:wrap;gap:1.25rem;margin:0;display:flex}.calendar-summary dt{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.72rem;font-weight:600}.calendar-summary dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.calendar-summary dd .muted{font-size:.85rem;font-weight:400}.calendar-grid{border:1px solid var(--border);border-radius:10px;overflow:hidden}.calendar-week{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-week+.calendar-week{border-top:1px solid var(--border)}.calendar-weekday{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface-2);padding:.4rem .5rem;font-size:.75rem;font-weight:600}.calendar-day{cursor:pointer;background:var(--surface);flex-direction:column;gap:.2rem;min-width:0;min-height:7.5rem;padding:.35rem .4rem .4rem;display:flex}.calendar-day+.calendar-day{border-left:1px solid var(--border)}.calendar-day:hover{background:var(--surface-2)}.calendar-day:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.calendar-day.outside{background:var(--bg)}.calendar-day.outside .calendar-day-head,.calendar-day.outside .calendar-events{opacity:.55}.calendar-day-head{justify-content:space-between;align-items:baseline;gap:.25rem;display:flex}.calendar-date{border-radius:999px;place-items:center;min-width:1.6rem;height:1.6rem;font-size:.8rem;font-weight:600;display:inline-grid}.calendar-day.today .calendar-date{background:var(--accent);color:#fff}.calendar-balance{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:650;overflow:hidden}.calendar-balance .compact{display:none}.calendar-day.past .calendar-balance{color:var(--muted);font-weight:500}.calendar-day.overdrawn{background:var(--negative-soft)}.calendar-day.overdrawn .calendar-balance{color:var(--negative)}.calendar-day.no-data{cursor:default}.calendar-events{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.calendar-events li{background:var(--surface-2);border-left:3px solid var(--negative);border-radius:4px;justify-content:space-between;gap:.25rem;padding:1px 4px;font-size:.72rem;line-height:1.35;display:flex}.calendar-events li.in{background:color-mix(in srgb, var(--positive) 12%, transparent);border-left-color:var(--positive)}.calendar-event-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.calendar-event-amount{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--muted)}.calendar-events li.in .calendar-event-amount{color:var(--positive)}.calendar-more{color:var(--muted);padding-left:4px;font-size:.72rem;font-weight:600}.calendar-dots{display:none}.calendar-legend{margin-top:.6rem}.day-details .day-total{font-weight:600}@media (width<=760px){.calendar-day{align-items:center;min-height:4.25rem;padding:.25rem}.calendar-day-head{flex-direction:column;align-items:center}.calendar-balance{font-size:.7rem}.calendar-balance .full{display:none}.calendar-balance .compact{display:inline}.calendar-events,.calendar-more{display:none}.calendar-dots{gap:3px;margin-top:2px;display:flex}.calendar-dots span{background:var(--negative);border-radius:999px;width:5px;height:5px}.calendar-dots span.in{background:var(--positive)}.calendar-weekday{text-align:center;padding:.35rem 0}}.file-drop{border:2px dashed var(--border);min-height:5rem;color:var(--muted);cursor:pointer;text-align:center;border-radius:10px;justify-content:center;align-items:center;padding:1rem;font-weight:500;display:flex;position:relative}.file-drop:hover,.file-drop:focus-within{border-color:var(--accent);color:var(--text)}.file-drop input{opacity:0;cursor:pointer;position:absolute;inset:0}.import-preview{flex-direction:column;gap:.4rem;display:flex}.import-preview .list{max-height:16rem;margin-top:.25rem;overflow-y:auto}.import-balance{color:var(--accent);font-weight:500}.account-card{position:relative}.account-card-link{color:inherit;text-decoration:none}.account-card-link:after{content:"";border-radius:var(--radius);position:absolute;inset:0}.account-card-link:focus-visible{outline:none}.account-card:has(.account-card-link:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.account-card-tools{align-items:center;gap:.25rem;margin:-.4rem -.5rem 0 0;display:flex}.menu{z-index:1;position:relative}.menu-trigger{letter-spacing:.05em;font-size:1.25rem}.menu-list{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;min-width:9rem;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #0000001f}.menu-list button{font:inherit;text-align:left;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:.45rem .65rem;font-size:.9rem}.menu-list a{color:var(--text);border-radius:6px;padding:.45rem .65rem;font-size:.9rem;text-decoration:none}.menu-list a:hover,.menu-list a:focus-visible,.menu-list button:hover,.menu-list button:focus-visible{background:var(--surface-2);outline:none}.menu-list button.danger{color:var(--negative)}.user-menu-trigger{max-width:16rem}.user-menu-name{text-overflow:ellipsis;overflow:hidden}.avatar{background:var(--surface-2);border-radius:50%;flex-shrink:0}.app-version{text-align:center;margin-top:1rem}.user-menu-list{min-width:12rem}.user-menu-email{border-bottom:1px solid var(--border);overflow-wrap:anywhere;margin:0 0 4px;padding:.45rem .65rem .6rem;font-size:.85rem}.form-actions-start{margin-right:auto}.inline-inputs{gap:.5rem;display:flex}.radio-row{align-items:center;gap:.5rem;font-size:.9rem;font-weight:400;display:flex}.radio-row input[type=radio]{width:auto;accent-color:var(--accent)}.radio-row input.narrow{width:5rem}.radio-row select{width:auto}.disabled-select select{opacity:.6;pointer-events:none}.list-row.clickable{cursor:pointer}.list-row.clickable:hover{background:var(--surface-2)}.row-button{width:100%;min-width:0;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:1rem;padding:0;display:flex}.list-row.clickable{border-radius:6px;padding-left:.35rem;padding-right:.35rem}.page:has(.calendar-layout){max-width:1320px}.calendar-layout{grid-template-columns:15rem minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}.category-panel{border-right:1px solid var(--border);padding-right:1rem}.category-panel h4{margin:.4rem 0 .75rem;font-size:.95rem}.category-panel ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.category-row{cursor:pointer;border-radius:6px;align-items:center;gap:.45rem;padding:.3rem .4rem;font-size:.85rem;font-weight:400;display:flex}.category-row:hover{background:var(--surface-2)}.category-row input[type=checkbox]{appearance:none;background:var(--border);cursor:pointer;border:none;border-radius:999px;flex:none;width:1.9rem;height:1.1rem;margin:0;padding:0;transition:background .15s;position:relative}.category-row input[type=checkbox]:before{content:"";background:#fff;border-radius:50%;width:calc(1.1rem - 4px);height:calc(1.1rem - 4px);transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.category-row input[type=checkbox]:checked{background:var(--accent)}.category-row input[type=checkbox]:checked:before{transform:translate(.8rem)}.category-row input[type=checkbox]:indeterminate{background:color-mix(in srgb, var(--accent) 45%, var(--border))}.category-row input[type=checkbox]:indeterminate:before{transform:translate(.4rem)}.category-row input[type=checkbox]:focus{outline:none}.category-row input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.category-all{border-bottom:1px solid var(--border);border-radius:6px 6px 0 0;margin-bottom:.25rem;font-weight:500}.category-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.category-row .amount{font-variant-numeric:tabular-nums;white-space:nowrap}@media (width<=900px){.calendar-layout{grid-template-columns:1fr}.category-panel{border-right:none;padding-right:0}}
