:root{--bg:#FBF6EF;--surface:#FFFFFF;--surfaceAlt:#F5EADC;--border:#E8D9C7;--text:#2B1A10;--textMuted:#7A5A44;--primary:#A3501D;--onPrimary:#FFFFFF;--accent:#D98248;--income:#1F7A4A;--expense:#B3261E;--transfer:#5B6B7A;--brand-caramel:#D98248;--brand-tan:#D6A176;--brand-cream:#FAEFE4;--brand-bark:#612707;--brand-espresso:#381809;--brand-grizzle:#9C948A}@media (prefers-color-scheme:dark){:root{--bg:#1C130D;--surface:#2A1D15;--surfaceAlt:#36261B;--border:#4A3526;--text:#F7EDE2;--textMuted:#C4A58C;--primary:#E8955A;--onPrimary:#1C130D;--accent:#D6A176;--income:#5BC48A;--expense:#F07B72;--transfer:#9FB0C0}}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--text);font-family:Noto Sans Lao,Phetsarath OT,system-ui,-apple-system,Segoe UI,sans-serif}h1,h2,h3,p{margin:0}h1{font-size:22px}h3{font-size:15px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.select-like,input,select,textarea{width:100%;padding:11px 12px;border-radius:12px;border:1px solid var(--border);background:var(--surface);min-width:0;text-align:left}label{display:grid;grid-gap:4px;gap:4px}.muted{color:var(--textMuted)}.small{font-size:13px}.inc{color:var(--income)}.exp,.neg{color:var(--expense)}.trf{color:var(--transfer)}.row{display:flex;align-items:center}.between{justify-content:space-between}.gap{gap:8px}.shell{min-height:100dvh}.nav{position:fixed;z-index:10;background:var(--surface);border-color:var(--border);display:flex}.nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--textMuted);font-size:11px}.nav-item.on{color:var(--primary);font-weight:600}.nav-icon{font-size:20px;line-height:1}.nav-item.primary .nav-icon{background:var(--primary);color:var(--onPrimary);border-radius:14px;width:40px;height:40px;display:grid;place-items:center;font-size:24px}@media (min-width:821px){.nav{inset:0 auto 0 0;width:84px;flex-direction:column;align-items:center;gap:18px;padding:16px 0;border-right:1px solid var(--border)}.nav-brand img{border-radius:10px}.content{margin-left:84px}}@media (max-width:820px){.nav{inset:auto 0 0 0;height:64px;justify-content:space-around;align-items:center;border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.nav-brand{display:none}.content{padding-bottom:80px}}.wrap{max-width:1100px;margin:0 auto;padding:16px;display:grid;grid-gap:14px;gap:14px}.wrap.narrow{max-width:640px}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px 16px;display:grid;grid-gap:10px;gap:10px}.btn{background:var(--primary);color:var(--onPrimary);border:0;border-radius:12px;padding:11px 18px;font-weight:600;cursor:pointer;text-align:center;display:inline-block}.btn.ghost{background:var(--surfaceAlt);color:var(--text)}.btn.small{padding:6px 12px;font-size:13px}.btn.danger{color:var(--expense)}.btn:disabled{opacity:.5;cursor:default}.badge{background:var(--surfaceAlt);border-radius:999px;padding:1px 8px;font-size:12px}.hero .big{font-size:30px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hero .mid{font-size:20px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hero-grid{display:grid;grid-template-columns:1fr auto;grid-gap:12px;gap:12px;align-items:end}.month-line{flex-wrap:wrap}.home-cols{display:grid;grid-gap:14px;gap:14px}@media (min-width:900px){.home-cols{grid-template-columns:380px 1fr;align-items:start}}.col{display:grid;grid-gap:14px;gap:14px}.amount-input{font-size:28px;font-weight:700;padding:10px 14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:6px 12px;cursor:pointer;font-size:14px}.chip.on{background:var(--primary);color:var(--onPrimary);border-color:var(--primary)}.seg{display:flex;background:var(--surfaceAlt);border-radius:12px;padding:3px;gap:3px}.seg button{flex:1 1;border:0;background:transparent;padding:9px;border-radius:10px;cursor:pointer;font-weight:600;color:var(--textMuted)}.seg button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0002}.seg button.on.exp{color:var(--expense)}.seg button.on.inc{color:var(--income)}.seg button.on.trf{color:var(--transfer)}.seg.small button{padding:5px 8px;font-size:13px}.waiting .wait-row{display:grid;grid-template-columns:1fr auto;grid-gap:6px 10px;gap:6px 10px;align-items:center;border-top:1px solid var(--border);padding-top:8px}.waiting .wait-row .row{grid-column:1/-1;justify-content:flex-end}.link-row{display:flex!important;justify-content:space-between}.acc-group{display:grid;grid-gap:2px;gap:2px}.acc-row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.acc-row.big-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;border-top:1px solid var(--border);padding:10px 0}.list{list-style:none;margin:0;padding:0}.tx-row{display:grid;grid-template-columns:32px 1fr auto;grid-gap:10px;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--border)}.list li:first-child .tx-row{border-top:0}.tx-icon{font-size:20px;text-align:center}.tx-main{display:grid;min-width:0}.tx-main>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tx-row>span:last-child{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.day{gap:0}.day-head{padding-bottom:4px}.totals{display:flex;flex-wrap:wrap;gap:8px 18px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.filters{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:center}.month-nav{justify-content:center}.flag{color:var(--expense)}.txform{display:grid;grid-gap:14px;gap:14px}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}@media (max-width:520px){.grid2{grid-template-columns:1fr}}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));grid-gap:8px;gap:8px}.cat{display:grid;justify-items:center;grid-gap:4px;gap:4px;padding:10px 6px;border:1px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer;font-size:13px;text-align:center}.cat.on{border-color:var(--primary);background:var(--surfaceAlt)}.cat-icon{font-size:24px}.sticky-actions{position:-webkit-sticky;position:sticky;bottom:72px;background:var(--bg);padding:8px 0}@media (min-width:821px){.sticky-actions{bottom:0}}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px;gap:10px;margin:8px 0 14px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px;display:grid;grid-gap:6px;gap:6px;font-weight:600}.tile.soon{opacity:.55}.tile-icon{font-size:26px}.login{min-height:100dvh;display:grid;place-content:center;justify-items:center;grid-gap:12px;gap:12px;padding:16px;text-align:center}.login img{border-radius:28px}.form{display:grid;grid-gap:10px;gap:10px;width:min(340px,100%);margin-top:8px}.link{background:none;border:0;color:var(--primary);cursor:pointer;text-decoration:underline}.ibadge{display:inline-grid;place-items:center;border-radius:30%;flex:none;background:var(--surfaceAlt)}.emo{display:block;flex:none}.nav-item:not(.on) .emo{opacity:.75;filter:saturate(.7)}.tx-icon{display:grid;place-items:center}.tx-row{grid-template-columns:40px 1fr auto}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px 4px 4px}.chip.on .ibadge{background:#fff8!important}.cat{gap:6px}.select-like .ibadge{margin:-4px 0}.badge.warn{background:var(--expense);color:#fff}.badge,.badge.warn{margin-left:6px}.nav-icon{display:grid;place-items:center}.toggle{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:4px 0}.toggle>span{display:grid}.toggle input{width:22px;height:22px;accent-color:var(--primary);flex:none}.mid{font-size:20px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bar{height:8px;background:var(--surfaceAlt);overflow:hidden}.bar,.bar>span{border-radius:99px}.bar>span{display:block;height:100%;background:var(--accent)}.bar>span.hot{background:var(--expense)}a.card{color:inherit}.seg>a{flex:1 1;text-align:center;padding:6px 8px;border-radius:10px;font-weight:600;color:var(--textMuted);font-size:13px}.seg>a.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0002}.tbl{width:100%;border-collapse:collapse;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:14px}.tbl th{text-align:left;color:var(--textMuted);font-weight:500;font-size:12px;padding:4px}.tbl td{border-top:1px solid var(--border);padding:8px 4px;vertical-align:top}.price-in{width:90px;padding:6px 8px}.dim{opacity:.55}:root[data-theme=dark]{--bg:#1C130D;--surface:#2A1D15;--surfaceAlt:#36261B;--border:#4A3526;--text:#F7EDE2;--textMuted:#C4A58C;--primary:#E8955A;--onPrimary:#1C130D;--accent:#D6A176;--income:#5BC48A;--expense:#F07B72;--transfer:#9FB0C0}:root[data-theme=light]{--bg:#FBF6EF;--surface:#FFFFFF;--surfaceAlt:#F5EADC;--border:#E8D9C7;--text:#2B1A10;--textMuted:#7A5A44;--primary:#A3501D;--onPrimary:#FFFFFF;--accent:#D98248;--income:#1F7A4A;--expense:#B3261E;--transfer:#5B6B7A}:root[data-privacy="1"] :is(.big,.mid,.tx-row>span:last-child,.acc-row>span:nth-child(2),.acc-row>span:last-child,.totals span,.tbl td,.card b){filter:blur(7px);transition:filter .2s}:root[data-privacy="1"] :is(.big,.mid,.tx-row>span:last-child,.acc-row>span:last-child,.totals span,.tbl td,.card b):active{filter:none}.credit{text-align:center;margin:24px 0 8px}.emo{object-fit:contain}.banklogo{border-radius:30%;flex:none;object-fit:cover;background:#fff;box-shadow:0 0 0 1px #0000000f}.banklogo.initials{display:inline-grid;place-items:center;color:#fff;font-weight:700;letter-spacing:-.02em}.hw-title{display:grid;justify-items:center;grid-gap:0;gap:0;min-height:110px}.hw{overflow:visible;max-width:80vw;will-change:opacity,filter}.hw-sub{font-weight:700;letter-spacing:.3em;text-transform:uppercase;font-size:13px;color:var(--muted,#8a7a6b);margin-top:-2px;padding-left:.3em}.tile.logout{font:inherit;font-weight:600;cursor:pointer;text-align:left;justify-items:start}.tile.logout,.tile.logout .ibadge{color:var(--expense)}.nav-logout{background:none;border:0;font:inherit;cursor:pointer;color:inherit;margin-top:auto;opacity:.7}.nav-logout:hover{opacity:1;color:var(--expense)}@media (max-width:820px){.nav-logout{display:none}}.budget{display:grid;grid-gap:6px;gap:6px;padding:10px 0;border-top:1px solid var(--border);color:inherit}.card>.budget:first-child,.card>.budget:nth-child(2){border-top:0}.budget-bar{position:relative;height:10px;overflow:visible}.budget-bar>span{transition:width .4s ease}.budget-bar>span.warn{background:#E0A030}.budget-bar>i{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--text);opacity:.45;border-radius:1px}.chip.cat.on{background:var(--primary);color:var(--onPrimary);border-color:var(--primary)}.report-totals{grid-template-columns:repeat(3,1fr)}.report-totals .mid{font-size:18px}.report-totals .span-all{grid-column:1/-1}@media (max-width:560px){.report-totals{grid-template-columns:1fr 1fr}.report-totals>div:nth-child(3){grid-column:1/-1}}.catlist li{border-top:1px solid var(--border)}.catlist li:first-child{border-top:0}.catrow{display:flex;gap:10px;align-items:center;padding:8px 0;color:inherit}.catrow .grow{display:grid;grid-gap:4px;gap:4px;min-width:0}.pctw{width:34px;text-align:right}.grow{flex:1 1}.cal{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.cal-h{text-align:center;color:var(--textMuted)}.cal-d,.cal-h{font-size:11px}.cal-d{border-radius:8px;background:var(--surfaceAlt);min-height:46px;padding:3px 4px;display:grid;align-content:start;line-height:1.25;overflow:hidden}.cal-d b{font-size:12px}.cal-d small{font-size:10px;white-space:nowrap}.cal-d.today{outline:2px solid var(--primary)}.trend{width:100%;height:140px;display:block}.trend-x{display:grid;grid-template-columns:repeat(12,1fr);text-align:center;font-size:11px;color:var(--textMuted)}.goal,.trend-x a{color:inherit}.goal.done{opacity:.6}.chip.on-chip{background:var(--primary);color:var(--onPrimary);border-color:var(--primary)}.today-row td{background:color-mix(in srgb,var(--primary) 10%,transparent)}.bucket-row{display:grid;grid-template-columns:1fr 64px auto 1fr auto;grid-gap:6px;gap:6px;align-items:center}@media (max-width:560px){.bucket-row{grid-template-columns:1fr 60px auto}.bucket-row select{grid-column:1/3}}.split-bar{display:flex;height:12px;border-radius:99px;overflow:hidden;gap:2px}.split-bar .rest{background:var(--surfaceAlt)}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.supply-add{display:grid;grid-template-columns:1fr 64px 70px 64px auto;grid-gap:6px;gap:6px}@media (max-width:560px){.supply-add{grid-template-columns:1fr 1fr}.supply-add input:first-child{grid-column:1/-1}}.supply{display:flex;align-items:center;gap:6px;padding:8px 0;border-top:1px solid var(--border)}.supply:first-child{border-top:0}.supply .qty{min-width:44px;text-align:center}.attach{display:grid;grid-gap:6px;gap:6px}.attach-list{display:flex;flex-wrap:wrap;gap:8px}.attach-item{position:relative}.attach-item img{width:72px;height:72px;object-fit:cover;border-radius:10px;border:1px solid var(--border);display:block}.attach-item button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:0;background:var(--expense);color:#fff;cursor:pointer;font-size:11px}.attach-file{display:grid;place-items:center;width:72px;height:72px;border-radius:10px;border:1px solid var(--border);font-size:10px;text-align:center;overflow:hidden;padding:4px}.attach-add{display:grid;place-items:center;width:72px;height:72px;border-radius:10px;border:2px dashed var(--border);cursor:pointer;font-size:24px;color:var(--textMuted)}