:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;letter-spacing:0;--bg:#f4f6f5;--surface:#fff;--surface-hover:#f6f9f7;--ink:#10201a;--muted:#67766f;--muted-2:#8a9791;--brand:#0c5c3c;--brand-strong:#094a30;--brand-soft:#e6f2ec;--brand-soft-ink:#0c5c3c;--warn:#92610a;--warn-soft:#fbf1de;--danger:#b3303f;--danger-soft:#fbeaec;--border:#e4e9e6;--border-strong:#d3dbd6;--shadow-xs:0 1px 2px #10231a0d;--shadow-sm:0 4px 14px #10231a12;--shadow-md:0 16px 40px #10231a24;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-pill:999px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-weight:400;line-height:1.45}*,:before,:after{box-sizing:border-box}body{min-height:100vh;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}#app{min-height:100vh}h1,h2,h3{letter-spacing:-.01em}.page{width:100%;min-height:100vh}.btn,.submit-btn{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:var(--radius-md);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:.86rem;font-weight:600;transition:background-color .15s,border-color .15s,transform 50ms,box-shadow .15s;display:inline-flex}.btn:hover{background:var(--surface-hover);border-color:var(--border-strong)}.btn:active{transform:translateY(1px)}.btn-primary,.submit-btn{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 1px 2px #0c5c3c26}.btn-primary:hover,.submit-btn:hover{background:var(--brand-strong);border-color:var(--brand-strong)}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:#0000}.btn-danger:hover{background:#f6dade}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-hover)}.btn:disabled,.submit-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.icon-btn{color:var(--muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;flex-shrink:0;place-items:center;width:34px;height:34px;transition:background-color .15s,color .15s;display:grid}.icon-btn:hover{background:var(--surface-hover);color:var(--ink)}.icon-btn.danger:hover{background:var(--danger-soft);color:var(--danger)}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-page{padding:calc(20px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left));background:radial-gradient(600px 420px at 15% 10%, var(--brand-soft), transparent), radial-gradient(500px 360px at 90% 90%, var(--brand-soft), transparent), var(--bg);place-items:center;min-height:100vh;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(400px,100%);box-shadow:var(--shadow-md);padding:32px 28px}.auth-header{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.auth-mark{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--brand), #17805a);color:#fff;place-items:center;width:44px;height:44px;display:grid;box-shadow:0 6px 16px #0c5c3c40}.auth-header h1{margin:0;font-size:1.3rem;font-weight:700}.auth-header p{color:var(--muted);margin:0;font-size:.88rem}.mode-toggle{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3px;margin-top:22px;padding:3px;display:grid}.mode-toggle button{border-radius:calc(var(--radius-md) - 3px);color:var(--muted);cursor:pointer;background:0 0;border:none;padding:8px;font-size:.85rem;font-weight:600;transition:background-color .15s,color .15s}.mode-toggle button.active{background:var(--surface);color:var(--brand);box-shadow:var(--shadow-xs)}.auth-form{gap:16px;margin-top:20px;display:grid}.auth-form label span{color:var(--muted);font-size:.8rem;font-weight:600}.field{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--muted-2);align-items:center;gap:8px;margin-top:6px;padding:11px 12px;transition:border-color .15s,box-shadow .15s;display:flex}.field:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);color:var(--brand)}.field input{width:100%;color:var(--ink);background:0 0;border:none;outline:none;font-size:16px}.auth-form .submit-btn{margin-top:4px;padding:12px}.dashboard-page{min-height:100vh;display:flex}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{background:linear-gradient(135deg, var(--brand), #17805a);color:#fff;border-radius:10px;flex-shrink:0;place-items:center;width:36px;height:36px;display:grid;box-shadow:0 4px 12px #0c5c3c38}.brand h1{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1rem;font-weight:700;overflow:hidden}.brand p{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin:1px 0 0;font-size:.78rem;overflow:hidden}.sidebar-backdrop{z-index:44;background:#0c141061;position:fixed;inset:0}.sidebar{z-index:45;background:var(--surface);border-right:1px solid var(--border);width:100%;padding:calc(18px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left));flex-direction:column;transition:transform .22s;display:flex;position:fixed;inset:0;transform:translate(-100%)}.sidebar.is-open{box-shadow:var(--shadow-md);transform:translate(0)}.sidebar-head{justify-content:space-between;align-items:center;gap:8px;padding:4px 4px 18px;display:flex}.sidebar-upload-btn{justify-content:center;width:100%;margin-bottom:18px;padding:11px}.sidebar-nav{gap:2px;margin:0;padding:0;list-style:none;display:grid}.nav-group-label{color:var(--muted-2);text-transform:uppercase;letter-spacing:.04em;margin:18px 10px 6px;font-size:.72rem;font-weight:700}.nav-item{width:100%;color:var(--muted);border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:10px;font-size:.88rem;font-weight:600;transition:background-color .15s,color .15s;display:flex}.nav-item:hover{background:var(--surface-hover);color:var(--ink)}.nav-item.active{background:var(--brand-soft);color:var(--brand-soft-ink)}.nav-item.disabled{cursor:default;opacity:.55}.nav-item.disabled:hover{color:var(--muted);background:0 0}.nav-item span{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.nav-item .count-pill{padding:2px 8px;font-size:.7rem}.soon-badge{background:var(--bg);border:1px solid var(--border);color:var(--muted-2);text-transform:uppercase;letter-spacing:.02em;border-radius:var(--radius-pill);flex-shrink:0;padding:2px 7px;font-size:.65rem;font-weight:700}.sidebar-footer{border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:auto;padding-top:14px;display:flex}.sidebar-user{flex:1;min-width:0}.sidebar-user strong{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:600;display:block;overflow:hidden}.sidebar-user span{color:var(--muted);font-size:.72rem;display:block}.main-area{flex:1;min-width:0}.content-topbar{z-index:20;padding:calc(14px + env(safe-area-inset-top)) calc(18px + env(safe-area-inset-right)) 14px calc(18px + env(safe-area-inset-left));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:#f4f6f5d9;align-items:center;gap:12px;display:flex;position:sticky;top:0}.hamburger-btn{flex-shrink:0}.content-heading{flex:1;min-width:0}.content-heading h1{margin:0;font-size:1.05rem;font-weight:700}.content-heading p{color:var(--muted);margin:2px 0 0;font-size:.8rem}.content-topbar-actions{flex-shrink:0;gap:6px;display:flex}.content-topbar-actions .btn span{display:none}.content-body{padding:16px calc(18px + env(safe-area-inset-right)) 96px calc(18px + env(safe-area-inset-left))}.panel-icon{background:var(--brand-soft);width:36px;height:36px;color:var(--brand-soft-ink);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.count-pill{background:var(--bg);border:1px solid var(--border);color:var(--muted);border-radius:var(--radius-pill);flex-shrink:0;padding:3px 9px;font-size:.75rem;font-weight:700}.count-pill.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.upload-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--bg);text-align:center;color:var(--muted);margin-top:16px;padding:22px 14px;font-size:.82rem;transition:border-color .15s,background-color .15s}.dropzone.drag-active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.dropzone svg{color:var(--muted-2);margin-bottom:6px}.receipt-grid{grid-template-columns:minmax(0,1fr);gap:10px;margin:0;padding:0;list-style:none;display:grid}.receipt-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-xs);cursor:pointer;align-items:center;gap:12px;padding:14px;transition:background-color .15s,border-color .15s,transform 50ms;display:flex}.receipt-card:hover{background:var(--surface-hover);border-color:var(--border-strong)}.receipt-card:active{transform:translateY(1px)}@media (width>=640px){.receipt-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}.receipt-avatar{background:var(--brand-soft);width:38px;height:38px;color:var(--brand-soft-ink);border-radius:10px;flex-shrink:0;place-items:center;font-size:.85rem;font-weight:700;display:grid}.receipt-main{flex:1;min-width:0}.receipt-main strong{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:600;display:block;overflow:hidden}.receipt-main p{color:var(--muted);margin:2px 0 0;font-size:.78rem}.item-right{flex-shrink:0;align-items:center;gap:4px;display:flex}.amount{color:var(--ink);white-space:nowrap;font-size:.88rem;font-weight:700}.chev{color:var(--muted-2)}.empty-state{text-align:center;color:var(--muted);margin-top:14px;padding:32px 12px}.empty-state svg{color:var(--muted-2);margin-bottom:8px}.empty-state p{margin:0;font-size:.85rem}.filter-pills{flex-wrap:wrap;gap:6px;margin-bottom:18px;display:flex;position:relative}.filter-pill{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:var(--radius-pill);cursor:pointer;padding:7px 14px;font-size:.82rem;font-weight:600;transition:background-color .15s,color .15s,border-color .15s}.filter-pill:hover{background:var(--surface-hover)}.filter-pill.active{background:var(--brand);color:#fff;border-color:var(--brand)}.filter-pill-range{align-items:center;gap:6px;display:inline-flex}.range-popover{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(360px,100%);box-shadow:var(--shadow-md);padding:14px;position:absolute;top:calc(100% + 8px);left:0;right:0}.range-popover-actions{gap:8px;margin-top:12px;display:flex}.range-popover-actions .btn{flex:1;padding:9px;font-size:.85rem}.range-pop-enter-active,.range-pop-leave-active{transition:opacity .14s,transform .14s}.range-pop-enter-from,.range-pop-leave-to{opacity:0;transform:translateY(-4px)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-xs);align-items:center;gap:12px;padding:14px;display:flex}.stat-body{flex:1;min-width:0;container-type:inline-size}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;font-weight:700;display:block}.stat-value{color:var(--ink);margin-top:2px;font-size:1.25rem;font-weight:700;display:block}.stat-value.brand{color:var(--brand)}.stat-value-fit{white-space:nowrap;font-size:clamp(.75rem, calc(166.7cqw / var(--len,10)), 1.25rem)}.stat-value-sm{text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-size:.92rem;overflow:hidden}.insight-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);margin-bottom:16px;padding:18px}.insight-card>header{align-items:flex-start;gap:12px;display:flex}.insight-card h2{margin:0;font-size:.95rem;font-weight:700}.insight-card>header p{color:var(--muted);margin:3px 0 0;font-size:.8rem}.bar-chart{margin-top:16px}.bar-track{align-items:flex-end;gap:3px;height:178px;padding-top:18px;display:flex}.bar-col{flex:1;justify-content:center;align-items:flex-end;min-width:3px;height:100%;display:flex}.bar{background:var(--brand);opacity:.82;border-radius:4px 4px 0 0;width:100%;max-width:22px;min-height:2px;transition:opacity .15s,background-color .15s;position:relative}.bar-col:hover .bar{opacity:1;background:var(--brand-strong)}.bar-value{color:var(--ink);white-space:nowrap;margin-bottom:3px;font-size:.62rem;font-weight:700;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.bar-labels{gap:3px;margin-top:6px;display:flex}.bar-label-item{text-align:center;min-width:3px;color:var(--muted-2);white-space:nowrap;flex:1;font-size:.66rem;overflow:hidden}.merchant-bars{gap:8px;margin:16px 0 0;padding:0;list-style:none;display:grid}.merchant-row{border-radius:var(--radius-md);background:var(--bg);cursor:pointer;align-items:center;gap:6px;min-width:0;height:38px;padding:0 10px 0 12px;transition:box-shadow .15s;display:flex;position:relative;overflow:hidden}.merchant-row:hover{box-shadow:inset 0 0 0 1px var(--border-strong)}.merchant-row-chev{z-index:1;flex-shrink:0;position:relative}.merchant-row-fill{background:var(--brand-soft);width:0;transition:width .3s;position:absolute;inset:0}.merchant-row-label{z-index:1;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;padding-right:10px;font-size:.85rem;font-weight:600;position:relative;overflow:hidden}.merchant-row-amount{z-index:1;color:var(--ink);white-space:nowrap;font-size:.85rem;font-weight:700;position:relative}.pagination{justify-content:center;align-items:center;gap:12px;margin-top:14px;display:flex}.tab-actions{flex-wrap:wrap;gap:8px;margin:14px 0;display:flex}.owner-group-label{color:var(--muted-2);text-transform:uppercase;letter-spacing:.04em;margin:18px 2px 6px;font-size:.72rem;font-weight:700}.owner-group-label:first-of-type{margin-top:4px}.amount.negative{color:var(--danger)}.pot-list{grid-template-columns:minmax(0,1fr);gap:10px;margin:14px 0 0;padding:0;list-style:none;display:grid}@media (width>=640px){.pot-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}}.pot-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-xs);padding:14px}.pot-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.pot-card-head strong{text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;overflow:hidden}.pot-progress{border-radius:var(--radius-pill);background:var(--bg);min-width:0;height:10px;margin-top:10px;overflow:hidden}.pot-progress-fill{border-radius:var(--radius-pill);background:var(--brand-soft-ink);height:100%;transition:width .3s,background-color .15s}.pot-progress-fill.goal-reached{background:var(--brand-strong)}.pot-card-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.goal-check{color:var(--brand-strong);vertical-align:-2px;margin-left:4px}.pot-card-actions{gap:6px;display:flex}.pot-card-actions .btn{padding:6px 10px;font-size:.78rem}.invite-code-box{background:var(--brand-soft);border-radius:var(--radius-lg);justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:14px 16px;display:flex}.invite-code-box strong{letter-spacing:.08em;color:var(--brand-soft-ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.3rem}.status-badge{border-radius:var(--radius-pill);text-transform:capitalize;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.status-badge.accepted{background:var(--brand-soft);color:var(--brand-soft-ink)}.status-badge.needs_review{background:var(--warn-soft);color:var(--warn)}.fab{right:18px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:30;background:var(--brand);color:#fff;cursor:pointer;width:56px;height:56px;box-shadow:var(--shadow-md);border:none;border-radius:50%;place-items:center;transition:background-color .15s,transform 50ms;display:grid;position:fixed}.fab:hover{background:var(--brand-strong)}.fab:active{transform:scale(.96)}.sheet-backdrop{z-index:40;background:#0c141061;position:fixed;inset:0}.detail-sheet{z-index:41;background:var(--surface);box-shadow:var(--shadow-md);flex-direction:column;display:flex;position:fixed;inset:0}.sheet-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:14px 16px;display:flex}.sheet-header .heading-text{flex:1;min-width:0}.sheet-header h2{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1rem;font-weight:700;overflow:hidden}.sheet-body{flex:1;padding:16px;overflow-y:auto}.sheet-footer{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;gap:8px;padding:12px 16px;display:flex}.sheet-footer .btn{flex:1}.sheet-fade-enter-active,.sheet-fade-leave-active{transition:opacity .18s}.sheet-fade-enter-from,.sheet-fade-leave-to{opacity:0}.sheet-slide-enter-active,.sheet-slide-leave-active{transition:transform .22s}.sheet-slide-enter-from,.sheet-slide-leave-to{transform:translateY(100%)}@media (width>=900px){.detail-sheet{border-left:1px solid var(--border);width:min(480px,100%);inset:0 0 0 auto}.sheet-slide-enter-from,.sheet-slide-leave-to{transform:translate(100%)}}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:4px;display:grid}.detail-grid.single-column{grid-template-columns:minmax(0,1fr)}.detail-grid label{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);padding:8px 10px}.detail-grid label span{color:var(--muted);margin-bottom:4px;font-size:.72rem;font-weight:600;display:block}.detail-grid input,.detail-grid select{width:100%;color:var(--ink);background:0 0;border:none;outline:none;padding:0;font-size:16px}.sheet-form-grid{margin-top:16px}.edit-row input,.edit-row select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;padding:8px;font-size:16px}.section-head{justify-content:space-between;align-items:center;margin-top:20px;display:flex}.section-head h3{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:0;font-size:.85rem;font-weight:700}.sheet-body h3{margin:20px 0 8px}.edit-row{grid-template-columns:minmax(0,2fr) minmax(0,.7fr) minmax(0,.7fr) minmax(0,.7fr) auto;gap:6px;width:100%;display:grid}.table-list{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.table-list li{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:9px 10px;font-size:.86rem;display:flex}.item-left{flex:1;min-width:0}.drill-row{cursor:pointer;transition:background-color .15s,border-color .15s}.drill-row:hover{background:var(--surface-hover);border-color:var(--border-strong)}.item-left strong{text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;display:block;overflow:hidden}.muted-inline{color:var(--muted);margin:2px 0 0;font-size:.78rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.error{color:var(--danger);margin:10px 0 0;font-size:.85rem}.muted{color:var(--muted);font-size:.86rem}.issues-list{border-radius:var(--radius-md);background:var(--danger-soft);color:#8b2532;gap:4px;margin:14px 0 0;padding:10px 12px;font-size:.82rem;list-style:none;display:grid}.issues-list li{align-items:flex-start;gap:6px;display:flex}@media (width>=900px){.sidebar{flex-shrink:0;width:280px;height:100vh;transition:none;position:sticky;top:0;transform:none}.sidebar-backdrop,.hamburger-btn,.sidebar-close,.fab{display:none}.content-topbar{padding:16px 32px}.content-topbar-actions .btn span{display:inline}.content-body{padding:24px 32px}}@media (width<=640px){.detail-grid,.edit-row{grid-template-columns:minmax(0,1fr)}}
