:root{color-scheme:light dark;--bg: #f4f1ea;--surface: #ffffff;--ink: #1a2e1f;--muted: #5c6b60;--primary: #1f5c3a;--primary-hover: #174a2e;--primary-soft: color-mix(in srgb, var(--primary) 12%, transparent);--border: #d8e0d9;--danger: #9b2c2c;--danger-soft: color-mix(in srgb, var(--danger) 10%, transparent);--shadow: 0 1px 2px rgba(26, 46, 31, .04), 0 8px 24px rgba(26, 46, 31, .06);--radius: 14px;--radius-sm: 10px;--nav-height: 64px;font-family:Inter,system-ui,sans-serif;line-height:1.5;color:var(--ink);background:var(--bg)}@media(prefers-color-scheme:dark){:root{--bg: #0c1210;--surface: #151d18;--ink: #e8f0ea;--muted: #8fa396;--primary: #3d9a64;--primary-hover: #4db078;--border: #26332a;--shadow: 0 1px 2px rgba(0, 0, 0, .25), 0 12px 32px rgba(0, 0, 0, .35)}}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(900px 480px at 8% -8%,rgba(31,92,58,.1),transparent 55%),var(--bg);-webkit-font-smoothing:antialiased}h1,h2,h3,.brand{font-family:Fraunces,Georgia,serif;font-weight:700;letter-spacing:-.02em}button.brand-link{display:inline;margin:0;padding:0;min-height:0;border:none;background:transparent;color:inherit;font:inherit;font-family:Fraunces,Georgia,serif;font-weight:700;letter-spacing:-.02em;text-align:left;cursor:pointer;box-shadow:none}button.brand-link:hover{background:transparent;color:var(--primary);text-decoration:underline;text-underline-offset:.15em}button.brand-link:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:4px}button,input,textarea{font:inherit}button{cursor:pointer;border:none;border-radius:var(--radius-sm);padding:.55rem .95rem;min-height:40px;background:var(--primary);color:#fff;font-weight:600;font-size:.925rem;line-height:1.2;transition:background .12s ease,color .12s ease,border-color .12s ease,opacity .12s ease}button:hover:not(:disabled){background:var(--primary-hover)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button.secondary,button.ghost{background:transparent;color:var(--ink);border:1px solid var(--border);font-weight:500}button.secondary:hover:not(:disabled),button.ghost:hover:not(:disabled){background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 35%,var(--border));color:var(--ink)}button.ghost{border-color:transparent;color:var(--muted)}button.ghost:hover:not(:disabled){color:var(--ink);border-color:transparent}button.danger{background:transparent;color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border));font-weight:500}button.danger:hover:not(:disabled){background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 55%,var(--border));color:var(--danger)}button.btn-sm{min-height:34px;padding:.35rem .7rem;font-size:.82rem;border-radius:8px;font-weight:500}button.btn-block{width:100%}button.linkish{background:none;border:none;color:var(--primary);padding:.25rem .35rem;min-height:auto;font-weight:600;font-size:.875rem;text-decoration:none}button.linkish:hover:not(:disabled){background:none;text-decoration:underline;color:var(--primary-hover)}input,textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.7rem .85rem;background:var(--surface);color:var(--ink);font-size:1rem}input:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--primary) 45%,transparent);outline-offset:1px;border-color:color-mix(in srgb,var(--primary) 40%,var(--border))}label{display:grid;gap:.35rem;font-size:.875rem;color:var(--muted);margin-bottom:.85rem;font-weight:500}.app-shell{max-width:720px;margin:0 auto;padding:1.5rem 1.15rem calc(var(--nav-height) + 1.75rem)}@media(min-width:720px){.app-shell{padding:2rem 1.5rem 3.5rem}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem 1.25rem;box-shadow:var(--shadow)}.header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem}.header-titles{min-width:0}.header .brand{font-size:1.55rem;margin:0;line-height:1.15}.header-sub{margin:.3rem 0 0;color:var(--muted);font-size:.9rem}.header-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-top:.45rem}.header-actions{position:relative;flex-shrink:0}.menu-panel{position:absolute;right:0;top:calc(100% + .4rem);min-width:11.5rem;padding:.4rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);z-index:40;display:grid;gap:.15rem}.menu-panel button{width:100%;justify-content:flex-start;text-align:left;background:transparent;color:var(--ink);border:none;font-weight:500;border-radius:8px}.menu-panel button:hover:not(:disabled){background:var(--primary-soft);color:var(--ink)}.menu-panel button.danger{color:var(--danger)}.menu-panel button.danger:hover:not(:disabled){background:var(--danger-soft)}.muted{color:var(--muted);font-size:.9rem}.error{color:var(--danger);background:var(--danger-soft);border:1px solid color-mix(in srgb,var(--danger) 22%,transparent);border-radius:var(--radius-sm);padding:.7rem .9rem;margin:.75rem 0;font-size:.9rem}.tabs{display:flex;gap:.25rem;padding:.3rem;margin-bottom:1.15rem;background:color-mix(in srgb,var(--surface) 70%,var(--bg));border:1px solid var(--border);border-radius:12px}.tabs button{flex:1;min-height:40px;background:transparent;color:var(--muted);border:none;font-weight:600;font-size:.9rem;border-radius:9px;box-shadow:none}.tabs button:hover:not(:disabled):not(.active){background:color-mix(in srgb,var(--primary) 8%,transparent);color:var(--ink)}.tabs button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #1a2e1f14;outline:none}@media(prefers-color-scheme:dark){.tabs button.active{box-shadow:0 1px 3px #00000059}}@media(max-width:719px){.tabs-desktop{display:none}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;gap:.25rem;padding:.45rem .75rem calc(.45rem + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border)}.bottom-nav button{flex:1;min-height:48px;background:transparent;color:var(--muted);border:none;font-weight:600;font-size:.8rem;border-radius:10px}.bottom-nav button:hover:not(:disabled){background:var(--primary-soft);color:var(--ink)}.bottom-nav button.active{background:var(--primary-soft);color:var(--primary)}}@media(min-width:720px){.bottom-nav{display:none}}.row{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}.row-spread{justify-content:space-between}.row-end{justify-content:flex-end}.note{border-top:1px solid var(--border);padding:1rem 0}.note:first-child{border-top:none;padding-top:0}.note textarea{min-height:72px;resize:vertical}.pill{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.2rem .65rem;background:var(--primary-soft);color:var(--primary);font-size:.75rem;font-weight:600}.invite-box{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.1rem;letter-spacing:.04em;padding:.75rem 1rem;border-radius:12px;background:var(--primary-soft);border:1px dashed color-mix(in srgb,var(--primary) 50%,var(--border));margin:.5rem 0 1rem}.live{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--muted)}.live-dot{width:7px;height:7px;border-radius:50%;background:#2f9e44;box-shadow:0 0 0 3px #2f9e442e;flex-shrink:0}.stack{display:grid;gap:.9rem}.table{display:grid;gap:0}.table-row{display:flex;justify-content:space-between;gap:.85rem;align-items:flex-start;padding:.8rem 0;border-top:1px solid var(--border)}.table-row:first-child{border-top:none;padding-top:0}.table-row-main{min-width:0;flex:1}.table-row-actions{display:flex;align-items:center;gap:.45rem;flex-shrink:0}.amount{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.hero-card{padding:1.35rem 1.3rem 1.15rem}.hero-label{margin:0;font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-family:Inter,system-ui,sans-serif}.hero-amount{font-family:Fraunces,Georgia,serif;font-size:clamp(1.85rem,5vw,2.25rem);font-weight:700;letter-spacing:-.03em;margin:.35rem 0 0;line-height:1.1;font-variant-numeric:tabular-nums}.hero-split{margin:.55rem 0 0;font-size:.95rem;color:var(--muted)}.hero-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--border)}.hero-foot-meta{font-size:.82rem;color:var(--muted);margin:0}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}.card-head h2{margin:0;font-size:1.1rem}.card-head .amount{font-size:1.05rem}.card-desc{margin:0 0 .75rem;color:var(--muted);font-size:.88rem}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1rem}.toolbar-primary{flex:1 1 auto;min-width:min(100%,11rem)}.toolbar-secondary{display:flex;flex-wrap:wrap;gap:.4rem}.list-item{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.9rem 0;border-top:1px solid var(--border)}.list-item:first-of-type{border-top:none;padding-top:.15rem}.list-item-body{min-width:0;flex:1}.list-item-actions{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end;flex-shrink:0}.spend-bar{margin-top:.45rem;height:5px;border-radius:999px;background:color-mix(in srgb,var(--border) 80%,transparent);overflow:hidden;width:100%}.spend-bar-fill{height:100%;border-radius:999px;background:var(--primary);min-width:2px}.category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-top:.75rem;align-items:stretch}@media(min-width:560px){.category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:720px){.category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.category-card{display:flex;flex-direction:column;align-items:stretch;text-align:left;gap:0;padding:.7rem .75rem .65rem;min-width:0;height:100%;border-radius:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--primary) 5%,var(--surface));color:var(--ink);cursor:pointer;font-weight:500;box-shadow:none;overflow:hidden}.category-card:hover:not(:disabled){background:color-mix(in srgb,var(--primary) 11%,var(--surface));border-color:color-mix(in srgb,var(--primary) 35%,var(--border))}.category-card:disabled{opacity:.6;cursor:wait}.category-card-name{display:block;font-size:.8rem;line-height:1.25;font-weight:600;overflow-wrap:break-word;word-break:normal;margin:0}.category-card-amount{display:block;margin-top:.35rem;font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em;white-space:nowrap;line-height:1.15}.category-card-meta{display:block;margin-top:.2rem;font-size:.72rem;color:var(--muted);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-card .spend-bar{margin-top:auto;padding-top:.45rem}.category-card-top{display:flex;flex-direction:column;align-items:stretch;gap:.2rem;margin-bottom:0}.category-card-top strong{font-size:.84rem;line-height:1.3;font-weight:600;overflow-wrap:break-word}.category-card .amount{font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.55rem;margin-top:1rem}.stat-chip{border:1px solid var(--border);border-radius:12px;padding:.6rem .7rem;background:color-mix(in srgb,var(--primary) 4%,var(--surface))}.stat-chip-wide{grid-column:1 / -1}.stat-label{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.stat-value{margin-top:.2rem;font-size:1.1rem;font-weight:700;font-variant-numeric:tabular-nums}.section-title{font-family:Fraunces,Georgia,serif;font-size:1.05rem;margin:0 0 .25rem}.rank-pill{display:inline-flex;align-items:center;justify-content:center;min-width:1.3rem;height:1.3rem;border-radius:999px;font-size:.72rem;font-weight:700;background:var(--primary-soft);color:var(--primary)}.subcat-card{border:1px solid var(--border);border-radius:12px;padding:.8rem .85rem;background:var(--surface)}.day-group{margin-top:.85rem;padding-top:.65rem;border-top:1px solid var(--border)}.day-group:first-of-type{margin-top:.5rem;padding-top:0;border-top:none}.day-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-weight:600;font-size:.88rem;margin-bottom:.25rem;color:var(--muted)}.day-header .amount{color:var(--ink);font-size:.88rem}.back-link{margin-bottom:.75rem}.insight-line{margin:.65rem 0 0;padding:.55rem .75rem;border-radius:10px;background:var(--primary-soft);color:var(--ink);font-size:.9rem;font-weight:500;line-height:1.35}.detail-tabs{margin-bottom:0}.filter-chip-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .85rem;border-radius:10px;border:1px solid var(--border);background:var(--surface)}.rank-list{display:grid;gap:.35rem}.rank-row{display:flex;align-items:flex-start;gap:.65rem;width:100%;text-align:left;padding:.7rem .55rem;min-height:48px;border-radius:12px;border:1px solid transparent;background:transparent;color:var(--ink);font-weight:500;box-shadow:none}.rank-row:hover:not(:disabled){background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 20%,var(--border));color:var(--ink)}.rank-row-active{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 35%,var(--border))}.rank-row-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.rank-row-title{font-weight:600;font-size:.95rem;line-height:1.25}.rank-row-end{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem;flex-shrink:0}.rank-row .spend-bar{display:block;margin-top:.35rem;max-width:100%}.rank-row .spend-bar-fill{display:block}.txn-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;margin-top:.2rem}.type-chip{display:inline-flex;align-items:center;padding:.12rem .45rem;border-radius:999px;font-size:.72rem;font-weight:600;background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary);letter-spacing:.01em}.txn-reactions{margin-top:.4rem;position:relative}.txn-reaction-row{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}.txn-reaction-chip{display:inline-flex;align-items:center;gap:.2rem;min-height:1.7rem;padding:.12rem .45rem;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 88%,var(--bg));color:var(--ink);font-size:.92rem;line-height:1;cursor:pointer;box-shadow:none}.txn-reaction-chip:hover:not(:disabled){border-color:color-mix(in srgb,var(--primary) 45%,var(--border));background:var(--primary-soft)}.txn-reaction-chip-mine{border-color:color-mix(in srgb,var(--primary) 55%,var(--border));background:color-mix(in srgb,var(--primary) 16%,var(--surface))}.txn-reaction-emoji{font-size:1rem;line-height:1}.txn-reaction-count{font-size:.72rem;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.txn-reaction-add{display:inline-flex;align-items:center;justify-content:center;min-width:1.7rem;min-height:1.7rem;padding:0 .4rem;border-radius:999px;border:1px dashed color-mix(in srgb,var(--border) 80%,var(--muted));background:transparent;color:var(--muted);font-size:.95rem;font-weight:600;cursor:pointer;box-shadow:none}.txn-reaction-add:hover:not(:disabled),.txn-reaction-add-open{border-style:solid;border-color:color-mix(in srgb,var(--primary) 50%,var(--border));color:var(--primary);background:var(--primary-soft)}.txn-reaction-clear{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;min-height:1.5rem;padding:0;border:none;border-radius:999px;background:transparent;color:var(--muted);font-size:1rem;line-height:1;cursor:pointer;box-shadow:none}.txn-reaction-clear:hover:not(:disabled){color:var(--danger);background:var(--danger-soft)}.txn-reaction-picker{display:flex;flex-direction:column;gap:.65rem;margin-top:.45rem;padding:.55rem .55rem .65rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);max-width:min(22rem,100%);max-height:min(22rem,55vh);overflow-y:auto;overscroll-behavior:contain;z-index:5;scrollbar-width:thin}.txn-reaction-section{display:flex;flex-direction:column;gap:.3rem}.txn-reaction-section-label{font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:0 .15rem}.txn-reaction-section-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:.15rem}.txn-reaction-pick{display:flex;align-items:center;justify-content:center;min-height:2.15rem;min-width:0;padding:.15rem;border:1px solid transparent;border-radius:8px;background:transparent;font-size:1.2rem;line-height:1;cursor:pointer;box-shadow:none;transition:background .12s ease,border-color .12s ease}.txn-reaction-pick:hover:not(:disabled){background:var(--primary-soft)}.txn-reaction-pick-selected{border-color:color-mix(in srgb,var(--primary) 50%,var(--border));background:color-mix(in srgb,var(--primary) 14%,transparent)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:480px){.txn-reaction-picker{max-width:100%;max-height:min(18rem,50vh)}.txn-reaction-section-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.auth-card .tabs{margin-bottom:1.1rem}.install-banner{margin:0 0 1rem;padding:.85rem .95rem;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--primary) 35%,var(--border));background:color-mix(in srgb,var(--primary) 12%,var(--surface));box-shadow:var(--shadow)}.install-banner-inner{display:flex;flex-direction:column;gap:.75rem}@media(min-width:420px){.install-banner-inner{flex-direction:row;align-items:center;justify-content:space-between}}.install-banner-copy strong{display:block;font-size:.95rem;font-weight:600;margin-bottom:.2rem}.install-banner-copy p{margin:0;font-size:.85rem;color:var(--muted);line-height:1.35}.install-banner-actions{display:flex;flex-wrap:wrap;gap:.4rem;flex-shrink:0}.install-ios-help{margin-top:.85rem;padding-top:.85rem;border-top:1px solid var(--border);font-size:.9rem}.install-ios-help ol{margin:.4rem 0 .65rem;padding-left:1.25rem}.install-ios-help li{margin-bottom:.35rem}@media(display-mode:standalone){.install-banner{display:none}}code{font-size:.8em;word-break:break-all}
