:root{color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f3f4f6;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}h1,h2,p{margin-top:0}.app{width:min(100% - 2rem,76rem);min-height:100vh;margin:0 auto;padding:4rem 0}.app__header{max-width:42rem}.app__eyebrow{color:#2563eb;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.5rem;font-size:.875rem;font-weight:700}.app h1{color:#111827;margin-bottom:1rem;font-size:clamp(2rem,5vw,3.5rem);line-height:1.1}.app__description{color:#6b7280;margin-bottom:0;font-size:1.125rem;line-height:1.6}.app__content{grid-template-columns:minmax(22rem,.9fr) minmax(0,1.1fr);align-items:start;gap:1.5rem;margin-top:3rem;display:grid}.app__side{gap:1.5rem;min-width:0;display:grid}.expense-form-section{background-color:#fff;border:1px solid #e5e7eb;border-radius:1rem;padding:2rem;box-shadow:0 .75rem 2rem #0f172a14}.expense-form-section__heading{margin-bottom:1.5rem}.expense-form-section h2{color:#111827;margin-bottom:0;font-size:1.5rem}.expense-form{gap:1.25rem;display:grid}.expense-form__type{border:0;margin:0;padding:0}.expense-form__type legend,.expense-form__field>span{color:#374151;margin-bottom:.5rem;font-size:.875rem;font-weight:600}.expense-form__type-options{gap:1rem;display:flex}.expense-form__type-options label{color:#374151;cursor:pointer;align-items:center;gap:.5rem;display:flex}.expense-form__type-options input{accent-color:#2563eb;width:1rem;height:1rem;margin:0}.expense-form__checkbox{color:#374151;cursor:pointer;align-items:center;gap:.625rem;width:fit-content;font-size:.875rem;font-weight:600;display:flex}.expense-form__checkbox input{accent-color:#2563eb;width:1rem;height:1rem;margin:0}.expense-form__row{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.expense-form__field{flex-direction:column;min-width:0;display:flex}.expense-form__field input,.expense-form__field select,.expense-form__field textarea{color:#111827;background-color:#fff;border:1px solid #d1d5db;border-radius:.625rem;outline:none;width:100%;transition:border-color .15s,box-shadow .15s}.expense-form__field input,.expense-form__field select{min-height:2.75rem;padding:0 .75rem}.expense-form__field textarea{resize:vertical;min-height:5.5rem;padding:.75rem}.expense-form__field input:focus,.expense-form__field select:focus,.expense-form__field textarea:focus{border-color:#2563eb;box-shadow:0 0 0 .1875rem #2563eb1f}.expense-form__field input[aria-invalid=true],.expense-form__field select[aria-invalid=true]{border-color:#dc2626}.expense-form__error{color:#dc2626;margin-top:.375rem;font-size:.75rem}.expense-form__submit-error{color:#b91c1c;margin:0;font-size:.875rem;line-height:1.5}.expense-form__submit{color:#fff;cursor:pointer;background-color:#2563eb;border:0;border-radius:.625rem;min-height:2.875rem;padding:.75rem 1.25rem;font-weight:700;transition:background-color .15s}.expense-form__submit:hover{background-color:#1d4ed8}.expense-form__submit:disabled{cursor:not-allowed;background-color:#93c5fd}.expense-form__submit:focus-visible{outline-offset:.125rem;outline:.1875rem solid #2563eb40}.monthly-summary{background-color:#fff;border:1px solid #e5e7eb;border-radius:1rem;min-width:0;padding:2rem;box-shadow:0 .75rem 2rem #0f172a14}.monthly-summary__heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.monthly-summary__heading h2{color:#111827;margin-bottom:0;font-size:1.5rem}.monthly-summary__heading>span{color:#6b7280;font-size:.875rem;font-weight:700}.monthly-summary__totals{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:0;display:grid}.monthly-summary__totals div{background-color:#f9fafb;border-radius:.875rem;min-width:0;padding:1rem}.monthly-summary__totals dt{color:#6b7280;text-transform:uppercase;margin-bottom:.375rem;font-size:.75rem;font-weight:700}.monthly-summary__totals dd{overflow-wrap:anywhere;color:#111827;margin:0;font-size:1.125rem;font-weight:800}.monthly-summary__top-expenses{margin-top:1.25rem}.monthly-summary__top-expenses h3{color:#111827;margin:0 0 .75rem;font-size:1rem}.monthly-summary__top-expenses ol{gap:.625rem;margin:0;padding:0;list-style:none;display:grid}.monthly-summary__top-expenses li{color:#374151;justify-content:space-between;align-items:center;gap:1rem;font-size:.875rem;display:flex}.monthly-summary__top-expenses strong{color:#111827;flex-shrink:0}.monthly-summary__top-expenses p{color:#6b7280;margin:0;font-size:.875rem;line-height:1.5}.monthly-summary__empty{color:#6b7280;text-align:center;padding:2.5rem 1rem}.monthly-summary__empty p{color:#374151;margin-bottom:.375rem;font-weight:700}.monthly-summary__empty span{font-size:.875rem;line-height:1.5}.expense-chart-section{background-color:#fff;border:1px solid #e5e7eb;border-radius:1rem;min-width:0;padding:2rem;box-shadow:0 .75rem 2rem #0f172a14}.expense-chart-section__heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.expense-chart-section__heading h2{color:#111827;margin-bottom:0;font-size:1.5rem}.expense-chart-section__heading>span{color:#111827;font-weight:700}.expense-chart{gap:1rem;display:grid}.expense-chart__label{color:#374151;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.875rem;display:grid}.expense-chart__label strong{color:#111827}.expense-chart__dot{border-radius:999px;width:.625rem;height:.625rem}.expense-chart__track{background-color:#e5e7eb;border-radius:999px;height:.625rem;overflow:hidden}.expense-chart__bar{border-radius:inherit;min-width:.25rem;height:100%}.expense-chart__empty{color:#6b7280;text-align:center;padding:2.5rem 1rem}.expense-chart__empty p{color:#374151;margin-bottom:.375rem;font-weight:700}.expense-chart__empty span{font-size:.875rem;line-height:1.5}.expense-list-section{background-color:#fff;border:1px solid #e5e7eb;border-radius:1rem;min-width:0;padding:2rem;box-shadow:0 .75rem 2rem #0f172a14}.expense-list-section__heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.expense-list-section__heading h2{color:#111827;margin-bottom:0;font-size:1.5rem}.expense-list-section__count{color:#1d4ed8;background-color:#dbeafe;border-radius:999px;place-items:center;min-width:2rem;height:2rem;padding:0 .5rem;font-size:.875rem;font-weight:700;display:grid}.expense-filters{background-color:#f9fafb;border-radius:.875rem;grid-template-columns:minmax(0,1fr) minmax(0,.8fr) minmax(0,.8fr) auto;align-items:end;gap:.75rem;margin-bottom:1.5rem;padding:1rem;display:grid}.expense-filters__field{flex-direction:column;min-width:0;display:flex}.expense-filters__field span{color:#374151;margin-bottom:.5rem;font-size:.75rem;font-weight:600}.expense-filters__field input,.expense-filters__field select{color:#111827;background-color:#fff;border:1px solid #d1d5db;border-radius:.625rem;outline:none;width:100%;min-height:2.5rem;padding:0 .75rem}.expense-filters__field input:focus,.expense-filters__field select:focus{border-color:#2563eb;box-shadow:0 0 0 .1875rem #2563eb1f}.expense-filters__reset{color:#2563eb;cursor:pointer;background-color:#dbeafe;border:0;border-radius:.625rem;min-height:2.5rem;padding:.5rem .75rem;font-size:.875rem;font-weight:700}.expense-filters__reset:disabled{color:#9ca3af;cursor:not-allowed;background-color:#e5e7eb}.expense-filters__reset:not(:disabled):hover{color:#fff;background-color:#2563eb}.expense-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.expense-list__item{border-bottom:1px solid #e5e7eb;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.875rem;padding:1rem 0;display:grid}.expense-list__item:first-child{padding-top:0}.expense-list__item:last-child{border-bottom:0;padding-bottom:0}.expense-list__type{border-radius:.75rem;place-items:center;width:2.5rem;height:2.5rem;font-size:1.125rem;font-weight:700;display:grid}.expense-list__type--income{color:#047857;background-color:#d1fae5}.expense-list__type--expense{color:#b91c1c;background-color:#fee2e2}.expense-list__details{min-width:0}.expense-list__item-heading{color:#111827;justify-content:space-between;gap:1rem;display:flex}.expense-list__amount{flex-shrink:0}.expense-list__amount--income{color:#047857}.expense-list__amount--expense{color:#b91c1c}.expense-list__meta{color:#6b7280;flex-wrap:wrap;gap:.375rem .75rem;margin-top:.25rem;font-size:.75rem;display:flex}.expense-list__fixed-badge{color:#92400e;background-color:#fef3c7;border-radius:999px;padding:.125rem .375rem;font-weight:700}.expense-list__comment{overflow-wrap:anywhere;color:#4b5563;margin:.5rem 0 0;font-size:.875rem;line-height:1.5}.expense-list__actions{justify-items:end;gap:.375rem;display:grid}.expense-list__edit,.expense-list__delete{color:#6b7280;cursor:pointer;background-color:#0000;border:0;border-radius:.375rem;padding:.375rem .5rem;font-size:.75rem}.expense-list__edit:hover{color:#1d4ed8;background-color:#dbeafe}.expense-list__delete:hover{color:#b91c1c;background-color:#fef2f2}.expense-list__edit:disabled,.expense-list__delete:disabled{color:#9ca3af;cursor:not-allowed}.expense-list__edit:focus-visible,.expense-list__delete:focus-visible{outline-offset:.125rem;outline:.1875rem solid #b91c1c33}.expense-list__edit-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.expense-list__edit-form label{color:#374151;gap:.375rem;min-width:0;font-size:.75rem;font-weight:600;display:grid}.expense-list__edit-form input,.expense-list__edit-form select,.expense-list__edit-form textarea{color:#111827;background-color:#fff;border:1px solid #d1d5db;border-radius:.5rem;width:100%;min-height:2.25rem;padding:0 .625rem}.expense-list__edit-form textarea{resize:vertical;padding:.625rem}.expense-list__edit-checkbox{grid-template-columns:auto 1fr;align-content:end}.expense-list__edit-comment,.expense-list__edit-error,.expense-list__edit-actions{grid-column:1/-1}.expense-list__edit-error{color:#b91c1c;margin:0;font-size:.75rem}.expense-list__edit-actions{gap:.5rem;display:flex}.expense-list__edit-actions button{color:#fff;cursor:pointer;background-color:#2563eb;border:0;border-radius:.5rem;min-height:2.25rem;padding:.375rem .75rem;font-size:.75rem;font-weight:700}.expense-list__edit-actions button[type=button]{color:#374151;background-color:#e5e7eb}.expense-list__empty{color:#6b7280;text-align:center;padding:3rem 1rem}.expense-list__empty p{color:#374151;margin-bottom:.375rem;font-weight:700}.expense-list__empty span{font-size:.875rem;line-height:1.5}.expense-list__status{border-radius:.625rem;margin:0 0 1rem;padding:.75rem 1rem;font-size:.875rem;line-height:1.5}.expense-list__status--error{color:#991b1b;background-color:#fee2e2}@media (width<=52rem){.app__content{grid-template-columns:1fr;gap:1.25rem}.app__side{gap:1.25rem}}@media (width<=36rem){.app{width:min(100% - 1rem,34rem);padding:2rem 0}.app__content{gap:1rem;margin-top:2rem}.app__side{gap:1rem}.expense-form-section,.monthly-summary,.expense-chart-section,.expense-list-section{padding:1.25rem}.monthly-summary__heading,.expense-chart-section__heading,.expense-list-section__heading{flex-direction:column;align-items:flex-start}.monthly-summary__totals,.expense-form__row{grid-template-columns:1fr}.expense-list__item{grid-template-columns:auto minmax(0,1fr)}.expense-list__edit,.expense-list__delete{padding-left:0}.expense-list__actions{grid-column:2;justify-items:start}.expense-list__edit-form{grid-template-columns:1fr}.expense-list__item-heading{flex-direction:column;align-items:flex-start;gap:.25rem}.expense-filters{grid-template-columns:1fr}.expense-filters__reset{justify-self:start}}
