:root{--navy:#0b2a5b;--navy-hover:#143a78;--navy-soft:#e8edf6;--bg:#f5f3ee;--card:#fff;--line:#e8e3d8;--line-strong:#d6cfbf;--field:#ddd6c8;--text:#1b2230;--muted:#667085;--faint:#98a2b3;--profit:#1f6b3a;--profit-bg:#e7f3ea;--loss:#9b2c20;--loss-bg:#fbebe8;--warn:#8a5a00;--warn-strong:#5b3d07;--warn-bg:#fdf3df;--warn-line:#f0dcae;--buy:#1e40af;--buy-bg:#e8eefc;--conv:#5b3fa6;--conv-bg:#efeafb;--pay:#0f5f6b;--pay-bg:#e3f2f3;--neutral-bg:#efece5;--radius:12px;--radius-lg:16px;--tabbar:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-variant-numeric:tabular-nums;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-height:100dvh;margin:0;font-size:15px;line-height:1.45}a{color:var(--navy)}h1,h2,h3{margin:0}button{font:inherit;cursor:pointer;border-radius:var(--radius);border:0;min-height:46px;padding:0 16px;font-weight:600}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline-offset:2px;outline:3px solid #8fb0e6}.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover:not(:disabled){background:var(--navy-hover)}.btn-secondary{color:var(--text);border:1px solid var(--line-strong);background:#fff}.btn-secondary:hover:not(:disabled){background:#faf8f4}.btn-danger{color:var(--loss);background:#fff;border:1px solid #e3b5ad}.btn-danger-solid{background:var(--loss);color:#fff}.btn-small{min-height:36px;padding:0 12px;font-size:14px}.btn-wide{width:100%}.btn-link{color:var(--navy);background:0 0;min-height:36px;padding:0 4px;text-decoration:underline}input,select,textarea{font:inherit;color:var(--text);border:1px solid var(--field);border-radius:var(--radius);background:#fff;width:100%;padding:11px 12px;font-size:16px}input::placeholder,textarea::placeholder{color:var(--faint)}input:focus,select:focus,textarea:focus{border-color:var(--navy);outline-offset:0;outline:3px solid #d6e2f5}input:disabled,select:disabled{color:var(--muted);background:#f3f1ec}textarea{resize:vertical}label{color:#475467;font-size:13px;font-weight:600}.field{flex-direction:column;gap:6px;min-width:0;margin:0 0 14px;display:flex}.hint{color:var(--muted);font-size:13px}.grid2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 12px;display:grid}.segmented{background:#ebe6da;border-radius:14px;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;margin:0 0 18px;padding:3px;display:grid}.segmented button{color:#475467;background:0 0;border-radius:11px;min-height:38px;padding:0 4px;font-size:13px;font-weight:600}.segmented button[aria-pressed=true],.segmented button[aria-selected=true]{color:var(--navy);background:#fff;box-shadow:0 1px 2px #1018281a}.toggle{border:1px solid var(--line-strong);border-radius:var(--radius);grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.toggle button{color:var(--text);background:#fff;border-radius:0;min-height:44px}.toggle button[aria-pressed=true]{background:var(--navy);color:#fff}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line-strong);min-height:38px;color:var(--text);background:#fff;border-radius:999px;padding:0 14px;font-size:14px;font-weight:500}.chip[aria-pressed=true]{border-color:var(--navy);background:var(--navy-soft);color:var(--navy);font-weight:700}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg)}.card-pad{padding:14px 16px}.pill{white-space:nowrap;border-radius:999px;align-items:center;padding:2px 10px;font-size:12px;font-weight:700;display:inline-flex}.pill-buy{background:var(--buy-bg);color:var(--buy)}.pill-sale{background:var(--profit-bg);color:var(--profit)}.pill-conversion{background:var(--conv-bg);color:var(--conv)}.pill-payment{background:var(--pay-bg);color:var(--pay)}.pill-return,.pill-expense,.pill-neutral{background:var(--neutral-bg);color:#475467}.pill-complete{background:var(--profit-bg);color:var(--profit)}.pill-incomplete{color:var(--warn);background:#f6e3b8}.pill-deleted{background:var(--neutral-bg);color:var(--muted)}.result{white-space:nowrap;font-weight:700}.result.profit{color:var(--profit)}.result.loss{color:var(--loss)}.result.even{color:#475467}.result-pill{border-radius:999px;padding:3px 10px;font-size:13px;display:inline-block}.result-pill.profit{background:var(--profit-bg)}.result-pill.loss{background:var(--loss-bg)}.result-pill.even{background:var(--neutral-bg)}.banner{border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px;padding:12px 14px;font-size:14px;display:flex}.banner.warn{background:var(--warn-bg);color:var(--warn-strong)}.banner.error{background:var(--loss-bg);color:var(--loss)}.banner.ok{background:var(--profit-bg);color:var(--profit)}.banner.info{background:var(--navy-soft);color:var(--navy)}.muted{color:var(--muted)}.plain{margin:0;padding:0;list-style:none}.app{min-height:100dvh}.main{padding:16px 16px calc(var(--tabbar) + 24px + env(safe-area-inset-bottom));max-width:760px;margin:0 auto}.main.focus{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.sidebar{display:none}.mobile-top{padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:var(--bg);justify-content:space-between;align-items:center;display:flex}.mobile-top img{border-radius:6px;width:auto;height:30px;display:block}.tabbar{z-index:20;border-top:1px solid var(--line);height:calc(var(--tabbar) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fff;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--muted);flex-direction:column;align-items:center;gap:2px;min-width:64px;padding:6px 0;font-size:11px;font-weight:600;text-decoration:none;display:flex}.tab svg{width:22px;height:22px}.tab.active{color:var(--navy)}.tab-new{background:var(--navy);color:#fff;border-radius:999px;align-items:center;gap:6px;padding:10px 18px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.tab-new svg{width:18px;height:18px}.preview-banner{color:#fff;text-align:center;background:#5b21b6;padding:6px 12px;font-size:12px}.offline-banner{background:var(--warn-bg);color:var(--warn-strong);text-align:center;padding:8px 12px;font-size:13px}.page-head{justify-content:space-between;align-items:flex-start;gap:12px;margin:4px 0 18px;display:flex}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-size:11px;font-weight:700}.page-title{color:var(--navy);letter-spacing:-.015em;font-size:26px;font-weight:800;line-height:1.15}.page-sub{color:var(--muted);margin-top:4px;font-size:14px}.icon-btn{border:1px solid var(--line);width:40px;min-height:40px;color:var(--muted);background:#fff;border-radius:999px;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.section-title{color:var(--text);justify-content:space-between;align-items:center;gap:8px;margin:22px 0 10px;font-size:16px;font-weight:700;display:flex}.form-footer{z-index:25;border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;gap:10px;display:flex;position:fixed;bottom:0;left:0;right:0}.form-footer .inner{gap:10px;width:100%;max-width:760px;margin:0 auto;display:flex}.form-footer .btn-secondary{flex:1}.form-footer .btn-primary{flex:2}.signin{justify-content:center;align-items:center;min-height:100dvh;padding:24px 16px;display:flex}.signin .card{text-align:center;width:100%;max-width:380px;padding:28px 24px}.signin img{width:100%;max-width:230px;height:auto;margin:0 auto 10px;display:block}.signin p.lead{color:var(--muted);margin:0 0 18px}.signin form{text-align:left}.signin button{margin-top:6px}.balances{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.balance{padding:12px 14px}.balance .code{color:var(--muted);font-size:12px;font-weight:700}.balance .amount{color:var(--navy);letter-spacing:-.01em;font-size:22px;font-weight:800}.balance .note{color:var(--muted);font-size:12px}.attention{text-align:left;background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--radius-lg);width:100%;color:var(--warn-strong);min-height:0;margin-top:12px;padding:12px 14px;font-weight:400;display:block}.attention strong{font-size:15px}.attention .detail{margin-top:2px;font-size:13px}.attention.clear{background:var(--profit-bg);color:var(--profit);border-color:#cfe6d6}.filter-row{scrollbar-width:none;gap:8px;margin:0 0 10px;padding-bottom:2px;display:flex;overflow-x:auto}.filter-row::-webkit-scrollbar{display:none}.filter-row .chip{flex:none}.search-row{gap:8px;margin-bottom:10px;display:flex}.search-row input{flex:1;min-width:0}.filters{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;padding:12px;display:grid}.filters .field{margin:0}.list{overflow:hidden}.list-item{text-align:left;border:0;border-top:1px solid var(--line);width:100%;min-height:0;color:var(--text);background:0 0;border-radius:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-weight:400;text-decoration:none;display:flex}.list-item:first-child{border-top:0}.list-item:hover{background:#fbfaf7}.list-item .main-col{flex:1;min-width:0}.list-item .who{text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-weight:700;overflow:hidden}.list-item .meta{color:var(--muted);font-size:13px}.list-item .meta.warn{color:var(--warn)}.list-item .right{text-align:right;flex-shrink:0}.list-item .figure{font-weight:800}.list-item .sub-figure{color:var(--muted);font-size:13px}.empty{text-align:center;color:var(--muted);padding:28px 16px}.total-panel{background:var(--navy-soft);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px;padding:14px 16px;display:flex}.total-panel span{color:var(--muted)}.total-panel strong{color:var(--navy);letter-spacing:-.01em;font-size:24px}.inline-new{border-left:3px solid var(--navy-soft);margin-bottom:4px;padding-left:12px}.panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;margin:0 0 16px;padding:14px 16px}.panel h3{color:var(--navy);margin:0 0 10px;font-size:15px}.kv{justify-content:space-between;gap:12px;padding:6px 0;font-size:14px;display:flex}.kv+.kv{border-top:1px solid #f0ece3}.kv .k{color:var(--muted)}.kv .v{text-align:right;font-weight:600}.kv.total{border-top:1px solid var(--line-strong);margin-top:4px;padding-top:10px}.kv.total .k{color:var(--text);font-weight:700}.source{border-top:1px solid var(--line);padding:10px 0}.source:first-of-type{border-top:0;padding-top:0}.source .name{font-weight:700}.hero{border-radius:var(--radius-lg);border:1px solid var(--line);background:#fff;margin-bottom:12px;padding:14px 16px}.hero.incomplete{background:var(--warn-bg);border-color:var(--warn-line)}.hero.complete{background:var(--profit-bg);border-color:#cfe6d6}.hero .figures{grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;display:grid}.hero .fig-label{color:var(--warn);font-size:12px}.hero.complete .fig-label{color:var(--profit)}.hero .fig{color:var(--warn-strong);letter-spacing:-.01em;font-size:20px;font-weight:800}.hero.complete .fig{color:var(--profit)}.actions{gap:10px;margin:0 0 6px;display:flex}.actions .btn-primary{flex:2}.actions details{flex:1;position:relative}.actions summary{border-radius:var(--radius);border:1px solid var(--line-strong);cursor:pointer;background:#fff;justify-content:center;align-items:center;min-height:46px;font-weight:600;list-style:none;display:flex}.actions summary::-webkit-details-marker{display:none}.menu{z-index:15;border:1px solid var(--line);background:#fff;border-radius:14px;min-width:220px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 28px #10182824}.menu button{text-align:left;width:100%;color:var(--text);background:0 0;border-radius:10px;min-height:44px;font-weight:500}.menu button:hover{background:#f6f4ef}.menu button.danger{color:var(--loss)}.ledger .row{border-top:1px solid var(--line);padding:12px 14px}.ledger .row:first-child{border-top:0}.ledger .top{align-items:flex-start;gap:10px;display:flex}.ledger .what-col{flex:1;min-width:0}.ledger .date{color:var(--muted);font-size:12px;font-weight:700}.ledger .what{font-weight:700}.ledger .note{color:var(--muted);font-size:13px}.ledger .amt{text-align:right;white-space:nowrap;min-width:0;font-weight:800}.ledger .bal{text-align:right;white-space:nowrap;min-width:96px;font-weight:800}.ledger .plus{color:var(--profit)}.ledger .minus{color:var(--loss)}.ledger .nochange{color:var(--faint);font-size:13px;font-weight:600}.ledger .head{border-bottom:1px solid var(--line);color:var(--muted);background:#faf8f3;gap:10px;padding:10px 14px;font-size:12px;font-weight:700;display:flex}.ledger .head .what-col{flex:1}.ledger button.expand{all:unset;cursor:pointer;width:100%;display:block}.ledger button.expand:focus-visible{border-radius:6px;outline:3px solid #8fb0e6}.breakdown{background:#f4f2ec;border-radius:12px;margin-top:8px;padding:10px 12px}.details{padding:4px 16px}.details .kv{padding:10px 0}.table{border-collapse:collapse;width:100%;font-size:14px}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px 12px}.table th{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:#faf8f3;font-size:12px}.summary .kv{padding:11px 16px}.summary .kv+.kv{border-top:1px solid var(--line)}.month-row{align-items:flex-end;gap:10px;margin-bottom:14px;display:flex}.month-row .field{flex:1;margin:0}.settings-card{margin-bottom:14px;padding:4px 16px 14px}.settings-card h2{padding:14px 0 6px;font-size:16px}.setting-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.setting-row:first-of-type{border-top:0}.row-buttons{flex-shrink:0;gap:6px;display:flex}.edit-row{flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;display:flex}.edit-row input,.edit-row select{flex:8rem;width:auto}.danger-zone{border-color:#efc9c2}@media (width>=900px){.mobile-top,.tabbar{display:none}.app{grid-template-columns:260px minmax(0,1fr);display:grid}.sidebar{background:var(--navy);color:#fff;flex-direction:column;height:100dvh;padding:22px 18px;display:flex;position:sticky;top:0}.sidebar .logo-card{background:#fff;border-radius:16px;margin-bottom:26px;padding:14px}.sidebar .logo-card img{width:100%;height:auto;display:block}.sidebar .label{letter-spacing:.12em;text-transform:uppercase;color:#9fb1d1;margin:0 0 10px 10px;font-size:11px;font-weight:700}.sidebar nav{flex-direction:column;gap:4px;display:flex}.sidebar nav a{color:#dbe4f3;border-radius:12px;align-items:center;gap:10px;padding:11px 12px;font-weight:600;text-decoration:none;display:flex}.sidebar nav a svg{width:20px;height:20px}.sidebar nav a.active,.sidebar nav a:hover{color:#fff;background:#ffffff1a}.sidebar .new-link{color:var(--navy);background:#fff;justify-content:center;margin:18px 0 0}.sidebar .new-link:hover{color:var(--navy)!important;background:#eef2f9!important}.sidebar .foot{color:#c3cfe3;border-top:1px solid #ffffff24;margin-top:auto;padding-top:14px;font-size:13px}.sidebar .foot .dot{background:#4ade80;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.main{max-width:980px;margin:0;padding:32px 40px 48px}.main.focus{padding-bottom:110px}.page-title{font-size:34px}.form-footer{left:260px}.form-footer .inner{justify-content:flex-end;max-width:900px;margin:0;padding-left:24px}.form-footer .btn-secondary,.form-footer .btn-primary{flex:none;min-width:140px}.entry-card{border:1px solid var(--line);background:#fff;border-radius:20px;padding:24px}}@media (width<=600px){.table thead{display:none}.table,.table tbody,.table tr,.table td{width:100%;display:block}.table tr{border-bottom:1px solid var(--line);padding:8px 14px}.table td{text-align:right;border:0;justify-content:space-between;gap:12px;padding:3px 0;display:flex}.table td:before{content:attr(data-label);color:var(--muted);text-align:left;font-weight:600}}.ledger .figs{align-items:flex-start;gap:14px;display:flex}.ledger .figs .amt{min-width:120px}.ledger .bal-label{display:none}.ledger .head-figs{gap:14px;display:flex}.ledger .head-figs span:first-child{text-align:right;min-width:120px}.ledger .head-figs span:last-child{text-align:right;min-width:96px}@media (width<=600px){.ledger .figs{flex-direction:column;align-items:flex-end;gap:2px}.ledger .figs .amt{min-width:0}.ledger .bal{min-width:0;color:var(--muted);font-size:12px;font-weight:600}.ledger .bal-label{display:inline}.ledger .head-figs span:first-child{display:none}.ledger .head-figs span:last-child{min-width:0}}.mobile-top img{height:36px}.today{color:var(--text);padding:12px 16px;text-decoration:none;display:block}.today:hover{background:#fdfcf9}.today-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.today-head strong{color:var(--navy);font-size:16px}.segmented button{white-space:normal;padding:6px 4px;line-height:1.2}.vault-lines{color:#475467;margin:6px 0 0;padding:0;font-size:12px;list-style:none}.vault-lines li{padding:2px 0}.today-line{border-radius:var(--radius-lg);border:1px solid var(--line);color:var(--text);background:#fff;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:14px 16px;text-decoration:none;display:flex}.today-line.today-profit{background:var(--profit-bg);border-color:#cfe6d6}.today-line.today-loss{background:var(--loss-bg);border-color:#efc9c2}.today-label{color:var(--muted);font-size:12px;font-weight:600;display:block}.today-value{margin-top:2px;font-size:19px;font-weight:800;display:block}.today-value .result{font-weight:800}.today-sub{color:var(--muted);margin-top:2px;font-size:13px;display:block}.today-arrow{color:var(--muted);font-size:24px}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.tile{border-radius:var(--radius-lg);border:1px solid var(--line);min-height:108px;color:var(--text);background:#fff;flex-direction:column;justify-content:space-between;gap:18px;padding:14px;text-decoration:none;display:flex}.tile:hover{border-color:var(--line-strong)}.tile-primary{background:var(--navy);border-color:var(--navy);color:#fff}.tile-primary:hover{background:var(--navy-hover)}.tile-warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-strong)}.tile-icon{color:inherit;opacity:.9}.tile-plain .tile-icon{color:var(--navy)}.tile-value{letter-spacing:-.01em;font-size:20px;font-weight:800;display:block}.tile-plain .tile-value{color:var(--navy)}.tile-label{font-size:14px;font-weight:700;display:block}.tile-plain .tile-label{color:#475467}@media (width>=900px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
