/* Clear glass over the supplied pastel abstract wallpaper. */
:root{color-scheme:light;--ink:#202e33;--muted:#34464d;--line:#29444d26;--accent:#205b6b;--glass:rgba(255,255,250,.24);--edge:inset 0 1px 1px #ffffffeb,inset 1px 0 1px #ffffff85,inset 0 -1px 1px #ffffff40;--lift:0 14px 36px #35302018;background:#c3d3d4;scrollbar-color:#77949b #cfdbdd}
body:before{background:url('assets/sebastian-svenson-abstract-v7.jpg') center top/cover no-repeat}
.overview,.category{text-shadow:none;backdrop-filter:blur(9px) saturate(1.05);-webkit-backdrop-filter:blur(9px) saturate(1.05)}
.app-header h1,.budget-heading h2{color:var(--ink);text-shadow:0 1px 8px #fff9}.header-month{color:var(--muted);text-shadow:0 1px 5px #fffc}.actions>summary{background:#fffff54d;color:var(--ink)}.actions[open]>summary{background:#ffffff80}.actions>.buttons{background:#edf4f5f5;box-shadow:var(--edge),0 16px 45px #342f2630}.actions .buttons #reset{color:#a33320}.actions .buttons button:hover{background:#292d200b}
.balance>div,.balance small,.metrics article{color:var(--muted)}.metrics strong,.income{color:var(--ink)}.income input{border-color:#34372c40}.allocation-details>summary>span:first-child{color:var(--muted)}.allocation-key button{color:var(--ink)}.key-dot{box-shadow:0 0 0 1px #292d2020}.negative strong{color:#a33320}
button:hover{background:#292d200b}button:active{background:#292d2018}button:focus-visible,summary:focus-visible,input:focus-visible{outline-color:var(--accent)}::selection{background:#205b6b;color:white}.expand-all{color:var(--ink);background:#fffff54d}.expand-all:hover{background:#ffffff80}
.category summary:hover,.category[open] summary{background:#ffffff12}.category summary:active{background:#ffffff35}.cat-icon{color:#284b57;background:linear-gradient(145deg,#ffffff58,#ffffff12);box-shadow:inset 0 1px 1px #ffffffb0,inset 0 -1px 1px #474c321c}.cat-title small,.stat small,.historystat,.diff{color:var(--muted)}.cat-title,.stat:not(.diff){color:var(--ink)}.category-chevron{background:#ffffff2b;color:#34464d;box-shadow:inset 0 1px 1px #ffffff70}.category[open] .category-chevron{background:#205b6b;color:#fff}.disclosure{color:#34464d}
.lines{background:#ffffff0a}.line{border-color:#34372c26}.line>label,.line .proposed{color:var(--ink)}.line label small,.line>.hint,.actual,.subcap>label{color:var(--muted)}.amount-control{background:#ffffff40;color:#164d5d;box-shadow:inset 0 1px 1px #ffffff85,inset 0 -1px 1px #474c3215}.amount-control input{color:#164d5d}.amount-control:hover,.amount-control:focus-within{background:#ffffff70}.amount-control:focus-within{outline-color:var(--accent)}.amount-control.edited{background:#c8e6eb73}.line>[data-caption]:not(.amount-control):before,.amount-control:before{color:var(--muted)}.savebar{color:#205b6b}.field-error{color:#912a1c!important}input[aria-invalid=true]{background:#ffddd3!important}
dialog{background:#edf4f5f5;color:var(--ink);box-shadow:var(--edge),0 20px 80px #29271e50}dialog::backdrop{background:#36342640}dialog p{color:var(--muted)}dialog button{background:#34372c0c;color:var(--ink)}dialog .primary{background:#205b6b!important;color:#fff!important}
/* Shared rhythm and readable secondary type without obscuring the wallpaper. */
.app-header h1{letter-spacing:-.03em}.header-month{text-shadow:none}
.balance small{font-size:13px;line-height:1.45;max-width:270px}
.cat-title{font-weight:600}.cat-title small{font-size:12px;line-height:1.4;margin-top:4px}
.stat small{font-size:12px;line-height:1.35;white-space:normal}.stat{letter-spacing:0}
.category summary{grid-template-columns:minmax(210px,1fr) 132px 132px 100px 28px;gap:16px}
.line{grid-template-columns:minmax(210px,1fr) 132px 132px 100px 28px;column-gap:16px}
.category summary>.stat:not(.diff):not(.historystat){font-weight:600}
.category-chevron{background:transparent;box-shadow:none;padding:7px;color:var(--accent)}
.category[open] .category-chevron{background:#ffffff45;color:var(--accent)}
.income{gap:3px;min-height:44px}.income input{min-height:44px}
.expand-all{min-height:44px;font-size:14px}.allocation-details>summary{min-height:54px}
.allocation-details>summary>span:first-child{font-size:13px}
.amount-control{min-height:46px}.amount-control input{font-variant-numeric:tabular-nums}
.actions>.buttons button{border-radius:14px}.actions>.buttons{border-radius:20px}
@media(hover:hover){.category summary:hover{background:#ffffff24}.amount-control:hover{background:#ffffff70}}
@media(min-width:1000px){.overview{display:grid;grid-template-columns:1.1fr 1fr;column-gap:36px}.summary-main{grid-column:1}.balance strong{font-size:56px;letter-spacing:-.03em}.allocation-visual{width:106px}.metrics{grid-column:2;margin:0;padding:0;border:0;align-self:center;gap:20px}.metrics strong,.income{font-size:26px}.income{width:170px}.allocation-details{grid-column:1/-1;margin-top:26px}}
@media(min-width:741px) and (max-width:999px){.category summary,.line{grid-template-columns:minmax(135px,1fr) 112px 112px 88px 24px;column-gap:12px}.stat small{font-size:11px}.category summary{padding:20px}.catname{gap:10px}.lines{padding:0 20px 10px}}
@media(max-width:740px){
 main{padding-top:24px}.app-header{margin-bottom:24px}.app-header h1{font-size:28px;letter-spacing:-.025em}
 .overview{padding:23px 20px 0}.balance strong{font-size:46px;letter-spacing:-.03em}.balance small{font-size:12px;max-width:190px}.allocation-visual{width:78px}
 .metrics{padding:18px 0 20px;margin-top:21px}.metrics article{font-size:13px}.metrics strong,.income{font-size:22px}
 .category summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 10px;padding:18px}
 .cat-title{font-size:16px}.cat-title small{font-size:12px}.category summary>.stat small{font-size:11px;line-height:1.4;min-height:31px;margin-bottom:3px}
 .category summary>.stat{font-size:16px}.category summary>.diff{font-size:14px}.category-chevron{top:23px;right:17px}
 .line{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px;padding:20px 0}.lines{padding:0 18px 8px}
 .line>[data-caption]:not(.amount-control):before,.amount-control:before{font-size:11px;line-height:1.4}
 .line>.actual,.line>.diff{font-size:14px}.line>.hint{font-size:12px}.line>.amount-control{margin-top:21px}
 .line>.diff{text-align:left;padding-left:4px}.amount-control:before{top:-21px}.expand-all{font-size:13px;min-height:44px}
}
@media(max-width:360px){main{padding-left:12px;padding-right:12px}.overview{padding-left:17px;padding-right:17px}.balance strong{font-size:40px}.allocation-visual{width:64px}.category summary{padding:16px 14px}.lines{padding-left:14px;padding-right:14px}.metrics strong,.income{font-size:20px}.category summary>.stat{font-size:14px}.category summary>.diff{font-size:13px}}
@media(prefers-reduced-transparency:reduce){.overview,.category,.actions>summary,.actions>.buttons,dialog{background:#edf3f4;backdrop-filter:none;-webkit-backdrop-filter:none}}
@supports not (backdrop-filter:blur(10px)){.overview,.category,.actions>.buttons,.actions>summary{background:#edf3f4}}
@media print{body:before{display:none!important}.overview,.category,.lines{background:white!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.overview,.category,.app-header h1,.header-month,.budget-heading h2{text-shadow:none}.amount-control{box-shadow:none}.income,.amount-control input{color:#111}}
