*{box-sizing:border-box}body{margin:0}:root{--bg: #0B0E14;--bg-raised: #0f1219;--card: #161B22;--card-hover: #1c2130;--text: #E6EDF3;--text-secondary: #8B949E;--text-muted: #484F58;--accent-lime: #9EEC5D;--accent-lime-dim: rgba(209,255,0,.12);--accent-blue: #00529B;--accent-blue-dim: rgba(0,82,155,.2);--success: #2ECC71;--success-dim: rgba(46,204,113,.12);--danger: #E74C3C;--danger-dim: rgba(231,76,60,.12);--warning: #F39C12;--warning-dim: rgba(243,156,18,.12);--border: #21262D;--border-light: #161B22;--radius: 14px;--radius-sm: 10px;--radius-xs: 8px;--shadow: 0 1px 3px rgba(0,0,0,.3), 0 4px 12px rgba(0,0,0,.2);--shadow-md: 0 4px 16px rgba(0,0,0,.35);--shadow-lg: 0 8px 32px rgba(0,0,0,.4);--font: "Inter", "Inter var", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", monospace;--transition: .15s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;font-feature-settings:"cv02","cv03","cv04","cv11"}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;line-height:1.5;letter-spacing:-.011em}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.tabular-nums{font-variant-numeric:tabular-nums}#root{min-height:100vh;padding-bottom:env(safe-area-inset-bottom,0)}a{color:var(--accent-lime);text-decoration:none}button{font-family:inherit;cursor:pointer;border:none}input,select,textarea{font-family:inherit;color-scheme:dark}.app-shell{max-width:430px;margin:0 auto;min-height:100vh;position:relative}.page{flex:1;padding:0 1.25rem 6.5rem;animation:fadeUp .25s ease}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-title{font-size:1.375rem;font-weight:650;margin:0 0 .2rem;color:var(--text);letter-spacing:-.025em}.page-subtitle{font-size:.8125rem;color:var(--text-muted);margin:0 0 1.25rem;letter-spacing:-.006em}.section-title{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:0 0 .75rem}.muted{color:var(--text-muted);font-size:.8125rem;letter-spacing:-.006em}.card{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);padding:1.25rem;margin-bottom:.75rem;transition:all var(--transition)}.card:hover{border-color:#2d333b}.card-gradient{background:linear-gradient(135deg,#0b0e14,#161b22);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:.75rem;position:relative;overflow:hidden}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.75rem 1.5rem;border:none;border-radius:var(--radius-sm);font-weight:600;font-size:.875rem;transition:all var(--transition);letter-spacing:-.011em}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent-lime);color:#0b0e14}.btn-primary:hover{background:#e0ff33;box-shadow:0 0 20px #d1ff0040}.btn-secondary{background:var(--card);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--card-hover);border-color:#2d333b}.btn-ghost{background:transparent;color:var(--text-secondary);padding:.5rem .75rem}.btn-ghost:hover{background:var(--card);color:var(--text)}.btn-block{width:100%}.btn-sm{padding:.5rem 1rem;font-size:.8rem}.chips{display:flex;gap:.5rem;flex-wrap:wrap}.chip{padding:.4rem .875rem;border-radius:100px;font-size:.75rem;font-weight:500;background:var(--card);color:var(--text-secondary);border:1.5px solid var(--border);transition:all var(--transition);cursor:pointer;letter-spacing:-.006em}.chip:hover{border-color:var(--accent-lime);color:var(--accent-lime)}.chip.active{background:var(--accent-lime-dim);color:var(--accent-lime);border-color:var(--accent-lime);font-weight:600}.category-chips-wrap{max-height:132px;overflow-y:auto;overflow-x:hidden;padding:.15rem 0;margin-bottom:.5rem}.category-chips-wrap .chips{margin-bottom:0}.add-category-inline{display:flex;gap:.5rem;align-items:center;margin-top:.5rem;flex-wrap:wrap}.add-category-inline input{flex:1;min-width:100px;padding:.4rem .6rem;font-size:.8125rem;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg);color:var(--text)}.add-category-inline input:focus{outline:none;border-color:var(--accent-lime)}.add-category-inline .btn{flex-shrink:0}.payment-step-label{font-size:.5625rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem;font-weight:600}.payment-method-hint{font-size:.75rem;color:var(--text-muted);margin:-.25rem 0 .75rem;line-height:1.35}.payment-method-summary{font-size:.8125rem;color:var(--text-secondary);margin:.75rem 0 0;padding:.5rem .6rem;background:var(--card);border-radius:var(--radius-xs);border:1px solid var(--border)}.payment-method-summary strong{color:var(--accent-lime)}.payment-banks{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.payment-bank-btn{padding:.5rem .875rem;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;background:var(--card);border:1.5px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.payment-bank-btn:hover{border-color:#2d333b;color:var(--text)}.payment-bank-btn.active{background:var(--accent-blue-dim);border-color:#4da6ff;color:#4da6ff}.payment-methods{display:flex;flex-wrap:wrap;gap:.4rem}.payment-method-btn{padding:.4rem .75rem;border-radius:100px;font-size:.75rem;font-weight:500;background:var(--card);border:1.5px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.payment-method-btn:hover{border-color:var(--accent-lime);color:var(--accent-lime)}.payment-method-btn.active{background:var(--accent-lime-dim);border-color:var(--accent-lime);color:var(--accent-lime)}.empresa-select-wrap{position:relative}.empresa-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem 1rem;border:1.5px solid var(--border);border-radius:var(--radius-xs);background:var(--bg);font-size:.9375rem;color:var(--text);cursor:pointer;transition:all var(--transition);text-align:left}.empresa-select-trigger:hover{border-color:#2d333b}.empresa-select-trigger[aria-expanded=true]{border-color:var(--accent-lime);box-shadow:0 0 0 3px #d1ff001a}.empresa-select-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empresa-select-value:empty:before{content:"Ninguna";color:var(--text-muted)}.empresa-select-chevron{flex-shrink:0;color:var(--text-muted);transition:transform .2s ease}.empresa-select-chevron.open{transform:rotate(180deg);color:var(--accent-lime)}.empresa-select-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:.25rem;max-height:220px;overflow-y:auto;background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 8px 24px #00000059;z-index:20;padding:.35rem 0}.empresa-select-option{width:100%;padding:.6rem 1rem;border:none;background:none;font-size:.875rem;color:var(--text);text-align:left;cursor:pointer;transition:background .15s ease}.empresa-select-option:hover{background:var(--accent-lime-dim);color:var(--accent-lime)}.empresa-select-option.selected{background:var(--accent-lime-dim);color:var(--accent-lime);font-weight:600}.empresa-select-add-block{border-top:1px solid var(--border);margin-top:.35rem;padding:.5rem .5rem .25rem}.empresa-select-add-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem .75rem;border:1px dashed var(--border);border-radius:var(--radius-xs);background:transparent;font-size:.8125rem;color:var(--text-muted);cursor:pointer;transition:all var(--transition)}.empresa-select-add-btn:hover{border-color:var(--accent-lime);color:var(--accent-lime);background:var(--accent-lime-dim)}.empresa-select-add-inline{display:flex;gap:.5rem;align-items:center}.empresa-select-add-inline input{flex:1;min-width:0;padding:.5rem .75rem;font-size:.8125rem;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg);color:var(--text)}.empresa-select-add-inline input:focus{outline:none;border-color:var(--accent-lime)}.empresa-select-add-submit{padding:.5rem .875rem;border-radius:var(--radius-xs);font-size:.8125rem;font-weight:600;border:none;background:var(--accent-lime);color:#0b0e14;cursor:pointer;transition:opacity .2s ease}.empresa-select-add-submit:hover:not(:disabled){opacity:.9}.empresa-select-add-submit:disabled{opacity:.5;cursor:not-allowed}.empresa-select-error{font-size:.6875rem;color:var(--danger);margin:.35rem 0 0;padding:0 .25rem}.form-group{margin-bottom:1.125rem}.form-group label{display:block;font-size:.75rem;font-weight:600;color:var(--text-secondary);margin-bottom:.4rem;letter-spacing:.02em;text-transform:uppercase}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem 1rem;border:1.5px solid var(--border);border-radius:var(--radius-xs);background:var(--bg);font-size:.9375rem;color:var(--text);transition:all var(--transition)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent-lime);box-shadow:0 0 0 3px #d1ff001a}.form-group input::placeholder{color:var(--text-muted)}.form-group select{appearance:none;cursor:pointer}.form-group select option{background:var(--card);color:var(--text)}.form-group .input-big{font-size:2rem;font-weight:700;font-family:var(--font-mono);padding:1rem;text-align:center;letter-spacing:-.03em;background:transparent;border:none;border-bottom:2px solid var(--border);border-radius:0}.form-group .input-big:focus{border-color:var(--accent-lime);box-shadow:none}.nav-bottom{position:fixed;bottom:0;left:50%;transform:translate(-50%);max-width:430px;width:100%;background:#0b0e14eb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-evenly;min-height:56px;padding:.25rem .5rem calc(.35rem + env(safe-area-inset-bottom));z-index:100}.nav-bottom a{color:var(--text-muted);padding:.35rem .5rem;font-size:.5625rem;font-weight:500;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;border-radius:var(--radius-xs);transition:all var(--transition);position:relative;letter-spacing:.02em;text-transform:uppercase;flex:1;min-width:0;max-width:72px}.nav-bottom a svg{flex-shrink:0;transition:all var(--transition)}.nav-bottom a:hover{color:var(--text-secondary)}.nav-bottom a.active{color:var(--accent-lime)}.nav-bottom a.active:after{content:"";position:absolute;top:.15rem;left:50%;transform:translate(-50%);width:20px;height:2px;background:var(--accent-lime);border-radius:2px}.nav-bottom .nav-add{flex:1;max-width:56px;background:var(--accent-lime);color:#0b0e14;border-radius:50%;width:48px;height:48px;min-width:48px;box-shadow:0 4px 20px #d1ff004d;display:flex;align-items:center;justify-content:center;padding:0;margin:0;backface-visibility:hidden;transform:translateZ(0);-webkit-font-smoothing:antialiased}.nav-bottom .nav-add:hover{box-shadow:0 6px 28px #d1ff0066}.nav-bottom .nav-add:after{display:none}.nav-bottom .nav-add svg{width:26px;height:26px;flex-shrink:0;shape-rendering:geometricPrecision}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-center{display:flex;align-items:center}.gap-1{gap:.5rem}.gap-2{gap:1rem}.amount-positive{color:var(--success);font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.amount-negative{color:var(--danger);font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dash-header{padding:1.25rem 0 .5rem}.dash-greeting{font-size:.75rem;color:var(--text-muted);margin:0 0 .1rem;letter-spacing:.04em;text-transform:uppercase}.dash-name{font-size:1.25rem;font-weight:650;color:var(--text);margin:0;letter-spacing:-.02em}.hero-balance{text-align:center;padding:1.75rem 1.5rem}.hero-totals-grid{display:flex;justify-content:space-between;align-items:stretch;gap:1rem;max-width:100%}.hero-totals-grid>div{flex:1 1 0;min-width:0;padding:.5rem .5rem .6rem;border-right:1px solid rgba(255,255,255,.12);box-sizing:border-box;background:#0003;border-radius:8px;overflow:hidden}.hero-totals-grid>div:first-child{border-radius:8px 0 0 8px}.hero-totals-grid>div:last-child{border-right:none;border-radius:0 8px 8px 0}.hero-totals-grid .hero-amount{letter-spacing:.02em;font-variant-numeric:tabular-nums;margin:.2rem 0 0;font-size:clamp(.875rem,3.5vw,1.25rem)}.hero-totals-grid .hero-label{margin:0 0 .1rem}@media(max-width:380px){.hero-totals-grid{flex-direction:column;gap:.5rem}.hero-totals-grid>div{border-right:none;border-bottom:1px solid rgba(255,255,255,.12);border-radius:8px!important;padding:.6rem .75rem}.hero-totals-grid>div:last-child{border-bottom:none}}.hero-balance:before{content:"";position:absolute;top:-60%;right:-30%;width:200px;height:200px;background:radial-gradient(circle,rgba(209,255,0,.06) 0%,transparent 70%);border-radius:50%}.hero-balance:after{content:"";position:absolute;bottom:-40%;left:-20%;width:160px;height:160px;background:radial-gradient(circle,rgba(0,82,155,.08) 0%,transparent 70%);border-radius:50%}.hero-label{font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-weight:500}.hero-amount{font-size:2.25rem;font-weight:700;font-family:var(--font-mono);margin:.3rem 0;letter-spacing:-.04em;color:var(--accent-lime)}.hero-sub{font-size:.75rem;color:var(--text-muted);font-family:var(--font-mono);letter-spacing:-.02em}.dash-periodo{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;background:var(--card);border:1px solid var(--border);border-radius:100px;font-size:.75rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.dash-periodo:hover{border-color:var(--accent-lime);color:var(--accent-lime)}.dash-periodo select{border:none;background:transparent;font:inherit;color:inherit;cursor:pointer;padding:0}.dash-periodo select:focus{outline:none}.dash-periodo select option{background:var(--card);color:var(--text)}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:.875rem}.quick-action{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.875rem .5rem .75rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:var(--text-secondary);font-size:.625rem;font-weight:500;transition:all var(--transition);letter-spacing:.01em;text-transform:uppercase}.quick-action:hover{border-color:#2d333b;color:var(--text);transform:translateY(-1px)}.quick-action-icon{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center}.quick-action-icon svg{width:20px;height:20px}.qa-teal{background:var(--accent-lime-dim);color:var(--accent-lime)}.qa-green{background:var(--success-dim);color:var(--success)}.qa-amber{background:var(--warning-dim);color:var(--warning)}.qa-purple{background:var(--accent-blue-dim);color:#4da6ff}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--border)}.summary-row:last-child{border-bottom:none}.summary-label{font-size:.8125rem;color:var(--text-secondary);letter-spacing:-.006em}.summary-value{font-size:.875rem;font-weight:600;font-family:var(--font-mono)}.cat-list{list-style:none;padding:0}.cat-item{margin-bottom:.75rem}.cat-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.3rem}.cat-name{font-size:.75rem;font-weight:500;color:var(--text-secondary)}.cat-amount{font-size:.75rem;font-weight:600;font-family:var(--font-mono);color:var(--text)}.cat-bar-bg{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.cat-bar-fill{height:100%;border-radius:2px;transition:width .4s ease}.liquidacion-banner{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--card);border:1px solid var(--border);border-left:3px solid var(--warning);border-radius:var(--radius);margin-bottom:.75rem}.liquidacion-icon-wrap{width:40px;height:40px;border-radius:12px;background:var(--warning-dim);color:var(--warning);display:flex;align-items:center;justify-content:center;flex-shrink:0}.liquidacion-text{font-size:.8125rem;color:var(--text);line-height:1.4}.liquidacion-text strong{color:var(--text);font-weight:600}.proporcional-card{border-left:3px solid var(--accent-lime)}.proporcional-badge{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-lime);margin:0 0 .35rem}.proporcional-desc{font-size:.75rem;color:var(--text-muted);line-height:1.4;margin:0 0 .75rem}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeUp .2s ease}.modal-card{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-lg);max-width:360px;width:100%;max-height:90vh;overflow-y:auto;padding:1.25rem}.config-edit-payment-modal .form-group{margin-bottom:.75rem}.config-payment-row:hover{background:var(--card-hover);border-color:var(--accent-lime)}.tx-date-group{margin-bottom:1rem}.tx-date-label{font-size:.625rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem;padding-left:.25rem}.tx-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:.35rem;transition:all var(--transition)}.tx-item:hover{border-color:#2d333b}.tx-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tx-icon-expense{background:var(--danger-dim);color:var(--danger)}.tx-icon-income{background:var(--success-dim);color:var(--success)}.tx-info{flex:1;min-width:0}.tx-desc{font-size:.8125rem;font-weight:550;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-meta{font-size:.6875rem;color:var(--text-muted);margin-top:.1rem}.tx-amount{text-align:right;font-size:.875rem;font-weight:600;font-family:var(--font-mono);white-space:nowrap}.tx-delete{opacity:0;transition:opacity var(--transition);background:none;color:var(--text-muted);padding:.25rem;border-radius:6px}.tx-item:hover .tx-delete{opacity:1}.tx-delete:hover{background:var(--danger-dim);color:var(--danger)}.deudas-hero{text-align:center;padding:1.5rem}.deudas-hero-label{font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-weight:500}.deudas-hero-amount{font-size:1.75rem;font-weight:700;font-family:var(--font-mono);margin:.25rem 0 .75rem;letter-spacing:-.03em;color:var(--danger)}.deudas-hero-stats{display:flex;justify-content:center;gap:2rem}.deudas-hero-stat{text-align:center}.deudas-hero-stat-label{font-size:.5625rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:500}.deudas-hero-stat-value{font-size:1rem;font-weight:650;font-family:var(--font-mono);color:var(--text)}.debt-card{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.5rem;cursor:pointer;transition:all var(--transition)}.debt-card:hover{border-color:#2d333b}.debt-card.selected{border-color:var(--accent-lime);box-shadow:0 0 0 1px var(--accent-lime)}.debt-card-icon-wrap{width:40px;height:40px;border-radius:12px;background:var(--accent-blue-dim);color:#4da6ff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.debt-card-info{flex:1;min-width:0}.debt-card-name{font-size:.875rem;font-weight:600;color:var(--text)}.debt-card-meta{font-size:.6875rem;color:var(--text-muted);margin-top:.15rem}.debt-card-amount{text-align:right}.debt-card-amount-value{font-size:.875rem;font-weight:600;font-family:var(--font-mono);color:var(--danger)}.debt-card-amount-sub{font-size:.625rem;color:var(--text-muted);font-family:var(--font-mono)}.debt-progress{height:3px;background:var(--border);border-radius:2px;margin-top:.5rem;overflow:hidden}.debt-progress-fill{height:100%;background:var(--success);border-radius:2px;transition:width .4s ease}.debt-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.debt-detail-item{padding:.75rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-xs)}.debt-detail-label{font-size:.5625rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.2rem}.debt-detail-value{font-size:.9375rem;font-weight:600;font-family:var(--font-mono);color:var(--text)}.cuota-row{display:grid;grid-template-columns:32px 44px 1fr 1fr 72px 1fr;gap:.3rem;align-items:center;padding:.45rem 0;border-bottom:1px solid var(--border);font-size:.6875rem;font-family:var(--font-mono)}.cuota-row-header{font-family:var(--font);font-weight:600;color:var(--text-muted);text-transform:uppercase;font-size:.5625rem;letter-spacing:.06em;border-bottom:1px solid #2d333b;padding-bottom:.4rem}.cuota-check{width:18px;height:18px;border-radius:5px;accent-color:var(--accent-lime);cursor:pointer}.cuota-abono-input{width:100%;padding:.25rem .35rem;border:1px solid var(--border);border-radius:5px;background:var(--bg);color:var(--text);text-align:right;font-size:.6875rem;font-family:var(--font-mono);transition:all var(--transition)}.cuota-abono-input:focus{border-color:var(--accent-lime);outline:none}.cuota-paid{background:var(--success-dim);border-radius:5px;opacity:.7}.chart-bar-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.chart-bar-label{width:90px;font-size:.6875rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}.chart-bar-track{flex:1;height:22px;background:var(--border);border-radius:5px;overflow:hidden;position:relative}.chart-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-blue),#4da6ff);border-radius:5px;min-width:4px;transition:width .5s ease;display:flex;align-items:center;justify-content:flex-end;padding-right:.35rem}.chart-bar-fill span{font-size:.5625rem;color:#fff;font-weight:600;font-family:var(--font-mono)}.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem;background:var(--bg)}.login-logo-wrap{width:64px;height:64px;border-radius:20px;background:var(--accent-lime-dim);display:flex;align-items:center;justify-content:center;color:var(--accent-lime);margin-bottom:1.25rem}.login-title{font-size:1.5rem;font-weight:700;color:var(--text);margin-bottom:.25rem;letter-spacing:-.025em}.login-subtitle{color:var(--text-muted);font-size:.8125rem;margin-bottom:2rem;text-align:center}.login-card{width:100%;max-width:380px;padding:2rem 1.75rem}.login-error{color:var(--danger);font-size:.8125rem;margin:0 0 1rem;padding:.5rem .75rem;background:var(--danger-dim);border-radius:var(--radius-xs)}.login-hint{color:var(--text-muted);font-size:.6875rem;margin-top:1rem;text-align:center}.export-option{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem;cursor:pointer;transition:all var(--transition);width:100%;text-align:left;color:var(--text)}.export-option:hover{border-color:#2d333b;transform:translateY(-1px)}.export-icon{width:48px;height:48px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.empty-icon{width:56px;height:56px;border-radius:16px;background:var(--card);border:1px solid var(--border);color:var(--text-muted);display:flex;align-items:center;justify-content:center;margin:0 auto}.alert-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:.35rem}.alert-icon-wrap{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.alert-icon-warn{background:var(--warning-dim);color:var(--warning)}.alert-icon-ok{background:var(--success-dim);color:var(--success)}.budget-groups{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.budget-group-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:all var(--transition)}.budget-group-card:hover{border-color:#2d333b}.budget-group-header{display:flex;align-items:center;gap:.75rem;width:100%;padding:.875rem 1rem;background:transparent;border:none;cursor:pointer;text-align:left;font-family:var(--font);color:var(--text);transition:background var(--transition)}.budget-group-header:hover{background:var(--card-hover)}.budget-group-danger{border-left:3px solid var(--danger)}.budget-group-warning{border-left:3px solid var(--warning)}.budget-group-ok{border-left:3px solid var(--success)}.budget-group-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.budget-group-info{flex:1;min-width:0;overflow:hidden}.budget-group-label{font-size:.8125rem;font-weight:600;color:var(--text)}.budget-group-diff{font-size:.75rem;font-family:var(--font-mono);flex-shrink:0;margin-left:.25rem}.budget-group-nums{font-size:.6875rem;color:var(--text-muted);font-family:var(--font-mono);margin-top:.25rem;display:flex;align-items:baseline;flex-wrap:wrap;gap:.35rem .6rem}.budget-group-sep{opacity:.4;flex-shrink:0}.budget-group-chevron{color:var(--text-muted);flex-shrink:0}.budget-group-detail{padding:0 1rem .75rem}.budget-sub-header{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:.25rem;font-size:.5rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding-bottom:.375rem;border-bottom:1px solid var(--border)}.budget-sub-header span:not(:first-child){text-align:right}.budget-sub-row{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:.25rem;align-items:center;padding:.4rem 0;border-bottom:1px solid var(--border);font-size:.6875rem}.budget-sub-row:last-child{border-bottom:none}.budget-sub-name{font-weight:550;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.budget-sub-num{text-align:right;font-family:var(--font-mono);font-weight:500;color:var(--text-secondary)}.budget-status-danger{background:var(--danger-dim);border-radius:4px}.budget-status-warning{background:var(--warning-dim);border-radius:4px}.budget-total-row{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:.25rem;padding:.75rem 1rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);font-size:.8125rem;margin-bottom:.75rem}.budget-total-row span:not(:first-child){text-align:right;font-family:var(--font-mono)}.budget-bar-bg{height:3px;background:var(--border);border-radius:2px;overflow:hidden}.budget-bar-fill{height:100%;border-radius:2px;transition:width .4s ease}.budget-bar-ok{background:var(--success)}.budget-bar-warning{background:var(--warning)}.budget-bar-danger{background:var(--danger)}.budget-diff-ok{color:var(--success);font-weight:600;font-family:var(--font-mono)}.budget-diff-warning{color:var(--warning);font-weight:600;font-family:var(--font-mono)}.budget-diff-danger{color:var(--danger);font-weight:600;font-family:var(--font-mono)}.budget-input{width:100%;padding:.2rem .3rem;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);font-size:.6875rem;text-align:right;font-family:var(--font-mono);transition:all var(--transition)}.budget-input:focus{border-color:var(--accent-lime);outline:none}.budget-message{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:var(--success-dim);color:var(--success);border-radius:var(--radius-xs);font-size:.75rem;font-weight:550;margin-bottom:.75rem}.suggest-pill{display:inline-flex;align-items:center;gap:.3rem;margin-top:.5rem;padding:.375rem .75rem;background:var(--accent-lime-dim);border:1px solid rgba(209,255,0,.25);border-radius:100px;font-size:.6875rem;color:var(--accent-lime);cursor:pointer;transition:all var(--transition);font-family:var(--font)}.suggest-pill:hover{background:#d1ff002e;border-color:var(--accent-lime)}.suggest-pill strong{font-weight:650}.budget-mini-card{display:flex;align-items:stretch;padding:.875rem 1rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem;text-decoration:none;color:var(--text);transition:all var(--transition)}.budget-mini-card:hover{border-color:#2d333b}.budget-mini-left{flex:1;min-width:0}.budget-mini-title{font-size:.875rem;font-weight:600;color:var(--text-secondary);letter-spacing:-.006em}.budget-mini-bar-bg{height:4px;background:var(--border);border-radius:2px;overflow:hidden;margin-bottom:.3rem}.budget-mini-bar-fill{height:100%;background:var(--accent-lime);border-radius:2px;transition:width .4s ease}.budget-mini-bar-fill.over{background:var(--danger)}.budget-mini-sub{font-size:.8125rem;color:var(--text-muted);margin:0;font-family:var(--font-mono)}.budget-mini-groups{margin-top:.5rem}.budget-mini-group-row{display:flex;align-items:center;gap:.5rem;padding:.2rem 0;font-size:.75rem}.budget-mini-group-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.budget-mini-group-name{flex:1;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.04em}.budget-mini-group-val{font-family:var(--font-mono);font-weight:550;color:var(--text-secondary);letter-spacing:.02em}.budget-mini-alert{display:inline-flex;align-items:center;gap:.2rem;padding:.2rem .5rem;background:var(--danger-dim);color:var(--danger);border-radius:100px;font-size:.5625rem;font-weight:650}.debt-detail-hero{text-align:center;padding:1.5rem 1rem 1.25rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem}.debt-detail-hero-icon{width:48px;height:48px;border-radius:14px;background:var(--accent-blue-dim);color:#4da6ff;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}.debt-detail-hero-name{font-size:1.125rem;font-weight:650;color:var(--text);margin:0 0 .25rem;letter-spacing:-.02em}.debt-detail-hero-saldo{font-size:2rem;font-weight:700;font-family:var(--font-mono);color:var(--danger);letter-spacing:-.04em;margin:0}.debt-detail-hero-saldo span{font-size:.875rem;color:var(--text-muted);font-weight:500}.debt-detail-progress-wrap{margin-top:1rem}.debt-detail-progress-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.debt-detail-progress-fill{height:100%;background:linear-gradient(90deg,var(--success),#58d68d);border-radius:3px;transition:width .5s ease}.debt-detail-progress-labels{display:flex;justify-content:space-between;margin-top:.35rem;font-size:.5625rem;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.06em}.debt-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.debt-stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem .625rem;text-align:center}.debt-stat-label{display:block;font-size:.5rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:.25rem}.debt-stat-value{display:block;font-size:.8125rem;font-weight:650;font-family:var(--font-mono)}.debt-edit-row{display:flex;align-items:center;justify-content:space-between;padding:.6rem 0;border-bottom:1px solid var(--border);gap:.5rem}.debt-edit-row:last-child{border-bottom:none}.debt-edit-label{font-size:.6875rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600;flex-shrink:0}.debt-edit-value-wrap{display:flex;align-items:center;gap:.375rem;cursor:pointer;padding:.25rem .5rem;border-radius:6px;transition:background var(--transition);background:transparent;border:none;font-family:inherit;color:inherit}.debt-edit-value-wrap:hover{background:var(--card-hover)}.debt-edit-value{font-size:.8125rem;font-weight:550;color:var(--text)}.debt-edit-pencil{color:var(--text-muted);opacity:0;transition:opacity var(--transition)}.debt-edit-value-wrap:hover .debt-edit-pencil{opacity:1}.debt-edit-input-wrap{display:flex;align-items:center;gap:.25rem;flex:1;max-width:200px}.debt-edit-input{flex:1;padding:.3rem .5rem;background:var(--bg);border:1px solid var(--accent-lime);border-radius:5px;color:var(--text);font-size:.8125rem;font-family:var(--font-mono);min-width:0}.debt-edit-input:focus{outline:none;box-shadow:0 0 0 2px #d1ff0026}.debt-edit-btn{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition)}.debt-edit-btn.ok{background:var(--success-dim);color:var(--success)}.debt-edit-btn.ok:hover{background:var(--success);color:#0b0e14}.debt-edit-btn.cancel{background:var(--card-hover);color:var(--text-muted)}.debt-edit-btn.cancel:hover{background:var(--danger-dim);color:var(--danger)}.debt-cuotas-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;background:transparent;border:none;cursor:pointer;color:var(--text-muted);font-family:var(--font);margin-bottom:.5rem}.debt-form{margin-top:.5rem}.debt-form-preview{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem 1rem;margin-top:.75rem}.debt-form-preview-row{display:flex;justify-content:space-between;padding:.3rem 0;font-size:.75rem}.debt-form-preview-row span:first-child{color:var(--text-secondary)}.debt-form-preview-row span:last-child{font-weight:600;color:var(--text)}.debt-pay-card{display:flex;align-items:center;gap:.75rem;padding:.875rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:.5rem;transition:all var(--transition)}.debt-pay-card:hover{border-color:#2d333b}.debt-pay-card.paid{opacity:.55}.debt-pay-card-icon{width:36px;height:36px;border-radius:10px;background:var(--accent-blue-dim);color:#4da6ff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.debt-pay-card-icon.paid{background:var(--success-dim);color:var(--success)}.debt-pay-card-info{flex:1;min-width:0}.debt-pay-card-name{font-size:.8125rem;font-weight:600;color:var(--text);margin:0}.debt-pay-card-meta{font-size:.625rem;color:var(--text-muted);margin:.1rem 0 0}.debt-pay-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;flex-shrink:0}.debt-pay-card-amount{font-size:.8125rem;font-weight:650;font-family:var(--font-mono);color:var(--text)}.debt-pay-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.3rem .75rem;background:var(--success);color:#0b0e14;border:none;border-radius:100px;font-size:.625rem;font-weight:700;font-family:var(--font);cursor:pointer;transition:all var(--transition);text-transform:uppercase;letter-spacing:.04em}.debt-pay-btn:hover{background:#58d68d;box-shadow:0 0 12px #2ecc714d}.debt-pay-btn:active{transform:scale(.95)}.debt-pay-btn:disabled{opacity:.5;cursor:not-allowed}.debt-pay-done-badge{display:inline-flex;align-items:center;padding:.2rem .5rem;background:var(--success-dim);color:var(--success);border-radius:100px;font-size:.5625rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em}.debt-pay-success{display:flex;align-items:center;gap:.375rem;padding:.625rem .875rem;background:var(--success-dim);border:1px solid rgba(46,204,113,.2);color:var(--success);border-radius:var(--radius-xs);font-size:.75rem;font-weight:600;margin-bottom:.75rem;animation:fadeUp .25s ease}@media(min-width:600px){.page{padding:0 2rem 6.5rem}.nav-bottom{border-radius:var(--radius) var(--radius) 0 0}}
