:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#183e35;background:#f6f8f7;font-size:16px;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;background:#123f35;color:white;border:0;border-radius:13px;padding:13px 18px;font-weight:600}button:hover{filter:brightness(1.12)}button:focus-visible,a:focus-visible{outline:3px solid #91b759;outline-offset:3px}input,select{width:100%;min-height:46px;border:1px solid #dce4df;background:#fff;border-radius:12px;padding:11px;color:#183e35}label{display:grid;gap:7px;font-size:.875rem;color:#51675e}header{max-width:1100px;margin:auto;padding:25px 30px;display:flex;justify-content:space-between;align-items:center;gap:15px}.brand{font-size:32px;font-weight:800;letter-spacing:-2px;display:flex;align-items:center}.brand span{color:#548943;margin-left:-3px}.brand b{font-size:22px;letter-spacing:-.8px;margin-left:12px}.local{font-size:.8rem;color:#6c7c75;background:#e9efeb;padding:8px 11px;border-radius:20px}main{max-width:1040px;margin:20px auto;padding:0 24px 120px}.eyebrow{font-size:.75rem;letter-spacing:2px;color:#6e8077;font-weight:700}h1{font-size:2rem;letter-spacing:-1.1px;margin:10px 0 25px}h2{font-size:1.125rem;letter-spacing:-.3px;margin:0 0 18px}p{line-height:1.5}.balance{background:#123f35;color:white;border-radius:25px;padding:30px;margin-bottom:20px}.balance h2{font-size:3.3rem;letter-spacing:-2px;margin:12px 0}.balance p{font-size:.875rem;color:#d3e2dc;margin:0}.card{background:#fff;border:1px solid #e7ece8;border-radius:22px;padding:25px;margin-bottom:18px}.card input{margin-bottom:12px}@media(max-width:600px){header{padding:20px}.local{font-size:.75rem}main{padding:0 18px 125px;margin-top:8px}h1{font-size:1.75rem}.balance{padding:25px}.balance h2{font-size:2.8rem}}
.brand{text-decoration:none;color:inherit}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.grow{flex:1;min-width:0}.wrap{flex-wrap:wrap}.small,small{font-size:.8rem;color:#6c7c73;font-weight:400;line-height:1.5}.muted{color:#6c7c73;font-size:.9rem;line-height:1.6}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.week{background:#fff;border:1px solid #e1e7e2;border-radius:20px;padding:10px 15px;font-size:.8rem;white-space:nowrap}.columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.row h2{margin:0}.balance-footer{display:flex;justify-content:space-between;border-top:1px solid #416458;margin-top:28px;padding-top:20px;gap:15px}.balance-footer small{display:block;color:#c0d4c8}.balance-footer strong{display:block;margin-top:5px;font-size:1.25rem}.currency{background:#31594d;color:#e6f1ea;font-size:.75rem;border-radius:7px;padding:5px 9px}.tag{font-size:.7rem;color:#6a7a72;white-space:nowrap}.track{height:6px;background:#edf1ed;border-radius:6px;overflow:hidden;margin:12px 0 7px}.track i{display:block;height:100%;background:#397853;border-radius:6px}.contribution{margin-top:24px}.avatar{width:31px;height:31px;background:#e9efe9;display:grid;place-items:center;border-radius:50%;font-size:.8rem}.extra{background:#f1f6ed;padding:18px;border-radius:15px;margin-top:25px}.extra h2{font-size:1rem}.extra>.row+ .row{margin-top:14px}.extra .track{background:#dfe8d9}.extra .track i{background:#81aa4a}.recorder{border-color:#d4e2d5}.bubble{background:#edf4e8;color:#4f7937;font-size:1.5rem;width:36px;height:36px;border-radius:12px;display:grid;place-items:center}.recorder>.muted{margin-top:8px}.recorder select{margin-bottom:15px}.link{background:transparent;color:#38684d;padding:6px 0;border-radius:3px;font-size:.8rem;font-weight:600;white-space:nowrap}.chat-label{margin-top:10px}.chat-input{display:flex;margin-top:8px;border:1px solid #d6e1d8;border-radius:15px;background:#f7f9f6;padding:5px;gap:8px}.chat-input input{border:0;background:transparent;margin:0;min-width:0;outline-offset:0}.chat-input button{border-radius:11px;font-size:1.3rem;padding:5px 17px}.examples{display:flex;gap:8px;margin-top:14px}.examples button{background:#f1f4ef;color:#526b56;font-size:.75rem;font-weight:500;padding:8px 10px;border-radius:8px}.budget-row{display:flex;align-items:center;gap:13px;padding:19px 0;border-bottom:1px solid #edf0ec}.budget-row:last-of-type{border-bottom:0}.budget-row b{font-size:.9rem}.budget-row .row>span{font-size:.875rem;white-space:nowrap}.tile{width:39px;height:39px;flex-shrink:0;border-radius:12px;background:#f0f3ed;display:grid;place-items:center;font-size:1.25rem;color:#587247}.budget-row .small>span{font-size:.75rem}.total{padding:20px 0;border-top:1px solid #edf0ec;margin-top:12px}.filters,.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.filters{grid-template-columns:repeat(4,1fr)}nav{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);display:flex;gap:12px;background:#ffffffed;backdrop-filter:blur(15px);border:1px solid #e3e9e4;border-radius:22px;padding:8px 12px;box-shadow:0 8px 35px #143f3512;z-index:10}nav button{display:flex;align-items:center;gap:8px;background:transparent;color:#79857d;font-size:.8rem;padding:13px 20px;border-radius:14px}nav button span{font-size:1.3rem}nav button.active{color:#1e543d;background:#edf3e9}nav button:hover{background:#f1f6ef}.transaction{display:flex;align-items:center;text-align:left;width:100%;gap:14px;padding:18px 0;background:white;color:#243d33;border-bottom:1px solid #edf0ec;border-radius:0}.transaction b{display:block;font-weight:600;font-size:.95rem;overflow-wrap:anywhere}.transaction small{display:block;margin-top:5px}.transaction strong{white-space:nowrap;font-size:.95rem}.positive{color:#367a50}.empty{text-align:center;padding:45px 10px;color:#7c8c80}.empty>span{font-size:3rem;color:#a3b29f}.empty h2{margin-top:20px}.empty p{font-size:.875rem}.reconcile-total{padding:18px;background:#f0f5ed;border-radius:14px;margin:15px 0;display:flex;justify-content:space-between;font-size:.9rem}.reconciliation{padding:18px 0;border-top:1px solid #e6ece5;margin-top:15px}.reconciliation .row{font-size:.8rem}.reconciliation small{display:block;margin-top:6px}.secondary,.file-button{background:#edf3e9;color:#28543b}.file-button{position:relative;cursor:pointer;font-weight:600;padding:13px 18px;border-radius:13px;font-size:1rem}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0;width:100%}.file-button:focus-within{outline:3px solid #91b759}.choices{display:flex;gap:8px;flex-wrap:wrap}.choices button{font-size:.8rem}.quick{position:fixed;right:28px;bottom:110px;box-shadow:0 5px 20px #153d3520;z-index:9}dialog{width:min(500px,calc(100% - 28px));max-height:90dvh;overflow:auto;border:1px solid #e1e8df;border-radius:24px;padding:26px;color:#183e35;box-shadow:0 20px 100px #12261c25}dialog::backdrop{background:#10281d66;backdrop-filter:blur(4px)}.modal-heading{margin-bottom:24px}.close{background:#f0f3ed;color:#244933;font-size:1.5rem;padding:4px 12px}.modal-actions{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}dialog label{margin-bottom:14px}.danger{background:#faece9;color:#a44335}.error{padding:15px;background:#fff0ec;color:#a13c28;border-radius:12px;font-size:.9rem}#notice{position:fixed;left:50%;bottom:110px;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:#183e35;color:white;padding:14px 22px;border-radius:14px;z-index:50;max-width:calc(100vw - 35px);width:max-content;box-shadow:0 5px 20px #123f3520;transition:.2s;font-size:.9rem}#notice.show{opacity:1;transform:translate(-50%,0)}[hidden]{display:none!important}#chat-feedback{font-size:.9rem;line-height:1.5}#chat-feedback:not(:empty){border-top:1px solid #e6ece5;margin-top:18px;padding-top:8px}
@media(max-width:760px){.columns{grid-template-columns:1fr}.page-heading{align-items:flex-start;flex-wrap:wrap;gap:0}.week{margin-bottom:20px}.page-heading h1{margin-bottom:15px}.filters{grid-template-columns:1fr 1fr}.columns>div:first-child .card{margin-bottom:0}.columns>div+div{margin-top:0}nav{bottom:0;gap:0;padding:8px 5px max(8px,env(safe-area-inset-bottom));width:100%;border-radius:20px 20px 0 0;justify-content:space-around}nav button{flex:1;flex-direction:column;gap:2px;padding:8px 5px;font-size:.75rem}nav button span{font-size:1.3rem}.card{padding:21px}.quick{bottom:95px;right:18px}.row h2{font-size:1rem}.balance-footer strong{font-size:1.1rem}.form-grid{gap:12px}.transaction{gap:10px}.transaction .tile{width:32px;height:32px}.transaction strong{font-size:.8rem}.budget-row .row{flex-wrap:wrap;gap:4px}.tag{font-size:.7rem}.contribution .row{gap:8px}.contribution .row>span:last-child{font-size:.85rem}.contribution small{font-size:.75rem}.page-heading>button{margin-bottom:16px}.recorder{scroll-margin-top:20px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
textarea{width:100%;font:inherit;color:#183e35;background:#fff;border:1px solid #dce4df;border-radius:12px;padding:12px;resize:vertical;margin:8px 0 16px}.download-button{display:inline-block;background:#123f35;color:white;padding:13px 18px;border-radius:12px;text-decoration:none;margin:0 0 18px;font-weight:600}@media(max-width:760px){.home-columns{display:flex;flex-direction:column;gap:18px}.home-columns>div{display:contents}.home-columns .balance{order:0;margin-bottom:0}.home-columns .recorder{order:1;margin-bottom:0}.home-columns>div:first-child>.card{order:2}.home-columns>div:last-child>.card:last-child{order:3}.home-columns .card{margin-bottom:0}}
/* Home: enter a movement first; account totals remain a quiet summary. */
.home-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:start}.chat-first{padding:30px;border:1px solid #bfd2c3;box-shadow:0 8px 30px #123f3508}.chat-first .eyebrow{color:#497849;letter-spacing:1.7px;margin:0 0 17px}.chat-first h1{font-size:2rem;line-height:1.15;letter-spacing:-1px;max-width:340px;margin:0 0 13px}.chat-first>.muted{max-width:330px;margin:0 0 24px}.person-picker{display:flex;align-items:center;gap:12px;font-size:.8rem}.person-picker select{width:auto;min-width:105px;max-width:65%;padding:7px 12px;min-height:38px;margin:0;background:#f4f7f1;border-color:transparent;font-size:.875rem}.chat-first .chat-input{margin-top:18px;border:1.5px solid #75997f;background:white;padding:6px;border-radius:17px;box-shadow:0 3px 12px #123f3508}.chat-first .chat-input input{min-height:54px;font-size:1rem;padding-left:10px}.chat-first .chat-input button{min-width:48px;background:#123f35;font-size:1.6rem}.chat-first .examples{flex-wrap:wrap;gap:7px;margin-top:12px}.chat-first .examples button{font-size:.8rem;padding:9px 10px}.manual-entry{margin-top:23px;font-weight:400;font-size:.8rem}.compact-balance{background:#eef2ed;color:#3e5448;padding:20px 22px;border-radius:19px;border:1px solid #e1e7df;margin-bottom:22px}.compact-balance>.row{font-size:.875rem}.compact-balance>.row>strong{font-size:1.35rem;font-weight:650;letter-spacing:-.5px;color:#344c3b}.compact-balance>p{font-size:.75rem;color:#738173;margin-top:7px}.compact-balance .balance-footer{border-color:#dce4d9;margin-top:16px;padding-top:14px;gap:12px}.compact-balance .balance-footer small{font-size:.72rem;color:#6f7e6d}.compact-balance .balance-footer strong{font-size:.95rem;color:#52684e;font-weight:500}.week-caption{font-size:.8rem;color:#72806e;margin:0 0 14px 3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:760px){.home-layout{display:flex;flex-direction:column;gap:18px}.home-primary,.home-secondary{display:contents}.chat-first{order:0;width:100%;padding:24px 20px;margin-bottom:0}.chat-first h1{font-size:1.8rem;max-width:300px}.chat-first>.muted{margin-bottom:21px}.chat-first .chat-input{margin-top:18px}.chat-first .chat-input input{min-width:0;padding-left:5px}.chat-first .chat-input button{padding:5px 13px;min-width:43px}.compact-balance{order:1;width:100%;margin-bottom:0;padding:17px 19px}.week-caption{order:2;margin:7px 0 -5px}.home-secondary>.card{order:3;width:100%;margin-bottom:0}.home-budget{order:4;width:100%;margin-bottom:0}.chat-first .examples button{font-size:.75rem;padding:8px}.manual-entry{margin-top:20px}main:has(.home-layout){margin-top:12px}.home-secondary .row h2{font-size:1rem}}
.auth-main{max-width:500px;padding-top:25px}.auth-main h1{font-size:1.8rem}.auth-main form label{margin-bottom:14px}.auth-main form button{width:100%}.sync-actions{display:flex;justify-content:flex-end;margin:-8px 0 10px}.account-summary{padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid #e5eae4}.account-summary details{margin-top:18px}.account-summary summary{cursor:pointer;font-size:.875rem}.account-summary details form{margin-top:14px}button:disabled{opacity:.55;cursor:wait}#sync-status{max-width:55%;text-align:right;line-height:1.4}#cloud-import label{margin-top:18px}#change-password label{margin-top:12px}#auth-message{font-size:.875rem;color:#5c705e}

/* Editable reserve rules keep the existing card style. */
.reserve-rule{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 100px;gap:16px;align-items:center;padding:16px 0;border-top:1px solid #e7ece8}.reserve-rule input{margin-bottom:0}.reserve-row{padding:16px 0;border-bottom:1px solid #e7ece8}.reserve-row .row{flex-wrap:wrap}.reserve-row small{display:block;margin-top:7px}#distribution>label.row{justify-content:flex-start;margin:18px 0}#distribution input[type=checkbox]{width:20px;min-height:20px;margin:0}@media(max-width:600px){.reserve-rule{grid-template-columns:minmax(0,1fr) 90px;gap:12px}.reserve-rule>b{grid-column:1/-1}.reserve-row strong{font-size:.9rem}}
