body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif}.login-container{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{text-align:center;background:#fff;border-radius:20px;width:min(420px,100vw - 2rem);padding:3rem;box-shadow:0 20px 60px #0000004d}.login-card h1{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:1rem;font-size:2.5rem}.login-form{text-align:left;margin-top:2rem}.login-switch{text-align:center;color:#555;margin-top:1rem}.link-btn{color:#667eea;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.link-btn:hover{text-decoration:underline}.form-notice{color:#28a745;margin-bottom:1rem}.app{min-height:100vh}.navbar{background:#fff;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;box-shadow:0 2px 10px #0000001a}.navbar h1{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.user-info{align-items:center;gap:1rem;display:flex}.logout-btn{color:#dc3545;font:inherit;cursor:pointer;background:0 0;border:none}button:disabled{opacity:.6;cursor:wait}.container{max-width:1400px;margin:0 auto;padding:2rem}.card{background:#fff;border-radius:12px;margin-bottom:1.5rem;padding:1.5rem;box-shadow:0 2px 10px #0000001a}.card h2{color:#333;margin-bottom:1rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.stat-card{text-align:center;background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 10px #0000001a}.stat-card.income{border-left:4px solid #28a745}.stat-card.expense{border-left:4px solid #dc3545}.stat-card.savings{border-left:4px solid #0078d4}.stat-card h3{text-transform:uppercase;color:#666;margin-bottom:.5rem;font-size:.9rem}.stat-card p{font-size:1.8rem;font-weight:700}.positive{color:#28a745}.negative{color:#dc3545}.grid-2{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}@media (width<=768px){.grid-2{grid-template-columns:1fr}}.form-group{margin-bottom:1rem}.form-group label{color:#555;margin-bottom:.5rem;font-weight:500;display:block}.form-group input,.form-group select{border:1px solid #ddd;border-radius:6px;width:100%;padding:8px 12px;font-size:1rem}button[type=submit]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;width:100%;padding:10px;font-size:1rem;transition:transform .2s}button[type=submit]:hover{transform:translateY(-2px)}.list-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.filter-controls select{margin-left:.5rem;padding:5px 10px}.transaction-list{max-height:500px;overflow-y:auto}.transaction-item{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:1rem;display:flex}.transaction-item:hover{background:#f9f9f9}.tx-info{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.tx-category{background:#e9ecef;border-radius:4px;padding:4px 8px;font-size:.85rem}.tx-date{color:#666;font-size:.85rem}.tx-desc{color:#888;font-size:.85rem}.tx-amount{align-items:center;gap:.5rem;display:flex}.income-amount{color:#28a745;font-weight:700}.expense-amount{color:#dc3545;font-weight:700}.delete-btn{cursor:pointer;opacity:.5;background:0 0;border:none;width:auto;padding:0}.delete-btn:hover{opacity:1;transform:none}.chart-container{background:#fff;border-radius:12px;margin-top:1rem;padding:1.5rem}.pie-chart-wrapper{max-width:400px;margin:0 auto}.date-selector{justify-content:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.empty-state{text-align:center;color:#666;padding:2rem}.loading{text-align:center;color:#fff;padding:3rem;font-size:1.2rem}.card.error,.form-error{color:#dc3545}.form-error{margin-bottom:1rem}
