:root{--bg: #f5f5f7;--card: #ffffff;--text: #1d1d1f;--muted: #6e6e73;--line: #e3e3e8;--income: #248a3d;--expense: #d70015;--transfer: #0a64d8;--accent: #1f6f43;--warn: #b25e00;--income-tint: rgba(36, 138, 61, .07);--expense-tint: rgba(215, 0, 21, .06);--transfer-tint: rgba(10, 100, 216, .06)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #111113;--card: #1c1c1e;--text: #f2f2f7;--muted: #a1a1a6;--line: #2c2c2e;--income: #30d158;--expense: #ff453a;--transfer: #409cff;--accent: #5cc58a;--warn: #ff9f0a;--income-tint: rgba(48, 209, 88, .14);--expense-tint: rgba(255, 69, 58, .14);--transfer-tint: rgba(64, 156, 255, .14)}}:root[data-theme=dark]{--bg: #111113;--card: #1c1c1e;--text: #f2f2f7;--muted: #a1a1a6;--line: #2c2c2e;--income: #30d158;--expense: #ff453a;--transfer: #409cff;--accent: #5cc58a;--warn: #ff9f0a;--income-tint: rgba(48, 209, 88, .14);--expense-tint: rgba(255, 69, 58, .14);--transfer-tint: rgba(64, 156, 255, .14)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button,select{font:inherit;color:inherit}[hidden]{display:none!important}.banner{background:#fff4cc;color:#6b5300;text-align:center;font-size:13px;padding:6px 16px}.login{max-width:420px;margin:12vh auto 0;padding:0 16px;text-align:center}.login img{border-radius:16px}.login h1{margin:12px 0 4px}.apple{margin:24px 0 8px;width:100%;padding:12px;border:0;border-radius:10px;background:#000;color:#fff;font-weight:600;cursor:pointer}@media(prefers-color-scheme:dark){.apple{background:#fff;color:#000}}#apple-sign-in-button{margin:24px auto 8px;display:flex;justify-content:center;text-align:left}#apple-sign-out-button{text-align:left;max-width:100%}#apple-sign-out-button .apple-auth-button{width:100%!important;max-width:196px;box-sizing:border-box}.holder{display:none}.sidebar .bottom{margin-top:auto;display:flex;flex-direction:column;gap:8px}.muted{color:var(--muted);font-size:14px}html,body{height:100%}#root{height:100%;display:flex;flex-direction:column;overflow-y:auto}@media(min-width:701px){html,body{overflow:hidden}}.app{flex:1;min-height:0;display:grid;grid-template-columns:220px 1fr;grid-template-rows:minmax(0,1fr)}.sidebar{border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.sidebar select{width:100%;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav button{text-align:left;padding:8px 10px;border:0;border-radius:8px;background:none;cursor:pointer}.sidebar nav button.active{background:var(--accent);color:#fff}.link{margin-top:auto;border:0;background:none;color:var(--muted);cursor:pointer;text-align:left;padding:8px 10px}.content{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px 8px}.bar h2{margin:0}.month{display:flex;align-items:center;gap:8px}.month span{min-width:150px;text-align:center}.month button{border:1px solid var(--line);background:var(--card);border-radius:8px;width:32px;height:32px;cursor:pointer}.view{flex:1;min-height:0;overflow-y:auto;padding:0 20px 16px}.empty{color:var(--muted);padding:32px 0;text-align:center}.day{display:flex;justify-content:space-between;color:var(--muted);font-size:14px;padding:16px 4px 6px;text-transform:capitalize}.row{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--card)}.row.income{background:var(--income-tint)}.row.expense,.row.reimbursement{background:var(--expense-tint)}.row.transfer{background:var(--transfer-tint)}.row .main{display:flex;flex-direction:column;min-width:0;flex:1}.row .details{color:var(--muted);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row .side{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.amount{white-space:nowrap}.row.income .amount{color:var(--income)}.row.expense .amount,.row.reimbursement .amount{color:var(--expense)}.row.transfer .amount{color:var(--transfer)}.doc{font-size:12px;padding:1px 6px;border-radius:6px;background:var(--line)}.doc.none{background:#ffe2b8;color:#6b3d00}.totals{display:flex;justify-content:space-around;gap:8px;padding:12px 20px;border-top:1px solid var(--line);background:var(--card);flex-shrink:0;box-shadow:0 -4px 12px #0000000f}.totals:empty{display:none}.totals div{display:flex;flex-direction:column;align-items:center}.totals span{color:var(--muted);font-size:13px}.totals .income{color:var(--income)}.totals .expense{color:var(--expense)}.card{background:var(--card);border-radius:12px;border:1px solid var(--line);overflow:hidden}.wallet{display:flex;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.wallet.total{color:var(--muted);border-bottom:0}@media(max-width:700px){.app{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.sidebar{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;flex-wrap:wrap;align-items:center;padding:12px 16px}.sidebar select{flex:1 1 100%}.sidebar nav{flex-direction:row;flex:1 1 100%;overflow-x:auto;scrollbar-width:none}.sidebar nav button{white-space:nowrap}.link{margin:0 0 0 auto}.bar{flex-wrap:wrap;padding:12px 16px 4px}.view{padding:0 16px 12px}.sidebar .bottom{margin:0 0 0 auto;flex-direction:row;align-items:center}.month span{min-width:120px}}.status{color:var(--muted);font-size:14px}.status.error{color:var(--expense)}.syncing{font-size:12px;color:var(--muted)}.login .lang{margin-top:16px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.form{max-width:520px;padding:16px;display:flex;flex-direction:column;gap:10px}.form h3,.form p{margin:0}.form label{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--muted)}.form input{font:inherit;color:var(--text);padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.primary{align-self:flex-start;padding:10px 18px;border:0;border-radius:8px;background:var(--accent);color:#fff;font-weight:600;cursor:pointer}.primary:disabled{opacity:.5;cursor:default}.whoami{font-size:13px;color:var(--muted)}.income{color:var(--income)}.expense{color:var(--expense)}.warn{color:var(--warn)}.small{font-size:13px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 20px 8px}.toolbar.inner{padding:8px 0}.toolbar.inner h4{margin:0;flex:1}.toolbar select,.toolbar input{font:inherit;font-size:14px;color:var(--text);padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.toolbar .search{flex:1 1 200px;min-width:160px}.toolbar.filters select{max-width:220px}.link.back{margin:0 0 8px;padding:4px 0}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card)}.segmented button{border:0;background:none;padding:6px 12px;cursor:pointer;font-size:14px}.segmented button.active{background:var(--accent);color:#fff}.segmented.small{margin-bottom:10px}.row{cursor:pointer}.row.flagged{box-shadow:inset 3px 0 0 var(--warn)}.badge{margin-right:4px;font-size:13px}.badge.ok{color:var(--income)}.badge.warn{color:var(--warn)}.with-running{position:relative}.with-running .running{position:absolute;right:12px;bottom:2px;font-size:11px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;display:flex;justify-content:flex-end;z-index:10}.drawer{width:min(460px,100%);height:100%;overflow-y:auto;background:var(--bg);padding:16px 20px 32px;box-shadow:-8px 0 24px #00000026}.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.drawer-head h3{margin:2px 0 8px}.drawer h4{margin:18px 0 6px;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.03em}.close{border:0;background:var(--line);border-radius:50%;width:30px;height:30px;cursor:pointer}.amount-big{font-size:26px}.amount-big.income{color:var(--income)}.amount-big.expense,.amount-big.reimbursement{color:var(--expense)}.amount-big.transfer{color:var(--transfer)}.fields{margin:0;background:var(--card);border:1px solid var(--line);border-radius:12px}.fields>div{display:flex;justify-content:space-between;gap:12px;padding:9px 14px;border-bottom:1px solid var(--line)}.fields>div:last-child{border-bottom:0}.fields dt{color:var(--muted)}.fields dd{margin:0;text-align:right}.note{margin:6px 0;padding:6px 10px;border-radius:8px;background:var(--card);border:1px solid var(--line);font-size:14px}.thumbs{display:flex;flex-wrap:wrap;gap:8px}.thumbs img{width:120px;height:120px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.thumbs .file{display:inline-block;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.item{display:grid;grid-template-columns:1fr auto auto;gap:8px;padding:6px 0;border-bottom:1px solid var(--line);align-items:baseline}button.wallet{width:100%;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer;align-items:center}button.wallet:hover{background:var(--bg)}.wallet-name{display:flex;flex-direction:column;gap:2px;min-width:0}.wallet .side{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.wallet-head{padding:14px 16px;display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.wallet-head h3{margin:0}.big{font-size:28px;font-weight:600;margin:4px 0}.pill{font-size:11px;font-weight:600;padding:1px 8px;border-radius:999px;background:var(--line)}.check{display:flex;align-items:center;gap:6px;margin-top:8px}.view h4{margin:18px 0 6px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-bottom:16px}.card.dash{padding:14px}.card.dash h4{margin:0 0 10px;color:var(--muted);font-size:14px}.bars{display:flex;align-items:flex-end;gap:6px;height:140px}.bar-group{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}.bar-pair{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:2px}.col{width:40%;max-width:18px;border-radius:3px 3px 0 0;min-height:1px}.col.in,.dot.in{background:var(--income);background:color-mix(in srgb,var(--income) 75%,transparent)}.col.out,.dot.out{background:var(--expense);background:color-mix(in srgb,var(--expense) 70%,transparent)}.bar-label{font-size:11px;color:var(--muted);margin-top:4px}.legend{display:flex;align-items:center;gap:6px;margin-top:8px;color:var(--muted)}.dot{display:inline-block;width:10px;height:10px;border-radius:2px;margin-left:6px}.hbar{display:grid;grid-template-columns:minmax(80px,1fr) 2fr auto;gap:8px;align-items:center;margin:4px 0;font-size:13px}.hbar-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbar-track{height:10px;background:var(--line);border-radius:5px;overflow:hidden}.hbar-fill{display:block;height:100%;background:var(--expense);background:color-mix(in srgb,var(--expense) 70%,transparent)}.check-line{margin:4px 0}.change{padding:8px 12px;background:var(--card);border-bottom:1px solid var(--line)}.change-head{display:flex;gap:8px;align-items:baseline}.change-head .time{margin-left:auto}.act{font-size:13px}.act.transfer{color:var(--transfer)}@media(max-width:700px){.toolbar{padding:0 16px 8px}.toolbar.filters select{flex:1 1 45%;max-width:none}}.add{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:14px;white-space:nowrap}.add.income{color:var(--income)}.add.expense{color:var(--expense)}.add.transfer{color:var(--transfer)}.entry-form{display:flex;flex-direction:column;gap:12px}.entry-form label,.entry-form fieldset label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.entry-form input,.entry-form select,.entry-form textarea{font:inherit;font-size:16px;color:var(--text);padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.entry-form label.check{flex-direction:row;align-items:center;gap:8px;color:var(--text);font-size:15px}.entry-form fieldset{border:1px solid var(--line);border-radius:12px;padding:10px 12px 12px;display:flex;flex-direction:column;gap:10px;margin:0}.entry-form legend{color:var(--muted);font-size:13px;padding:0 4px}.amount-input input{font-size:28px;font-weight:600}.amount-input.income input{color:var(--income)}.amount-input.expense input{color:var(--expense)}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;position:sticky;bottom:0;background:var(--bg);padding:8px 0}.form-actions .link,.entry-actions .link{margin:0}.entry-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:4px 0 10px}.link.danger{color:var(--expense)}.file-button{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px dashed var(--line);border-radius:8px;cursor:pointer;color:var(--text);font-size:14px;width:fit-content;margin-bottom:8px}.file-button.busy{opacity:.6}.thumbs .pending{position:relative;display:inline-block}.thumbs .pending img{width:90px;height:90px}.thumbs .remove{position:absolute;top:4px;right:4px;border:0;border-radius:50%;width:22px;height:22px;background:#0009;color:#fff;cursor:pointer}.pad{padding:0 20px;margin:4px 0}.filters-toggle.on{background:var(--line)}@media(max-width:700px){#root{height:auto;overflow:visible}.app{min-height:100vh;min-height:100dvh}.content,.view{overflow:visible;min-height:auto}.totals{position:sticky;bottom:0;z-index:5}}.tick{display:inline-block;width:18px;color:var(--accent)}.primary.pay{margin:12px 0}.audit-box{border:0;background:none;cursor:pointer;font-size:18px;width:26px;padding:0;margin-right:6px;color:var(--muted);align-self:center}.audit-box.verified{color:var(--income)}.audit-box.doubtful{color:var(--warn)}.row.with-audit{padding-left:6px}.add.on{background:var(--line)}label.add{display:inline-flex;align-items:center;gap:4px}label.add.busy{opacity:.6}.invoice-row{border-bottom:1px solid var(--line)}.invoice-row .wallet{border-bottom:0}.suggestion{display:flex;align-items:center;gap:10px;padding:0 16px 10px}.suggestion .link{margin:0;padding:2px 8px;color:var(--accent);font-weight:600}.note.report{white-space:pre-wrap;margin:0 20px 8px;font:inherit;font-size:14px}.form input[type=range]{padding:0}.wallet.locked{opacity:.7}.card.list{margin-bottom:12px}.chips{display:flex;flex-wrap:wrap;gap:6px}.add.small{font-size:13px;padding:3px 8px}.swatch{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer}.swatch.on{border-color:var(--text)}.wallet.main-cat strong{font-weight:600}.wallet.sub-cat{padding-left:34px}.link.add-sub{margin:6px 16px 10px}.wallet .dot{margin:0 4px 0 0}.entry-form fieldset:disabled{opacity:.6}.banner.preview{background:#e6f0ff;color:#0a3d91;display:flex;justify-content:center;align-items:center;gap:12px}.banner.preview .link{margin:0;padding:0;color:inherit;font-weight:600;text-decoration:underline}.preview-select{font-size:13px!important;padding:4px 6px!important}
