.expenses-app{--exp-ink:#183327;--exp-muted:#718078;--exp-line:#dfe7df;--exp-accent:#b7e268;font-family:inherit;color:var(--exp-ink);max-width:1600px;margin:0 auto;padding-bottom:32px}.expenses-app *{box-sizing:border-box}.expenses-app button,.expenses-app input,.expenses-app select,.expenses-app textarea{font:inherit}.expenses-app button,.exp-more summary{border:1px solid var(--exp-line);border-radius:9px;background:#fff;color:var(--exp-ink);min-height:38px;padding:9px 13px;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap}.expenses-app button:hover:not(:disabled),.exp-more summary:hover{background:#edf4e9;border-color:#b8c9b7}.expenses-app button:disabled{opacity:.48;cursor:default}.expenses-app button:focus-visible,.expenses-app input:focus-visible,.expenses-app select:focus-visible,.expenses-app textarea:focus-visible,.expenses-app summary:focus-visible{outline:3px solid #80a759;outline-offset:3px}.expenses-app .exp-primary{background:#213b2e;border-color:#213b2e;color:#fff}.expenses-app .exp-primary:hover:not(:disabled){background:#345540;color:#fff}.exp-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:24px 0 28px}.exp-kicker{display:block;font-size:9px;font-weight:700;letter-spacing:1.7px;color:#7b9062;margin-bottom:10px}.exp-hero h2{font-size:clamp(27px,3.1vw,43px);line-height:1.12;font-weight:580;letter-spacing:-1.4px;margin:0 0 12px;color:var(--exp-ink)}.exp-hero p{font-size:12px;line-height:1.7;color:var(--exp-muted);max-width:650px;margin:0 0 12px}.exp-storage{font-size:10px;color:#678354;background:#f0f5e8;padding:5px 8px;border-radius:5px;display:inline-block}.exp-save{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex-shrink:0}.exp-save-state{font-size:10px;color:var(--exp-muted)}.exp-save-state:before{content:'';display:inline-block;vertical-align:middle;width:6px;height:6px;border-radius:50%;background:#789562;margin-right:6px}.exp-save-state.exp-dirty{color:#94713e}.exp-save-state.exp-dirty:before{background:#c69445}.exp-save .exp-primary{padding:12px 20px}.exp-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.exp-metric{background:#fff;border:1px solid var(--exp-line);border-radius:14px;min-width:0;padding:23px}.exp-metric>span{display:block;font-size:11px;color:var(--exp-muted);margin-bottom:14px}.exp-metric>strong{display:block;font-size:clamp(22px,2.4vw,34px);letter-spacing:-1px;line-height:1.15;white-space:normal;overflow-wrap:anywhere;font-weight:600}.exp-metric strong small{font-size:9px;letter-spacing:.5px;margin-left:7px;font-weight:500;color:var(--exp-muted)}.exp-metric p{font-size:10px;color:var(--exp-muted);margin:14px 0 0;min-height:14px}.exp-metric p b{font-weight:600;color:inherit}.exp-metric.exp-featured{background:#eaf4d9;border-color:#d2e1bc}.exp-featured>span,.exp-featured p,.exp-featured strong small{color:#647b4c}.exp-secondary{display:grid;grid-template-columns:1fr 1fr 1.45fr;gap:25px;margin:18px 0 0;padding:18px 22px;background:#f4f6f2;border-radius:12px}.exp-secondary>div>span{display:block;font-size:10px;color:var(--exp-muted);margin-bottom:7px}.exp-secondary>div>strong{display:block;font-size:22px;letter-spacing:-.5px;font-weight:550}.exp-secondary strong small{font-size:10px;letter-spacing:0}.exp-secondary>div>small{display:block;font-size:9px;color:var(--exp-muted);margin-top:7px;line-height:1.7}.exp-secondary>p{font-size:10px;line-height:1.8;color:var(--exp-muted);margin:0;border-left:1px solid #dce4d8;padding-left:24px;align-self:center}.exp-method-note{font-size:9px;line-height:1.7;color:var(--exp-muted);margin:10px 2px 20px}.exp-panel{background:#fff;border:1px solid var(--exp-line);border-radius:14px;padding:22px;min-width:0}.exp-settings{padding:15px 20px}.exp-settings>summary{font-size:11px;font-weight:600;cursor:pointer}.exp-settings-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr auto;gap:14px;align-items:end;padding-top:20px}.exp-toolbar{display:flex;justify-content:space-between;gap:15px;margin:20px 0;align-items:center;flex-wrap:wrap}.exp-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.exp-more{position:relative}.exp-more>summary{list-style:none}.exp-more>summary::after{content:' ↓';color:var(--exp-muted)}.exp-more>div{position:absolute;right:0;top:44px;display:grid;gap:6px;min-width:200px;padding:8px;background:#fff;border:1px solid var(--exp-line);box-shadow:0 8px 30px #18332714;border-radius:10px;z-index:5}.exp-more button{text-align:left}.exp-content{display:grid;grid-template-columns:255px minmax(0,1fr);gap:18px;align-items:start}.exp-section-heading{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-bottom:22px}.exp-section-heading h3{font-size:14px;letter-spacing:-.2px;font-weight:600;margin:0}.exp-section-heading>span{font-size:9px;white-space:nowrap;color:var(--exp-muted)}.exp-category{margin-bottom:21px}.exp-category>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:10px;margin-bottom:9px}.exp-category strong{font-size:10px;font-weight:600}.exp-category small{display:block;font-size:8px;color:var(--exp-muted);margin-top:6px}.exp-track{height:5px;background:#eef2eb;border-radius:5px;overflow:hidden}.exp-track>i{display:block;height:100%;border-radius:5px;background:#91af6e}.exp-category:nth-child(3n) .exp-track>i{background:#b2c990}.exp-category:nth-child(3n + 1) .exp-track>i{background:#576e47}.exp-small{font-size:9px;line-height:1.8;color:var(--exp-muted);margin:18px 0 0}.exp-field{display:flex;flex-direction:column;gap:7px;min-width:0}.exp-field>span{font-size:10px;font-weight:500;color:#5c7062}.exp-field input,.exp-field select,.exp-field textarea{border:1px solid #dce5db;border-radius:7px;min-width:0;width:100%;padding:10px 11px;min-height:38px;background:#fbfcfa;color:var(--exp-ink);font-size:11px}.exp-field textarea{resize:vertical;line-height:1.6}.exp-filters{display:grid;grid-template-columns:1.2fr 1fr auto auto;gap:10px;align-items:end}.exp-scope{font-size:10px;color:var(--exp-muted);margin:16px 0 14px}.exp-table-scroll{overflow-x:auto}.expenses-app table{width:100%;border-collapse:collapse;font-size:10px;text-align:left}.expenses-app th{background:#f6f8f3;color:#7b897c;font-size:9px;font-weight:500;padding:12px 10px;white-space:nowrap;border-bottom:1px solid var(--exp-line)}.expenses-app td{padding:16px 10px;vertical-align:top;border-bottom:1px solid #edf1ea;line-height:1.5}.expenses-app td>strong{font-size:10px;display:block;font-weight:600}.expenses-app td small{display:block;font-size:9px;color:var(--exp-muted);margin-top:4px;line-height:1.6;min-width:120px}.expenses-app td:first-child{min-width:160px;max-width:240px;overflow-wrap:anywhere}.expenses-app .exp-number{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.exp-tag{display:inline-block;font-size:9px;color:#68814e;padding:3px 7px;border-radius:4px;background:#f0f4e8;white-space:nowrap}.expenses-app td small.exp-included{font-size:8px;color:#9d8756;max-width:150px}.exp-row-actions{min-width:90px}.exp-row-actions button{font-size:9px;min-height:25px;padding:4px 7px;background:transparent;border:0;display:block;margin-bottom:4px}.exp-row-actions button:last-child{color:#aa7a65}.exp-empty{padding:55px 25px;text-align:center;background:#fafcf7;border:1px dashed #d9e3d0;border-radius:10px}.exp-empty>span{display:inline-flex;width:40px;height:40px;border-radius:50%;align-items:center;justify-content:center;background:#eaf0e3;color:#7f965f;font-size:22px;margin-bottom:12px}.exp-empty h4{font-size:14px;font-weight:500;margin:0 0 10px}.exp-empty p{font-size:11px;color:var(--exp-muted);margin:0;line-height:1.7}.exp-editor{margin-bottom:20px;border-color:#b7c9a5;background:#fdfefb}.exp-editor .exp-kicker{font-size:8px;margin-bottom:7px}.exp-editor .exp-icon{border:0;background:transparent;padding:0;min-height:28px;width:28px;font-size:24px;font-weight:400;color:var(--exp-muted)}.exp-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.exp-form-grid .exp-wide{grid-column:span 2}.exp-check{display:flex;align-items:flex-start;gap:10px;margin:20px 0;font-size:11px;line-height:1.6}.exp-check input{width:16px;height:16px;min-height:0;margin:2px 0 0;accent-color:#517435;flex-shrink:0}.exp-check strong{font-weight:500}.exp-check small{display:block;font-size:9px;color:var(--exp-muted);margin-top:3px}.exp-form-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--exp-line);padding-top:20px}.exp-form-footer>div>small{font-size:10px;color:var(--exp-muted);display:block;margin-bottom:7px}.exp-form-footer>div>strong{font-size:25px;font-weight:550;letter-spacing:-.5px}.exp-form-footer em{font-size:10px;font-weight:500;font-style:normal;letter-spacing:0}.exp-form-footer p{font-size:9px;color:var(--exp-muted);margin:8px 0 0}.exp-alert{background:#fff6e8;color:#98672f;border:1px solid #ecd9bc;font-size:11px;line-height:1.7;padding:14px 18px;border-radius:10px;margin:16px 0}.exp-import{background:#f2f6ed;margin-bottom:20px;font-size:12px}.exp-import p{font-size:11px;color:var(--exp-muted);line-height:1.7}.exp-loading{padding:50px;text-align:center;color:var(--exp-muted);font-size:12px}.exp-print-heading{display:none}
@media(max-width:1150px){.exp-content{grid-template-columns:1fr}.exp-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px}.exp-breakdown .exp-section-heading,.exp-breakdown>.exp-small{grid-column:1/-1}.exp-metric{padding:18px}.exp-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exp-settings-grid>button{justify-self:start}.exp-hero{align-items:flex-start}.exp-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.exp-hero{flex-direction:column;gap:18px;padding-top:10px}.exp-save{align-items:flex-start;flex-direction:row;align-items:center;flex-wrap:wrap}.exp-save-state{order:2}.exp-hero h2{font-size:31px}.exp-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.exp-metric>strong{font-size:25px}.exp-metric strong small{font-size:8px}.exp-secondary{grid-template-columns:1fr 1fr;gap:18px;padding:18px}.exp-secondary>p{grid-column:1/-1;border-left:0;border-top:1px solid #dce4d8;padding:14px 0 0}.exp-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exp-filters{grid-template-columns:1fr 1fr}.exp-panel{padding:18px}.exp-breakdown{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.exp-form-footer{align-items:flex-start;flex-direction:column}.exp-field input,.exp-field select,.exp-field textarea{font-size:16px}.expenses-app button{min-height:40px}.exp-row-actions button{min-height:32px}.exp-toolbar{gap:14px}.exp-toolbar>.exp-actions{gap:6px}.exp-toolbar button,.exp-more summary{padding:9px 10px;font-size:10px}.exp-number{font-size:11px}.exp-save .exp-primary{padding:10px 16px}.exp-method-note{font-size:10px}}
@media(max-width:420px){.exp-metric{padding:15px}.exp-metric>strong{font-size:22px}.exp-form-grid,.exp-settings-grid{grid-template-columns:1fr}.exp-form-grid .exp-wide{grid-column:auto}.exp-breakdown{grid-template-columns:1fr}.exp-secondary{gap:15px}.exp-secondary>div>strong{font-size:20px}.exp-metric>span{font-size:10px}}
@media print{body.expenses-print{background:#fff!important}body.expenses-print *{visibility:hidden}body.expenses-print .expenses-app,body.expenses-print .expenses-app *{visibility:visible}body.expenses-print .expenses-app{position:absolute;left:0;top:0;width:100%;max-width:none;margin:0;padding:0;color:#15251b;font-size:10pt}body.expenses-print .exp-no-print,body.expenses-print .exp-hero,body.expenses-print .exp-alert{display:none!important}body.expenses-print .exp-print-heading{display:block;margin-bottom:22px}body.expenses-print .exp-print-heading h1{font-size:24px;margin:0 0 8px}body.expenses-print .exp-print-heading h2{font-size:14px;margin:0 0 8px}body.expenses-print .exp-print-heading p{font-size:10px;margin:5px 0}body.expenses-print .exp-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}body.expenses-print .exp-metric{padding:14px;break-inside:avoid;border-radius:0}body.expenses-print .exp-metric>strong{font-size:20px}body.expenses-print .exp-content{display:block}body.expenses-print .exp-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 22px;margin:20px 0;break-inside:avoid}body.expenses-print .exp-breakdown .exp-section-heading,body.expenses-print .exp-breakdown>.exp-small{grid-column:1/-1}body.expenses-print .exp-panel{border:1px solid #ddd;border-radius:0;padding:16px}body.expenses-print .exp-secondary{break-inside:avoid;border:1px solid #ddd;border-radius:0}body.expenses-print .exp-table-scroll{overflow:visible}body.expenses-print table{width:100%;font-size:9px;table-layout:auto}body.expenses-print td,body.expenses-print th{padding:8px 5px}body.expenses-print td:first-child{min-width:0}body.expenses-print td small{min-width:0}body.expenses-print tr{break-inside:avoid}body.expenses-print thead{display:table-header-group}body.expenses-print .exp-ledger{border:0;padding:0}body.expenses-print .exp-tag{white-space:normal}body.expenses-print .exp-track{background:#eee!important}body.expenses-print .exp-track i{background:#728e56!important;print-color-adjust:exact}body.expenses-print .exp-small{font-size:9px}}
