@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);.auth-page{align-items:center;background:linear-gradient(#0f172abf,#0f172abf),url(/static/media/bg-login.2b980c02d56f0f240ab8.png) no-repeat 50% fixed;background-size:cover;display:flex;font-family:Inter,Segoe UI,sans-serif;justify-content:center;min-height:100vh;padding:20px}.auth-container{animation:authFadeIn .4s ease;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:20px;box-shadow:0 25px 50px #00000080;max-width:400px;padding:24px 32px;width:100%}@keyframes authFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.auth-header{margin-bottom:16px;text-align:center}.auth-logo{align-items:center;display:flex;height:48px;justify-content:center;margin:0 auto 12px;width:48px}.auth-title{color:#f1f5f9;font-size:20px;font-weight:700;letter-spacing:-.5px;margin:0 0 4px}.auth-subtitle{color:#94a3b8;font-size:14px;margin:0}.auth-tabs{background:#0000004d;border-radius:10px;display:flex;margin-bottom:16px;padding:4px}.auth-tab{background:#0000;border:none;border-radius:8px;color:#94a3b8;cursor:pointer;flex:1 1;font-size:13.5px;font-weight:500;padding:8px;transition:all .2s ease}.auth-tab.active{background:linear-gradient(135deg,#3b82f6,#8b5cf6);box-shadow:0 4px 12px #3b82f64d;color:#fff}.auth-form{gap:12px}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{gap:6px}.auth-field label{color:#cbd5e1;font-size:12.5px;font-weight:500}.auth-input-wrapper{align-items:center;display:flex;position:relative}.auth-input-icon{font-size:16px;left:12px;pointer-events:none;position:absolute;z-index:1}.auth-input-wrapper input{background:#ffffff12;border:1px solid #ffffff1f;border-radius:10px;box-sizing:border-box;color:#f1f5f9;font-size:14px;outline:none;padding:11px 14px 11px 40px;transition:all .2s ease;width:100%}.auth-input-wrapper input::placeholder{color:#475569}.auth-input-wrapper input:focus{background:#3b82f61a;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.auth-error{align-items:center;animation:shake .3s ease;background:#ef444426;border:1px solid #ef44444d;border-radius:8px;color:#fca5a5;display:flex;font-size:13px;gap:8px;padding:10px 14px}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}.auth-btn-primary{background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:10px;box-shadow:0 4px 15px #3b82f64d;color:#fff;cursor:pointer;font-size:14px;font-weight:600;margin-top:4px;padding:11px;transition:all .2s ease;width:100%}.auth-btn-primary:hover:not(:disabled){box-shadow:0 6px 20px #3b82f666;transform:translateY(-1px)}.auth-btn-primary:active:not(:disabled){transform:translateY(0)}.auth-btn-primary:disabled{cursor:not-allowed;opacity:.6}.auth-spinner{animation:spin 1s linear infinite;display:inline-block}.auth-footer{margin-top:14px;text-align:center}.auth-footer p{color:#64748b;font-size:13px;margin:0}.auth-link{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:13px;font-weight:600;padding:0;transition:color .2s}.auth-link:hover{color:#60a5fa;text-decoration:underline}.dark-theme .auth-page{background:linear-gradient(#050a14d9,#050a14d9),url(/static/media/bg-login.2b980c02d56f0f240ab8.png) no-repeat 50% fixed;background-size:cover}.header{background:var(--bg-secondary);border-bottom:1px solid var(--border);position:sticky;top:0;width:100%;z-index:1000}.header-inner{gap:12px;justify-content:space-between;margin:0 auto;max-width:1080px;padding:8px 16px;position:relative;width:100%}.header-inner,.header-left{align-items:center;display:flex}.header-left{flex-shrink:1;gap:10px;min-width:0}.header-logo{align-items:center;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.header-logo img{border-radius:8px;height:100%;object-fit:contain;width:100%}.header-title-group{display:flex;flex-direction:column;overflow:hidden}.header-title{color:var(--text-primary);font-size:16px;font-weight:700;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-subtitle{color:var(--text-muted);font-size:11px;margin:0;white-space:nowrap}.header-right{align-items:center;display:flex;flex-shrink:0;gap:20px}.header-desktop-actions{align-items:center;display:flex;gap:12px}.header-btn{align-items:center;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:8px;height:38px;justify-content:center;padding:0 14px;transition:all .2s;white-space:nowrap}.header-btn:hover{background:var(--bg-hover);border-color:var(--accent);transform:translateY(-1px)}.header-btn-primary{background:linear-gradient(135deg,#3b82f6,#8b5cf6)!important;border:none!important;box-shadow:0 4px 12px #3b82f659;color:#fff!important;transition:all .3s cubic-bezier(.23,1,.32,1)}.header-btn-primary:hover{background:linear-gradient(135deg,#2563eb,#7c3aed)!important;box-shadow:0 8px 20px #3b82f673;opacity:1!important;transform:translateY(-2px) scale(1.02)}.header-btn-primary:active{transform:translateY(0) scale(.98)}.header-btn-secondary{background:var(--bg-secondary);border:1px solid var(--border);box-shadow:0 2px 5px #0000000d;color:var(--text-primary)}.header-btn-secondary:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.header-btn-icon{border-radius:10px;font-size:16px;height:38px;justify-content:center;padding:0;width:38px}.menu-wrapper{position:relative}.header-dropdown-menu{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 25px #00000026;display:flex;flex-direction:column;gap:2px;min-width:240px;padding:8px;position:absolute;right:0;top:calc(100% + 12px);z-index:2000}.dark-theme .header-dropdown-menu{background:#1c2333;box-shadow:0 10px 30px #00000080}.dropdown-title{color:var(--text-muted);font-size:10px;font-weight:800;letter-spacing:.5px;padding:10px 12px 4px;text-transform:uppercase}.dropdown-item{align-items:center;background:#0000;border:none;border-radius:8px;color:var(--text-primary);cursor:pointer;display:flex;font-size:13.5px;font-weight:500;gap:10px;padding:10px 12px;text-align:left;transition:all .2s;width:100%}.dropdown-item:hover{background:var(--bg-hover)}.dropdown-item span{display:inline-block;font-size:16px;text-align:center;width:24px}.logout-item{color:var(--danger);margin-top:4px}.logout-item:hover{background:#ef44441a}.dropdown-divider{background:var(--border);height:1px;margin:6px 8px}.header-user-section{align-items:center;border-left:1px solid var(--border);display:flex;gap:15px;padding-left:15px}.header-account-info{align-items:center;background:var(--bg-hover);border:1px solid var(--border);border-radius:20px;display:flex;gap:8px;height:38px;padding:0 16px}.account-label{color:var(--text-muted);font-size:12px;font-weight:600}.header-vision-select{appearance:none;background:#0000;border:none;color:var(--accent);cursor:pointer;font-size:14px;font-weight:700;max-width:100px;outline:none;overflow:hidden;padding-right:5px;text-overflow:ellipsis;white-space:nowrap}.header-vision-wrapper{align-items:center;display:flex;position:relative}.vision-arrow{color:var(--accent);font-size:14px;font-weight:700;pointer-events:none}.header-avatar-circle{align-items:center;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:50%;box-shadow:0 4px 10px #3b82f633;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:13px;font-weight:700;height:38px;justify-content:center;transition:transform .2s,box-shadow .2s,opacity .2s;width:38px}.header-avatar-circle:hover{box-shadow:0 6px 15px #3b82f64d;opacity:.9;transform:scale(1.05)}.header-hamburger-mobile{border-radius:10px;display:none;font-size:20px;height:38px;transition:all .2s;width:38px}.header-hamburger-mobile:hover{background:var(--bg-hover);border-color:var(--accent)}.mobile-menu-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;display:flex;inset:0;justify-content:flex-end;position:fixed;z-index:10000}.mobile-menu{animation:slideInRight .3s cubic-bezier(.4,0,.2,1);background-color:var(--bg-secondary);background:var(--bg-secondary);box-shadow:-5px 0 30px #00000040;display:flex;flex-direction:column;gap:20px;height:100%;overflow-y:auto;padding:24px;position:relative;width:280px}.dark-theme .mobile-menu{background:#161b22}@keyframes slideInRight{0%{transform:translateX(100%)}to{transform:translateX(0)}}.mobile-menu-user{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:12px;padding-bottom:20px}.mobile-user-details{display:flex;flex-direction:column;overflow:hidden}.mobile-user-details strong{color:var(--text-primary);font-size:14px}.mobile-user-details span,.mobile-user-details strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-user-details span{color:var(--text-muted);font-size:11px}.mobile-vision-selector{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;gap:6px;padding:12px}.mobile-vision-selector label{color:var(--text-muted);font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}.mobile-vision-selector select{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:13px;font-weight:600;outline:none;padding:8px}.mobile-menu-section-title{border-bottom:1px solid var(--border);color:var(--text-muted);font-size:10px;font-weight:800;letter-spacing:.5px;margin-bottom:4px;padding:12px 4px 4px;text-transform:uppercase}.mobile-menu-items{display:flex;flex-direction:column;gap:8px}.mobile-menu-items button{align-items:center;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;color:var(--text-primary);cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:10px;padding:10px 14px;text-align:left;transition:all .2s}.mobile-menu-items button:active{background:var(--bg-hover);transform:scale(.98)}.header-mobile-actions{align-items:center;display:none;gap:8px}.header-btn-mobile-plus{align-items:center;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:8px;box-shadow:0 2px 8px #3b82f64d;color:#fff;cursor:pointer;display:flex;font-size:20px;font-weight:700;height:32px;justify-content:center;transition:all .2s;width:32px}.header-btn-mobile-plus:active{transform:scale(.9)}.header-hamburger-mobile{align-items:center;background:#0000;border:1px solid var(--border);border-radius:8px;color:var(--text-primary);cursor:pointer;display:flex;font-size:18px;height:32px;justify-content:center;width:32px}.mobile-menu-items .logout-btn{background:#ef44440d;border-color:#ef44441a;color:var(--danger);margin-top:20px}@media (max-width:1100px){.header-btn span:not(:first-child){display:none}}@media (max-width:950px){.header-desktop-actions .header-btn-icon,.header-desktop-actions .menu-wrapper,.header-user-section{display:none}.header-hamburger-mobile,.header-mobile-actions{display:flex}.header-inner{padding:4px 16px}}@media (max-width:339px){.header-desktop-actions{display:none}}@media (min-width:340px) and (max-width:380px){.header-btn-primary{font-size:11px;height:32px;padding:0 10px}}@media (min-width:340px) and (max-width:950px){.header-mobile-actions .header-btn-mobile-plus{display:none}}@media (max-width:600px){.header-subtitle{display:none}.header-logo{height:32px;width:32px}.header-title{font-size:15px}}@media (max-width:400px){.header-inner{gap:8px;padding:8px 12px}}.export-wrapper{position:relative}.export-dropdown{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);gap:2px;min-width:200px;padding:8px;position:absolute;right:0;top:calc(100% + 8px);z-index:1001}.chart-container,.export-dropdown{display:flex;flex-direction:column}.chart-container{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);height:200px;padding:12px 16px;transition:box-shadow .2s ease}.chart-container canvas{flex:1 1;min-height:0}.chart-container:hover{box-shadow:var(--shadow-md)}.chart-container.compact-chart{align-items:center;height:200px;justify-content:center}.modal-content{max-width:380px}.modal-header{min-height:36px;padding:0 16px}.modal-header h2{font-size:15px;font-weight:700}.modal-close-btn{background:var(--bg-tertiary);border-radius:50%;font-size:14px;height:28px;width:28px}.transaction-form{display:flex;flex-direction:column;gap:8px;padding:5px 16px 12px}.form-group label{font-size:12px;margin-bottom:1px}.form-control{background:var(--input-bg);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-family:inherit;font-size:13px;outline:none;padding:8px 12px;transition:all .2s ease;width:100%}.form-control:focus{background:var(--bg-secondary);border-color:var(--accent);box-shadow:0 0 0 3px #3b82f61a}.transaction-form .form-row{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.modal-footer{border-top:1px solid var(--border);display:flex;gap:8px;margin-top:4px;padding:12px 16px}.modal-btn{border:none;border-radius:10px;cursor:pointer;flex:1 1;font-size:13px;font-weight:700;padding:10px;transition:all .2s ease}.modal-btn-cancel{background:var(--bg-tertiary);color:var(--text-secondary)}.modal-btn-confirm{background:linear-gradient(135deg,#3b82f6,#8b5cf6)}.form-hint{color:var(--text-muted);font-size:10px;margin-top:2px}.form-loading{font-size:10px;margin-left:4px}.form-recorrente{background:var(--bg-tertiary);border-radius:10px;margin-top:4px;padding:8px 12px}.form-check-label{font-size:12px}@media (max-width:640px){.modal-overlay{align-items:center;justify-content:center;padding:12px}.modal-content{border-radius:20px;margin-bottom:0;max-height:90vh;max-width:95%}.transaction-form .form-row{gap:8px}.transaction-form{gap:6px;padding:2px 16px 10px}.modal-header{min-height:32px;padding:0 14px}.modal-header h2{font-size:14px}.modal-close-btn{font-size:12px;height:24px;width:24px}.form-control{font-size:13px;padding:7px 10px}}@media (max-width:360px){.modal-header h2{font-size:14px}.form-group label{font-size:11px}.form-control{font-size:12.5px}.transaction-form{gap:6px;padding:10px 14px}}.tt-wrapper{min-width:0;width:100%}.tt-empty{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;gap:8px;padding:40px 24px;text-align:center}.tt-empty span{font-size:32px}.tt-empty p{font-size:14px;margin:0}.tt-table{border-collapse:collapse;font-size:13px;width:100%}.tt-table thead{background:var(--bg-tertiary);position:sticky;top:0;z-index:1}.tt-table th{border-bottom:1px solid var(--border);color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.6px;padding:10px 14px;text-align:left;text-transform:uppercase;white-space:nowrap}.tt-table th.tt-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sort-icon{font-size:11px;margin-left:4px;opacity:.4}.sort-icon.active{color:var(--accent);opacity:1}.tt-table tbody tr{border-bottom:1px solid var(--border);transition:background .12s ease}.tt-table tbody tr:last-child{border-bottom:none}.tt-table tbody tr:hover{background:var(--bg-hover)}.tt-table td{color:var(--text-secondary);padding:10px 14px;vertical-align:middle}.tt-date{color:var(--text-muted);font-size:12px;white-space:nowrap}.tt-desc{color:var(--text-primary);font-weight:500;max-width:220px}.tt-desc-row{align-items:center;display:flex;gap:4px;min-width:0}.tt-desc-text{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tt-desc-icons{align-items:center;display:flex;flex-shrink:0;gap:2px}.tt-tags{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}.tt-tag{background:#8b5cf61f;border-radius:10px;color:#8b5cf6;font-size:10px;font-weight:500;padding:1px 6px}.tt-value{font-weight:700;white-space:nowrap}.tt-value.income{color:var(--success)}.tt-value.expense{color:var(--danger)}.tt-badge{border-radius:20px;display:inline-block;font-size:11px;font-weight:500;padding:2px 8px}.tt-badge.type-income{background:#10b9811f;color:var(--success)}.tt-badge.type-expense{background:#ef44441f;color:var(--danger)}.tt-badge.status-paid{background:#10b9811f;color:var(--success)}.tt-badge.status-pending{background:#f59e0b1f;color:var(--warning)}.tt-actions{white-space:nowrap}.tt-btn-delete,.tt-btn-duplicate,.tt-btn-edit{align-items:center;background:#0000;border:none;border-radius:6px;cursor:pointer;display:inline-flex;height:28px;justify-content:center;transition:background .15s;width:28px}.tt-btn-edit:hover{background:#3b82f61f}.tt-btn-delete:hover{background:#ef44441f}.tt-cards{display:none}@media (max-width:640px){.tt-table{display:none}.tt-cards{width:100%}.tt-card-wrapper,.tt-cards{display:flex;flex-direction:column}.tt-card-wrapper{background:var(--bg-card);border-bottom:1px solid var(--border);transition:background .2s}.tt-card-wrapper:last-child{border-bottom:none}.tt-card-wrapper.selected{background:var(--bg-hover)}.tt-card-content{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;gap:10px;padding:10px 12px;position:relative;width:100%}.tt-card-content:before{content:"";height:100%;left:0;position:absolute;top:0;width:3px}.tt-card-wrapper.income .tt-card-content:before{background:var(--success)}.tt-card-wrapper.expense .tt-card-content:before{background:var(--danger)}.tt-card-icon{align-items:center;border-radius:50%;display:flex;flex-shrink:0;font-size:16px;height:32px;justify-content:center;width:32px}.tt-card-wrapper.income .tt-card-icon{background:#10b9811f}.tt-card-wrapper.expense .tt-card-icon{background:#ef44441f}.tt-card-body{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.tt-card-top{align-items:center;display:flex;gap:6px;justify-content:space-between}.tt-card-desc{color:var(--text-primary);flex:1 1;font-size:12.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tt-card-value{flex-shrink:0;font-size:13px;font-weight:800;white-space:nowrap}.tt-card-value.income{color:var(--success)}.tt-card-value.expense{color:var(--danger)}.tt-card-bottom{align-items:center;display:flex;gap:6px;margin-top:1px}.tt-card-meta{color:var(--text-muted);font-size:10px;white-space:nowrap}.tt-card-status{border-radius:4px;font-size:9px;font-weight:800;letter-spacing:.2px;margin-left:auto;padding:2px 6px;text-transform:uppercase}.tt-card-status.paid{background:#10b9811f;color:var(--success)}.tt-card-status.pending{background:#f59e0b1f;color:var(--warning)}.tt-card-actions-expand{align-items:center;animation:fadeInDown .2s ease-out;background:var(--bg-tertiary);border-top:1px dashed var(--border);display:flex;gap:8px;padding:8px 12px}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.tt-opt-btn{align-items:center;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;flex:1 1;font-size:10px;font-weight:700;gap:4px;height:32px;justify-content:center}.tt-opt-btn.edit{background:#3b82f6}.tt-opt-btn.pay{background:#10b981}.tt-opt-btn.delete{background:#ef4444}.tt-opt-btn.close{background:var(--bg-secondary);color:var(--text-muted);flex:0 0 32px;font-size:12px}}@media (max-width:360px){.tt-card-content{gap:8px;padding:8px 10px}.tt-card-desc{font-size:12px}.tt-card-value{font-size:12.5px}.tt-opt-btn{font-size:9px;padding:0 4px}}.tt-pagination{gap:12px;justify-content:flex-end;margin-top:8px;padding:16px 4px}.tt-page-btn,.tt-pagination{align-items:center;display:flex}.tt-page-btn{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);cursor:pointer;font-size:12px;font-weight:600;gap:6px;padding:6px 14px;transition:all .2s}.tt-page-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent);transform:translateY(-1px)}.tt-page-btn:disabled{cursor:not-allowed;opacity:.4}.tt-page-info{color:var(--text-muted);font-size:12px;font-weight:500}@media (max-width:640px){.tt-pagination{justify-content:center;padding:20px 10px}}.kpi-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);min-width:0;overflow:hidden;padding:12px 10px 12px 14px;position:relative;transition:transform .2s ease,box-shadow .2s ease}.kpi-card:before{background:var(--accent);content:"";height:100%;left:0;opacity:.5;position:absolute;top:0;width:3px}.kpi-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.kpi-card.clickable:hover{background:var(--bg-secondary);border-color:var(--accent)}.kpi-title{color:var(--text-muted);font-size:9px;font-weight:600;letter-spacing:.6px;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.kpi-value{color:var(--text-primary);font-size:clamp(10px,1.1vw,14px);font-weight:700;letter-spacing:-.3px;line-height:1.2;white-space:normal;word-break:break-word}.kpi-value.positive{color:var(--success)}.kpi-value.negative{color:var(--danger)}.kpi-value.emphasized{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#3b82f6,#8b5cf6);-webkit-background-clip:text;background-clip:text;font-size:clamp(11px,1.2vw,15px)}.catmgr-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.catmgr-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:90vh;max-width:560px;overflow:hidden;width:100%}.catmgr-toast{font-size:13px;font-weight:500;padding:10px 16px;text-align:center}.catmgr-toast.success{background:#10b981e6;color:#fff}.catmgr-toast.error{background:#ef4444e6;color:#fff}.catmgr-header{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-shrink:0;justify-content:space-between;padding:20px 24px 16px}.catmgr-header h2{color:var(--text-primary);font-size:18px;font-weight:700;margin:0}.catmgr-header p{color:var(--text-muted);font-size:12px;margin:4px 0 0}.catmgr-header-actions{align-items:center;display:flex;gap:8px}.catmgr-btn-add{background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:all .18s}.catmgr-btn-add:hover{opacity:.9;transform:translateY(-1px)}.catmgr-close{align-items:center;background:#0000;border:1px solid var(--border);border-radius:8px;color:var(--text-muted);cursor:pointer;display:flex;font-size:14px;height:32px;justify-content:center;transition:all .15s;width:32px}.catmgr-close:hover{background:var(--bg-hover);color:var(--text-primary)}.catmgr-filters{border-bottom:1px solid var(--border);display:flex;flex-shrink:0;gap:8px;padding:12px 24px}.catmgr-filter{background:#0000;border:1px solid var(--border);border-radius:20px;color:var(--text-secondary);cursor:pointer;font-size:12px;font-weight:500;padding:6px 14px;transition:all .15s}.catmgr-filter:hover{border-color:var(--accent);color:var(--accent)}.catmgr-filter.active{background:var(--accent);border-color:var(--accent);color:#fff}.catmgr-list{flex:1 1;overflow-y:auto;padding:8px 0}.catmgr-empty{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;font-size:14px;gap:10px;padding:48px 24px;text-align:center}.catmgr-empty span{font-size:32px}.catmgr-item{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:11px 20px;transition:background .12s}.catmgr-item:last-child{border-bottom:none}.catmgr-item:hover{background:var(--bg-hover)}.catmgr-item-left{align-items:center;display:flex;flex:1 1;gap:10px;min-width:0}.catmgr-color-dot{border-radius:50%;flex-shrink:0;height:12px;width:12px}.catmgr-item-info{display:flex;flex-direction:column;gap:1px;min-width:0}.catmgr-item-name{color:var(--text-primary);font-size:14px;font-weight:600}.catmgr-item-desc,.catmgr-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catmgr-item-desc{color:var(--text-muted);font-size:12px}.catmgr-item-right{align-items:center;display:flex;flex-shrink:0;gap:6px}.catmgr-badge{border-radius:20px;display:inline-block;font-size:11px;font-weight:500;padding:2px 9px}.catmgr-badge.receita{background:#10b9811f;color:var(--success)}.catmgr-badge.despesa{background:#ef44441f;color:var(--danger)}.catmgr-btn-delete,.catmgr-btn-edit{align-items:center;background:#0000;border:none;border-radius:7px;cursor:pointer;display:flex;font-size:14px;height:30px;justify-content:center;transition:background .15s;width:30px}.catmgr-btn-edit:hover{background:#3b82f61f}.catmgr-btn-delete:hover{background:#ef44441f}.catmgr-form-overlay{align-items:center;background:#0000008c;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1100}.catmgr-form-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);max-height:90vh;max-width:400px;overflow-y:auto;width:100%}.catmgr-form-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:18px 20px 14px}.catmgr-form-header h3{color:var(--text-primary);font-size:15px;font-weight:700;margin:0}.catmgr-form{gap:14px;padding:18px 20px}.catmgr-field,.catmgr-form{display:flex;flex-direction:column}.catmgr-field{gap:6px}.catmgr-field label{color:var(--text-muted);font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.catmgr-field input,.catmgr-field select{background:var(--input-bg);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:14px;outline:none;padding:9px 12px;transition:border-color .15s}.catmgr-field input:focus,.catmgr-field select:focus{border-color:var(--accent)}.catmgr-colors{display:flex;flex-wrap:wrap;gap:8px}.catmgr-color-btn{border:2px solid #0000;border-radius:50%;cursor:pointer;height:26px;transition:transform .15s,border-color .15s;width:26px}.catmgr-color-btn:hover{transform:scale(1.15)}.catmgr-color-btn.selected{border-color:var(--text-primary);transform:scale(1.2)}.catmgr-form-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:4px}.catmgr-btn-cancel{background:var(--btn-secondary-bg);border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:500;padding:9px 18px;transition:all .15s}.catmgr-btn-cancel:hover{background:var(--btn-secondary-hover)}.catmgr-btn-save{background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:9px 20px;transition:all .15s}.catmgr-btn-save:hover{opacity:.9;transform:translateY(-1px)}.catmgr-confirm-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);max-width:360px;padding:28px 24px;text-align:center;width:90%}.catmgr-confirm-icon{font-size:36px;margin-bottom:10px}.catmgr-confirm-modal h3{color:var(--text-primary);font-size:15px;font-weight:700;margin:0 0 8px}.catmgr-confirm-modal p{color:var(--text-muted);font-size:13px;margin:0 0 20px}.catmgr-confirm-actions{display:flex;gap:10px;justify-content:center}.catmgr-btn-danger{background:var(--danger);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:9px 20px;transition:all .15s}.catmgr-btn-danger:hover{background:#dc2626;transform:translateY(-1px)}@media (max-width:640px){.catmgr-overlay{align-items:center;justify-content:center;padding:12px}.catmgr-modal{border-radius:20px;max-height:85vh;max-width:95%;position:relative}.catmgr-filters{flex-wrap:nowrap;overflow-x:auto;padding:10px 16px}.catmgr-item{flex-wrap:wrap;gap:8px;padding:12px 16px}.catmgr-item-left{flex:1 1 100%}.catmgr-item-right{border-top:1px dashed var(--border);justify-content:space-between;padding-top:6px;width:100%}.catmgr-item-right .catmgr-badge{flex:1 1;text-align:center}.catmgr-form-overlay{align-items:center;justify-content:center;padding:12px}.catmgr-form-modal{border-radius:16px;max-height:85vh;max-width:95%;position:relative}}.year-summary{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.year-summary-header{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:10px;padding:16px 20px 14px}.year-summary-icon{font-size:18px}.year-summary-title{color:var(--text-primary);font-size:15px;font-weight:600;margin:0}.ys-table-wrap{overflow-x:auto}.year-summary-table{border-collapse:collapse;font-size:13px;min-width:560px;width:100%}.year-summary-table thead tr{background:var(--bg-tertiary)}.year-summary-table th{border-bottom:1px solid var(--border);color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.6px;padding:9px 16px;text-align:left;text-transform:uppercase;white-space:nowrap}.year-summary-table tbody tr{border-bottom:1px solid var(--border);transition:background .12s}.year-summary-table tbody tr:last-child{border-bottom:none}.year-summary-table tbody tr:hover{background:var(--bg-hover)}.year-summary-table td{padding:11px 16px;white-space:nowrap}.ys-year{color:var(--text-primary);font-size:14px;font-weight:700}.ys-to-receive{color:#3b82f6;font-weight:500}.ys-received{color:var(--success);font-weight:500}.ys-to-pay{color:#f97316;font-weight:500}.ys-expenses{color:var(--danger);font-weight:500}.ys-actual.positive,.ys-projected.positive{color:#3b82f6;font-weight:600}.ys-actual.negative,.ys-projected.negative{color:var(--danger);font-weight:600}.ys-cards{display:none}@media (max-width:640px){.ys-table-wrap{display:none}.ys-cards{display:flex;flex-direction:column;gap:0}.ys-card{border-bottom:1px solid var(--border);padding:14px 16px}.ys-card:last-child{border-bottom:none}.ys-card-year{color:var(--text-primary);font-size:16px;font-weight:700;margin-bottom:10px}.ys-card-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-bottom:10px}.ys-card-item{background:var(--bg-tertiary);border-radius:8px;display:flex;flex-direction:column;gap:2px;padding:8px 10px}.ys-card-label{color:var(--text-muted);font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.ys-card-val{font-size:13px;font-weight:600}.ys-card-val.to-receive{color:#3b82f6}.ys-card-val.received{color:var(--success)}.ys-card-val.to-pay{color:#f97316}.ys-card-val.expenses{color:var(--danger)}.ys-card-val.positive{color:#3b82f6}.ys-card-val.negative{color:var(--danger)}.ys-card-footer{grid-gap:8px;border-top:1px dashed var(--border);display:grid;gap:8px;grid-template-columns:1fr 1fr;padding-top:8px}.ys-card-saldo{display:flex;flex-direction:column;gap:2px}.ys-card-saldo .ys-card-val{font-size:14px;font-weight:700}}@media (max-width:480px){.year-summary-header{gap:8px;padding:8px 12px}.year-summary-title{font-size:13px}.year-summary-icon{font-size:16px}.ys-card{padding:10px 12px}.ys-card-year{font-size:14px;margin-bottom:6px}.ys-card-grid{gap:6px;margin-bottom:8px}.ys-card-item{padding:6px 8px}.ys-card-label{font-size:9px}.ys-card-val{font-size:12px}.ys-card-footer{gap:6px;padding-top:6px}.ys-card-saldo .ys-card-val{font-size:13px}}.cd-overlay{align-items:center;animation:cdFadeIn .25s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000bf;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:9999}.cd-modal{animation:cdBounceIn .4s cubic-bezier(.34,1.56,.64,1);background:#1e293b;background:var(--bg-secondary,#1e293b);border:1px solid #ffffff1a;border:1px solid var(--border,#ffffff1a);border-radius:28px;box-shadow:0 40px 80px #0009;max-width:380px;padding:40px 28px 28px;position:relative;text-align:center;width:100%}@keyframes cdBounceIn{0%{opacity:0;transform:scale(.8) translateY(20px)}70%{opacity:1;transform:scale(1.03) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}.cd-icon-wrap{align-items:center;border-radius:50%;display:flex;font-size:28px;height:64px;justify-content:center;margin:0 auto 20px;width:64px}.cd-icon.danger{background:#ef444426}.cd-icon.warning{background:#f59e0b26}.cd-icon.primary{background:#3b82f626}.cd-icon.aporte{background:#10b98126}.cd-content h3{color:#f1f5f9;color:var(--text-primary,#f1f5f9);font-size:20px;font-weight:700;margin:0 0 10px}.cd-content p{color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:15px;line-height:1.5;margin:0 0 24px}.cd-input-wrap{margin-bottom:24px}.cd-input{background:#ffffff0d;border:1px solid var(--border);border-radius:12px;color:#fff;color:var(--text-primary,#fff);font-size:18px;font-weight:600;outline:none;padding:12px 16px;text-align:center;transition:all .2s;width:100%}.cd-input:focus{background:#ffffff14;border-color:var(--accent);box-shadow:0 0 0 3px #3b82f633}.cd-actions{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-top:8px}.cd-btn{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;font-size:14px;font-weight:700;justify-content:center;padding:12px;transition:all .2s}.cd-btn-cancel{background:#334155;background:var(--bg-tertiary,#334155);color:var(--text-primary)}.cd-btn-cancel:hover{background:#475569}.cd-btn-danger{background:#ef4444;color:#fff}.cd-btn-danger:hover{background:#dc2626;box-shadow:0 4px 12px #ef44444d}.cd-btn-primary{background:#3b82f6;background:var(--accent,#3b82f6);color:#fff}.cd-btn-primary:hover{box-shadow:0 4px 12px #3b82f64d;filter:brightness(1.1)}.cd-btn-warning{background:#f59e0b;color:#fff}.cd-btn:disabled{cursor:not-allowed;opacity:.5}@media (max-width:480px){.cd-modal{max-width:90%;padding:24px 20px 20px}}.goals-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.goals-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:90vh;max-width:620px;overflow:hidden;width:100%}.goals-toast{font-size:13px;font-weight:500;padding:10px 16px;text-align:center}.goals-toast.success{background:#10b981e6;color:#fff}.goals-toast.error{background:#ef4444e6;color:#fff}.goals-header{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-shrink:0;justify-content:space-between;padding:20px 24px 16px}.goals-header h2{color:var(--text-primary);font-size:18px;font-weight:700;margin:0}.goals-header p{color:var(--text-muted);font-size:12px;margin:4px 0 0}.goals-header-actions{align-items:center;display:flex;gap:8px}.goals-btn-primary{background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:all .18s}.goals-btn-primary:hover{opacity:.9;transform:translateY(-1px)}.goals-close{align-items:center;background:#0000;border:1px solid var(--border);border-radius:8px;color:var(--text-muted);cursor:pointer;display:flex;font-size:14px;height:32px;justify-content:center;width:32px}.goals-close:hover{background:var(--bg-hover)}.goals-list{flex:1 1;gap:12px;overflow-y:auto;padding:12px 20px}.goals-empty,.goals-list{display:flex;flex-direction:column}.goals-empty{align-items:center;color:var(--text-muted);font-size:14px;gap:10px;padding:48px 24px;text-align:center}.goals-empty span{font-size:36px}.goal-card{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:14px;padding:16px;transition:box-shadow .15s}.goal-card:hover{box-shadow:0 4px 16px #00000026}.goal-card.completa{border-color:#10b98144}.goal-card-top{align-items:flex-start;display:flex;gap:12px;margin-bottom:12px}.goal-icon{align-items:center;border-radius:10px;display:flex;flex-shrink:0;font-size:20px;height:42px;justify-content:center;width:42px}.goal-info{flex:1 1;min-width:0}.goal-info h3{color:var(--text-primary);font-size:15px;font-weight:700;margin:0 0 3px}.goal-info p{color:var(--text-muted);font-size:12px;margin:0 0 6px}.goal-tipo{border-radius:20px;display:inline-block;font-size:11px;font-weight:600;padding:2px 9px}.goal-card-actions{display:flex;flex-shrink:0;gap:4px}.goal-btn-aporte,.goal-btn-delete,.goal-btn-edit{align-items:center;background:#0000;border:none;border-radius:7px;cursor:pointer;display:flex;font-size:14px;height:30px;justify-content:center;transition:background .15s;width:30px}.goal-btn-aporte:hover{background:#10b9811f}.goal-btn-edit:hover{background:#3b82f61f}.goal-btn-delete:hover{background:#ef44441f}.goal-progress-wrap{margin-bottom:8px}.goal-progress-bar{background:var(--bg-secondary);border-radius:8px;height:8px;margin-bottom:6px;overflow:hidden}.goal-progress-fill{border-radius:8px;height:100%;transition:width .6s ease}.goal-progress-labels{color:var(--text-muted);display:flex;font-size:12px;justify-content:space-between}.goal-pct{font-weight:700}.goal-prazo{border-top:1px dashed var(--border);color:var(--text-muted);font-size:12px;padding-top:6px}.goal-prazo.urgente{color:#f59e0b;font-weight:600}.goal-prazo.vencida{color:var(--danger);font-weight:600}.goals-form-overlay{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1100}.goals-form-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);box-sizing:border-box;max-height:90vh;max-width:420px;overflow-x:hidden;overflow-y:auto;width:100%}.goals-form-header{align-items:center;border-bottom:1px solid var(--border);box-sizing:border-box;display:flex;justify-content:space-between;padding:18px 20px 14px}.goals-form-header h3{color:var(--text-primary);font-size:16px;font-weight:700;margin:0}.goals-form{box-sizing:border-box;display:flex;flex-direction:column;gap:13px;padding:18px 20px}.gf-field input,.gf-field select{background:var(--input-bg);padding:9px 12px}.gf-field input:focus,.gf-field select:focus{border-color:var(--accent)}.gf-actions{padding-top:4px}@media (max-width:640px){.goals-overlay{align-items:center;justify-content:center;padding:12px}.goals-modal{border-radius:20px;max-height:85vh;max-width:95%}.goals-form-overlay{align-items:center;justify-content:center;padding:12px}.goals-form-modal{border-radius:16px;max-height:85vh;max-width:95%}.gf-row{grid-template-columns:1fr}}.bgt-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.bgt-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:90vh;max-width:580px;overflow:hidden;width:100%}.bgt-toast{font-size:13px;font-weight:500;padding:10px 16px;text-align:center}.bgt-toast.success{background:#10b981e6;color:#fff}.bgt-toast.error{background:#ef4444e6;color:#fff}.bgt-header{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-shrink:0;justify-content:space-between;padding:20px 24px 16px}.bgt-header h2{color:var(--text-primary);font-size:18px;font-weight:700;margin:0}.bgt-header p{color:var(--text-muted);font-size:12px;margin:4px 0 0}.bgt-header-actions{align-items:center;display:flex;gap:8px}.bgt-btn-primary{background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:all .2s}.bgt-btn-primary:hover{opacity:.9;transform:translateY(-1px)}.bgt-close{align-items:center;background:#0000;border:1px solid var(--border);border-radius:8px;color:var(--text-muted);cursor:pointer;display:flex;font-size:14px;height:32px;justify-content:center;width:32px}.bgt-list{flex:1 1;overflow-y:auto;padding:8px 0}.bgt-empty{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;font-size:14px;gap:10px;padding:48px 24px;text-align:center}.bgt-empty span{font-size:32px}.bgt-item{border-bottom:1px solid var(--border);padding:14px 20px;transition:background .12s}.bgt-item:last-child{border-bottom:none}.bgt-item:hover{background:var(--bg-hover)}.bgt-item.over{border-left:3px solid var(--danger)}.bgt-item.warning{border-left:3px solid #f59e0b}.bgt-item-top{align-items:center;display:flex;gap:10px;margin-bottom:8px}.bgt-dot{border-radius:50%;flex-shrink:0;height:10px;width:10px}.bgt-info{flex:1 1;min-width:0}.bgt-info strong{color:var(--text-primary);font-size:14px;font-weight:600}.bgt-periodo{color:var(--text-muted);display:block;font-size:11px}.bgt-values{text-align:right}.bgt-spent{display:block;font-size:14px;font-weight:700}.bgt-limit{color:var(--text-muted);font-size:12px}.bgt-actions{display:flex;gap:2px}.bgt-btn-sm{align-items:center;background:#0000;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:13px;height:28px;justify-content:center;transition:background .15s;width:28px}.bgt-btn-sm:hover{background:var(--bg-hover)}.bgt-bar{background:var(--bg-secondary);border-radius:6px;height:6px;margin-bottom:4px;overflow:hidden}.bgt-bar-fill{border-radius:6px;height:100%;transition:width .5s ease}.bgt-bar-label{color:var(--text-muted);display:flex;font-size:11px;justify-content:space-between}.over-label{color:var(--danger);font-weight:600}.bgt-form-overlay{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1100}.bgt-form-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);max-height:90vh;max-width:380px;overflow-y:auto;width:100%}.bgt-form-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:16px 20px 12px}.bgt-form-header h3{color:var(--text-primary);font-size:15px;font-weight:700;margin:0}.bgt-form{display:flex;flex-direction:column;gap:13px;padding:16px 20px}.gf-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.gf-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.gf-field label{color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.gf-field input,.gf-field select{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;box-sizing:border-box;color:var(--text-primary);font-size:14px;outline:none;padding:10px 12px;transition:border-color .15s;width:100%}.gf-field input:focus,.gf-field select:focus{border-color:#3b82f6}.gf-field input[type=color]{cursor:pointer;height:38px;padding:4px 8px}.gf-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:10px}.gf-btn-cancel{background:#0000;border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);padding:9px 18px}.gf-btn-cancel,.gf-btn-save{cursor:pointer;font-size:13px}.gf-btn-save{background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:8px;color:#fff;font-weight:600;padding:9px 20px;transition:all .15s}.gf-btn-save:hover{opacity:.9;transform:translateY(-1px)}@media (max-width:640px){.bgt-overlay{align-items:center;justify-content:center;padding:12px}.bgt-modal{border-radius:20px;max-height:85vh;max-width:95%}.bgt-form-overlay{align-items:center;justify-content:center;padding:12px}.bgt-form-modal{border-radius:16px;max-height:85vh;max-width:95%}.gf-row{grid-template-columns:1fr}}.cat-report{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.cat-report-header{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:8px 16px}@media (max-width:480px){.cat-report-header{padding:8px 12px}}.cat-report-title{align-items:center;display:flex;gap:8px}.cat-report-title h2.cat-title-small{color:var(--text-primary);font-size:13.5px;font-weight:700;margin:0}.cat-report-tabs-content{background:var(--bg-secondary);border-bottom:1px dashed var(--border);padding:12px 20px 4px}.cat-report-tabs{display:flex;gap:8px}.cat-tab{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;color:var(--text-muted);cursor:pointer;font-size:11.5px;font-weight:600;padding:6px 16px;transition:all .2s}.cat-tab:hover{border-color:var(--accent);color:var(--accent)}.cat-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.cat-report-empty{color:var(--text-muted);font-size:13px;padding:32px;text-align:center}.cat-report-content{max-height:0;overflow:hidden;transition:max-height .4s ease-out}.cat-report-content.expanded{max-height:3000px}.cat-report-list{padding:8px 0}.cat-row{border-bottom:1px solid var(--border);padding:10px 20px;transition:background .12s}.cat-row:hover{background:var(--bg-hover)}.cat-row:last-child{border-bottom:none}.cat-row-top{justify-content:space-between;margin-bottom:6px}.cat-row-left,.cat-row-top{align-items:center;display:flex}.cat-row-left{gap:10px}.cat-dot{border-radius:50%;flex-shrink:0;height:10px;width:10px}.cat-name{color:var(--text-primary);display:block;font-size:13px;font-weight:600}.cat-count{color:var(--text-muted);font-size:11px}.cat-row-right{align-items:baseline;display:flex;gap:8px}.cat-value{font-size:14px;font-weight:700}.cat-pct{color:var(--text-muted);font-size:11px}.cat-bar{background:var(--bg-secondary);border-radius:4px;height:4px;overflow:hidden}.cat-bar-fill{border-radius:4px;height:100%;transition:width .5s ease}.cat-total{align-items:center;background:var(--bg-tertiary);border-top:2px solid var(--border);color:var(--text-primary);display:flex;font-size:14px;font-weight:700;justify-content:space-between;padding:12px 20px}.cal-wrapper{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.cal-header{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:10px;padding:8px 20px}.cal-icon{font-size:18px}.cal-title{color:var(--text-primary);font-size:15px;font-weight:600;margin:0}.cal-nav{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:10px 16px}.cal-month{color:var(--text-primary);font-size:14px;font-weight:600;text-transform:capitalize}.cal-nav-btn{align-items:center;background:#0000;border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:18px;height:30px;justify-content:center;transition:all .15s;width:30px}.cal-nav-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.cal-grid{grid-gap:1px;background:var(--border);border-top:1px solid var(--border);display:grid;gap:1px;grid-template-columns:repeat(7,1fr)}.cal-dow{background:var(--bg-tertiary);color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.5px;padding:6px 4px;text-align:center;text-transform:uppercase}.cal-cell{background:var(--bg-card);cursor:pointer;display:flex;flex-direction:column;gap:2px;min-height:60px;padding:5px 6px;transition:background .12s}.cal-cell.empty{background:var(--bg-tertiary);cursor:default}.cal-cell:hover:not(.empty){background:var(--bg-hover)}.cal-cell.today{background:#3b82f614}.cal-cell.selected{background:#3b82f626;outline:2px solid var(--accent)}.cal-day-num{color:var(--text-secondary);font-size:12px;font-weight:600;line-height:1}.cal-cell.today .cal-day-num{align-items:center;background:var(--accent);border-radius:50%;color:#fff;display:flex;font-size:11px;height:20px;justify-content:center;width:20px}.cal-dots{display:flex;gap:3px}.cal-dot{border-radius:50%;height:6px;width:6px}.cal-dot.income{background:var(--success)}.cal-dot.expense{background:var(--danger)}.cal-day-total{display:flex;flex-direction:column;gap:1px}.cal-mini{font-size:9px;font-weight:600;line-height:1}.cal-mini.income{color:var(--success)}.cal-mini.expense{color:var(--danger)}.cal-detail{border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px;padding:12px 16px}.cal-detail-title{color:var(--text-muted);font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.cal-detail-item{align-items:center;background:var(--bg-tertiary);border-radius:8px;display:flex;gap:10px;padding:8px 10px}.cal-detail-item.income{border-left:3px solid var(--success)}.cal-detail-item.expense{border-left:3px solid var(--danger)}.cal-detail-icon{font-size:16px}.cal-detail-body{display:flex;flex:1 1;flex-direction:column;min-width:0}.cal-detail-desc{color:var(--text-primary);font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-detail-cat{color:var(--text-muted);font-size:11px}.cal-detail-val{font-size:13px;font-weight:700;white-space:nowrap}.cal-detail-val.income{color:var(--success)}.cal-detail-val.expense{color:var(--danger)}.cal-detail-summary{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;display:flex;justify-content:space-between;margin-bottom:6px;padding:10px 14px}.cal-overdue-dot{font-size:11px;position:absolute;right:4px;top:4px}.cal-cell{position:relative}.cal-quick-add{background:var(--bg-tertiary);border-radius:8px;display:flex;gap:8px;margin-top:10px;padding:8px}.cal-qa-input,.cal-qa-select{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);flex:1 1;font-size:12px;outline:none;padding:8px 10px}.cal-qa-input.val{flex:0 0 80px}.cal-qa-select{flex:0 0 90px}.cal-qa-btn{align-items:center;background:var(--accent);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:18px;justify-content:center;width:32px}.cal-qa-btn.disabled{cursor:not-allowed;opacity:.5}@media (max-width:480px){.cal-header{gap:8px;padding:8px 12px}.cal-title{font-size:13px}.cal-icon{font-size:16px}.cal-nav{padding:6px 12px}.cal-month{font-size:12px}.cal-nav-btn{font-size:14px;height:26px;width:26px}.cal-dow{font-size:9px;padding:4px 2px}.cal-cell{gap:1px;min-height:40px;padding:2px 3px}.cal-day-num{font-size:10px}.cal-dots{gap:2px}.cal-dot{height:4px;width:4px}}@media (max-width:640px){.cal-cell{min-height:44px;padding:3px 4px}.cal-mini{display:none}.cal-day-num{font-size:11px}}.import-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1200}.import-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);max-width:460px;overflow:hidden;width:100%}.import-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:18px 24px 14px}.import-header h2{color:var(--text-primary);font-size:16px;font-weight:700;margin:0}.import-close{align-items:center;background:#0000;border:1px solid var(--border);border-radius:8px;color:var(--text-muted);cursor:pointer;display:flex;height:32px;justify-content:center;width:32px}.import-body{padding:24px}.import-hint{color:var(--text-muted);font-size:13px;line-height:1.5;margin-bottom:20px;margin-top:0}.import-hint code{background:var(--bg-tertiary);border-radius:6px;color:var(--text-primary);font-weight:600;padding:4px 8px}.import-file-box{background:#3b82f608;border:2px dashed var(--border);border-radius:12px;padding:20px;text-align:center;transition:border-color .2s}.import-file-box:hover{border-color:#3b82f64d}.import-file-box input{color:var(--text-primary);font-size:14px;width:100%}.import-log{background:#f59e0b1a;border-radius:8px;color:var(--text-secondary);font-size:12px;font-weight:500;margin-top:16px;padding:12px;text-align:center}.import-footer{background:var(--bg-tertiary);border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;padding:16px 24px}.import-btn-cancel,.import-btn-save{border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;padding:10px 20px;transition:transform .15s}.import-btn-cancel{background:#0000;border:1px solid var(--border);color:var(--text-secondary)}.import-btn-save{background:var(--accent);color:#fff}.import-btn-save:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.import-btn-save:disabled{cursor:not-allowed;opacity:.6}@media (max-width:640px){.import-overlay{align-items:center;justify-content:center;padding:12px}.import-modal{border-radius:16px;max-height:85vh;max-width:95%}}.profile-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.profile-modal{animation:profileSlideIn .3s ease;background:#1e293b;background:var(--bg-secondary,#1e293b);border:1px solid #ffffff1a;border:1px solid var(--border,#ffffff1a);border-radius:20px;box-shadow:0 25px 50px #00000080;max-width:480px;overflow:hidden;width:100%}@keyframes profileSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.profile-header{align-items:center;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border,#ffffff14);display:flex;justify-content:space-between;padding:20px 24px}.profile-header h2{color:#f1f5f9;color:var(--text-primary,#f1f5f9);font-size:18px;font-weight:600;margin:0}.profile-close{background:#ffffff14;border:none;border-radius:8px;color:#94a3b8;color:var(--text-muted,#94a3b8);cursor:pointer;font-size:14px;height:32px;transition:all .2s;width:32px}.profile-close:hover{background:#ef444433;color:#ef4444}.profile-user-card{align-items:center;background:#ffffff08;background:var(--bg-tertiary,#ffffff08);display:flex;gap:16px;padding:20px 24px}.profile-avatar{align-items:center;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:50%;box-shadow:0 4px 12px #3b82f64d;color:#fff;display:flex;flex-shrink:0;font-size:20px;font-weight:700;height:56px;justify-content:center;width:56px}.profile-user-info{display:flex;flex-direction:column;gap:2px}.profile-user-name{color:#f1f5f9;color:var(--text-primary,#f1f5f9);font-size:16px;font-weight:600}.profile-user-email{color:#64748b;color:var(--text-muted,#64748b);font-size:13px}.profile-user-role{font-size:12px;margin-top:4px}.profile-user-role.admin{color:#f59e0b}.profile-user-role.user{color:#94a3b8}.profile-tabs{border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border,#ffffff14);display:flex;padding:0 24px}.profile-tab{background:#0000;border:none;border-bottom:2px solid #0000;color:#64748b;color:var(--text-muted,#64748b);cursor:pointer;font-size:14px;font-weight:500;margin-bottom:-1px;padding:12px 16px;transition:all .2s}.profile-tab.active{border-bottom-color:#3b82f6;color:#3b82f6}.profile-tab:hover:not(.active){color:#f1f5f9;color:var(--text-primary,#f1f5f9)}.profile-content{display:flex;flex-direction:column;gap:14px;padding:20px 24px}.profile-section-title{color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:14px;font-weight:600;letter-spacing:.5px;margin:0;text-transform:uppercase}.profile-info-item{align-items:center;border-bottom:1px solid #ffffff0f;border-bottom:1px solid var(--border,#ffffff0f);display:flex;justify-content:space-between;padding:12px 0}.profile-info-item:last-child{border-bottom:none}.profile-info-item label{color:#64748b;color:var(--text-muted,#64748b);font-size:13px}.profile-info-item span{color:#f1f5f9;color:var(--text-primary,#f1f5f9);font-size:14px;font-weight:500}.profile-badge{border-radius:20px;font-size:12px;font-weight:500;padding:3px 10px}.profile-badge.admin{background:#f59e0b26;color:#f59e0b}.profile-badge.user{background:#3b82f626;color:#3b82f6}.profile-field{display:flex;flex-direction:column;gap:6px}.profile-field label{color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:13px;font-weight:500}.profile-field input{background:#ffffff12;background:var(--input-bg,#ffffff12);border:1px solid #ffffff1f;border:1px solid var(--border,#ffffff1f);border-radius:8px;color:#f1f5f9;color:var(--text-primary,#f1f5f9);font-size:14px;outline:none;padding:10px 14px;transition:all .2s}.profile-field input:focus{background:#3b82f614;border-color:#3b82f6}.profile-message{align-items:center;border-radius:8px;display:flex;font-size:13px;gap:8px;padding:10px 14px}.profile-message.success{background:#10b98126;border:1px solid #10b98133;color:#34d399}.profile-message.error{background:#ef444426;border:1px solid #ef444433;color:#fca5a5}.profile-btn-save{background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:11px;transition:all .2s}.profile-btn-save:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.profile-btn-save:disabled{cursor:not-allowed;opacity:.5}.profile-footer{border-top:1px solid #ffffff14;border-top:1px solid var(--border,#ffffff14);padding:16px 24px}.profile-btn-logout{align-items:center;background:#ef44441a;border:1px solid #ef444433;border-radius:8px;color:#ef4444;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:10px;transition:all .2s;width:100%}.profile-btn-logout:hover{background:#ef444433;border-color:#ef444466}.theme-colors-grid{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;margin-top:10px}.theme-color-btn{border:3px solid var(--bg-secondary);border-radius:50%;box-shadow:0 0 0 2px var(--border);cursor:pointer;height:42px;transition:transform .15s,box-shadow .15s;width:42px}.theme-color-btn:hover{box-shadow:0 0 0 2px var(--text-primary);transform:scale(1.1)}.theme-reset-btn{background:#0000;border:1px solid var(--border);border-radius:8px;color:var(--text-muted);cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:.2s}.theme-reset-btn:hover{background:var(--bg-hover);color:var(--text-primary)}@media (max-width:640px){.profile-overlay{align-items:center;justify-content:center;padding:12px}.profile-modal{border-radius:20px;max-height:85vh;max-width:95%;overflow-y:auto}.profile-tabs{padding:0 16px}.profile-content,.profile-header{padding:16px}.profile-user-card{padding:14px 16px}.profile-footer{padding:12px 16px}}.danger-tab:hover{color:#fca5a5!important}.danger-zone{gap:10px}.danger-title{color:#ef4444;font-size:15px;margin-bottom:5px}.danger-box{background:#ef44440d;border:1px solid #ef444433;border-radius:12px;padding:16px}.danger-box p{color:var(--text-secondary);font-size:13px;line-height:1.5;margin:0 0 10px}.danger-warning{color:#fca5a5;font-weight:700}.danger-input{border-color:#ef44444d!important}.danger-input:focus{background:#ef444414!important;border-color:#ef4444!important}.btn-danger-execute{background:#ef4444;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:700;margin-top:20px;padding:12px;transition:all .2s;width:100%}.btn-danger-execute:hover:not(:disabled){background:#dc2626;box-shadow:0 4px 12px #ef44444d;transform:translateY(-1px)}.btn-danger-execute:disabled{background:#4b1a1a;color:#94a3b8;cursor:not-allowed;opacity:.6}.cards-wrapper{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);margin-bottom:24px;padding:24px}.cards-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.cards-header h2{color:var(--text-primary);font-size:20px;margin:0}.btn-primary{background:var(--accent);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:8px 16px}.cards-form{background:var(--bg-tertiary);border-radius:12px;gap:16px;margin-bottom:24px;padding:16px}.cards-form,.form-group{display:flex;flex-direction:column}.form-group{gap:4px}.form-group label{color:var(--text-secondary);font-size:13px;font-weight:600}.form-group input{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);padding:8px 12px}.cards-form .form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr 1fr}.cards-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.card-item{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;gap:12px;padding:16px}.card-top{align-items:center;display:flex;justify-content:space-between}.card-top h3{color:var(--text-primary);font-size:18px;margin:0}.del-btn{align-items:center;background:var(--danger-light);border:none;border-radius:50%;color:var(--danger);cursor:pointer;display:flex;height:28px;justify-content:center;width:28px}.card-info p{color:var(--text-primary);font-size:14px;margin:0 0 4px}.card-info span{color:var(--text-secondary);font-weight:600}.faturas-btn{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);cursor:pointer;font-weight:600;margin-top:auto;padding:8px;text-align:center}.faturas-btn:hover{background:var(--border)}.group-badge{background:#e0e7ff;border-radius:12px;color:#4338ca;display:inline-block;font-size:11px;font-weight:700;margin-top:8px;padding:4px 8px}.cr-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);margin:auto;max-height:90vh;max-width:800px;overflow-x:hidden;overflow-y:auto;width:100%}.cr-header,.cr-modal{box-sizing:border-box}.cr-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:18px 20px 14px}.cr-header h3{color:var(--text-primary);font-size:16px;font-weight:700;margin:0 0 4px}.cr-header p{font-size:12px;margin:0}.cr-close,.cr-header p{color:var(--text-muted)}.cr-close{align-items:center;background:#0000;border:1px solid var(--border);border-radius:8px;cursor:pointer;display:flex;font-size:14px;height:32px;justify-content:center;width:32px}.cr-close:hover{background:var(--bg-hover)}.cr-form{border-bottom:1px solid var(--border);box-sizing:border-box;display:flex;flex-direction:column;gap:13px;padding:18px 20px}.cr-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.cr-field{display:flex;flex-direction:column;gap:5px}.cr-field label{color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.cr-field input,.cr-field select{background:var(--input-bg);border:1px solid var(--border);border-radius:8px;box-sizing:border-box;color:var(--text-primary);font-size:14px;outline:none;padding:9px 12px;transition:border-color .15s;width:100%}.cr-field input:focus,.cr-field select:focus{border-color:var(--accent)}.cr-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:4px}.cr-btn-primary{background:var(--accent);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:9px 20px;transition:all .15s}.cr-btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.cr-btn-primary:disabled{cursor:not-allowed;opacity:.6;transform:none}.cr-btn-export{align-items:center;background:#0000;border:1px solid var(--border);border-radius:8px;color:var(--text-primary);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:6px;padding:9px 16px}.cr-btn-export:hover{background:var(--bg-hover)}.cr-results{background:var(--bg-secondary);padding:15px}.cr-summary-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(4,1fr);margin-bottom:16px}.cr-summary-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:center;min-height:40px;overflow:hidden;padding:4px 8px;position:relative}.cr-summary-card label{color:var(--text-muted);font-size:10px;font-weight:500;line-height:1.2;margin-bottom:2px}.cr-summary-card .val{color:var(--text-primary);font-size:14px;font-weight:700;line-height:1.2}.cr-summary-card .val.income{color:#10b981}.cr-summary-card .val.expense{color:#ef4444}.cr-summary-card .val.info{color:#3b82f6}.cr-summary-card .val.warning{color:#f59e0b}.cr-summary-card .val.projected{color:#8b92f6}.cr-summary-card.highlight{background:rgba(var(--accent-rgb),.05);border-color:var(--accent)}.cr-table{border-collapse:collapse;font-size:14px;width:100%}.cr-table th{border-bottom:2px solid var(--border);color:var(--text-secondary);font-weight:600;padding:12px 16px;text-align:left}.cr-table td{border-bottom:1px solid var(--border);color:var(--text-primary);padding:12px 16px}.badge{border-radius:12px;display:inline-block;font-size:11px;font-weight:700;padding:4px 8px;text-transform:uppercase}.badge.success{background:#10b98126;color:#10b981}.badge.danger{background:#ef444426;color:#ef4444}@media (max-width:640px){.cr-modal{border-bottom:none;border-radius:16px 16px 0 0;margin-bottom:0;max-width:100%}.cr-row{grid-template-columns:1fr}.cr-summary-grid{grid-template-columns:1fr 1fr}}.help-modal{animation:slideFadeIn .3s ease-out;background-color:var(--bg-card);border-radius:12px;box-shadow:0 10px 30px #0003;display:flex;flex-direction:column;max-height:90vh;max-width:600px;overflow:hidden;width:90%}.help-modal .modal-body{color:var(--text-secondary);overflow-y:auto;padding:24px}.help-modal .help-intro{color:var(--text-primary);font-size:1.05rem;line-height:1.5;margin-bottom:24px;margin-top:0}.help-modal .help-section{background-color:var(--bg-input);border-left:4px solid var(--accent);border-radius:8px;margin-bottom:16px;padding:16px}.help-modal .help-section h3{align-items:center;color:var(--text-primary);display:flex;font-size:1.1rem;gap:10px;margin:0 0 8px}.help-modal .help-section h3 span{align-items:center;background-color:#3b82f61a;border-radius:50%;color:var(--accent);display:inline-flex;font-size:.9rem;height:28px;justify-content:center;width:28px}.help-modal .help-section p{font-size:.95rem;line-height:1.5;margin:0}.dark-theme .help-modal .help-section h3 span{background-color:#ffffff1a}@media (max-width:600px){.help-modal{border-radius:16px;max-height:85vh;width:95%}.help-modal .modal-body{padding:16px}.help-modal .help-intro{font-size:.9rem;margin-bottom:16px}.help-modal .help-section{margin-bottom:12px;padding:12px}.help-modal .help-section h3{font-size:.95rem;gap:8px}.help-modal .help-section h3 span{font-size:.8rem;height:22px;width:22px}.help-modal .help-section p{font-size:.82rem;line-height:1.4}}.toast-container{gap:10px;right:20px;top:20px}.toast{animation:slideIn .3s ease-out;background:#f8fafc;background:var(--bg-primary);border:1px solid #00000014;border-left:4px solid #3b82f6;border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:12px;box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a;font-size:14px;font-weight:600;gap:10px;padding:12px 20px}.toast.success{border-left-color:#10b981;border-left-color:var(--success)}.toast.error{border-left-color:#ef4444;border-left-color:var(--danger)}.toast.warning{border-left-color:#f59e0b;border-left-color:var(--warning)}.confirm-modal{animation:modalIn .25s ease-out;background:#f8fafc;background:var(--bg-primary);border-radius:20px;box-shadow:0 25px 50px -12px #00000040;max-width:400px;padding:30px;width:100%}.confirm-icon{margin-bottom:20px}.confirm-message{font-size:16px;font-weight:500;margin-bottom:25px}.confirm-actions .modal-btn{border:none;border-radius:10px;cursor:pointer;flex:1 1;font-size:14px;font-weight:700;padding:10px 20px;transition:all .2s}.modal-btn-cancel{background:#fff;background:var(--bg-secondary);color:#0f172a;color:var(--text-primary)}.modal-btn-cancel:hover{background:#0000000a;background:var(--bg-hover)}.modal-btn-danger:hover{filter:brightness(1.1)}.modal-btn-confirm{background:#3b82f6;background:var(--accent);color:#fff}.modal-btn-confirm:hover{background:#2563eb;background:var(--accent-hover)}@keyframes modalIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}:root{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--bg-hover:#0000000a;--bg-card:#fff;--text-primary:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--border:#00000014;--accent:#3b82f6;--accent-rgb:59,130,246;--accent-hover:#2563eb;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;--input-bg:#0000000a;--btn-secondary-bg:#0000000d;--btn-secondary-hover:#00000017;--shadow:0 1px 3px #00000014,0 1px 2px #0000000f;--shadow-md:0 4px 6px #00000012,0 2px 4px #0000000f;--shadow-lg:0 10px 15px #00000014,0 4px 6px #0000000d}.dark-theme{--bg-primary:#0d1117;--bg-secondary:#161b22;--bg-tertiary:#1c2333;--bg-hover:#ffffff0a;--bg-card:#161b22;--text-primary:#f0f6fc;--text-secondary:#c9d1d9;--text-muted:#8b949e;--border:#ffffff14;--accent:#3b82f6;--accent-rgb:59,130,246;--accent-hover:#60a5fa;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;--input-bg:#ffffff0f;--btn-secondary-bg:#ffffff12;--btn-secondary-hover:#ffffff1f;--shadow:0 1px 3px #0000004d,0 1px 2px #0003;--shadow-md:0 4px 6px #0006,0 2px 4px #0000004d;--shadow-lg:0 10px 25px #00000080,0 4px 10px #0006}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{color:#0f172a;color:var(--text-primary);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;transition:background .25s ease,color .25s ease}.App,body{background:#f8fafc;background:var(--bg-primary)}.App{min-height:100vh;transition:background .25s ease}main{margin:0 auto;max-width:1080px;padding:0 16px 8px;width:100%}.dashboard-container{display:flex;flex-direction:column;gap:6px}.kpis-grid{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(7,1fr)}.charts-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;max-height:200px}.charts-grid>*{max-height:200px;overflow:hidden}@media (max-width:1080px){main{padding:16px}.kpis-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:700px){.kpis-grid{gap:8px;grid-template-columns:repeat(2,1fr)}.charts-grid{grid-template-columns:1fr;max-height:none}.charts-grid>*{max-height:180px}}@media (max-width:480px){.dashboard-container{gap:8px}.kpis-grid{gap:8px;grid-template-columns:repeat(2,1fr)}.charts-grid{gap:8px}.upcoming-alert{margin-bottom:12px}}.transactions-section{overflow:hidden}.transactions-section-header{align-items:center;border-bottom:1px solid #00000014;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:20px 24px}.transactions-section-header h2{color:#0f172a;color:var(--text-primary);font-size:16px;font-weight:600}.filters-bar{flex-wrap:wrap;gap:10px}.filter-search,.filters-bar{align-items:center;display:flex}.filter-search{background:#0000000a;background:var(--input-bg);border:1px solid #00000014;border:1px solid var(--border);border-radius:8px;gap:8px;min-width:220px;padding:7px 12px}.filter-search input{background:#0000;border:none;color:#0f172a;color:var(--text-primary);font-size:13px;outline:none;width:100%}.filter-search input::placeholder{color:#64748b;color:var(--text-muted)}.filter-select{background:#0000000a;background:var(--input-bg);border:1px solid #00000014;border:1px solid var(--border);border-radius:8px;color:#0f172a;color:var(--text-primary);cursor:pointer;font-size:13px;outline:none;padding:8px 12px;transition:border-color .2s}.filter-select:focus{border-color:#3b82f6;border-color:var(--accent)}.filter-select option{background:#fff;background:var(--bg-secondary)}.loading-container{align-items:center;background:#f8fafc;background:var(--bg-primary);display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:100vh}.loading-spinner{animation:spin .8s linear infinite;border:3px solid #00000014;border-top-color:#3b82f6;border:3px solid var(--border);border-radius:50%;border-top-color:var(--accent);height:48px;width:48px}.loading-text{color:#64748b;color:var(--text-muted);font-size:14px}.error-container{align-items:center;display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:calc(100vh - 80px);padding:24px;text-align:center}.error-icon{font-size:48px}.error-title{color:#0f172a;color:var(--text-primary);font-size:18px;font-weight:600}.error-msg{color:#64748b;color:var(--text-muted);font-size:14px;max-width:400px}.error-btn{background:#3b82f6;background:var(--accent);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;margin-top:8px;padding:10px 20px;transition:background .2s}.error-btn:hover{background:#2563eb;background:var(--accent-hover)}.toast-container{bottom:24px;display:flex;flex-direction:column;gap:8px;position:fixed;right:24px;z-index:9999}.toast{align-items:center;animation:toastSlide .3s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:10px;box-shadow:0 10px 15px #00000014,0 4px 6px #0000000d;box-shadow:var(--shadow-lg);display:flex;font-size:13px;font-weight:500;gap:8px;padding:12px 18px}.toast.success{background:#10b981f2;color:#fff}.toast.error{background:#ef4444f2;color:#fff}.toast.info{background:#3b82f6f2;color:#fff}@keyframes toastSlide{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.date-filters{gap:10px}.date-filters-container{align-items:center;display:flex;gap:15px;justify-content:space-between;margin-bottom:6px;margin-top:8px}.date-filters{align-items:center;display:flex;gap:12px}.date-input-group{display:flex;flex-direction:column;gap:4px}.date-filters-header-row .mobile-account-selector{display:none}@media (min-width:340px) and (max-width:950px){.date-filters-header-row{align-items:center;display:flex;justify-content:space-between;width:100%}.date-filters-header-row .mobile-account-selector{align-items:center;background:#0000000a;background:var(--bg-hover);border:1px solid #00000014;border:1px solid var(--border);border-radius:20px;display:flex;gap:2px;margin-left:auto;padding:1px 8px}}.date-input-separator-wrapper{align-items:center;display:flex;height:100%}.date-filter-label{font-size:11px;font-weight:600}.date-filter-separator{color:#64748b;color:var(--text-muted);font-size:11px}.date-filter-input{background:var(--bg-hover);font-family:inherit;font-size:11px;padding:8px 10px}.date-filter-btn{font-size:11px;font-weight:600;padding:8px 16px}@media (max-width:850px){.date-filters-container{align-items:stretch;flex-direction:column}.date-filters{flex-wrap:nowrap;gap:8px;justify-content:center;overflow-x:auto;padding-bottom:5px}}@media (max-width:480px){.date-filters-container{display:flex;flex-direction:column;gap:9px;margin-bottom:4px}.date-filters-header-row{margin-bottom:-2px;padding:0 4px}.date-filters,.date-filters-header-row{align-items:center;display:flex;justify-content:space-between;width:100%}.date-filters{gap:2px}.date-input-separator-wrapper{padding-top:0}.date-filter-label{font-size:8px;font-weight:700}.date-filter-separator{font-size:8px}.date-filter-input{border-radius:6px;font-size:9px;padding:4px 5px}.date-filter-btn{font-size:9px;height:26px;padding:5px 8px}}.date-filter-label{color:#64748b;color:var(--text-muted);font-size:12px;font-weight:500}.date-filter-input{background:#0000000a;background:var(--input-bg);border:1px solid #00000014;border:1px solid var(--border);border-radius:8px;color:#0f172a;color:var(--text-primary);cursor:pointer;font-size:10px;outline:none;padding:6px 10px;transition:border-color .2s}.date-filter-input:focus{border-color:#3b82f6;border-color:var(--accent)}.vision-select-filter{background:#0000;color:#3b82f6;color:var(--accent);cursor:pointer;font-weight:700}.vision-select-filter,.vision-select-filter:focus{border:none!important;box-shadow:none!important;outline:none!important}.date-filter-btn{background:#3b82f6;background:var(--accent);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:7px 14px;transition:background .2s}.date-filter-btn:hover{background:#2563eb;background:var(--accent-hover)}.refreshing-mini-loader{animation:spin 1s linear infinite;font-size:14px;opacity:.7}@keyframes spin{to{transform:rotate(1turn)}}.upcoming-alert{align-items:center;background:#f59e0b1a;border:1px solid #f59e0b4d;border-radius:10px;color:#0f172a;color:var(--text-primary);display:flex;flex-wrap:nowrap;font-size:13px;gap:8px;margin-bottom:4px;margin-top:8px;overflow-x:auto;padding:6px 16px;transition:all .3s ease;white-space:nowrap}@keyframes alert-attention{0%,to{border-color:#f59e0b4d;transform:scale(1)}10%,30%{border-color:#f59e0b;border-color:var(--warning);filter:brightness(1.05);transform:scale(1.006)}20%,40%{border-color:#f59e0b80;transform:scale(1)}50%{transform:translateX(2px)}60%{transform:translateX(-2px)}70%{transform:translateX(2px)}80%{transform:translateX(-2px)}}.upcoming-alert.attention-animate{animation:alert-attention 3s ease-in-out;box-shadow:0 0 12px #f59e0b4d;z-index:10}@media (max-width:480px){.upcoming-alert{font-size:12px;gap:6px;padding:8px 12px}.alert-title-mobile{display:none}.upcoming-item{font-size:11px;padding:4px 8px}}.upcoming-item{background:#f59e0b26;border-radius:6px;color:#f59e0b;color:var(--warning);flex-shrink:0;font-size:12px;font-weight:500;padding:2px 10px}.upcoming-more{color:#64748b;color:var(--text-muted);font-size:11px}.confirm-modal{animation:modalIn .2s ease;background:#fff;background:var(--bg-secondary);border:1px solid #00000014;border:1px solid var(--border);border-radius:16px;box-shadow:0 10px 15px #00000014,0 4px 6px #0000000d;box-shadow:var(--shadow-lg);max-width:380px;padding:32px 28px;text-align:center;width:90%}.confirm-icon{font-size:40px;margin-bottom:12px}.confirm-message{color:#0f172a;color:var(--text-primary);font-size:15px;line-height:1.5;margin-bottom:24px}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.transactions-section{background:#fff;background:var(--bg-card);border:1px solid #00000014;border:1px solid var(--border);border-radius:16px;box-shadow:0 1px 3px #00000014,0 1px 2px #0000000f;box-shadow:var(--shadow);margin-top:24px;padding:20px;scroll-margin-top:80px}.modal-content{animation:modalSlideIn .3s ease;background:#fff;background:var(--bg-secondary);border:1px solid #00000014;border:1px solid var(--border);border-radius:20px;box-shadow:0 10px 15px #00000014,0 4px 6px #0000000d;box-shadow:var(--shadow-lg);max-width:480px;overflow:hidden;width:100%}.modal-header{align-items:center;border-bottom:1px solid #00000014;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:20px 24px}.modal-header h2{color:#0f172a;color:var(--text-primary);font-size:17px;font-weight:600;margin:0}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.confirm-actions{display:flex;gap:12px;justify-content:center}.modal-btn-danger{background:#ef4444;background:var(--danger);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:all .18s}.modal-btn-danger:hover{background:#dc2626;transform:translateY(-1px)}.modal-close-btn{align-items:center;background:#0000;border:1px solid #00000014;border:1px solid var(--border);border-radius:20px;color:#64748b;color:var(--text-muted);cursor:pointer;display:flex;font-size:16px;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.modal-close-btn:hover{background:#0000000a;background:var(--bg-hover);border-color:#3b82f6;border-color:var(--accent);color:#0f172a;color:var(--text-primary)}.evolution-chart,.evolution-chart .chart-container{height:220px}@media (max-width:450px){.transactions-section-header{align-items:flex-start;flex-direction:column;gap:12px;padding:12px 16px}.transactions-section-header h2{font-size:14px;margin:0}.filters-bar{align-items:stretch;flex-direction:column;gap:8px;width:100%}.filter-search{min-width:100%}.filters-select-row{display:flex;gap:8px;width:100%}.filter-select{font-size:11.5px;padding:8px 6px;width:50%}}.cat-title-small{color:#0f172a;color:var(--text-primary);font-size:13.5px!important;font-weight:700;margin:0}.toggle-btn{align-items:center;background:#3b82f6;border:none;border-radius:20px;color:#fff;cursor:pointer;display:flex;font-size:11px;font-weight:600;gap:4px;padding:6px 14px;transition:all .2s}.toggle-btn:hover{background:#2563eb;transform:translateY(-1px)}.toggle-btn.active{background:#fff;background:var(--bg-secondary);color:#64748b;color:var(--text-muted)}.charts-collapsible-section,.toggle-btn.active{border:1px solid #00000014;border:1px solid var(--border)}.charts-collapsible-section{background:#fff;background:var(--bg-card);border-radius:16px;box-shadow:0 1px 3px #00000014,0 1px 2px #0000000f;box-shadow:var(--shadow);overflow:hidden}.section-collapsible-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:8px 20px;transition:background .2s;-webkit-user-select:none;user-select:none}@media (max-width:480px){.section-collapsible-header{padding:8px 12px}}.section-collapsible-header:hover{background:#0000000a;background:var(--bg-hover)}.section-title{align-items:center;display:flex;gap:10px}.charts-collapsible-content{max-height:0;overflow:hidden;transition:max-height .4s ease-out,padding .4s}.charts-collapsible-section.expanded .charts-collapsible-content{border-top:1px solid #00000014;border-top:1px solid var(--border);max-height:1200px;padding:16px 20px 20px}@media (max-width:480px){.section-collapsible-header{padding:8px 12px}.charts-collapsible-section.expanded .charts-collapsible-content{display:flex;flex-direction:column;gap:12px;padding:12px}}
/*# sourceMappingURL=main.5271fb11.css.map*/