
:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#193534;background:#f5f5ef;font-synthesis:none;--muted:#77837e;--line:#e0e5dc;--green:#216859;--nav:#142b2c;--red:#ac4a3f}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:10px;padding:11px 16px;background:#e9eee5;color:#193534;font-weight:600}button:hover{filter:brightness(.96)}button:focus-visible,a:focus-visible{outline:3px solid #78b6a6;outline-offset:3px}.primary{background:var(--green);color:white}.danger{color:#a23930;background:#fff0ed}.quiet{background:transparent}.small{padding:7px 10px;font-size:12px}aside{position:fixed;inset:0 auto 0 0;width:235px;background:var(--nav);color:#cfdbd4;padding:32px 22px;display:flex;flex-direction:column;z-index:10}.brand{font-size:24px;font-weight:750;color:#fff;margin-bottom:6px;letter-spacing:-1px}.brand span{display:inline-grid;place-items:center;width:36px;height:36px;background:#c4eeab;color:#142b2c;border-radius:10px;margin-right:9px}.brand-sub{font-size:11px;letter-spacing:2px;margin:5px 0 42px 46px;color:#95aaa1}nav{display:grid;gap:6px}nav button{text-align:left;background:transparent;color:#b8cbc3;padding:13px 14px;font-weight:500}nav button.active{background:#304947;color:#e0f4cf}nav button i{font-style:normal;font-size:18px;display:inline-block;width:29px}aside footer{margin-top:auto;font-size:12px;color:#a0b5ac;line-height:1.8;padding:20px 12px 0}aside footer button{color:#c1d4cc}main{margin-left:235px;padding:38px 46px;max-width:1700px}.top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:35px}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:700;color:var(--muted);margin-bottom:9px}h1{font-size:32px;letter-spacing:-1.1px;margin:0;font-weight:650}h2{font-size:18px;margin:0 0 16px}h3{font-size:15px;margin:0 0 10px}p{line-height:1.6}.muted,.help{color:var(--muted);font-size:13px}.month{display:flex;align-items:center;gap:4px;background:white;padding:4px;border:1px solid var(--line);border-radius:12px}.month input{width:150px;padding:6px;border:0;background:transparent}.tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.hero{display:grid;grid-template-columns:1.35fr 1fr;gap:24px;margin-bottom:24px}.balance{background:#dceacb;border:1px solid #d0dfbf;border-radius:20px;padding:30px;position:relative;overflow:hidden}.balance:after{content:'€';position:absolute;right:25px;bottom:-45px;font-size:185px;font-weight:700;color:#c2d5ad;opacity:.5;pointer-events:none}.balance .amount{font-size:48px;letter-spacing:-2px;font-weight:650;margin:12px 0 10px;position:relative;z-index:1}.balance p{max-width:390px;margin:8px 0;font-size:13px}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:22px}.metric-label{font-size:12px;color:var(--muted);margin-bottom:13px}.metric-value{font-size:25px;font-weight:650;letter-spacing:-.8px}.metric-note{font-size:11px;color:var(--muted);margin-top:8px}.grid{display:grid;grid-template-columns:1.35fr 1fr;gap:24px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.section-head h2{margin:0}.badge{border-radius:7px;padding:5px 8px;font-size:11px;white-space:nowrap;background:#eef2e9;color:#56704e}.badge.warn{background:#fff2d9;color:#946b20}.badge.good{background:#e6f3eb;color:#2c7455}.row{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid #edf0e9}.row:last-child{border-bottom:0}.row-main{flex:1;min-width:0}.row-title{font-size:14px;font-weight:600;overflow-wrap:anywhere}.row-sub{font-size:11px;color:var(--muted);margin-top:5px}.row-value{font-weight:600;font-size:14px;white-space:nowrap}.icon-circle{width:37px;height:37px;border-radius:12px;background:#f0f3e9;display:grid;place-items:center;flex-shrink:0;color:#547254}.positive{color:#258061}.negative{color:#a64f41}.empty{text-align:center;padding:38px 15px;color:var(--muted);font-size:14px}.empty b{display:block;color:#36534a;font-size:16px;margin-bottom:10px}.notice{padding:14px 18px;background:#fff5dd;border:1px solid #eadbb4;border-radius:12px;font-size:13px;line-height:1.6;margin-bottom:20px}.filters{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap}.filters input{flex:1;min-width:180px}input,select,textarea{padding:11px 12px;border:1px solid #d9e0d6;background:white;border-radius:9px;color:#203b33;max-width:100%}input:focus,select:focus,textarea:focus{outline:2px solid #9bc6ad;border-color:transparent}label{display:grid;gap:7px;font-size:12px;font-weight:600}textarea{min-height:75px;resize:vertical}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#849086;padding:13px 10px;border-bottom:1px solid var(--line)}td{padding:15px 10px;border-bottom:1px solid #edf0e9}td:last-child{text-align:right}.table-wrap{overflow:auto}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.cards .card{display:flex;flex-direction:column;gap:12px}.cards .tools{margin-top:auto}.progress{height:7px;background:#edf0e9;border-radius:5px;overflow:hidden;margin:10px 0}.progress span{display:block;height:100%;background:#73a28b}.big{font-size:28px;font-weight:650}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.form-error{color:#a23c2f;font-size:13px;line-height:1.5}dialog{border:0;border-radius:20px;padding:28px;width:min(620px,calc(100% - 28px));max-height:90vh;overflow:auto;color:#193534;box-shadow:0 20px 100px #142b2c40}dialog::backdrop{background:#0b222b88;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dialog-head h2{margin:0}.auth{max-width:440px;margin:12vh auto;padding:35px;background:white;border-radius:20px;border:1px solid var(--line)}.auth .brand{color:#142b2c;margin-bottom:25px}.auth form{display:grid;gap:18px}.auth h1{font-size:26px;margin-bottom:15px}.auth p{font-size:14px;color:#6b7a70}.auth .primary{width:100%}#toast{position:fixed;bottom:28px;right:28px;z-index:100;background:#193e35;color:white;padding:14px 20px;border-radius:12px;box-shadow:0 6px 30px #142b2c20;display:none;max-width:450px}.loading{padding:80px;text-align:center}.forecast{display:flex;align-items:flex-end;height:170px;gap:16px;padding-top:20px}.forecast-col{flex:1;text-align:center;font-size:11px;color:#728479}.bar{background:#c4d8b8;border-radius:7px 7px 0 0;min-height:4px;margin:8px auto;width:70%;max-width:70px}.forecast-col b{font-size:11px;color:#375b4e;white-space:nowrap}.forecast-col .bar.neg{background:#e4b9a9}.calendar-list .row{padding:17px 0}.date-block{background:#edf1e5;border-radius:10px;width:50px;padding:7px;text-align:center;font-size:10px}.date-block strong{display:block;font-size:21px}.settings-block{max-width:850px;margin-bottom:20px}.settings-block p{font-size:13px;color:#718276}.print-title{display:none}@media(min-width:1500px){main{padding:48px 65px}}@media(max-width:1100px){main{padding:28px 25px;margin-left:205px}aside{width:205px;padding:28px 14px}.hero,.grid{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.balance .amount{font-size:42px}.top{align-items:flex-start}}@media(max-width:720px){aside{position:relative;width:100%;padding:16px 18px;display:block}.brand{font-size:20px}.brand span{width:30px;height:30px}.brand-sub,aside footer{display:none}nav{display:flex;overflow-x:auto;gap:5px;margin-top:16px;padding-bottom:4px}nav button{padding:10px;white-space:nowrap;font-size:12px}nav button i{width:22px;font-size:15px}main{margin:0;padding:25px 16px}.top{flex-wrap:wrap;margin-bottom:24px}h1{font-size:27px}.top>.tools{width:100%;justify-content:space-between}.hero{gap:15px}.balance{padding:24px}.balance .amount{font-size:39px}.card{padding:18px}.grid{gap:15px}.cards{grid-template-columns:1fr}.summary-grid{gap:10px}.metric-value{font-size:23px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}dialog{padding:22px}#toast{left:18px;right:18px;bottom:18px}.forecast{gap:5px}.auth{margin:8vh 16px}.row .tools{gap:3px}.row .small{padding:6px}.month input{width:140px}}@media print{aside,.top .tools,button,.filters,#toast,dialog{display:none!important}main{margin:0;padding:0;max-width:none}body{background:white;font-size:11px}.card,.balance{break-inside:avoid;border:1px solid #ccc}.print-title{display:block}.hero,.grid{display:block}.card,.balance{margin-bottom:12px}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr)}.amount{font-size:30px!important}td{padding:8px}.table-wrap{overflow:visible}}

