/* Completely local: no remote fonts or stylesheets. */
:root{font-family:Segoe UI,Arial,sans-serif;color:#203b34;background:#f4f6f3;font-synthesis:none;--green:#145c4b;--line:#e3e9e2}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;background:white;border:1px solid #d6dfd7;border-radius:9px;padding:10px 15px;color:#284a40}button:hover{filter:brightness(.95)}button:focus-visible,a:focus-visible{outline:3px solid #b79b42;outline-offset:3px}.primary{background:var(--green);color:white;border-color:var(--green)}aside{position:fixed;inset:0 auto 0 0;width:235px;padding:36px 24px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{text-decoration:none;color:var(--green);font-size:26px;font-weight:700;display:flex;gap:9px;align-items:center}.brand span{font-size:20px}.brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:6px;color:#7c8c81}.workspace{margin:39px 0 26px;font-size:12px;color:#718075}.workspace select{width:100%;margin-top:10px;background:#f6f8f5}nav{display:grid;gap:10px}nav button{text-align:left;border:0;color:#687b72;padding:14px}nav button.active{color:#145c4b;background:#eaf2e9;font-weight:600}.aside-bottom{margin-top:auto;font-size:12px;color:#728379;padding-top:30px}.aside-bottom p{font-size:17px;line-height:1.7;color:#476052;margin:24px 0}.dot{display:inline-block;width:7px;height:7px;background:#83a578;border-radius:50%;margin-right:6px}main{margin-left:235px;max-width:1600px;padding:44px 48px 20px}header{display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow{font-size:10px;letter-spacing:2px;color:#6a8372;font-weight:700}h1{font-size:32px;letter-spacing:-1px;font-weight:600;margin:12px 0}p{color:#758379;font-size:14px;line-height:1.7}header p{margin-top:0}.toolbar{display:flex;justify-content:space-between;align-items:center;margin:24px 0;color:#7a887e;font-size:12px}.toolbar input{margin-left:10px;padding:8px;width:160px}.cards{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:20px}article{background:white;border:1px solid var(--line);border-radius:16px;padding:26px;margin-bottom:22px}article.balance{background:#145c4b;color:#fff;border:0;position:relative;overflow:hidden}article.balance:after{content:'◌';font-size:190px;position:absolute;right:-35px;top:-36px;color:#ffffff0c;pointer-events:none}.cards span{font-size:13px}.cards h2{font-size:32px;letter-spacing:-1px;margin:22px 0 12px}.cards small{font-size:11px;opacity:.75}.green{color:#317d55}.grid{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}h2{font-size:17px;font-weight:600;margin:0}h3{font-size:17px}.badge{font-size:10px;color:#8a947e;background:#f1f3eb;padding:7px 10px;border-radius:6px}.link{border:0;padding:5px;font-size:12px;color:var(--green)}progress{width:100%;height:10px;border:none;border-radius:10px;overflow:hidden;background:#edf1e8;accent-color:#8da76e}progress::-webkit-progress-bar{background:#edf1e8}progress::-webkit-progress-value{background:#8da76e}.tip{font-size:12px;line-height:1.8;background:#f3f5ec;color:#728063;padding:16px;border-radius:10px;margin:16px 0}.empty{text-align:center;padding:32px 12px;color:#819084}.empty strong{display:block;color:#46624f;font-weight:500;font-size:16px;margin-bottom:9px}.empty p{font-size:12px}.category-row{margin:19px 0}.category-row div{display:flex;justify-content:space-between;font-size:13px;margin-bottom:8px}.filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}.filters input{flex:1;min-width:180px}input,select{border:1px solid #d6dfd7;background:#fff;border-radius:8px;padding:11px;max-width:100%;color:#284a40}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:#869085;font-weight:500;font-size:11px;padding:12px 6px;border-bottom:1px solid var(--line)}td{padding:15px 6px;border-bottom:1px solid #eef1ec}td small{display:block;font-size:10px;color:#8b948b;margin-top:5px}.amount{text-align:right;white-space:nowrap;font-weight:600}.income{color:#287750}.expense{color:#8d554a}.row-actions{text-align:right;white-space:nowrap}.row-actions button{padding:5px 8px;font-size:11px;margin-left:4px}.table-wrap{overflow-x:auto}.goal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:24px}.goal-grid article h2{margin-bottom:20px}.goal-grid .actions{margin-top:22px}.backup{max-width:850px}.actions{display:flex;gap:12px;flex-wrap:wrap}footer{display:flex;justify-content:space-between;color:#96a190;font-size:9px;letter-spacing:1px;margin-top:25px;padding-top:18px;border-top:1px solid var(--line)}dialog{border:1px solid var(--line);border-radius:18px;padding:28px;width:460px;max-width:94vw;color:#203b34}dialog::backdrop{background:#102e2555;backdrop-filter:blur(3px)}dialog label{display:grid;gap:8px;margin:17px 0;font-size:13px}dialog .primary{width:100%;margin-top:15px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid input{width:100%}#notice{background:#e6efe2;padding:14px 18px;border-radius:9px;margin-top:16px;font-size:13px}#notice.error{background:#fae8df;color:#8b372b}[hidden]{display:none!important}@media(max-width:1100px){main{padding:32px 25px}.cards{gap:12px}.cards h2{font-size:25px}.grid{grid-template-columns:1fr}article{padding:22px}}@media(max-width:760px){aside{position:static;width:auto;padding:18px;border-right:0}.workspace{margin:18px 0 10px}.aside-bottom{display:none}nav{grid-template-columns:1fr 1fr;gap:5px}nav button{padding:10px}.brand small{display:none}main{margin:0;padding:24px 16px}header{align-items:start;flex-direction:column}h1{font-size:27px}.cards{grid-template-columns:1fr}.cards h2{font-size:32px}.cards article{margin-bottom:0}.cards{margin-bottom:20px}.toolbar #today{display:none}.form-grid{grid-template-columns:1fr}.goal-grid{grid-template-columns:1fr}}
/* Version 2: planning, accounts and printable reports. */
aside{overflow-y:auto}nav{gap:4px}nav button{padding:11px;font-size:13px}.workspace{margin:26px 0 20px}.aside-bottom p{font-size:14px;margin:14px 0}.goal-grid article>h2{margin-top:16px}.goal-grid article h2 small{font-size:12px;color:#7d8d81;font-weight:400}.actions button{font-size:12px}.late{background:#fff0e7;color:#a45835}.reminder{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #e5d9b2;background:#fbf8ec;padding:18px;border-radius:13px;margin-bottom:22px;font-size:13px}.reminder button{background:transparent;border:0;padding:4px;font-size:12px}.report-chart{display:flex;gap:12px;height:210px;margin:30px 0 20px}.chart-month{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:12px}.chart-bars{height:175px;width:100%;display:flex;align-items:end;justify-content:center;gap:4px;border-bottom:1px solid #e0e7df}.chart-bars i{display:block;width:32%;background:#4e9272;border-radius:4px 4px 0 0;min-height:0}.chart-bars i+i{background:#d2a28f}.chart-month small{font-size:10px;color:#718172}.chart-legend{display:flex;gap:20px;font-size:12px}caption{text-align:left;color:#839181;font-size:11px;padding:12px 0}#reports .cards{grid-template-columns:repeat(3,1fr)}#reports .cards article{background:#f6f8f4;padding:18px}#reports .cards h2{font-size:23px}button:disabled{opacity:.45;cursor:not-allowed}#advanced-error{padding:10px;background:#fff0e9;border-radius:8px}dialog{max-height:90vh;overflow:auto}#advanced-dialog{width:510px}#advanced-fields .table-wrap{max-height:50vh}#advanced-fields p{font-size:12px}
@media(max-width:760px){.reminder{align-items:start;flex-direction:column}#reports .cards{grid-template-columns:1fr}.report-chart{gap:4px}.section-heading{flex-wrap:wrap}}
@media print{@page{size:A4;margin:14mm}body{background:white;color:#111}aside,header,.toolbar,#notice,footer,dialog,.page:not(#reports),#reports .actions{display:none!important}main{margin:0;max-width:none;padding:0}#reports{display:block!important}#reports article{border:0;padding:0;box-shadow:none}#reports .cards{display:flex;gap:20px}#reports .cards article{flex:1;padding:10px}#reports .cards h2{font-size:18px}.report-chart{height:150px}.chart-bars{height:120px}tr{break-inside:avoid}td{padding:8px 5px}*{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
