@import"https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,500;0,9..144,700;1,9..144,400&family=Source+Sans+3:wght@300;400;500;600&display=swap";*{margin:0;padding:0;box-sizing:border-box}body{font-family:"Source Sans 3",sans-serif;background-color:#f5f0e8;color:#1a1a1a;min-height:100vh;background-image:repeating-linear-gradient(0deg,transparent,transparent 39px,#e8e0d4 39px,#e8e0d4 40px);background-size:100% 40px;background-attachment:fixed}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.app{max-width:820px;margin:0 auto;padding:40px 24px 60px}h1{font-family:Fraunces,serif;font-weight:700;font-size:2.4rem;letter-spacing:-.02em;margin-bottom:2px;animation:fadeUp .5s ease both}.subtitle{font-size:1rem;font-weight:300;color:#6b6560;margin-bottom:32px;padding-bottom:16px;border-bottom:2px solid #1a1a1a;animation:fadeUp .5s ease .05s both}.summary{display:flex;gap:16px;margin-bottom:28px}.summary-card{flex:1;background:#faf6f0;padding:20px;border:1px solid #d9d0c3;box-shadow:2px 2px #ece5da,4px 4px #e0d8cc,6px 6px #d6cfc3;transition:transform .2s ease,box-shadow .2s ease;animation:fadeUp .4s ease both}.summary-card:nth-child(1){animation-delay:.1s}.summary-card:nth-child(2){animation-delay:.15s;transform:rotate(-.4deg)}.summary-card:nth-child(3){animation-delay:.2s}.summary-card:hover{transform:rotate(0) translateY(-2px);box-shadow:3px 3px #ece5da,6px 6px #e0d8cc,9px 9px #d6cfc3}.summary-card h3{font-family:"Source Sans 3",sans-serif;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#8a8279;margin-bottom:6px}.income-amount{font-family:Fraunces,serif;color:#6b8f71;font-size:1.6rem;font-weight:500}.expense-amount{font-family:Fraunces,serif;color:#c4553a;font-size:1.6rem;font-weight:500}.balance-amount{font-family:Fraunces,serif;font-size:1.6rem;font-weight:500;color:#1a1a1a}.chart-container{background:#faf6f0;border:1px solid #d9d0c3;padding:24px;margin-bottom:28px;box-shadow:2px 2px #ece5da,4px 4px #e0d8cc;transform:rotate(.3deg);transition:transform .2s ease;animation:fadeUp .4s ease .25s both}.chart-container:hover{transform:rotate(0)}.chart-container h2{font-family:Fraunces,serif;font-size:1.2rem;font-weight:500;margin-bottom:16px;padding-bottom:8px;border-bottom:1.5px dashed #c9c0b3}.add-transaction{background:#faf6f0;border:1px solid #d9d0c3;padding:24px;margin-bottom:28px;box-shadow:2px 2px #ece5da,4px 4px #e0d8cc;transform:rotate(-.25deg);transition:transform .2s ease;animation:fadeUp .4s ease .3s both}.add-transaction:hover{transform:rotate(0)}.add-transaction h2{font-family:Fraunces,serif;font-size:1.2rem;font-weight:500;margin-bottom:16px;padding-bottom:8px;border-bottom:1.5px dashed #c9c0b3}form{display:flex;gap:10px;flex-wrap:wrap}form input,form select{padding:10px 12px;border:1px solid #c9c0b3;background:#fff;font-family:"Source Sans 3",sans-serif;font-size:.9rem;color:#1a1a1a;transition:border-color .2s ease,box-shadow .2s ease}form input:focus,form select:focus{outline:none;border-color:#8b7ec8;box-shadow:0 0 0 2px #8b7ec826}form input[type=text]{flex:2}form input[type=number],form input[type=date]{flex:1}form select{flex:1;cursor:pointer}form button{padding:10px 28px;background:#1a1a1a;color:#faf6f0;border:none;cursor:pointer;font-family:"Source Sans 3",sans-serif;font-size:.9rem;font-weight:600;letter-spacing:.03em;transition:background .2s ease,transform .15s ease}form button:hover{background:#333;transform:translateY(-1px)}form button:active{transform:translateY(0)}.transactions{margin-bottom:28px;animation:fadeUp .4s ease .35s both}.transactions h2{font-family:Fraunces,serif;font-size:1.2rem;font-weight:500;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid #1a1a1a}.filters{display:flex;gap:10px;margin-bottom:16px}.filters select{padding:7px 12px;border:1px solid #c9c0b3;background:#faf6f0;font-family:"Source Sans 3",sans-serif;font-size:.82rem;color:#1a1a1a;cursor:pointer;transition:border-color .2s ease}.filters select:focus{outline:none;border-color:#8b7ec8;box-shadow:0 0 0 2px #8b7ec826}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.empty-state{text-align:center!important;color:#8a8279;font-style:italic;padding:24px 16px!important}table{width:100%;border-collapse:collapse;background:#faf6f0;border:1px solid #d9d0c3;box-shadow:2px 2px #ece5da,4px 4px #e0d8cc}thead{background:#efe9df}th{font-family:"Source Sans 3",sans-serif;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:#8a8279;padding:12px 16px;text-align:left;border-bottom:2px solid #d9d0c3}td{padding:12px 16px;text-align:left;font-size:.9rem;border-bottom:1px solid #e8e0d4}tbody tr{transition:background .15s ease;animation:slideIn .3s ease both}tbody tr:nth-child(2n){background:#f7f2ea}tbody tr:hover{background:#f0e8dc}td .category-pill{display:inline-block;padding:2px 10px;border-radius:12px;font-size:.78rem;font-weight:500;background:#e8e0d4;color:#5a534d}td.income-amount{font-family:Fraunces,serif;font-weight:500;font-size:.95rem;color:#6b8f71;border-left:3px solid #6b8f71}td.expense-amount{font-family:Fraunces,serif;font-weight:500;font-size:.95rem;color:#c4553a;border-left:3px solid #c4553a}.delete-btn{padding:5px 14px;background:transparent;border:1px solid #d9d0c3;cursor:pointer;font-family:"Source Sans 3",sans-serif;font-size:.78rem;font-weight:500;color:#8a8279;transition:all .2s ease}.delete-btn:hover{background:#c4553a;border-color:#c4553a;color:#fff}.recharts-default-tooltip{background:#faf6f0!important;border:1px solid #d9d0c3!important;box-shadow:2px 2px #ece5da!important;font-family:"Source Sans 3",sans-serif!important;font-size:.85rem!important}
