*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#02040f;--surface:#060914;--surface-2:#0a0e1e;--border:#0f1535;--border-glow:#1a2a6c;--text:#e8f0ff;--muted:#2a3a60;--income:#00f5d4;--expense:#ff2d55;--accent:#4361ee;--accent-2:#7b2fff;--glow-cyan:0 0 20px #00f5d426, 0 0 40px #00f5d40d;--glow-red:0 0 20px #ff2d5526, 0 0 40px #ff2d550d;--glow-blue:0 0 20px #4361ee33, 0 0 40px #4361ee1a;--glow-purple:0 0 20px #7b2fff33}body{background:var(--bg);color:var(--text);background-image:radial-gradient(80% 50% at 50% -20%,#4361ee14 0%,#0000 60%),radial-gradient(60% 40% at 80% 80%,#7b2fff0d 0%,#0000 50%);min-height:100vh;font-family:system-ui,sans-serif}.navbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(20px);z-index:100;background:#060914cc;align-items:center;gap:2rem;padding:1rem 2rem;display:flex;position:sticky;top:0}.nav-brand{background:linear-gradient(135deg,#4361ee,#7b2fff);-webkit-text-fill-color:transparent;letter-spacing:-.5px;-webkit-background-clip:text;background-clip:text;flex-shrink:0;font-size:16px;font-weight:800}.nav-links{flex:1;gap:4px;display:flex}.nav-link{color:var(--muted);border:1px solid #0000;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s}.nav-link:hover{color:var(--text);background:var(--surface-2);border-color:var(--border)}.nav-link.active{color:#fff;box-shadow:var(--glow-blue);background:linear-gradient(135deg,#4361ee33,#7b2fff33);border-color:#4361ee66}.theme-toggle{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:6px 10px;font-size:16px;transition:all .2s}.theme-toggle:hover{border-color:var(--border-glow);box-shadow:var(--glow-blue)}.page{max-width:840px;margin:0 auto;padding:2rem 1.5rem}.page-title{letter-spacing:-.5px;background:linear-gradient(135deg, var(--text) 60%, #4361eecc);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:1.5rem;font-size:24px;font-weight:800}.metrics{grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:1.5rem;display:grid}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;flex-direction:column;gap:6px;padding:1.25rem 1.5rem;transition:border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.metric-card:before{content:"";background:linear-gradient(90deg,#0000,#ffffff0d,#0000);height:1px;position:absolute;top:0;left:0;right:0}.metric-card.income{border-color:#00f5d426}.metric-card.income:hover{box-shadow:var(--glow-cyan);border-color:#00f5d44d}.metric-card.expense{border-color:#ff2d5526}.metric-card.expense:hover{box-shadow:var(--glow-red);border-color:#ff2d554d}.metric-label{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:600}.metric-amount{letter-spacing:-1.5px;font-size:28px;font-weight:800}.metric-card.income .metric-amount{color:var(--income);text-shadow:0 0 30px #00f5d466}.metric-card.expense .metric-amount{color:var(--expense);text-shadow:0 0 30px #ff2d5566}.entry-form{background:var(--surface);border:1px solid var(--border);border-radius:20px;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:1.5rem;padding:1.5rem;display:grid;position:relative;overflow:hidden}.entry-form:before{content:"";background:linear-gradient(90deg,#0000,#4361ee4d,#0000);height:1px;position:absolute;top:0;left:0;right:0}.entry-form input,.entry-form select,.controls input,.controls select,.obj-form input,.historial-search{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:10px;width:100%;padding:10px 14px;font-size:14px;transition:all .2s}.entry-form input::placeholder,.historial-search::placeholder{color:var(--muted)}.entry-form input:focus,.entry-form select:focus,.controls input:focus,.controls select:focus,.historial-search:focus{box-shadow:0 0 0 3px #4361ee1a, var(--glow-blue);border-color:#4361ee80;outline:none}.entry-form select option{background:var(--surface-2)}.type-toggle{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;display:flex;overflow:hidden}.type-toggle button{cursor:pointer;color:var(--muted);background:0 0;border:none;flex:1;padding:10px;font-size:13px;font-weight:600;transition:all .2s}.type-toggle button.active{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;box-shadow:inset 0 0 20px #ffffff1a}.btn-add{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;cursor:pointer;letter-spacing:.02em;border:none;border-radius:12px;grid-column:1/-1;justify-content:center;align-items:center;gap:8px;padding:13px;font-size:14px;font-weight:700;transition:all .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 20px #4361ee4d}.btn-add:after{content:"";background:linear-gradient(90deg,#0000,#ffffff1a,#0000);width:100%;height:100%;transition:left .4s;position:absolute;top:0;left:-100%}.btn-add:hover:after{left:100%}.btn-add:hover{transform:translateY(-1px);box-shadow:0 4px 30px #4361ee80}.bottom{grid-template-columns:280px 1fr;align-items:start;gap:16px;margin-bottom:1.5rem;display:grid}.chart-empty{color:var(--muted);text-align:center;padding:2rem;font-size:13px}.entry-list{flex-direction:column;gap:6px;list-style:none;display:flex}.entry-item{background:var(--surface);border:1px solid var(--border);border-radius:14px;align-items:center;gap:10px;padding:12px 16px;font-size:13px;transition:all .2s;display:flex}.entry-item:hover{border-color:var(--border-glow);background:var(--surface-2)}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;box-shadow:0 0 6px}.entry-desc{color:var(--text);flex:1;font-weight:600}.entry-cat{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.entry-amount{text-align:right;letter-spacing:-.5px;min-width:90px;font-weight:800}.entry-item.income .entry-amount{color:var(--income);text-shadow:0 0 10px #00f5d44d}.entry-item.expense .entry-amount{color:var(--expense);text-shadow:0 0 10px #ff2d554d}.btn-del{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;padding:4px;transition:all .2s;display:flex}.btn-del:hover{color:var(--expense);background:#ff2d551a}.list-empty{color:var(--muted);padding:1rem 0;font-size:13px}.btn-export{border:1px solid var(--border);cursor:pointer;color:var(--muted);background:0 0;border-radius:10px;margin:0 auto;padding:10px 28px;font-size:13px;font-weight:500;transition:all .2s;display:block}.btn-export:hover{color:var(--accent);box-shadow:var(--glow-blue);border-color:#4361ee66}.controls{background:var(--surface);border:1px solid var(--border);border-radius:20px;flex-direction:column;gap:14px;margin-bottom:1.5rem;padding:1.25rem 1.5rem;display:flex}.controls-row{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.control-group{flex-direction:column;gap:6px;display:flex}.control-label{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:600}.limit-bar-track{background:var(--border);border-radius:99px;height:3px;overflow:hidden}.limit-bar-fill{filter:blur(.5px);border-radius:99px;height:100%;transition:width .4s,background .4s}.limit-bar-wrap{flex-direction:column;gap:6px;display:flex}.limit-label{font-size:12px;font-weight:600}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;margin-bottom:1.5rem;padding:1.5rem;position:relative;overflow:hidden}.chart-card:before{content:"";background:linear-gradient(90deg,#0000,#4361ee4d,#0000);height:1px;position:absolute;top:0;left:0;right:0}.chart-title{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1.25rem;font-size:11px;font-weight:600}.obj-form{background:var(--surface);border:1px solid var(--border);border-radius:20px;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:1.5rem;padding:1.5rem;display:grid}.obj-form .btn-add{grid-column:1/-1}.obj-list{flex-direction:column;gap:12px;display:flex}.obj-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:10px;padding:1.25rem;transition:all .2s;display:flex}.obj-card:hover{border-color:var(--border-glow);box-shadow:var(--glow-blue)}.obj-header{align-items:center;gap:10px;display:flex}.obj-nombre{flex:1;font-size:15px;font-weight:700}.obj-fecha{color:var(--muted);font-size:12px}.obj-amounts{letter-spacing:-1px;align-items:baseline;gap:8px;font-size:24px;font-weight:800;display:flex}.obj-meta{color:var(--muted);font-size:14px;font-weight:400}.obj-actions{align-items:center;gap:8px;margin-top:4px;display:flex}.obj-percent{color:var(--muted);margin-left:auto;font-size:13px;font-weight:600}.btn-aporte{background:var(--surface-2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;padding:5px 12px;font-size:13px;font-weight:600;transition:all .2s}.btn-aporte:hover{color:var(--accent);box-shadow:var(--glow-blue);border-color:#4361ee66}.historial-filters{grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:1rem;display:grid}.historial-count{color:var(--muted);margin-bottom:1rem;font-size:12px;font-weight:500}.toast{z-index:999;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:14px;align-items:center;gap:12px;padding:14px 20px;font-size:14px;font-weight:600;animation:.3s cubic-bezier(.34,1.56,.64,1) slideIn;display:flex;position:fixed;bottom:2rem;right:2rem}.toast-warning{color:#fa0;background:#ffaa0026;border:1px solid #fa06;box-shadow:0 0 30px #fa03}.toast-danger{color:#ff2d55;background:#ff2d5526;border:1px solid #ff2d5566;box-shadow:0 0 30px #ff2d5533}.toast-success{color:#00f5d4;background:#00f5d426;border:1px solid #00f5d466;box-shadow:0 0 30px #00f5d433}.toast button{cursor:pointer;opacity:.6;color:inherit;background:0 0;border:none;font-size:16px}@keyframes slideIn{0%{opacity:0;transform:translateY(30px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}[data-theme=light]{--bg:#f0f4ff;--surface:#fff;--surface-2:#f5f7ff;--border:#e0e8ff;--border-glow:#c0cfff;--text:#0a0f2e;--muted:#89c;--income:#09a;--expense:#c14;--accent:#3352dd;--accent-2:#62e;--glow-cyan:0 0 20px #0099aa1a;--glow-red:0 0 20px #cc11441a;--glow-blue:0 0 20px #3352dd26}@media print{.navbar,.entry-form,.btn-add,.btn-del,.btn-export,.controls{display:none}body{color:#000;background:#fff}}@media (width<=600px){.metrics,.bottom,.entry-form,.controls-row,.historial-filters,.obj-form{grid-template-columns:1fr}.navbar{gap:1rem;padding:1rem}}
