.summary{grid-template-columns:repeat(4,1fr)}
.badge{font-size:11px;font-weight:800;padding:4px 7px;border-radius:99px;margin-left:6px;background:#e7f3f6;color:var(--accent)}
.badge.oneoff{background:#f2ecfb;color:#7249a4}
.editable{border-bottom:1px dashed #98aab4;outline:none}
.editable:focus{border-bottom:2px solid var(--accent);background:#f2fbfc}
.inline-date,.inline-funding{border:0;border-bottom:1px dashed #98aab4;border-radius:0;background:transparent;padding:0;color:var(--muted);font-size:12px}.inline-funding{width:68px;color:var(--ink);font-weight:800}.inline-date:focus,.inline-funding:focus{outline:none;border-bottom:2px solid var(--accent)}
.inline-name,.inline-amount{border:0;border-bottom:1px dashed #98aab4;border-radius:0;background:transparent;padding:0;color:var(--ink);font:inherit;font-weight:800}.inline-name{width:min(230px,100%)}.inline-amount{width:82px;text-align:right}.inline-name:focus,.inline-amount:focus{outline:none;border-bottom:2px solid var(--accent)}
.header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:end}
.funding-line{display:flex;align-items:center;gap:8px;margin-top:4px}.funding-line .funded{color:var(--green);font-weight:800}.funding-line .needs-funding{color:var(--red);font-weight:800}.funding-progress{height:7px;min-width:70px;flex:1;max-width:130px;border-radius:99px;background:#e6ecef;overflow:hidden}.funding-progress i{display:block;height:100%;border-radius:inherit;background:var(--red)}.funding-progress i.complete{background:var(--green)}.week.underfunded{box-shadow:0 8px 24px #ae3c3c22;border:1px solid #eebaba}.week.underfunded .week-header{background:#fff1f1}.funding-short{color:var(--red)!important;font-weight:800}
.sync-status{font-size:.78rem;font-weight:700;color:#52606d;padding:.45rem .6rem;border-radius:999px;background:#eef2f5}.sync-status.live{color:#137333;background:#e6f4ea}.sync-status.warn{color:#a15c00;background:#fff4dd}.sharing-panel{margin:1rem 0;padding:1rem 1.1rem;border:1px solid #d9e2e8;border-radius:12px;background:#f8fbfc}.sharing-panel strong{display:block;margin-bottom:.25rem}.sharing-panel .share-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.04em}.sharing-panel button{margin:.6rem .45rem 0 0}
.auth-gate{display:none}.locked .auth-gate{position:fixed;inset:0;z-index:100;background:linear-gradient(135deg,#f6faf9,#edf5f8);display:grid;place-items:center;padding:1.5rem;text-align:center}.auth-gate>div{max-width:430px;background:#fff;padding:2.5rem;border:1px solid #d9e2e8;border-radius:18px;box-shadow:0 16px 44px #1730421f}.auth-gate h1{font-size:2rem;margin:.35rem 0 .7rem}.auth-gate p:not(.eyebrow){color:var(--muted);margin:0 0 1.35rem}.locked{overflow:hidden}
.options-dialog{width:min(520px,calc(100% - 2rem));padding:1.25rem;border:1px solid #d9e2e8;border-radius:16px;box-shadow:0 18px 50px #17304230}.options-dialog::backdrop{background:#17304266}.options-dialog .sync-status{display:inline-block;margin:.25rem 0}.options-dialog .sharing-panel{margin:.8rem 0}.options-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}
.availability-note{margin:.8rem 0 1.2rem}.transaction-group{margin-top:1rem}.transaction-group:first-child{margin-top:0}.transaction-group>p{margin:0 0 .4rem;font-size:.72rem;font-weight:800;letter-spacing:.09em;color:var(--muted)}.transaction-group .transaction{margin-bottom:.45rem}
@media(max-width:840px){.summary{grid-template-columns:repeat(2,1fr)}}
