/* Reference-led clear glass. Photography remains visible through real backdrop blur. */
:root{color-scheme:dark;--ink:#fffdf9;--muted:#d5d1ca;--line:#ffffff24;--accent:#ffab82;--glass:rgba(35,32,27,.12);--edge:inset 0 1px 1px #ffffff80,inset 1px 0 1px #ffffff35,inset 0 -1px 1px #ffffff18;--lift:0 14px 36px #090b0c26;background:#282723;scrollbar-color:#a19b91 #35332f}
body{background:transparent;isolation:isolate}body:before{content:"";position:fixed;inset:0;z-index:-2;background:linear-gradient(#10100e40,#10100e4a),url('assets/coastal-stone-v3.jpg') center center/cover no-repeat;pointer-events:none}
main{max-width:1100px;padding:56px 40px 88px}.app-header{margin-bottom:32px;align-items:center}.app-header h1{font-size:36px;font-weight:600;letter-spacing:-1.1px;text-shadow:0 2px 18px #0008}.header-month{color:#f0ece5;font-size:16px;text-shadow:0 1px 12px #0009}.actions>summary{color:var(--ink);background:#6c665d38;border:0;box-shadow:var(--edge),0 5px 16px #0002;width:50px;height:50px}.actions[open]>summary{background:#aaa39745}.actions>.buttons{background:#393630ed;box-shadow:var(--edge),0 16px 45px #0006}.actions .buttons #reset{color:#ffab9e}
button{color:var(--accent)}button:hover{background:#ffffff12}button:active{background:#ffffff20}button:focus-visible,summary:focus-visible,input:focus-visible{outline-color:#ffab82}::selection{background:#e36d3b;color:white}
.overview{padding:32px 34px 0;border-radius:34px;background:var(--glass);backdrop-filter:blur(9px) saturate(1.1);-webkit-backdrop-filter:blur(9px) saturate(1.1);box-shadow:var(--edge),var(--lift);margin-bottom:36px;overflow:hidden}.overview,.category{text-shadow:0 1px 3px #0009}.balance>div{font-weight:500;color:#eee9e1;font-size:16px}.balance strong{font-size:64px;letter-spacing:-2px;font-weight:500;margin:8px 0 10px;line-height:1}.balance small{color:var(--muted);font-size:12px;max-width:260px;line-height:1.5}.allocation-visual{width:138px}.metrics{border-color:var(--line);margin-top:28px;padding-top:22px;padding-bottom:25px}.metrics article{color:var(--muted);font-size:13px}.metrics strong,.income{font-size:29px;font-weight:500;letter-spacing:-.6px;margin-top:5px}.income{color:var(--ink);width:190px}.income input{border-bottom:1px solid #ffffff3b;border-radius:0}.income input:focus{border-color:var(--accent);outline-offset:5px}.allocation-details>summary{min-height:58px;font-size:14px}.allocation-details>summary>span:first-child{color:#e7e1d8}.allocation-key button{color:var(--ink);padding-left:5px;padding-right:5px}.key-dot{box-shadow:0 0 0 1px #fff3}.negative strong{color:#ffb3a2}
.budget-heading{padding-left:6px;margin-bottom:18px}.budget-heading h2{font-size:24px;font-weight:600;letter-spacing:-.5px;text-shadow:0 1px 10px #0008}.toolbar{top:-3px}.expand-all{background:#4a463e85;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:10px 17px;color:#fff;box-shadow:var(--edge);font-size:13px}.expand-all:hover{background:#77706488}
#categories{background:transparent;overflow:visible;border-radius:0;display:grid;gap:13px}.category{border-radius:25px;background:var(--glass);backdrop-filter:blur(9px) saturate(1.1);-webkit-backdrop-filter:blur(9px) saturate(1.1);box-shadow:var(--edge),0 8px 24px #0c0c0a1c;overflow:hidden}.category:not(:last-child):after{display:none}.category summary{padding:22px 24px;min-height:96px}.category summary:hover{background:#ffffff09}.category summary:active{background:#ffffff16}.category[open] summary{background:#ffffff08}.category summary:focus-visible{border-radius:25px;outline-offset:-4px}.cat-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(145deg,#ffffff24,#ffffff08);color:#f5eee3;box-shadow:inset 0 1px 1px #ffffff54,inset 0 -1px 1px #0003}.cat-icon svg{width:22px;height:22px}.catname{gap:14px}.cat-title{font-size:16px;font-weight:500;letter-spacing:-.15px}.cat-title small{color:#e9e3da;font-size:11px;margin-top:5px}.stat{font-size:17px;font-weight:500;letter-spacing:-.25px}.stat small{color:#f1ece4;font-size:10px;letter-spacing:0;margin-bottom:6px}.historystat{color:#e7e1d8}.diff{color:#e1d9cc;font-size:14px;font-weight:400;letter-spacing:0}.category-chevron{width:28px;height:28px;border-radius:50%;padding:8px;background:#ffffff13;color:#f4eee4;box-shadow:inset 0 1px 1px #ffffff2a;margin-right:0;justify-self:center}.category[open] .category-chevron{background:#ff622a;color:white;box-shadow:inset 0 1px 1px #ffffff68}.disclosure{color:#eee8de}
.lines{background:#1716130a;padding:0 24px 10px}.line{min-height:78px;padding:18px 0;border-color:#ffffff20}.line>label{font-size:15px;color:#fffaf2}.line label small,.line>.hint{color:#d3cdc2}.actual{color:#e2dcd1}.amount-control{background:#ffffff13;color:#ffe1cf;border-radius:12px;box-shadow:inset 0 1px 1px #ffffff22,inset 0 -1px 1px #0002}.amount-control input{color:#ffe1cf;font-weight:500}.amount-control:hover{background:#ffffff20}.amount-control:focus-within{background:#ffffff20;outline:2px solid #ff9b6b}.amount-control.edited{background:#a8552c45}.subcap>label{color:#eee7dc}.line .proposed{color:#fff}.savebar{color:#ffd6b6}.field-error{color:#ffd3c8!important}input[aria-invalid=true]{background:#772e23!important}.actions .buttons button:hover{background:#ffffff0f}
dialog{background:#38352ff5;color:var(--ink);box-shadow:var(--edge),0 20px 80px #0008}dialog::backdrop{background:#08090970}dialog p{color:var(--muted)}dialog button{background:#ffffff13;color:white}dialog .primary{background:#ff622a!important;color:white!important}
@media(min-width:1200px){.overview{grid-template-columns:1.15fr 1fr;column-gap:56px}.balance strong{font-size:64px}.allocation-visual{width:124px}.metrics{gap:24px}.metrics strong,.income{font-size:27px}.allocation-details{margin-top:28px}}
@media(max-width:850px){main{padding:34px 24px 64px}.app-header h1{font-size:33px}.overview{padding:28px 28px 0}.category summary{padding:20px}.catname{gap:11px}.cat-icon{width:32px;height:32px;border-radius:9px}.cat-icon svg{width:20px;height:20px}.cat-title{font-size:15px}.stat{font-size:15px}.diff{font-size:13px}.lines{padding:0 20px 8px}}
@media(max-width:740px){main{padding:30px 16px calc(40px + env(safe-area-inset-bottom))}.app-header{margin-bottom:27px;align-items:flex-start;gap:14px}.app-header h1{font-size:30px;line-height:1.12;font-weight:600;max-width:245px;letter-spacing:-.9px}.header-month{font-size:15px;margin-top:10px}.actions>summary{width:44px;height:44px}.overview{border-radius:30px;padding:26px 23px 0;margin-bottom:31px}.balance strong{font-size:48px;letter-spacing:-1.7px;margin:10px 0}.balance>div{font-size:14px}.balance small{font-size:11px;max-width:175px}.summary-main{gap:8px}.allocation-visual{width:88px}.metrics{margin-top:25px;padding:20px 0 22px;gap:16px}.metrics article{font-size:12px}.metrics strong,.income{font-size:23px;margin-top:5px}.income{max-width:150px}.allocation-details>summary{min-height:54px;font-size:13px}.allocation-details>summary>span:first-child{font-size:11px}.budget-heading{margin-bottom:15px;padding-left:5px}.budget-heading h2{font-size:22px}.expand-all{min-height:40px;padding:9px 14px;font-size:12px}.toolbar{top:-2px}#categories{gap:12px}.category{border-radius:25px}.category summary{padding:19px 19px 20px;gap:19px 8px}.catname{gap:12px;min-height:36px;padding-right:28px}.cat-title{font-size:16px}.cat-title small{font-size:10px}.cat-icon{width:34px;height:34px;border-radius:10px}.category-chevron{right:18px;top:23px;width:27px;height:27px;padding:8px}.category summary>.stat{font-size:16px}.category summary>.diff{font-size:14px}.category summary>.stat small{font-size:10px;margin-bottom:5px;line-height:1.3}.lines{padding:0 19px 6px}.line{padding:19px 0;gap:12px 9px}.line>.actual,.line>.diff{font-size:13px}.line>[data-caption]:not(.amount-control):before,.amount-control:before{color:#eee8df}.line>.hint{font-size:11px}.amount-control input{font-size:16px}.allocation-key button{font-size:13px}.allocation-key strong{font-size:13px}}
@media(prefers-reduced-transparency:reduce){body:before{display:block}.overview,.category{background:#393630;backdrop-filter:none;-webkit-backdrop-filter:none}.actions>summary,.actions>.buttons,dialog{background:#393630}}
@supports not (backdrop-filter:blur(10px)){.overview,.category,.actions>.buttons,.actions>summary{background:#393630}}
@media print{:root{color-scheme:light;--ink:#111;--muted:#555;--line:#ddd;color:#111;background:#fff}body:before{display:none!important}.overview,.category,.lines{background:white!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.category{border-radius:0}#categories{gap:0}.app-header h1,.header-month,.budget-heading h2{text-shadow:none;color:#111}.balance strong{font-size:30px}.balance>div,.metrics strong,.income,.cat-title,.stat,.actual,.line>label,.line .proposed{color:#111}.metrics strong,.income{font-size:19px}.cat-title small,.stat small,.diff,.line>.hint{color:#555}.category summary{padding:10px 0;min-height:0}.category[open] summary{background:white}.line{padding:10px 0}.amount-control{box-shadow:none;color:#111}.amount-control input{color:#111!important}.metrics{margin:0;padding:0}.overview{padding:0;margin-bottom:20px}.income input{border:0}.cat-icon{display:none}.lines{padding:0}}
