*{box-sizing:border-box;margin:0;padding:0}body{background-color:#fff;color:#000;font-family:Inter,Arial,system-ui,sans-serif;font-size:15px;line-height:1.5}h1{font-size:1.4rem}h1,h2{font-weight:600}h2{font-size:1.1rem;margin-bottom:12px}.fade-in{animation:fadeIn .4s ease-out forwards}.slide-up{animation:slideUp .4s ease-out forwards}.slide-down{animation:slideDown .4s ease-out forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-15px)}to{opacity:1;transform:translateY(0)}}button{cursor:pointer;font-family:inherit;font-size:14px;transition:transform .15s ease,background-color .2s ease,box-shadow .2s ease}button:active{transform:scale(.98)}.btn-black{background-color:#000;border:1px solid #000;border-radius:4px;color:#fff;font-size:14px;padding:8px 18px}.btn-black:hover{background-color:#222;box-shadow:0 4px 8px #0000001a;transform:translateY(-1px)}.btn-black:disabled{background-color:#777;border-color:#777;box-shadow:none;cursor:not-allowed;transform:none}.btn-outline{background-color:#fff;border:1px solid #000;border-radius:4px;color:#000;font-size:13px;padding:6px 12px}.btn-outline:hover{background-color:#f7f7f7;box-shadow:0 2px 6px #0000000d;transform:translateY(-1px)}label{color:#333;display:block;font-size:13px;font-weight:500;margin-bottom:4px}input,select,textarea{background-color:#fff;border:1px solid #ccc;border-radius:4px;color:#000;font-family:inherit;font-size:14px;outline:none;padding:8px 10px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}input:focus,select:focus{border-color:#000;box-shadow:0 0 0 1px #000}.form-group{margin-bottom:14px}.field-error{color:#c00;font-size:12px;margin-top:4px}.form-error,.form-success{animation:fadeIn .3s ease;border-radius:4px;font-size:13px;margin-bottom:12px;padding:8px 12px}.form-error{background-color:snow;border:1px solid #c00;color:#c00}.form-success{background-color:#fafafa;border:1px solid #000;color:#000}.card{background-color:#fff;border:1px solid #eaeaea;border-radius:6px;box-shadow:0 2px 8px #0000000a;padding:20px;transition:box-shadow .2s ease}.card:hover{box-shadow:0 4px 12px #00000014}.header{align-items:center;background-color:#fff;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:14px 24px;position:sticky;top:0;z-index:10}.header-title{font-size:1rem;font-weight:600}.login-page{align-items:center;background-color:#fafafa;display:flex;justify-content:center;min-height:100vh;padding:20px}.login-box{background:#fff;border:1px solid #eaeaea;border-radius:8px;box-shadow:0 4px 16px #0000000f;max-width:380px;padding:32px;width:100%}.login-box h1{font-size:1.3rem;margin-bottom:8px;text-align:center}.login-subtitle{color:#666;font-size:13px;margin-bottom:28px;text-align:center}.login-box .btn-black{margin-top:8px;padding:10px;width:100%}.dashboard-page{background-color:#fafafa;min-height:100vh}.dashboard-content{margin:0 auto;max-width:1100px;padding:24px}.dashboard-grid{grid-gap:32px;align-items:start;display:grid;gap:32px;grid-template-columns:340px 1fr}@media (max-width:850px){.dashboard-grid{grid-template-columns:1fr}}.monthly-card{margin-bottom:24px;padding:24px;text-align:center}.monthly-label{color:#666;font-size:13px;font-weight:600;letter-spacing:1px;margin-bottom:8px;text-transform:uppercase}.monthly-amount{color:#000;font-size:2.2rem;font-weight:700;transition:transform .3s ease,opacity .3s ease}.calendar-container{padding:20px}.calendar-header{font-size:1.1rem;font-weight:600;justify-content:space-between;margin-bottom:16px}.calendar-header,.calendar-nav{align-items:center;display:flex}.calendar-nav{background:none;border:1px solid #eee;border-radius:4px;color:#333;font-size:14px;height:32px;justify-content:center;width:32px}.calendar-nav:hover{background:#f0f0f0}.calendar-grid{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(7,1fr);text-align:center}.calendar-day-name{color:#888;font-size:11px;font-weight:600;margin-bottom:8px}.calendar-date{align-items:center;border:1px solid #0000;border-radius:4px;cursor:pointer;display:flex;font-size:14px;height:38px;justify-content:center;position:relative;transition:all .2s ease;-webkit-user-select:none;user-select:none}.calendar-date:not(.empty):hover{background-color:#f5f5f5;box-shadow:0 2px 6px #0000000f;transform:translateY(-2px)}.calendar-date.today{border-color:#ccc;font-weight:600}.calendar-date.selected{background-color:#000!important;box-shadow:none;color:#fff;transform:none}.expense-dot{animation:scaleIn .2s ease-out;background-color:#000;border-radius:50%;bottom:4px;height:4px;position:absolute;width:4px}.calendar-date.selected .expense-dot{background-color:#fff}@keyframes scaleIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.calendar-month-transition{animation:fadeSlide .3s ease-in-out}@keyframes fadeSlide{0%{opacity:.5;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.daily-total-card{margin-bottom:24px;padding:16px 20px}.daily-total-label{color:#666;font-size:12px;font-weight:600;margin-bottom:4px;text-transform:uppercase}.daily-total-amount{font-size:1.5rem;font-weight:700}.daily-expenses{margin-bottom:24px}.expense-table{border-collapse:collapse;font-size:14px;width:100%}.expense-table th{border-bottom:1px solid #ddd;color:#666;font-size:12px;font-weight:600;padding:10px 8px;text-align:left}.expense-table td{border-bottom:1px solid #f0f0f0;padding:12px 8px;vertical-align:middle}.expense-row{animation:fadeInRow .3s ease forwards;opacity:0}@keyframes fadeInRow{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}.expense-row.deleting{animation:deleteRow .3s ease forwards}@keyframes deleteRow{to{opacity:0;transform:translateX(20px)}}.no-expenses{color:#777;font-size:14px;padding:24px 0}.add-expense-container{margin-top:16px}.expand-form-btn{background:#0000;border:1px dashed #ccc;border-radius:6px;color:#333;font-weight:500;padding:12px;width:100%}.expand-form-btn:hover{background:#fcfcfc;border-color:#000}.expense-form-card{animation:expandIn .3s ease forwards;background:#fff;border:1px solid #000;border-radius:6px;padding:20px;transform-origin:top}@keyframes expandIn{0%{opacity:0;transform:scaleY(.95)}to{opacity:1;transform:scaleY(1)}}.form-actions{display:flex;gap:12px;margin-top:16px}.form-actions button{flex:1 1}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
/*# sourceMappingURL=main.19bae707.css.map*/