@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg-color:#f8fafc;--surface-color:#fff;--surface-alt:#f1f5f9;--primary-color:#2563eb;--primary-hover:#1d4ed8;--secondary-color:#059669;--error-color:#dc2626;--text-primary:#0f172a;--text-secondary:#64748b;--border-color:#e2e8f0;--border-focus:#93c5fd}body{background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:Inter,sans-serif}*{box-sizing:border-box}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-color)}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.login-container{background-color:var(--bg-color);min-height:100vh;color:var(--text-primary);justify-content:center;align-items:center;font-family:Inter,sans-serif;display:flex}.login-card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:16px;width:100%;max-width:400px;padding:3rem;box-shadow:0 10px 25px -5px #0000000d,0 8px 10px -6px #00000003}.brand-header{text-align:center;margin-bottom:2rem}.login-card h1{color:var(--text-primary);margin-top:0;margin-bottom:.5rem;font-size:1.6rem;font-weight:700}.login-card p{color:var(--text-secondary);margin:0;font-size:.875rem}.form-group{margin-bottom:1.25rem}.form-group label{color:var(--text-primary);margin-bottom:.5rem;font-size:.85rem;font-weight:600;display:block}.form-group input{border:1px solid var(--border-color);background-color:var(--surface-color);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:8px;padding:.75rem 1rem;font-size:.95rem;transition:all .2s}.form-group input:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #2563eb1a}.login-btn{background-color:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:.75rem;padding:.85rem;font-size:.95rem;font-weight:600;transition:background-color .2s}.login-btn:hover{background-color:var(--primary-hover)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.error-message{color:var(--error-color);text-align:center;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:1.5rem;padding:.75rem;font-size:.85rem}.dashboard-layout{background-color:var(--bg-color);height:100vh;color:var(--text-primary);display:flex}.sidebar{background-color:var(--surface-color);border-right:1px solid var(--border-color);flex-direction:column;width:260px;display:flex}.sidebar-header{border-bottom:1px solid var(--border-color);align-items:center;padding:1.5rem;display:flex}.brand-logo{align-items:center;gap:.6rem;display:flex}.brand-icon{color:var(--primary-color)}.brand-logo h2{color:var(--text-primary);margin:0;font-size:1.25rem;font-weight:700}.sidebar-nav{flex:1;padding:1.25rem 1rem}.nav-item{width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.nav-item:hover{background-color:var(--surface-alt);color:var(--text-primary)}.nav-item.active{color:var(--primary-color);background-color:#eff6ff}.sidebar-footer{border-top:1px solid var(--border-color);background-color:var(--surface-color);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.user-info{align-items:center;gap:.75rem;display:flex;overflow:hidden}.avatar{width:34px;height:34px;color:var(--primary-color);background-color:#dbeafe;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;font-weight:700;display:flex}.user-details{flex-direction:column;display:flex;overflow:hidden}.user-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.user-email{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.725rem;overflow:hidden}.logout-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:.5rem;transition:all .2s;display:flex}.logout-btn:hover{color:var(--error-color);background-color:#fef2f2}.main-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.mobile-header,.sidebar-mobile-overlay{display:none}@media (width<=768px){.dashboard-layout{flex-direction:column;height:100vh}.mobile-header{background-color:var(--surface-color);border-bottom:1px solid var(--border-color);z-index:100;justify-content:space-between;align-items:center;padding:.85rem 1.25rem;display:flex}.mobile-menu-toggle{color:var(--text-primary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:.25rem;display:flex}.sidebar{z-index:200;width:260px;transition:left .3s cubic-bezier(.4,0,.2,1);position:fixed;top:0;bottom:0;left:-280px;box-shadow:4px 0 20px #00000026}.sidebar.mobile-open{left:0}.sidebar-mobile-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:150;background-color:#0f172a66;display:block;position:fixed;inset:0}.main-content{height:calc(100vh - 60px)}}.finanzas-page{background-color:var(--bg-color);flex-direction:column;height:100%;padding:2rem;display:flex;overflow-y:auto}.page-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.month-navigation{align-items:center;gap:1rem;display:flex}.month-navigation h2{text-align:center;min-width:220px;color:var(--text-primary);margin:0;font-size:1.4rem;font-weight:700}.icon-btn{background-color:var(--surface-color);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;transition:all .2s;display:flex;box-shadow:0 1px 2px #0000000d}.icon-btn:hover{background-color:var(--surface-alt);color:var(--text-primary);border-color:#cbd5e1}.header-actions{align-items:center;gap:.75rem;display:flex}.btn-secondary{background-color:var(--surface-color);color:var(--primary-color);border:1px solid var(--border-color);cursor:pointer;border-radius:8px;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.9rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 1px 2px #0000000d}.btn-secondary:hover{border-color:var(--border-focus);background-color:#eff6ff}.btn-danger-outline{background-color:var(--surface-color);color:var(--error-color);cursor:pointer;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.9rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 1px 2px #0000000d}.btn-danger-outline:hover:not(:disabled){border-color:var(--error-color);background-color:#fef2f2}.btn-primary{background-color:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.9rem;font-weight:600;transition:background-color .2s;display:flex;box-shadow:0 2px 4px #2563eb33}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.spreadsheet-container{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;box-shadow:0 4px 15px -3px #0000000d,0 2px 6px -2px #00000005}.spreadsheet{border-collapse:collapse;width:100%}.spreadsheet th{background-color:var(--surface-alt);text-align:left;color:var(--text-secondary);border-bottom:2px solid var(--border-color);letter-spacing:.5px;padding:.85rem 1rem;font-size:.75rem;font-weight:700}.spreadsheet th.col-concepto{width:34%}.spreadsheet th.col-fecha{text-align:center;width:16%}.spreadsheet th.col-monto{text-align:right;width:15%;padding-right:1.25rem}.spreadsheet th.col-pagado,.spreadsheet th.col-actions{text-align:center;width:10%}.pagado-cell{text-align:center;vertical-align:middle;padding:.35rem}.status-pill-btn{cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:20px;justify-content:center;align-items:center;gap:.35rem;margin:0 auto;padding:.35rem .75rem;font-size:.75rem;font-weight:700;transition:all .2s;display:inline-flex}.status-pill-btn.pagado{color:#047857;background-color:#ecfdf5;border-color:#a7f3d0;box-shadow:0 1px 2px #10b9811f}.status-pill-btn.pagado:hover{background-color:#dcfce7;border-color:#6ee7b7}.status-pill-btn.pendiente{color:#b45309;background-color:#fffbebf5;border-color:#fde68a;box-shadow:0 1px 2px #f59e0b1f}.status-pill-btn.pendiente:hover{background-color:#fef3c7;border-color:#fcd34d}.pill-icon{flex-shrink:0}.row-unpaid{opacity:.6;background-color:#fafafa}.row-unpaid td input{color:#94a3b8}.fecha-cell{text-align:center;position:relative}.datepicker-cell-wrapper{width:100%;display:inline-block;position:relative}.datepicker-trigger-btn{width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;gap:.4rem;padding:.65rem .5rem;font-size:.85rem;font-weight:500;transition:all .2s;display:inline-flex}.datepicker-trigger-btn:hover{background-color:var(--surface-alt);color:var(--text-primary)}.datepicker-trigger-btn.has-value{color:var(--primary-color);background-color:#eff6ff;font-weight:600}.clear-date-btn{color:var(--text-secondary);border-radius:50%;margin-left:.25rem;padding:0 .2rem;font-size:1rem;line-height:1}.clear-date-btn:hover{color:var(--error-color);background-color:#fef2f2}.datepicker-popover{z-index:999;background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:12px;width:220px;margin-top:.25rem;padding:.85rem;position:absolute;top:100%;left:50%;transform:translate(-50%);box-shadow:0 10px 25px -5px #00000026}.popover-header{color:var(--text-primary);text-transform:capitalize;justify-content:space-between;align-items:center;margin-bottom:.6rem;font-size:.85rem;font-weight:700;display:flex}.popover-nav-btn{border:1px solid var(--border-color);cursor:pointer;width:24px;height:24px;color:var(--text-secondary);background:0 0;border-radius:4px;justify-content:center;align-items:center;font-size:.9rem;line-height:1;transition:all .2s;display:flex}.popover-nav-btn:hover{background-color:var(--surface-alt);color:var(--text-primary)}.popover-weekdays{text-align:center;color:var(--text-secondary);grid-template-columns:repeat(7,1fr);margin-bottom:.4rem;font-size:.7rem;font-weight:700;display:grid}.popover-days-grid{grid-template-columns:repeat(7,1fr);gap:.2rem;display:grid}.popover-day-empty{height:24px}.popover-day-btn{width:24px;height:24px;color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin:0 auto;font-size:.75rem;font-weight:500;transition:all .15s;display:flex}.popover-day-btn:hover{background-color:var(--surface-alt);color:var(--primary-color)}.popover-day-btn.selected{background-color:var(--primary-color);color:#fff;font-weight:700}.spreadsheet td{border-bottom:1px solid var(--border-color);padding:0}.spreadsheet td input{width:100%;color:var(--text-primary);box-sizing:border-box;background:0 0;border:none;padding:.75rem 1rem;font-size:.95rem}.spreadsheet td input:focus{outline:2px solid var(--primary-color);outline-offset:-2px;background-color:#eff6ff}.spreadsheet td input.monto-input{text-align:right;padding-right:1.25rem;font-family:JetBrains Mono,monospace;font-weight:500}.spreadsheet td input:disabled{cursor:not-allowed;opacity:.4;background-color:#f1f5f9}.actions-cell{text-align:center;vertical-align:middle}.row-actions{justify-content:center;align-items:center;gap:.35rem;display:flex}.action-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:inline-flex}.drag-btn{cursor:grab;color:#94a3b8}.drag-btn:active{cursor:grabbing;color:var(--primary-color)}.drag-btn:hover{color:var(--primary-color);background-color:#eff6ff}tr.is-dragging{z-index:10;position:relative;background-color:#eff6ff!important;box-shadow:0 8px 24px #2563eb40!important}tr.is-dragging td{border-top:2px solid var(--primary-color)!important;border-bottom:2px solid var(--primary-color)!important}tr.is-dragging td:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px;border-left:2px solid var(--primary-color)!important}tr.is-dragging td:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px;border-right:2px solid var(--primary-color)!important}.insert-btn:hover:not(:disabled){color:var(--primary-color);background-color:#eff6ff}@media (width<=768px){.finanzas-page{padding:1rem .75rem}.page-header{flex-direction:column;align-items:stretch;gap:1rem;padding:1rem}.month-navigation{justify-content:space-between;width:100%}.month-navigation h2{font-size:1.15rem}.header-actions{grid-template-columns:1fr 1fr;gap:.5rem;width:100%;display:grid}.header-actions button{justify-content:center;padding:.6rem .5rem;font-size:.8rem}.spreadsheet-container{-webkit-overflow-scrolling:touch;border-radius:8px;padding:.25rem;overflow-x:auto}.spreadsheet{min-width:660px}.spreadsheet th,.spreadsheet td{padding:.4rem .3rem}.spreadsheet td input{font-size:16px}.datepicker-trigger-btn{padding:.35rem .4rem;font-size:.75rem}.subtotals-row td,.total-row td{font-size:.85rem}.total-row .amount{font-size:1.1rem}}.delete-btn:hover:not(:disabled){color:var(--error-color);background-color:#fef2f2}.add-row-cell{background-color:var(--surface-color);padding:.5rem 1rem!important}.add-row-btn{border:1px dashed var(--border-color);color:var(--primary-color);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s;display:flex}.add-row-btn:hover{border-color:var(--border-focus);background-color:#eff6ff}.subtotals-row td,.total-row td{background-color:var(--surface-alt);font-family:JetBrains Mono,monospace;padding:.85rem 1rem!important}.subtotals-row td.text-right,.total-row td.text-right{text-align:right;color:var(--text-secondary);font-family:Inter,sans-serif;font-size:.85rem}.amount{text-align:right;font-size:.95rem;font-weight:600;padding-right:1.25rem!important}.amount.ingreso{color:var(--secondary-color)}.amount.egreso{color:var(--error-color)}.center-amount{text-align:center;font-size:1.25rem;font-weight:700}.positive{color:var(--secondary-color)}.negative{color:var(--error-color)}.loading-state{text-align:center;color:var(--text-secondary);padding:3rem}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0f172a80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:12px;width:100%;max-width:550px;padding:2rem;box-shadow:0 20px 25px -5px #0000001a}.modal-card h3{color:var(--text-primary);margin-top:0;margin-bottom:.5rem}.modal-card p{color:var(--text-secondary);margin-bottom:1rem;font-size:.875rem}.modal-card textarea{border:1px solid var(--border-color);box-sizing:border-box;resize:vertical;border-radius:8px;width:100%;margin-bottom:1.5rem;padding:.75rem;font-family:JetBrains Mono,monospace;font-size:.85rem}.modal-card textarea:focus{outline:2px solid var(--primary-color)}.modal-actions{justify-content:flex-end;gap:.75rem;display:flex}.btn-cancel{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:.6rem 1.2rem;font-weight:600}.btn-cancel:hover{background-color:var(--surface-alt)}.pro-calendar-page{background-color:var(--bg-color);width:100%;min-width:0;height:100%;font-family:Inter,system-ui,-apple-system,sans-serif;display:flex;overflow:hidden}.calendar-pro-sidebar{background-color:var(--surface-color);border-right:1px solid var(--border-color);flex-direction:column;flex-shrink:0;gap:1.5rem;width:280px;padding:1.5rem;display:flex;overflow-y:auto}.sidebar-section{flex-direction:column;gap:.75rem;display:flex}.btn-add-movement-pro{background-color:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.8rem 1.2rem;font-size:.95rem;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 12px #2563eb40}.btn-add-movement-pro:hover{background-color:#1d4ed8;transform:translateY(-1px);box-shadow:0 6px 16px #2563eb59}.btn-add-movement-pro.inline{width:auto;margin-top:.75rem;padding:.5rem 1rem;font-size:.85rem}.btn-add-movement-header{color:var(--primary-color);cursor:pointer;background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.85rem;font-weight:700;transition:all .2s;display:flex}.btn-add-movement-header:hover{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.add-day-event-btn{color:var(--text-secondary);cursor:pointer;opacity:.3;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:1rem;font-weight:700;transition:all .2s;display:flex}.pro-day-cell:hover .add-day-event-btn,.add-day-event-btn:hover{opacity:1;color:var(--primary-color);background-color:#dbeafe}.add-day-event-btn.inline{opacity:.7;font-size:.9rem}.add-movement-modal{background-color:var(--surface-color);border-radius:16px;width:480px;max-width:90vw;animation:.25s cubic-bezier(.34,1.56,.64,1) modalPop;overflow:hidden;box-shadow:0 20px 40px #0003}.modal-top-bar{border-bottom:1px solid var(--border-color);background-color:var(--surface-alt);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-top-bar h3{color:var(--text-primary);margin:0;font-size:1.1rem;font-weight:700}.btn-close-x{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:.2rem;transition:all .2s;display:flex}.btn-close-x:hover{color:var(--error-color);background-color:#fee2e2}.add-movement-form{flex-direction:column;gap:1.2rem;padding:1.5rem;display:flex}.add-movement-form .form-group{flex-direction:column;gap:.4rem;display:flex}.add-movement-form label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:700}.add-movement-form input[type=text],.add-movement-form input[type=number]{border:1.5px solid var(--border-color);width:100%;color:var(--text-primary);background-color:var(--surface-color);border-radius:8px;outline:none;padding:.75rem 1rem;font-size:.95rem;transition:border-color .2s}.add-movement-form input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.segmented-type-selector{background-color:var(--surface-alt);border:1px solid var(--border-color);border-radius:10px;grid-template-columns:1fr 1fr;gap:.5rem;padding:.3rem;display:grid}.type-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;gap:.4rem;padding:.6rem;font-size:.85rem;font-weight:700;transition:all .2s;display:flex}.type-btn.ingreso.active{color:#047857;background-color:#d1fae5}.type-btn.egreso.active{color:#e11d48;background-color:#ffe4e6}.status-toggle-box{display:flex}.status-toggle-btn{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.75rem;font-size:.9rem;font-weight:700;transition:all .2s;display:flex}.status-toggle-btn.is-pagado{color:#047857;background-color:#d1fae5;border:1.5px solid #a7f3d0}.status-toggle-btn.is-pendiente{color:#b45309;background-color:#fffbebf5;border:1.5px solid #fde68a}.form-actions-row{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.form-actions-row.split{justify-content:space-between;align-items:center}.form-actions-row .right-group{align-items:center;gap:.75rem;display:flex}.btn-cancel-modal{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:.65rem 1.25rem;font-weight:600}.btn-save-modal{background-color:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.65rem 1.5rem;font-weight:700;box-shadow:0 4px 12px #2563eb33}.btn-save-modal:hover:not(:disabled){background-color:#1d4ed8}.btn-modal-edit{color:var(--primary-color);cursor:pointer;background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.85rem;font-weight:700;transition:all .2s;display:flex}.btn-modal-edit:hover{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.btn-modal-delete{color:#dc2626;cursor:pointer;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.85rem;font-weight:700;transition:all .2s;display:flex}.btn-modal-delete:hover{color:#fff;background-color:#dc2626}.section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin:0;font-size:.75rem;font-weight:700}.mini-calendar-card{background-color:var(--surface-alt);border:1px solid var(--border-color);border-radius:12px;padding:.85rem}.mini-header{color:var(--text-primary);justify-content:space-between;align-items:center;margin-bottom:.6rem;font-size:.85rem;font-weight:700;display:flex}.mini-nav{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;font-size:1.1rem;transition:all .2s;display:flex}.mini-nav:hover{background-color:var(--surface-color);color:var(--text-primary)}.mini-weekdays{text-align:center;color:var(--text-secondary);grid-template-columns:repeat(7,1fr);margin-bottom:.4rem;font-size:.7rem;font-weight:700;display:grid}.mini-days-grid{grid-template-columns:repeat(7,1fr);gap:.2rem;display:grid}.mini-day-empty{height:26px}.mini-day-btn{width:26px;height:26px;color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin:0 auto;font-size:.75rem;font-weight:500;transition:all .15s;display:flex}.mini-day-btn:hover{color:var(--primary-color);background-color:#dbeafe}.mini-day-btn.is-today{border:1px solid var(--primary-color);color:var(--primary-color);font-weight:700}.mini-day-btn.is-selected{font-weight:700;background-color:var(--primary-color)!important;color:#fff!important}.metrics-summary-stack{flex-direction:column;gap:.6rem;display:flex}.metric-pill{border:1px solid var(--border-color);background-color:var(--surface-color);border-radius:10px;align-items:center;gap:.75rem;padding:.75rem;transition:transform .2s;display:flex}.metric-pill:hover{transform:translateY(-1px)}.metric-pill.ingreso{background-color:#f0fdf4;border-color:#bbf7d0}.metric-pill.ingreso .metric-icon-box{color:#047857;background-color:#dcfce7}.metric-pill.egreso{background-color:#fff1f2;border-color:#fecaca}.metric-pill.egreso .metric-icon-box{color:#be123c;background-color:#fee2e2}.metric-pill.balance{background-color:#f8fafc;border-color:#e2e8f0}.metric-pill.balance .metric-icon-box{color:#334155;background-color:#e2e8f0}.metric-icon-box{border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.metric-data{flex-direction:column;display:flex}.metric-data .label{color:var(--text-secondary);font-size:.7rem;font-weight:600}.metric-data .value{color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:.95rem;font-weight:700}.metric-data .value.pos{color:#047857}.metric-data .value.neg{color:#be123c}.filter-checkboxes{flex-direction:column;gap:.5rem;display:flex}.checkbox-item{color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:.6rem;padding:.4rem .6rem;font-size:.825rem;transition:all .2s;display:flex}.checkbox-item:hover{background-color:var(--surface-alt);color:var(--text-primary)}.checkbox-item.active{color:var(--primary-color);background-color:#eff6ff;font-weight:600}.dot{border-radius:50%;width:10px;height:10px}.dot.todos{background-color:var(--primary-color)}.dot.ingresos{background-color:#10b981}.dot.egresos{background-color:#f43f5e}.dot.estado-todos{background-color:#64748b}.dot.pagados{background-color:#047857}.dot.pendientes{background-color:#f59e0b}.pro-event-card.is-pendiente{opacity:.75;border-style:dashed!important}.pro-event-card[draggable=true],.week-event-item[draggable=true]{cursor:grab;-webkit-user-select:none;user-select:none}.pro-event-card[draggable=true]:active,.week-event-item[draggable=true]:active{cursor:grabbing}.pro-event-card.is-dragging,.week-event-item.is-dragging{opacity:.35;transform:scale(.96)}.pro-day-cell.drag-over,.pro-week-card.drag-over{outline-offset:-2px;background-color:#eff6ff!important;outline:2px dashed #2563eb!important}.week-event-item.is-pendiente{opacity:.75;border-style:dashed!important}.tx-row.is-pendiente{opacity:.8}.badge-pending-text{color:#b45309;margin-left:.25rem;font-size:.7rem;font-weight:700}.status-badge-inline{color:#b45309;background-color:#fffbebf5;border:1px solid #fde68a;border-radius:12px;margin-left:.5rem;padding:.1rem .4rem;font-size:.7rem;font-weight:700}.pending-badge-icon{color:#b45309;flex-shrink:0}.calendar-pro-main{flex-direction:column;flex:1;min-width:0;height:100%;display:flex;overflow:hidden}.main-calendar-header{background-color:var(--surface-color);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.header-period-controls{align-items:center;gap:1rem;display:flex}.btn-today-pro{background-color:var(--surface-color);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;border-radius:8px;padding:.45rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s;box-shadow:0 1px 2px #0000000d}.btn-today-pro:hover{background-color:var(--surface-alt)}.nav-group{align-items:center;gap:.25rem;display:flex}.nav-arrow-btn{border:1px solid var(--border-color);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;transition:all .2s;display:flex}.nav-arrow-btn:hover{background-color:var(--surface-alt);color:var(--text-primary)}.period-title-text{color:var(--text-primary);margin:0;font-size:1.35rem;font-weight:700}.period-title-text .year-text{color:var(--text-secondary);font-weight:400}.segmented-view-control{background-color:var(--surface-alt);border:1px solid var(--border-color);border-radius:10px;padding:.25rem;display:flex}.segment-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.45rem 1.1rem;font-size:.85rem;font-weight:600;transition:all .2s}.segment-btn.active{background-color:var(--surface-color);color:var(--primary-color);box-shadow:0 2px 4px #00000014}.main-grid-wrapper{box-sizing:border-box;flex:1;width:100%;padding:1.25rem 1.5rem;overflow:auto}.pro-month-container{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:14px;width:100%;min-width:620px;overflow:hidden;box-shadow:0 4px 20px -2px #0000000a}.pro-weekdays-row{background-color:var(--surface-alt);border-bottom:1px solid var(--border-color);grid-template-columns:repeat(7,1fr);display:grid}.pro-weekday-cell{text-align:center;color:var(--text-secondary);letter-spacing:.05em;padding:.7rem .4rem;font-size:.75rem;font-weight:700}.pro-month-grid{grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(115px,1fr);display:grid}.pro-day-cell{border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);background-color:var(--surface-color);flex-direction:column;min-width:0;padding:.5rem .4rem;transition:background-color .2s;display:flex;overflow:hidden}.pro-day-cell:nth-child(7n){border-right:none}.pro-day-cell.empty{background-color:#fafbfc}.pro-day-cell.is-today{background-color:#eff6ff}.cell-top-bar{justify-content:flex-end;margin-bottom:.4rem;display:flex}.day-number-badge{color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:.825rem;font-weight:600;display:flex}.today-glow{background-color:var(--primary-color);font-weight:700;box-shadow:0 2px 6px #2563eb4d;color:#fff!important}.cell-events-stack{flex-direction:column;gap:.35rem;min-width:0;max-height:90px;display:flex;overflow-y:auto}.pro-event-card{cursor:pointer;border-radius:6px;align-items:center;gap:.25rem;min-width:0;padding:.3rem .4rem;font-size:.725rem;font-weight:600;transition:all .2s;display:flex;overflow:hidden;box-shadow:0 1px 2px #00000008}.pro-event-card:hover{transform:translateY(-1px);box-shadow:0 4px 8px #00000014}.pro-event-card.ingreso{color:#047857;background-color:#ecfdf5;border-left:3px solid #10b981}.pro-event-card.egreso{color:#be123c;background-color:#fff1f2;border-left:3px solid #f43f5e}.event-indicator{flex-shrink:0;font-size:.75rem;font-weight:800}.event-title-text{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.event-price-text{white-space:nowrap;flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:.675rem}.pro-week-container{height:100%}.pro-week-columns{grid-template-columns:repeat(7,1fr);gap:1rem;height:100%;display:grid}.pro-week-card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:14px;flex-direction:column;padding:1rem;display:flex;box-shadow:0 2px 8px #00000008}.pro-week-card.is-today{border-color:var(--primary-color);box-shadow:0 0 0 2px #2563eb26}.week-card-header{border-bottom:1px solid var(--border-color);flex-direction:column;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;display:flex}.week-card-header .day-name{color:var(--text-secondary);font-size:.75rem;font-weight:700}.week-card-header .day-num{color:var(--text-primary);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;margin-top:.2rem;font-size:1.3rem;font-weight:700;display:flex}.week-card-totals{flex-direction:column;gap:.3rem;margin-bottom:.85rem;display:flex}.total-badge{text-align:center;border-radius:6px;padding:.25rem .5rem;font-family:JetBrains Mono,monospace;font-size:.725rem;font-weight:700}.total-badge.ingreso{color:#047857;background-color:#ecfdf5}.total-badge.egreso{color:#be123c;background-color:#fff1f2}.week-card-body{flex-direction:column;flex:1;gap:.5rem;display:flex;overflow-y:auto}.empty-day-note{color:var(--text-secondary);text-align:center;margin-top:1.5rem;font-size:.8rem}.week-event-item{cursor:pointer;border-radius:8px;padding:.65rem;transition:all .2s}.week-event-item:hover{transform:translateY(-1px)}.week-event-item.ingreso{color:#047857;background-color:#ecfdf5;border:1px solid #bbf7d0}.week-event-item.egreso{color:#be123c;background-color:#fff1f2;border:1px solid #fecaca}.item-concept{margin-bottom:.2rem;font-size:.825rem;font-weight:600}.item-amount{font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:700}.pro-day-container{max-width:850px;margin:0 auto}.day-detail-panel{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:16px;padding:2rem;box-shadow:0 4px 20px #0000000d}.panel-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1.25rem;display:flex}.panel-header h2{color:var(--text-primary);margin:0;font-size:1.5rem}.day-pill{color:var(--primary-color);background-color:#eff6ff;border-radius:8px;padding:.35rem .9rem;font-size:.85rem;font-weight:700}.panel-summary-grid{grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-bottom:2rem;display:grid}.summary-box{border:1px solid var(--border-color);border-radius:12px;flex-direction:column;gap:.4rem;padding:1.25rem;display:flex}.summary-box.ingreso{color:#047857;background-color:#ecfdf5;border-color:#bbf7d0}.summary-box.egreso{color:#be123c;background-color:#fff1f2;border-color:#fecaca}.summary-box.balance{background-color:#f8fafc;border-color:#e2e8f0}.box-title{opacity:.8;font-size:.8rem;font-weight:600}.box-value{font-family:JetBrains Mono,monospace;font-size:1.3rem;font-weight:700}.box-value.pos{color:#047857}.box-value.neg{color:#be123c}.panel-transactions-list h3{color:var(--text-primary);margin-top:0;margin-bottom:1.25rem;font-size:1.1rem}.transactions-stack{flex-direction:column;gap:.85rem;display:flex}.tx-row{border:1px solid var(--border-color);background-color:var(--surface-color);cursor:pointer;border-radius:12px;align-items:center;gap:1rem;padding:1rem 1.25rem;transition:all .2s;display:flex}.tx-row:hover{transform:translate(4px);box-shadow:0 4px 12px #0000000d}.tx-row.ingreso{border-left:4px solid #10b981}.tx-row.egreso{border-left:4px solid #f43f5e}.tx-icon{border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.tx-row.ingreso .tx-icon{color:#047857;background-color:#ecfdf5}.tx-row.egreso .tx-icon{color:#be123c;background-color:#fff1f2}.tx-details{flex-direction:column;flex:1;gap:.2rem;display:flex}.tx-concept{color:var(--text-primary);font-size:1rem;font-weight:600}.tx-type{color:var(--text-secondary);font-size:.75rem}.tx-amount{font-family:JetBrains Mono,monospace;font-size:1.15rem;font-weight:700}.tx-amount.pos{color:#047857}.tx-amount.neg{color:#be123c}.no-transactions{text-align:center;color:var(--text-secondary);background-color:var(--surface-alt);border-radius:12px;padding:2.5rem;font-size:.9rem}.event-detail-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background-color:#0f172a66;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.event-detail-modal{background-color:var(--surface-color);border-radius:16px;width:100%;max-width:440px;animation:.2s ease-out modalFadeIn;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header-banner{color:#fff;flex-direction:column;gap:.5rem;padding:1.5rem;display:flex}.modal-header-banner.ingreso{background:linear-gradient(135deg,#059669 0%,#10b981 100%)}.modal-header-banner.egreso{background:linear-gradient(135deg,#e11d48 0%,#f43f5e 100%)}.banner-tag{text-transform:uppercase;letter-spacing:.05em;opacity:.9;font-size:.75rem;font-weight:700}.modal-header-banner h3{margin:0;font-size:1.35rem;font-weight:700}.modal-body-content{flex-direction:column;gap:1rem;padding:1.5rem;display:flex}.detail-row{justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.field-label{color:var(--text-secondary)}.field-value{color:var(--text-primary);font-weight:600}.field-value.amount{font-family:JetBrains Mono,monospace;font-size:1.1rem}.field-value.amount.pos{color:#047857}.field-value.amount.neg{color:#be123c}.modal-footer-actions{background-color:var(--surface-alt);border-top:1px solid var(--border-color);justify-content:flex-end;padding:1rem 1.5rem;display:flex}.btn-modal-close{background-color:var(--surface-color);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;border-radius:8px;padding:.5rem 1.25rem;font-weight:600;transition:all .2s}.btn-modal-close:hover{background-color:var(--surface-alt)}@media (width<=768px){.pro-calendar-page{flex-direction:column;overflow-y:auto}.calendar-pro-sidebar{border-right:none;border-bottom:1px solid var(--border-color);width:100%;padding:1rem}.main-calendar-header{flex-direction:column;align-items:stretch;gap:1rem;padding:1rem}.header-period-controls{justify-content:space-between}.period-title-text{font-size:1.1rem}.segmented-view-control{justify-content:space-between;width:100%;display:flex}.segment-btn{text-align:center;flex:1;padding:.45rem .25rem}.main-grid-wrapper{padding:.5rem}.pro-month-grid{grid-auto-rows:minmax(80px,1fr)}.pro-day-cell{padding:.25rem}.pro-event-card{padding:.25rem .35rem;font-size:.675rem}.event-title-text{max-width:42px}.pro-week-columns{grid-template-columns:1fr;gap:.75rem}}
