:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#203c36;background:#f5f7f5;font-synthesis:none;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #d8e1dc;border-radius:9px;padding:10px 15px;background:white;color:#29473d;font-weight:600}button:hover{background:#edf3ef}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #c0a662;outline-offset:3px}.primary{background:#24664f;color:#fff;border-color:#24664f}.primary:hover{background:#194d3b}input,select,textarea{display:block;width:100%;border:1px solid #d7dfda;border-radius:8px;padding:11px;background:#fff;color:#223e35;margin-top:7px}input:focus,select:focus,textarea:focus{outline:2px solid #83b39b;outline-offset:1px}label{display:block;font-size:12px;font-weight:600}h1,h2,p{margin-top:0}h1{font-size:32px;letter-spacing:-1px;margin-bottom:0}h2{font-size:17px;letter-spacing:-.3px;margin-bottom:8px}p,small{color:#74847b;line-height:1.6}small{font-size:11px}.brand{color:inherit;text-decoration:none;font-size:30px;display:flex;align-items:center;gap:10px;font-weight:750;letter-spacing:-1px}.brand:first-letter{color:#c5d9a6}.eyebrow{display:block;letter-spacing:2px;font-size:10px;font-weight:700;color:#82978a;margin-bottom:12px}[hidden]{display:none!important}.shell{display:flex;min-height:100vh}aside{width:232px;position:fixed;inset:0 auto 0 0;background:#183e31;color:#e6efe5;display:flex;flex-direction:column;padding:36px 22px}aside .brand{padding:0 10px}.nav-caption{font-size:9px;letter-spacing:1.7px;color:#8cad9b;margin:55px 12px 18px}nav{display:grid;gap:8px}nav button{border:0;background:transparent;color:#b7cdc0;text-align:left;padding:15px;font-size:18px;display:flex;gap:15px;align-items:center}nav button span{font-size:13px}nav button.active,nav button:hover{background:#2b5342;color:#fff}.sidebar-bottom{border-top:1px solid #416250;margin-top:auto;padding-top:24px;display:flex;gap:10px;align-items:center}.sidebar-bottom strong,.sidebar-bottom small{display:block}.sidebar-bottom small{color:#a1b5a7}.sidebar-bottom button{padding:6px;background:none;color:#d8e5dc;border:0;margin-left:auto}.avatar{background:#c1d0a2;color:#234332;border-radius:50%;padding:12px}main{margin-left:232px;width:calc(100% - 232px);padding:42px 42px 18px;max-width:1800px}header,.panel-heading,.section-intro{display:flex;justify-content:space-between;align-items:center;gap:18px}header{margin-bottom:28px}.section-intro{margin-bottom:20px}.section-intro p{margin:0}.inline-label{display:flex;align-items:center;gap:12px}.inline-label input{width:94px;margin:0}.stats{display:grid;grid-template-columns:1.2fr 1fr 1fr .85fr;gap:18px;margin-bottom:24px}.stat{background:#fff;border:1px solid #e2e8e2;padding:24px;border-radius:14px}.stat>span{font-size:12px;color:#78867d}.stat strong{display:block;font-size:29px;font-weight:650;letter-spacing:-1px;margin:20px 0 12px;overflow-wrap:anywhere}.stat.balance{background:#e6ecd8;border-color:#d8e2c7}.stat.balance span,.stat.balance small{color:#657954}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}.income-dot{background:#4d8a69}.expense-dot{background:#d4a479}.charts{display:grid;grid-template-columns:1.65fr 1fr;gap:24px}.panel{padding:25px;background:#fff;border:1px solid #e2e8e2;border-radius:14px;margin-bottom:24px;min-width:0}.panel-heading p,.panel>p{font-size:12px;margin-bottom:12px}.legend{display:flex;gap:12px;font-size:10px;white-space:nowrap}.legend span:first-child{color:#508468}.legend span:last-child{color:#bc956d}.monthly-chart{height:195px;display:flex;gap:10px;align-items:flex-end;background:repeating-linear-gradient(to top,#edf0eb 0px,#edf0eb 1px,transparent 1px,transparent 48px);padding-top:15px}.chart-pair{display:flex;flex:1;height:100%;align-items:flex-end;gap:3px;min-width:0}.chart-pair svg{width:100%;height:100%;overflow:visible}.month-labels{display:flex;justify-content:space-around;font-size:9px;color:#839287;margin-top:12px}.category-row{margin:20px 0}.category-row div{display:flex;justify-content:space-between;font-size:12px;gap:10px;margin-bottom:9px}progress{appearance:none;width:100%;height:7px;border:0;border-radius:10px;overflow:hidden}progress::-webkit-progress-bar{background:#f0f2ed}progress::-webkit-progress-value{background:#719776;border-radius:10px}progress::-moz-progress-bar{background:#719776}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left;font-size:12px}th{font-size:10px;color:#839086;text-transform:uppercase;letter-spacing:.7px;font-weight:600;padding:14px 12px;border-bottom:1px solid #e3e9e3}td{padding:16px 12px;border-bottom:1px solid #f0f2ed}tbody tr:last-child td{border:0}td.description{max-width:250px;overflow:hidden;text-overflow:ellipsis}.amount{font-variant-numeric:tabular-nums;text-align:right;font-weight:650}.positive{color:#3a8460}.negative{color:#a56a46}.badge{background:#eff3e9;color:#6b8059;padding:5px 8px;border-radius:6px;font-size:10px}.actions{display:flex;gap:5px}.actions button{padding:6px 9px;font-size:11px}.text-button{border:0;background:none;font-size:12px;color:#507861;padding:6px}.filters{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}.filters label{flex:1;min-width:125px}.pagination{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #edf0e9;padding-top:20px;margin-top:10px;font-size:12px}.tabs{display:flex;gap:8px;margin:25px 0;flex-wrap:wrap}.tabs .active{background:#24664f;color:#fff;border-color:#24664f}.lookup-form{display:flex;gap:14px;align-items:flex-end;margin-bottom:25px;flex-wrap:wrap}.lookup-form label{flex:1;min-width:170px}.empty{text-align:center;padding:45px 15px;color:#839084;line-height:1.8}.empty strong{display:block;color:#385b47;font-size:16px;margin-bottom:5px}footer{display:flex;justify-content:space-between;align-items:center;color:#91a092;font-size:10px;padding:12px 0}dialog{border:0;border-radius:18px;padding:30px;width:580px;max-width:94vw;max-height:90vh;box-shadow:0 24px 100px #173c3140}dialog::backdrop{background:#122c2466;backdrop-filter:blur(3px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.dialog-header button{border:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.form-note{font-size:11px;margin-top:18px}.error{color:#a64833;min-height:22px}#toast{position:fixed;bottom:24px;right:24px;background:#1f4939;color:white;padding:16px 22px;border-radius:12px;z-index:10;box-shadow:0 8px 28px #0002;max-width:calc(100vw - 48px)}.login-layout{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-story{background:#183e31;color:#e4ecd8;padding:55px 12%;position:relative;overflow:hidden}.login-story .eyebrow{margin-top:100px}.login-story h1{font-size:65px;line-height:1.1;letter-spacing:-3px}.login-story p{color:#a7c0aa;margin-top:24px;font-size:16px}.login-card{align-self:center;width:380px;max-width:80%;margin:50px auto}.login-card h2{font-size:32px}.login-card label{margin:24px 0}.login-card .primary{width:100%;padding:14px}.login-card small{display:block;margin-top:32px}.decorative-chart{display:flex;gap:17px;align-items:flex-end;height:150px;margin-top:60px}.decorative-chart i{width:30px;height:30%;background:#90a97b;border-radius:8px 8px 0 0}.decorative-chart i:nth-child(2){height:42%}.decorative-chart i:nth-child(3){height:36%}.decorative-chart i:nth-child(4){height:60%}.decorative-chart i:nth-child(5){height:70%}.decorative-chart i:nth-child(6){height:65%}.decorative-chart i:nth-child(7){height:95%;background:#d4dfa5}#password-form label{margin-top:18px}
@media(min-width:1600px){main{padding-left:55px;padding-right:55px}}@media(max-width:1150px){aside{width:190px;padding:30px 15px}main{margin-left:190px;width:calc(100% - 190px);padding:30px 24px}.stats{grid-template-columns:1fr 1fr}.charts{grid-template-columns:1fr}.stat strong{font-size:28px}}@media(max-width:700px){aside{position:static;width:100%;padding:16px;display:block}.shell{display:block}aside .brand{font-size:25px}.nav-caption,.sidebar-bottom{display:none}nav{display:flex;margin-top:15px;gap:6px}nav button{flex:1;justify-content:center;padding:10px;font-size:15px;gap:7px}nav button span{font-size:11px}main{margin:0;width:100%;padding:24px 16px}header{align-items:flex-start}header h1{font-size:26px}header .primary{font-size:11px;padding:11px}.eyebrow{font-size:8px;letter-spacing:1px}.stats{gap:10px}.stat{padding:18px 15px}.stat strong{font-size:23px}.panel{padding:18px}.panel-heading{align-items:flex-start}.legend{display:none}.login-layout{display:block}.login-story{padding:25px}.login-story .eyebrow{margin-top:35px}.login-story h1{font-size:40px}.login-story p,.decorative-chart{display:none}.login-card{margin:35px auto;max-width:88%}.login-card h2{font-size:27px}.form-grid{gap:12px}dialog{padding:22px}.filters label{min-width:110px}.monthly-chart{gap:6px}footer{flex-wrap:wrap}}
@media(max-width:700px){.sidebar-bottom{display:flex;margin-top:14px;padding-top:12px}.sidebar-bottom .avatar{padding:8px}.sidebar-bottom small{display:inline;margin-left:8px}.sidebar-bottom strong{display:inline}.nav-caption{display:none}}

