*{box-sizing:border-box;margin:0;padding:0}body{font-family:Arial,sans-serif;background:#f0f4f8;min-height:100vh}.container{max-width:800px;margin:0 auto;background:#fff;padding:20px;border-radius:8px}.error{color:#c0392b;padding:10px;background:#fff0f0;border-radius:4px;margin-bottom:16px;font-size:14px}pre{background:#f5f5f5;padding:10px;border-radius:4px;overflow-x:auto}.login-wrapper{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:40px;width:100%;max-width:400px}.app-title{font-size:28px;color:#2ecc71;text-align:center;margin-bottom:8px}.login-card h2{text-align:center;color:#555;font-size:16px;font-weight:400;margin-bottom:28px}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:14px;color:#555;margin-bottom:6px}.form-group input{width:100%;padding:10px 14px;border:1px solid #ddd;border-radius:8px;font-size:15px;outline:none;transition:border-color .2s}.form-group input:focus{border-color:#2ecc71}.btn-primary{width:100%;padding:12px;background:#2ecc71;color:#fff;border:none;border-radius:8px;font-size:16px;cursor:pointer;transition:background .2s}.btn-primary:hover{background:#27ae60}.success{color:#27ae60;padding:10px;background:#f0fff4;border-radius:4px;margin-bottom:16px;font-size:14px}.form-footer{text-align:center;margin-top:20px;font-size:14px;color:#555}.form-footer a{color:#2ecc71;text-decoration:none}.form-footer a:hover{text-decoration:underline}.page-wrapper{max-width:1300px;margin:0 auto;padding:20px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-heading{color:#333;margin-bottom:16px}.btn-logout{background:none;border:1px solid #2ecc71;color:#2ecc71;padding:6px 14px;border-radius:6px;text-decoration:none;font-size:14px}.btn-logout:hover{background:#2ecc71;color:#fff}.btn-delete{background:none;border:1px solid #e74c3c;color:#e74c3c;padding:4px 10px;border-radius:6px;font-size:13px;cursor:pointer}.btn-delete:hover{background:#e74c3c;color:#fff}.btn-edit{background:none;border:1px solid #3498db;color:#3498db;padding:4px 10px;border-radius:6px;font-size:13px;cursor:pointer;text-decoration:none}.btn-edit:hover{background:#3498db;color:#fff}.grid{border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}.grid-header{display:grid;grid-template-columns:.5fr 2fr 1.5fr 1fr 1fr;background:#f8f8f8;padding:12px 16px;font-weight:700;font-size:14px;color:#555;border-bottom:1px solid #e0e0e0}.grid-row{display:grid;grid-template-columns:.5fr 2fr 1.5fr 1fr 1fr;padding:12px 16px;border-bottom:1px solid #f0f0f0;font-size:14px;align-items:center}.grid-row:last-child{border-bottom:none}.grid-row:hover{background:#fafafa}.account-type{color:#888;font-size:13px}.negative{color:#e74c3c;font-weight:700}.positive{color:#2ecc71;font-weight:700}.no-data{color:#888;font-size:14px}nav{display:flex;gap:12px;align-items:center}.nav-link{color:#2ecc71;text-decoration:none;font-size:14px}.nav-link:hover{text-decoration:underline}.filter-form{display:flex;gap:16px;align-items:flex-end;margin-bottom:20px;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-group label{font-size:13px;color:#555}.filter-group input{padding:8px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;outline:none}.filter-group input:focus{border-color:#2ecc71}.btn-filter{padding:8px 20px;font-size:14px;width:auto}.transactions-grid{grid-template-columns:1fr 1.2fr 1.2fr 1.4fr 1.2fr .7fr .8fr .5fr .5fr}.grid-scroll{max-height:600px;overflow-y:auto;border-radius:0 0 8px 8px}.grid-scroll .grid-row:last-child{border-bottom:none}.reports-grid{grid-template-columns:2fr 1fr 1fr}.reports-grid.with-subcategory{grid-template-columns:1.5fr 1.5fr 1fr 1fr}.grid-footer{display:grid;padding:12px 16px;background:#f8f8f8;border-top:2px solid #e0e0e0;font-size:14px;border-radius:0 0 8px 8px}.grid-header span.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.grid-header span.sortable:hover{color:#2ecc71}.grid-header span.sort-asc:after{content:" ▲";font-size:11px}.grid-header span.sort-desc:after{content:" ▼";font-size:11px}
