.home-container{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%;min-height:100vh;padding:2rem;box-sizing:border-box}.home-content{width:100%;max-width:600px}.home-header{margin-bottom:3rem}.home-header h1{font-size:2.5rem;font-weight:300;color:var(--primary-text-color);margin:0;display:flex;align-items:center;justify-content:center;gap:.5rem}.logo{height:100px;margin-bottom:1rem}.logo-text{font-weight:700;background-color:#3b82f6;color:#fff;padding:.2rem .8rem;border-radius:6px}.home-header .subtitle{font-size:1.1rem;color:var(--secondary-text-color);margin-top:.75rem}.home-footer a{color:var(--primary-color);text-decoration:none;font-weight:500}.home-footer a:visited{color:var(--primary-color)}.home-footer a:hover{text-decoration:underline}.features{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:3rem;width:100%}.feature-card{background-color:var(--surface-color);padding:1.5rem;border-radius:10px;border:1px solid var(--border-color);box-shadow:0 4px 12px #00000014}.feature-card h2{font-size:1.25rem;margin-top:0;margin-bottom:.5rem;color:var(--primary-text-color)}.feature-card p{margin:0;color:var(--secondary-text-color)}.cta-buttons{display:flex;justify-content:center;gap:1rem}.cta-button{text-decoration:none;padding:12px 24px;border-radius:8px;font-weight:600;transition:all .2s ease;min-width:180px}.cta-button:hover{transform:translateY(-3px);filter:brightness(1.1)}.cta-button.primary{background-color:var(--primary-color);color:var(--button-text-color);border:1px solid transparent}.cta-button.secondary{background-color:transparent;color:var(--primary-text-color);border:1px solid var(--border-color)}.summary-card{background-color:var(--surface-color);border-radius:10px;padding:1rem;box-shadow:0 4px 12px #00000014;border:1px solid var(--border-color);display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width: 900px){.summary-card{grid-template-columns:repeat(3,1fr)}}.summary-item{display:flex;align-items:center;gap:1rem;padding:1.5rem;border-radius:8px}.summary-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.summary-icon svg{width:24px;height:24px}.summary-text p{margin:0 0 .25rem;font-size:.9rem;color:var(--secondary-text-color)}.summary-text span{font-size:1.5rem;font-weight:600;color:var(--primary-text-color)}.summary-item.income .summary-icon{background-color:#4bc0c033;color:#4bc0c0}.summary-item.expense .summary-icon{background-color:#ff638433;color:#ff6384}.summary-item.balance .summary-icon{background-color:#36a2eb33;color:#36a2eb}.summary-card-full-width{margin-bottom:1.5rem}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem}.chart-container{background-color:var(--surface-color);padding:1.5rem;border-radius:8px;border:1px solid var(--border-color);display:flex;flex-direction:column}.chart-container h3{margin-top:0;margin-bottom:1.5rem;text-align:center;font-size:1.1rem;font-weight:600;color:var(--primary-text-color)}.chart-wrapper{position:relative;flex-grow:1;min-height:300px}.bar-chart-container{grid-column:1 / -1}.recent-transactions-container{display:flex;flex-direction:column;height:100%}.transaction-list{list-style:none;padding:0;margin:0;flex-grow:1}.transaction-item{display:flex;justify-content:space-between;align-items:center;padding:1rem .5rem;border-bottom:1px solid var(--border-color)}.transaction-item:last-child{border-bottom:none}.transaction-info span{display:block;font-weight:500}.transaction-info small{color:var(--secondary-text-color);font-size:.8rem}.transaction-amount.expense{color:var(--error-color);font-weight:600}.transaction-amount.income{color:var(--success-color);font-weight:600}.view-all-link{display:block;text-align:center;margin-top:1.5rem;color:var(--primary-color);text-decoration:none;font-weight:500}.view-all-link:hover{text-decoration:underline}.no-data-message{display:flex;align-items:center;justify-content:center;height:100%;color:var(--secondary-text-color)}.categories-container{display:grid;grid-template-columns:1fr 2fr;gap:2rem}.category-form-card{background-color:var(--surface-color);padding:1.5rem;border-radius:8px;border:1px solid var(--border-color);box-shadow:0 4px 6px #0000000d;height:fit-content}.category-form-card h3{margin-top:0;margin-bottom:1rem;font-size:1.25rem;border-bottom:1px solid var(--border-color);padding-bottom:.5rem}.category-list-card{background-color:var(--surface-color);padding:1.5rem;border-radius:8px;border:1px solid var(--border-color);box-shadow:0 4px 6px #0000000d}.category-list{list-style:none;padding:0;margin:0}.category-list-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid var(--border-color)}.category-list-item:last-child{border-bottom:none}.reports-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.report-item{background-color:var(--background-color);border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;min-height:400px}.report-item.full-width{grid-column:1 / -1}.report-chart-container h3{margin-top:0;text-align:center;margin-bottom:1.5rem}.chart-wrapper{position:relative;width:100%;height:300px}.year-selectors{display:flex;justify-content:center;gap:1.5rem;margin-bottom:2rem}.year-selectors .form-field{margin-bottom:0}.year-selectors .input-field{min-width:120px}:root{--background-color: #fafafa;--surface-color: #ffffff;--primary-text-color: #262626;--secondary-text-color: #8e8e8e;--primary-color: #3897f0;--button-text-color: #ffffff;--border-color: #dbdbdb;--error-color: #ed4956;--success-color: #28a745}body.dark-mode{--background-color: #121212;--surface-color: #1e1e1e;--primary-text-color: #e0e0e0;--secondary-text-color: #a0a0a0;--primary-color: #4dabf5;--button-text-color: #1e1e1e;--border-color: #363636}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background-color);color:var(--primary-text-color);transition:background-color .3s ease,color .3s ease}#root{width:100%}.form-container{background-color:var(--surface-color);padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a;border:1px solid var(--border-color);width:100%;max-width:400px;margin:2rem auto;transition:background-color .3s ease,border-color .3s ease}.form-container h2{text-align:center;margin-bottom:1.5rem;color:var(--primary-text-color)}.input-field{width:100%;padding:10px;margin-top:5px;margin-bottom:15px;border:1px solid var(--border-color);border-radius:4px;background-color:var(--background-color);color:var(--primary-text-color);box-sizing:border-box}.primary-button{width:100%;padding:12px;border:none;border-radius:4px;background-color:var(--primary-color);color:var(--button-text-color);font-weight:700;cursor:pointer;transition:background-color .2s ease}.primary-button:hover{opacity:.9}.main-layout{width:100%}.navbar{width:100%;background-color:var(--surface-color);border-bottom:1px solid var(--border-color);box-shadow:0 2px 4px #0000000d;padding:0 2rem;box-sizing:border-box}body.dark-mode .navbar{box-shadow:0 2px 4px #ffffff0d}.navbar-content{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;height:64px}.nav-links{display:flex;gap:1rem}.nav-link{text-decoration:none;color:var(--secondary-text-color);padding:8px 12px;border-radius:6px;transition:background-color .2s,color .2s}.nav-link:hover{color:var(--primary-text-color);background-color:#0000000d}body.dark-mode .nav-link:hover{background-color:#ffffff1a}.nav-link.active{color:var(--primary-color);font-weight:500}.main-content{max-width:1200px;margin:2rem auto;padding:0 2rem}.content-card{background-color:var(--surface-color);padding:1.5rem;border-radius:8px;box-shadow:0 4px 6px #0000000d;border:1px solid var(--border-color);transition:background-color .3s ease,border-color .3s ease}.page-header{display:flex;justify-content:flex-start;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.page-header h2{font-size:1.5rem;font-weight:700;margin:0}.page-header .primary-button{margin-left:auto}.custom-table{width:100%;border-collapse:collapse;border-spacing:0}.custom-table thead{border-bottom:2px solid var(--border-color)}.custom-table th,.custom-table td{padding:12px 15px;text-align:left}.custom-table th{font-size:.8rem;text-transform:uppercase;color:var(--secondary-text-color);letter-spacing:.05em}.custom-table tbody tr{border-bottom:1px solid var(--border-color);transition:background-color .2s ease}.custom-table tbody tr:last-child{border-bottom:none}.custom-table tbody tr:hover{background-color:#00000005}body.dark-mode .custom-table tbody tr:hover{background-color:#ffffff0d}.actions-cell{display:flex;gap:1rem;justify-content:flex-end}.actions-cell button{background:none;border:none;cursor:pointer;font-weight:500;padding:0}.edit-button{color:var(--primary-color)}.delete-button{color:var(--error-color)}.modal-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:var(--surface-color);padding:2rem;border-radius:8px;box-shadow:0 5px 15px #0000004d;border:1px solid var(--border-color);width:100%;max-width:500px;position:relative}.close-button{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--secondary-text-color)}.modal-form h3{margin-top:0;margin-bottom:1.5rem;font-size:1.25rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-field{margin-bottom:1rem}.form-field label{display:block;margin-bottom:.5rem;font-size:.9rem;color:var(--secondary-text-color)}.form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.5rem}.secondary-button{padding:10px 20px;border:1px solid var(--border-color);border-radius:4px;background-color:transparent;color:var(--primary-text-color);cursor:pointer}.spinner-container{display:flex;justify-content:center;align-items:center;padding:4rem}.spinner{width:48px;height:48px;border:5px solid var(--secondary-text-color);border-bottom-color:var(--primary-color);border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation 1s linear infinite}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.theme-toggle-button{background-color:transparent;border:none;color:var(--secondary-text-color);cursor:pointer;padding:8px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background-color .2s,color .2s}.theme-toggle-button:hover{color:var(--primary-text-color);background-color:#0000000d}body.dark-mode .theme-toggle-button:hover{background-color:#ffffff1a}.theme-toggle-button svg{width:22px;height:22px}.confirmation-toast{display:flex;flex-direction:column;gap:.5rem}.confirmation-toast p{margin:0;font-weight:500}.confirmation-toast div{display:flex;gap:.5rem}.confirmation-toast button{border-radius:4px;padding:6px 10px;font-size:.9rem;border:none;cursor:pointer}.confirm-button{background-color:var(--error-color);color:#fff}.cancel-button{background-color:transparent;border:1px solid var(--border-color);color:var(--primary-text-color)}.filters-container{display:flex;gap:1rem;margin-bottom:1.5rem;padding:1rem;background-color:var(--background-color);border-radius:6px}.pagination-container{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem}.pagination-container button{padding:8px 12px;border-radius:4px;border:1px solid var(--border-color);background-color:var(--surface-color);cursor:pointer}.pagination-container button:disabled{cursor:not-allowed;opacity:.5}.pagination-container span{font-size:.9rem;color:var(--secondary-text-color)}.nav-brand{display:flex;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:700;color:var(--primary-text-color);text-decoration:none}.navbar-logo{height:32px}.confirmation-modal-content h3{margin-top:0;margin-bottom:1rem}.confirmation-modal-content p{margin-bottom:2rem;color:var(--secondary-text-color)}.confirmation-modal-content .delete-button.primary-button{background-color:var(--error-color);color:#fff}
