*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0f0f1a;--bg-secondary: #1a1a2e;--bg-card: #16213e;--text-primary: #eaeaea;--text-secondary: #aaa;--accent: #4361ee;--accent-hover: #3a56d4;--danger: #e63946;--success: #4caf50;--warning: #ff9800;--credit-color: #4caf50;--debit-color: #e63946;--border: #2a2a4a;--radius: 12px;--radius-sm: 8px}html{font-size:16px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;-webkit-tap-highlight-color:transparent}.app{max-width:500px;margin:0 auto;padding:12px 12px 40px}.header{text-align:center;padding:12px 0}.header h1{font-size:1.3rem;font-weight:700;background:linear-gradient(135deg,#4361ee,#7209b7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.summary-cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:12px}.summary-card{background:var(--bg-card);border-radius:var(--radius);padding:12px 8px;text-align:center;border:1px solid var(--border)}.summary-card label{display:block;font-size:.65rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px}.summary-card .value{font-size:1rem;font-weight:700}.income-card{border-top:2px solid var(--credit-color)}.expense-card{border-top:2px solid var(--debit-color)}.balance-card{border-top:2px solid var(--accent)}.credit{color:var(--credit-color)!important}.debit{color:var(--debit-color)!important}.positive{color:var(--credit-color)!important}.negative{color:var(--debit-color)!important}.dashboard{margin-bottom:14px}.balance-display{text-align:center;padding:22px 16px 16px;background:linear-gradient(135deg,#1a1a3e,#2a1a5e,#1a1a3e);border-radius:var(--radius);margin-bottom:10px;border:1px solid var(--border);box-shadow:0 4px 20px #4a3aa326}.balance-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.balance-amount{font-size:2.2rem;font-weight:800;margin:6px 0;transition:color .3s ease;animation:balancePulse .6s ease-out}.balance-amount.positive{color:var(--credit-color)}.balance-amount.negative{color:var(--debit-color)}.balance-sub{font-size:.7rem;color:var(--text-secondary)}@keyframes balancePulse{0%{transform:scale(.95);opacity:.7}50%{transform:scale(1.02)}to{transform:scale(1);opacity:1}}.progress-wrap{margin-bottom:10px}.progress-bar{height:8px;background:var(--bg-card);border-radius:4px;overflow:hidden;border:1px solid var(--border);box-shadow:inset 0 1px 3px #0000004d}.progress-fill{height:100%;border-radius:4px;transition:width .6s cubic-bezier(.4,0,.2,1),background .3s;background:linear-gradient(90deg,var(--credit-color),#66bb6a);box-shadow:0 0 6px #4caf5066}.progress-fill.warning{background:linear-gradient(90deg,#ff9800,#f44336);box-shadow:0 0 6px #ff980066}.progress-fill.danger{background:linear-gradient(90deg,#f44336,#b71c1c);box-shadow:0 0 6px #f4433666}.progress-labels{display:flex;justify-content:space-between;font-size:.68rem;color:var(--text-secondary);margin-top:4px}.quick-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.stat{background:var(--bg-card);border-radius:var(--radius-sm);padding:10px 4px;text-align:center;border:1px solid var(--border);transition:transform .2s ease,box-shadow .2s ease}.stat:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0003}.stat-value{display:block;font-size:.85rem;font-weight:700}.stat-label{display:block;font-size:.58rem;color:var(--text-secondary);text-transform:uppercase;margin-top:2px}.tabs{display:flex;background:var(--bg-secondary);border-radius:var(--radius);padding:3px;margin-bottom:14px;border:1px solid var(--border);overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-btn{flex:1;min-width:0;padding:9px 4px;border:none;background:none;color:var(--text-secondary);font-size:.7rem;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);white-space:nowrap}.tab-btn:hover{color:var(--text-primary);background:#4361ee1a}.tab-btn.active{background:var(--accent);color:#fff;box-shadow:0 2px 8px #4361ee4d}.tab-content{display:none;animation:fadeIn .25s ease-out}.tab-content.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.form-card{background:var(--bg-card);border-radius:var(--radius);padding:16px;margin-bottom:14px;border:1px solid var(--border);transition:box-shadow .2s ease}.form-card:focus-within{box-shadow:0 0 0 1px var(--accent),0 4px 12px #4361ee1a}.form-card.credit-form{border-top:3px solid var(--credit-color)}.form-card h2{font-size:.9rem;margin-bottom:12px;font-weight:600}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.form-group{margin-bottom:8px}.form-group label{display:block;font-size:.65rem;color:var(--text-secondary);margin-bottom:3px;text-transform:uppercase;letter-spacing:.3px}.form-group input,.form-group select{width:100%;padding:10px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem;outline:none;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:var(--accent)}.form-group input::placeholder{color:#555}.btn{width:100%;padding:12px;border:none;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,var(--accent),#5a78f0);color:#fff}.btn-primary:hover{box-shadow:0 4px 12px #4361ee4d}.btn-danger{background:linear-gradient(135deg,var(--debit-color),#ff5252);color:#fff}.btn-success{background:linear-gradient(135deg,var(--credit-color),#66bb6a);color:#fff}.btn-warning{background:linear-gradient(135deg,var(--warning),#ffb74d);color:#fff}.btn-secondary{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border);margin-top:6px}.list-total{background:var(--bg-card);border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:10px;border:1px solid var(--border);font-size:.85rem;color:var(--text-secondary)}.list-total strong{color:var(--text-primary)}.date-group{margin-bottom:12px}.date-header{font-size:.68rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:5px 0;border-bottom:1px solid var(--border);margin-bottom:5px}.list-item{display:flex;align-items:center;justify-content:space-between;padding:10px;background:var(--bg-card);border-radius:var(--radius-sm);margin-bottom:5px;border:1px solid var(--border);transition:transform .15s ease,box-shadow .15s ease}.list-item:active{transform:scale(.98)}.list-item:hover{box-shadow:0 2px 8px #00000026}.list-item.inactive{opacity:.5}.list-item.income-item{border-left:3px solid var(--credit-color)}.expense-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.expense-emoji{font-size:1.2rem;flex-shrink:0}.expense-info{display:flex;flex-direction:column;min-width:0}.expense-desc{font-size:.82rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expense-cat{font-size:.62rem;color:var(--text-secondary)}.expense-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.expense-amount{font-size:.85rem;font-weight:600}.expense-actions{display:flex;gap:2px}.expense-actions button{background:none;border:none;font-size:.75rem;cursor:pointer;padding:3px;border-radius:4px}.expense-actions button:hover{background:var(--bg-secondary)}.empty-state{text-align:center;padding:28px 16px;color:var(--text-secondary);font-size:.85rem}.report-header{display:flex;justify-content:center;margin-bottom:14px}.month-nav{display:flex;align-items:center;gap:14px}.month-nav button{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center}.month-nav span{font-size:.85rem;font-weight:600;min-width:120px;text-align:center}.report-summary{background:var(--bg-card);border-radius:var(--radius);padding:14px;margin-bottom:14px;border:1px solid var(--border)}.report-row{display:flex;justify-content:space-between;padding:6px 0;font-size:.82rem;border-bottom:1px solid var(--border)}.report-row:last-child{border-bottom:none}.report-row.total{font-weight:700;padding-top:8px}.report-row.balance-row{font-size:.95rem}.report-stat-value{font-weight:700}.chart-container{background:var(--bg-card);border-radius:var(--radius);padding:14px;margin-bottom:12px;border:1px solid var(--border);height:260px;position:relative}.chart-container h4{font-size:.7rem;color:var(--text-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.3px}.chart-container canvas{max-height:210px}.download-btn{margin-top:8px}.settings-section{background:var(--bg-card);border-radius:var(--radius);padding:16px;margin-bottom:12px;border:1px solid var(--border)}.settings-section h3{font-size:.85rem;margin-bottom:8px}.settings-section p{font-size:.75rem;color:var(--text-secondary);margin-bottom:10px;line-height:1.4}.add-cat-form{margin-bottom:10px}.add-cat-row{display:flex;gap:6px;align-items:center}.add-cat-row input[type=text]{flex:1;padding:9px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.82rem;outline:none}.add-cat-row input[type=text]:focus{border-color:var(--accent)}.add-cat-row .emoji-input{width:44px;flex:none;text-align:center}.add-cat-row .color-input{width:36px;height:36px;padding:2px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);cursor:pointer}.add-cat-btn{width:36px;height:36px;border:none;background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-size:1.1rem;font-weight:700;cursor:pointer;flex-shrink:0}.custom-cat-list{margin-top:6px}.custom-cat-list .empty-sub{font-size:.72rem;color:var(--text-secondary)}.custom-cat-item{display:flex;align-items:center;justify-content:space-between;padding:6px 4px;border-bottom:1px solid var(--border);font-size:.82rem}.custom-cat-item:last-child{border-bottom:none}.delete-cat-btn,.delete-card-btn{background:none;border:none;color:var(--debit-color);font-size:.9rem;cursor:pointer;padding:3px 6px;border-radius:4px}.settings-btn{padding:10px 16px;border:none;border-radius:var(--radius-sm);font-size:.82rem;font-weight:500;cursor:pointer}.settings-btn.export{background:var(--success);color:#fff}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%) translateY(80px);background:var(--bg-card);color:var(--text-primary);padding:10px 20px;border-radius:20px;font-size:.8rem;border:1px solid var(--border);opacity:0;transition:all .3s ease;z-index:1000;pointer-events:none}.toast.show{transform:translate(-50%) translateY(0);opacity:1}.hidden{display:none!important}@media (max-width: 400px){.app{padding:8px}.form-row,.summary-cards{grid-template-columns:1fr}}@supports (padding-top: env(safe-area-inset-top)){.app{padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:calc(40px + env(safe-area-inset-bottom))}}.pin-screen{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;z-index:9999}.pin-container{text-align:center;padding:32px;max-width:300px;width:100%}.pin-container h2{font-size:1.4rem;margin-bottom:8px}.pin-container p{font-size:.82rem;color:var(--text-secondary);margin-bottom:16px}.pin-container input{width:100%;padding:14px;text-align:center;font-size:1.5rem;letter-spacing:8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);outline:none;margin-bottom:12px}.pin-container input:focus{border-color:var(--accent)}.pin-error{color:var(--debit-color);font-size:.8rem;margin-top:8px}.pin-hint{font-size:.72rem;color:var(--text-secondary);margin-top:12px}.india-result{margin-top:14px;padding:14px;background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border)}.india-result-row{display:flex;justify-content:space-between;padding:6px 0;font-size:.82rem;border-bottom:1px solid var(--border)}.india-result-row:last-child{border-bottom:none}.india-result-row.total{font-weight:700;font-size:.95rem;padding-top:8px}