@media(max-width:720px){.month input{width:160px}.top>.tools{gap:10px}}

/* Dark appearance; print reports retain their light paper layout. */
@media screen {
 :root {color-scheme:dark;color:#edf0f1;background:#090b0d;--muted:#a0a8ae;--line:#2a3035;--green:#91d6b0;--nav:#0d1012;--red:#ff9a91}
 body {background:#090b0d}
 aside {background:#0d1012;border-right:1px solid #262b30;color:#c5ccd1}
 .brand,.auth .brand {color:#f5f7f8}
 .brand span {background:#91d6b0;color:#10251a}
 .brand-sub,aside footer {color:#98a2aa}
 aside footer button {color:#c3cbd0}
 nav button {color:#aab4bb}
 nav button.active {background:#1c3027;color:#bcebd0;box-shadow:inset 3px 0 #91d6b0}
 button {background:#262c31;color:#e4e9ec;transition:background .15s,color .15s}
 button:hover {filter:brightness(1.12)}
 .primary {background:#91d6b0;color:#10251a}
 .quiet {background:transparent;color:#bdc9c5}
 .danger {background:#382024;color:#ffb0a9}
 button:focus-visible,a:focus-visible {outline-color:#91d6b0}
 .card,.auth {background:#15191d;border-color:#2a3035;box-shadow:0 8px 28px #00000018}
 .month {background:#15191d;border-color:#333b42}
 .month input {background:transparent}
 .balance {background:linear-gradient(135deg,#1a2822,#141b18);border-color:#354e40}
 .balance .amount {color:#c5f1d6}
 .balance:after {color:#a0d6b0;opacity:.06}
 .balance p {position:relative;z-index:1;color:#b7c8bd}
 .balance .eyebrow {color:#a2c0ad}
 .metric-value,h1,h2,h3 {color:#f0f3f5}
 .badge {background:#282e32;color:#c3cdd3}
 .badge.good {background:#1d3529;color:#a2dfba}
 .badge.warn {background:#382f1e;color:#eed099}
 .row,td {border-bottom-color:#2a3035}
 .icon-circle,.date-block {background:#252e2a;color:#abd0ba}
 .positive {color:#9bdcb7}.negative,.form-error {color:#ffaaa1}
 .empty b {color:#dae4df}
 .notice {background:#29251b;border-color:#51452c;color:#e0d4b8}
 input,select,textarea {background:#101316;border-color:#3b444c;color:#edf0f1}
 input::placeholder,textarea::placeholder {color:#929da6}
 input:focus,select:focus,textarea:focus {outline-color:#91d6b0}
 input[type=checkbox] {accent-color:#91d6b0}
 a {color:#a5dfbd}
 th {color:#a5afb7}
 .progress {background:#30373c}
 .progress span,.bar {background:#7dbf99}
 .forecast-col,.settings-block p,.auth p {color:#a0acb3}
 .forecast-col b {color:#d7e4dc}
 .forecast-col .bar.neg {background:#c1857e}
 dialog {background:#181d21;color:#edf0f1;border:1px solid #3b444c;box-shadow:0 24px 100px #0009}
 dialog::backdrop {background:#000b}
 #toast {background:#294534;border:1px solid #558469;color:#edf8f1;box-shadow:0 6px 30px #0006}
 * {scrollbar-color:#48525a #101316}
 ::selection {background:#426b53;color:#fff}
}
/* Savings and budget workspace */
.saving-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.saving-intro h2{font-size:25px;margin-bottom:8px}.saving-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}.saving-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.goal-percent{font-size:26px;font-weight:700;color:#a4e5bd}.goal-card .big small{font-size:14px;color:var(--muted);font-weight:400}.goal-track{height:11px;margin:16px 0}.goal-facts{display:flex;justify-content:space-between;gap:15px}.goal-facts span{display:block;font-size:11px;color:var(--muted);margin-bottom:7px}.goal-facts b{font-size:14px}.saving-hint{padding:13px 16px;border-radius:10px;background:#1f3027;color:#bde7cd;font-size:13px;line-height:1.6}.budget-item{padding:22px 0;border-bottom:1px solid var(--line)}.budget-item:first-child{padding-top:0}.budget-item:last-child{border-bottom:0;padding-bottom:0}.fresh-start{padding:38px;border-radius:20px;background:linear-gradient(125deg,#1b2a22,#14191d);border:1px solid #354b3d}.fresh-start h2{font-size:32px;margin-top:14px}.fresh-start p{max-width:600px;color:#adbbb2;margin-bottom:25px}.form-grid label[hidden]{display:none}.form-grid select{width:100%}@media(max-width:720px){.saving-stats,.saving-cards{grid-template-columns:1fr}.saving-intro{align-items:flex-start;flex-direction:column}.fresh-start{padding:24px}.fresh-start h2{font-size:27px}.goal-facts{flex-wrap:wrap}.goal-card .tools{gap:8px}}@media print{.saving-hint,.fresh-start{background:white;color:#222}.goal-percent{color:#222}}
.optional-fields{margin-top:20px;border:1px solid var(--line);border-radius:12px;padding:14px}.optional-fields summary{cursor:pointer;font-size:13px;color:var(--muted)}.optional-fields[open] summary{margin-bottom:18px}

.apk-logo{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#82e8bc;color:#09120e;font-weight:800;text-decoration:none}.apk-logo:hover{box-shadow:0 0 0 3px #82e8bc55}.receipt-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.receipt-options label{padding:14px;border:1px solid #34403b;border-radius:12px;background:#171d1a}.receipt-options input{max-width:100%;font-size:12px}#receipt-panel .row{overflow-wrap:anywhere}

/* Sparquak identity */
.brand{gap:12px}.apk-logo{width:48px;height:48px;background:#101916;flex-shrink:0;border-radius:13px}.apk-logo img{display:block;width:48px;height:48px;border-radius:13px}.apk-logo:hover{box-shadow:0 0 0 3px #ffd66b66}.apk-logo:focus-visible{outline:3px solid #ffd66b;outline-offset:3px}
.brand{display:flex;align-items:center;gap:12px}
