:root{--bg:#f7f4ec;--panel:#fffdf8;--panel-strong:#f2eadc;--ink:#1e2424;--muted:#66706d;--line:#ded4c3;--accent:#1f6f68;--accent-dark:#164b49;--good:#207a4b;--bad:#b23a34;--shadow:0 16px 40px #231f181f}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:8px;min-height:40px;padding:0 14px}button:hover{border-color:var(--accent)}button:disabled{cursor:not-allowed;opacity:.58}input,select{border:1px solid var(--line);width:100%;min-height:40px;color:var(--ink);background:#fff;border-radius:8px;padding:9px 10px}input:focus,select:focus,button:focus-visible{outline-offset:1px;outline:3px solid #1f6f6838}.appShell{grid-template-rows:auto auto 1fr;gap:14px;height:100dvh;padding:20px;display:grid;overflow:hidden}.topBar{grid-template-columns:minmax(180px,1fr) auto auto;align-items:end;gap:18px;display:grid}.eyebrow{color:var(--muted);letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:.78rem}h1,h2{letter-spacing:0;margin:0}h1{font-size:clamp(2rem,4vw,3.8rem);line-height:.95}.balanceBlock{justify-items:end;gap:2px;display:grid}.balanceBlock span{color:var(--muted);font-size:.86rem}.balanceBlock strong{color:var(--accent-dark);font-size:1.55rem}.actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.actions button,.modalForm button[type=submit],.quickEntry button{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.monthSelector{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.monthSelector button{background:0 0;min-width:66px;font-weight:700}.monthSelector button.active,.filterRow button.active{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}.columns{scroll-snap-type:x proximity;gap:14px;min-height:0;padding-bottom:6px;display:flex;overflow:auto hidden}.accountColumn{background:var(--panel);border:1px solid var(--line);height:100%;min-height:0;box-shadow:var(--shadow);scroll-snap-align:start;border-radius:8px;flex:0 0 clamp(280px,27vw,340px);grid-template-rows:auto 1fr auto;transition:border-color .18s;display:grid;overflow:hidden}.accountColumn.saved{border-color:var(--accent)}.accountColumn.skeleton{background:linear-gradient(90deg,#f2eadc,#fffdf8,#f2eadc) 0 0/220% 100%;min-height:520px;animation:1.2s infinite pulse}@keyframes pulse{to{background-position:-220% 0}}.accountHeader{z-index:2;background:var(--panel);border-bottom:1px solid var(--line);padding:14px;position:sticky;top:0}.accountTitleRow{justify-content:space-between;align-items:center;gap:8px;display:flex}.accountTitleRow h2{font-size:1.1rem}.iconButton{place-items:center;width:36px;min-height:34px;padding:0;display:inline-grid}.balance{color:var(--accent-dark);margin-top:8px;font-size:1.65rem;display:block}.balance.negative,.negative{color:var(--bad)}.positive{color:var(--good)}.filterRow{grid-template-columns:repeat(4,1fr);gap:4px;margin-top:12px;display:grid}.filterRow button{overflow-wrap:anywhere;min-height:32px;padding:0 4px;font-size:.74rem}.transactionList{flex-direction:column;gap:8px;min-height:0;padding:10px;display:flex;overflow-y:auto}.transactionItem{border-bottom:1px solid #ded4c3cc;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:8px 0;display:grid}.transactionItem>div:first-child{gap:2px;min-width:0;display:grid}.transactionItem strong{font-size:1rem}.transactionItem span,.transactionItem time{color:var(--muted);overflow-wrap:anywhere;font-size:.86rem}.itemMenu{opacity:0;gap:4px;transition:opacity .12s;display:flex}.transactionItem:hover .itemMenu,.transactionItem:focus-within .itemMenu{opacity:1}.itemMenu button,.rowActions button{min-height:30px;padding:0 8px;font-size:.78rem}.transactionItem.editing{grid-template-columns:1fr}.rowActions{gap:6px;display:flex}.quickEntry{z-index:2;border-top:1px solid var(--line);background:var(--panel-strong);grid-template-columns:.8fr 1.2fr;gap:7px;padding:10px;display:grid;position:sticky;bottom:0}.quickEntry input[type=date],.quickEntry button,.inlineError{grid-column:1/-1}.inlineError,.notice{color:var(--bad);background:#fff3ee;border:1px solid #f1c8bf;border-radius:8px;padding:10px 12px}.emptyState,.emptyBoard,.summaryLoading{color:var(--muted);padding:16px}.emptyBoard{min-width:280px}.modalBackdrop{z-index:20;background:#171a195c;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);width:min(480px,100%);max-height:min(780px,92dvh);box-shadow:var(--shadow);border-radius:8px;overflow:auto}.modal.wide{width:min(980px,100%)}.modalHeader{border-bottom:1px solid var(--line);background:var(--panel);z-index:1;justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex;position:sticky;top:0}.modalHeader h2{font-size:1.2rem}.modalForm,.searchBox{gap:12px;padding:16px;display:grid}.modalForm label{color:var(--muted);gap:6px;font-size:.88rem;display:grid}.checkLine{grid-template-columns:auto 1fr;align-items:center}.checkLine input{width:auto}.summaryWrap{padding:16px;overflow:auto}.summaryTable{border-collapse:collapse;width:100%;min-width:720px}.summaryTable th,.summaryTable td{border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;padding:10px}.summaryTable th:first-child{text-align:left;background:var(--panel);position:sticky;left:0}.totalRow th,.totalRow td{color:var(--accent-dark);font-weight:800}.searchResults{gap:6px;display:grid}.searchResults button{text-align:left;grid-template-columns:1fr auto;gap:4px 10px;height:auto;padding:10px;display:grid}.searchResults span{color:var(--muted);font-size:.86rem}.searchResults em{grid-area:1/2/span 2;align-self:center;font-style:normal;font-weight:800}@media (max-width:780px){.appShell{gap:10px;padding:12px}.topBar{grid-template-columns:1fr;align-items:start}.balanceBlock{justify-items:start}.actions{flex-wrap:nowrap;justify-content:start;overflow-x:auto}.actions button{flex:none}.columns{scroll-snap-type:x mandatory}.accountColumn{flex-basis:calc(100vw - 24px)}.itemMenu{opacity:1}.quickEntry{grid-template-columns:1fr}}