/* Pockety brown theme and dashboard charts */
:root{color:#3b281f;background:#f7f2ee}
body{background:#f7f2ee}
.primary{background:#6b3f27;border-color:#6b3f27}.primary:hover{background:#53301e}
aside,.login-story{background:#3a2419;color:#f4e9df}
nav button{color:#d6c0b1}nav button.active,nav button:hover{background:#5a3827;color:#fff}
.sidebar-bottom{border-color:#755443}.sidebar-bottom small{color:#c8aa98}.avatar{background:#d8b27d;color:#3a2419}
.brand:first-letter{color:#d9a85f}.eyebrow{color:#99765f}
.login-story p{color:#d1b8a7}.decorative-chart i{background:#9b6948}.decorative-chart i:nth-child(7){background:#d9a85f}
button{color:#523628;border-color:#dfd0c5}button:hover{background:#f1e7df}
input,select,textarea{border-color:#dfd0c5;color:#432d23}input:focus,select:focus,textarea:focus{outline-color:#b98545}
.stat,.panel{border-color:#eaded5}.stat.balance{background:#ead9c8;border-color:#dec7b2}.stat.balance span,.stat.balance small{color:#765540}
.income-dot{background:#238b45}.expense-dot{background:#ed1c24}.positive,.income-value{color:#238b45}.negative,.expense-value{color:#d51f2a}
.badge{background:#f3e8df;color:#714d38}.tabs .active{background:#6b3f27;border-color:#6b3f27}.text-button{color:#7d5138}
progress::-webkit-progress-value{background:#8d5d3f}progress::-moz-progress-bar{background:#8d5d3f}.category-row.expense progress::-webkit-progress-value{background:#ed1c24}.category-row.expense progress::-moz-progress-bar{background:#ed1c24}.category-row.income progress::-webkit-progress-value{background:#238b45}.category-row.income progress::-moz-progress-bar{background:#238b45}
.chart-grid,.pie-grid,.ranking-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.monthly-chart,.line-chart{display:block;height:225px;background:repeating-linear-gradient(to top,#eee2d9 0,#eee2d9 1px,transparent 1px,transparent 52px)}.monthly-chart svg,.line-chart svg{display:block;width:100%;height:100%;overflow:visible}.line-chart .balance-zero{stroke:#c8b4a6;stroke-width:1}.line-chart .balance-line{fill:none;stroke:#4d2e21;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.line-chart ellipse{fill:#4d2e21;stroke:#fff;stroke-width:2}.monthly-chart .bar-3d,.line-chart ellipse{cursor:pointer}.monthly-chart .bar-3d{filter:drop-shadow(1px 2px 1px #3a241926)}
.legend span.income-key{color:#238b45}.legend span.expense-key{color:#ed1c24}.legend span.balance-key{color:#4d2e21}
.pie-wrap{display:grid;grid-template-columns:210px minmax(0,1fr);gap:18px;align-items:center;margin-top:22px}.pie{display:block;width:210px;height:210px;transform:rotate(-90deg);filter:drop-shadow(2px 4px 2px #3a241930)}.pie-face circle{cursor:pointer}.pie-legend{display:grid;grid-template-columns:10px minmax(0,max-content) max-content;justify-content:start;align-items:center;column-gap:7px;row-gap:8px;font-size:11px}.pie-legend div{display:contents}.pie-legend i{display:block;width:9px;height:9px;border-radius:50%}.pie-legend span{max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pie-legend strong{font-variant-numeric:tabular-nums;margin-left:4px;text-align:right;justify-self:end}.swatch-0{background:#0057b8}.swatch-1{background:#ff3b30}.swatch-2{background:#00a86b}.swatch-3{background:#ff9500}.swatch-4{background:#7b2cbf}.swatch-5{background:#00a6a6}.swatch-6{background:#e6007e}.swatch-7{background:#8c510a}.swatch-8{background:#6a994e}.swatch-9{background:#555}
.header-actions,.icon-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:nowrap}.header-actions{min-width:0}.header-actions button{white-space:nowrap}.icon-actions button{padding:8px 7px;font-size:10px}.filter-actions{flex-basis:100%;display:flex;gap:10px;justify-content:flex-start}.filter-actions button{min-width:95px}#chart-tooltip{position:fixed;z-index:30;pointer-events:none;background:#2f1c14;color:#fff;padding:8px 11px;border-radius:7px;font-size:12px;font-variant-numeric:tabular-nums;box-shadow:0 6px 20px #0003;white-space:nowrap}.restore-options{border:1px solid #dfd0c5;border-radius:10px;padding:14px;margin:20px 0}.restore-options legend{font-weight:700;padding:0 6px}.restore-options label{display:flex;align-items:flex-start;gap:10px;padding:10px}.restore-options input{width:auto;margin:2px 0}.restore-options strong,.restore-options small{display:block}.restore-options small{margin-top:3px}
@media(max-width:950px){.pie-grid,.ranking-grid{grid-template-columns:1fr}.pie-wrap{grid-template-columns:180px 1fr}.pie{width:180px;height:180px}}
@media(max-width:700px){.chart-grid{grid-template-columns:1fr}}
@media(max-width:520px){.pie-wrap{grid-template-columns:1fr}.pie{width:180px;height:180px;margin:auto}.legend{display:flex;flex-wrap:wrap}.monthly-chart,.line-chart{height:190px}}
@media(max-width:700px){header{flex-wrap:wrap}.header-actions{width:100%;justify-content:flex-start}.icon-actions{justify-content:flex-start}.icon-actions button span{display:none}}

/* Export controls, resource summaries and right-aligned pie legends */
.pie-legend{justify-self:end}
.icon-actions{gap:7px}
.icon-actions .export-icon{height:42px;min-width:42px;padding:5px 7px;display:grid;place-items:center}
.file-icon{position:relative;display:grid!important;place-items:end center;width:26px;height:30px;padding-bottom:3px;border-radius:2px;color:#fff;font-size:7px;font-weight:800;letter-spacing:.2px;box-shadow:0 1px 2px #0002}
.file-icon:before{content:"";position:absolute;right:0;top:0;border-style:solid;border-width:0 0 7px 7px;border-color:transparent transparent #ffffffb8 transparent}
.file-icon.csv{background:#147b45}.file-icon.xlsx{background:#197045}.file-icon.ods{background:#2468a2}
.printer-icon svg{width:27px;height:27px;fill:none;stroke:#5b3928;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.printer-icon svg circle{fill:#5b3928;stroke:none}
.resource-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:14px;margin-top:18px}
.resource-card{border:1px solid #eaded5;border-radius:12px;padding:17px;background:#fbf8f5;min-width:0}
.resource-card h3{font-size:14px;margin:0 0 14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.resource-card dl{margin:0;display:grid;gap:8px}.resource-card dl div{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.resource-card dt{font-size:11px;color:#806f65}.resource-card dd{margin:0;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.resource-card .resource-balance{border-top:1px solid #eaded5;padding-top:9px;margin-top:2px}
@media(max-width:700px){.file-icon{display:grid!important}}
.icon-actions a.export-icon{background:#fff;color:#523628;border:1px solid #dfd0c5;border-radius:9px;text-decoration:none;cursor:pointer}
.icon-actions a.export-icon:hover{background:#f1e7df}
.tabs .profile-tab{margin-left:auto;border-color:#b88b69;color:#6b3f27}
.avatar{width:42px;height:42px;display:grid;place-items:center;padding:0;overflow:hidden;flex:0 0 42px}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
#profile-form>label{margin-top:16px}.profile-image-row{display:grid;grid-template-columns:82px 1fr;gap:16px;align-items:center;margin-bottom:18px}
.profile-image-row img{width:78px;height:78px;border-radius:50%;object-fit:cover;border:2px solid #ead9c8;background:#f3e8df}
.profile-image-row:has(#profile-current-image[hidden]){grid-template-columns:1fr}.profile-image-row label,#profile-image{width:100%}.profile-image-row small{display:block;margin-top:5px}.profile-remove{display:flex;align-items:center;gap:9px}.profile-remove input{width:auto;margin:0}
.sidebar-bottom .sidebar-profile{display:flex;align-items:center;gap:10px;min-width:0;margin:0!important;padding:0!important;flex:1;text-align:left;border:0;background:transparent;color:inherit}.sidebar-bottom .sidebar-profile:hover .sidebar-identity strong,.sidebar-bottom .sidebar-profile:focus-visible .sidebar-identity strong{color:#fff}.sidebar-identity{min-width:0}.sidebar-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:105px}.password-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.forgot-password{display:block;margin:10px auto 0}.form-message{color:#4c775f;margin:12px 0 0}#reset-password-form>label{margin-top:16px}#send-reset-code{margin-top:12px}
.password-input-wrap{display:block;position:relative}.password-input-wrap input{padding-right:44px}.password-toggle{position:absolute;right:5px;top:12px;width:34px;height:34px;padding:7px;border:0;background:transparent;color:#75462e}.password-toggle:hover{background:#f1e3d7}.password-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.profile-hint{font-size:10.5px;margin:18px 0 0;line-height:1.5}.dialog-error{min-height:0;margin:14px 0 0;padding:0;color:#9f2f24;font-size:12px;font-weight:650}.dialog-error:not(:empty){padding:10px 12px;border:1px solid #e8b5ad;border-radius:8px;background:#fff1ef}
@media(max-width:520px){.tabs .profile-tab{margin-left:0}.profile-image-row{grid-template-columns:1fr}.profile-image-row img{margin:auto}}
@media(max-width:520px){.password-pair{grid-template-columns:1fr}}
