:root{--font-sans:"Plus Jakarta Sans",sans-serif;--font-mono:"JetBrains Mono",monospace;--sidebar-width:260px;--header-height:60px;--income-color:#198754;--expense-color:#dc3545;--income-bg:#d1e7dd;--expense-bg:#f8d7da}body{background-color:#f0f2f5;font-family:var(--font-sans);-webkit-font-smoothing:antialiased}.app-sidebar{background:#fff;border-right:1px solid #dee2e6;left:0;position:fixed;top:0;transition:transform .3s ease;width:var(--sidebar-width);z-index:1030}.app-main,.app-sidebar{display:flex;flex-direction:column;min-height:100vh}.app-main{margin-left:var(--sidebar-width)}.app-content{flex:1;padding:24px}.nav-link-item{align-items:center;background:none;border:none;border-radius:8px;color:#495057;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:10px;padding:9px 14px;text-decoration:none;transition:background .15s,color .15s;width:100%}.nav-link-item:hover{background:#f0f2f5;color:#212529}.nav-link-item.active{background:#e8f0fe;color:#0d6efd;font-weight:600}.stat-card{border:none;border-radius:12px;box-shadow:0 1px 4px #00000012;transition:transform .2s,box-shadow .2s}.stat-card:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-2px)}.stat-card.income{border-left:4px solid var(--income-color)}.stat-card.expense{border-left:4px solid var(--expense-color)}.stat-card.balance{border-left:4px solid #0d6efd}.text-income{color:var(--income-color)!important}.text-expense{color:var(--expense-color)!important}.font-mono{font-family:var(--font-mono)!important}.tx-item{align-items:center;border-radius:10px;cursor:pointer;display:flex;gap:12px;padding:10px 12px;transition:background .15s}.tx-item:hover{background:#f8f9fa}.tx-icon{align-items:center;border-radius:10px;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.cat-badge{border-radius:50px;display:inline-flex;font-size:12px;gap:4px;padding:3px 10px}.cat-badge,.type-option{align-items:center;font-weight:600}.type-option{background:#fff;border:2px solid #dee2e6;border-radius:8px;color:#6c757d;cursor:pointer;display:flex;flex:1;font-size:14px;gap:8px;justify-content:center;padding:10px;transition:all .15s}.type-option.income.selected{background:var(--income-bg);border-color:var(--income-color);color:#0a3622}.type-option.expense.selected{background:var(--expense-bg);border-color:var(--expense-color);color:#58151c}.fab-container{align-items:flex-end;bottom:28px;display:flex;flex-direction:column;gap:10px;position:fixed;right:28px;z-index:1020}.skeleton{animation:shimmer 1.4s infinite;background:linear-gradient(90deg,#e9ecef 25%,#dee2e6,#e9ecef 75%);background-size:200% 100%;border-radius:8px}.empty-state{color:#6c757d;padding:40px 20px;text-align:center}.empty-state-icon{align-items:center;background:#f0f2f5;border-radius:50%;display:flex;font-size:22px;height:52px;justify-content:center;margin:0 auto 14px;width:52px}.cat-progress{background:#e9ecef;border-radius:3px;height:6px;overflow:hidden}.cat-progress-fill{border-radius:3px;height:100%;transition:width .6s ease}.chart-wrapper{position:relative;width:100%}.auth-page{align-items:center;background:linear-gradient(135deg,#0d6efd,#0a58ca 60%,#6610f2);display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:20px}.auth-card{border-radius:20px;box-shadow:0 20px 60px #0003;max-width:420px;padding:40px 36px}.auth-card,.btn-google{background:#fff;width:100%}.btn-google{align-items:center;border:1.5px solid #dee2e6;border-radius:10px;box-shadow:0 1px 4px #0000000f;color:#212529;cursor:pointer;display:flex;font-family:var(--font-sans);font-size:15px;font-weight:600;gap:12px;justify-content:center;padding:12px 20px;text-decoration:none;transition:all .2s}.btn-google:hover{border-color:#4285f4;box-shadow:0 4px 16px #4285f433;color:#212529;transform:translateY(-1px)}.color-dot{border:3px solid transparent;border-radius:8px;cursor:pointer;height:30px;transition:transform .15s;width:30px}.color-dot.selected{border-color:#212529;transform:scale(1.15)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.spin{animation:spin 1s linear infinite}@media(max-width:767.98px){.app-sidebar{transform:translate(-100%)}.app-sidebar.open{box-shadow:0 0 20px #00000026;transform:translate(0)}.app-main{margin-left:0}.app-content{padding:16px}}[data-bs-theme=dark] .app-sidebar{background-color:#1e2736;border-right-color:#2d3748}[data-bs-theme=dark] .nav-link-item{color:#adb5bd}[data-bs-theme=dark] .nav-link-item:hover{background:#2d3748;color:#f8f9fa}[data-bs-theme=dark] .nav-link-item.active{background:#1a3a6e;color:#6ea8fe}[data-bs-theme=dark] body{background-color:#0f1117}[data-bs-theme=dark] .card{background-color:#1e2736;border-color:#2d3748}[data-bs-theme=dark] .card-header{background-color:#1e2736!important;border-bottom-color:#2d3748}[data-bs-theme=dark] header.bg-white{background-color:#1e2736!important;border-bottom-color:#2d3748!important}[data-bs-theme=dark] .app-sidebar .border-top{border-top-color:#2d3748!important}[data-bs-theme=dark] .stat-card.income{border-left-color:#75b798}[data-bs-theme=dark] .stat-card.expense{border-left-color:#ea868f}[data-bs-theme=dark] .stat-card.balance{border-left-color:#6ea8fe}[data-bs-theme=dark] .text-income{color:#75b798!important}[data-bs-theme=dark] .text-expense{color:#ea868f!important}[data-bs-theme=dark] .tx-item:hover{background:#2d3748}[data-bs-theme=dark] .type-option{background:#1e2736;border-color:#2d3748;color:#adb5bd}[data-bs-theme=dark] .type-option.income.selected{background:#0d2b1e;border-color:#75b798;color:#75b798}[data-bs-theme=dark] .type-option.expense.selected{background:#2b0d11;border-color:#ea868f;color:#ea868f}[data-bs-theme=dark] .btn-light{background-color:#2d3748;border-color:#3d4f63;color:#f8f9fa}[data-bs-theme=dark] .btn-light:hover{background-color:#3d4f63;color:#fff}[data-bs-theme=dark] .cat-progress{background:#2d3748}[data-bs-theme=dark] .skeleton{background:linear-gradient(90deg,#2d3748 25%,#3d4f63,#2d3748 75%);background-size:200% 100%}[data-bs-theme=dark] .empty-state-icon{background:#2d3748}[data-bs-theme=dark] .nav-tabs{border-bottom-color:#2d3748}[data-bs-theme=dark] .nav-tabs .nav-link{color:#adb5bd}[data-bs-theme=dark] .nav-tabs .nav-link.active{background-color:#1e2736;border-color:#2d3748 #2d3748 #1e2736;color:#6ea8fe}:root{--bottom-nav-height:64px}.bottom-nav{align-items:stretch;background:#fff;border-top:1px solid #dee2e6;bottom:0;display:flex;height:var(--bottom-nav-height);left:0;padding-bottom:env(safe-area-inset-bottom,0);position:fixed;right:0;z-index:1025}.bottom-nav-item{align-items:center;background:none;border:none;color:#6c757d;cursor:pointer;display:flex;flex:1;flex-direction:column;gap:3px;justify-content:center;padding:8px 4px 4px;position:relative;text-decoration:none;transition:color .15s;-webkit-tap-highlight-color:transparent}.bottom-nav-item.active,.bottom-nav-item:hover{color:#0d6efd}.bottom-nav-icon{align-items:center;display:flex;justify-content:center;position:relative}.bottom-nav-item.active .bottom-nav-icon:before{background:#0d6efd18;border-radius:14px;content:"";height:28px;position:absolute;width:44px;z-index:0}.bottom-nav-item.active .bottom-nav-icon>*{position:relative;z-index:1}.bottom-nav-dot{display:none}.bottom-nav-label{font-size:11px;font-weight:600;letter-spacing:.01em;line-height:1}@media(max-width:767.98px){.app-content{padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px) + 16px)!important}.fab-container{bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px) + 16px)!important}}[data-bs-theme=dark] .bottom-nav{background:#1e2736;border-top-color:#2d3748}[data-bs-theme=dark] .bottom-nav-item{color:#6c757d}[data-bs-theme=dark] .bottom-nav-item.active,[data-bs-theme=dark] .bottom-nav-item:hover{color:#6ea8fe}[data-bs-theme=dark] .bottom-nav-item.active .bottom-nav-icon:before{background:#6ea8fe20}.fs-card-label{font-size:10px;font-weight:700;letter-spacing:.06em}.fs-card-value{font-size:16px}.fs-card-sub{font-size:11px}.fs-body{font-size:13px}.fs-caption{font-size:12px}.fs-micro{font-size:10px}.fs-head{font-size:16px}@media(min-width:576px){.fs-card-label{font-size:11px}.fs-card-value{font-size:19px}.fs-card-sub{font-size:12px}.fs-body{font-size:14px}.fs-caption{font-size:13px}.fs-micro{font-size:11px}.fs-head{font-size:19px}}@media(min-width:992px){.fs-card-value,.fs-head{font-size:21px}}.sync-indicator{border-radius:999px;padding:4px 8px;transition:background-color .15s ease}.sync-indicator:hover{background-color:#0000000d}.sync-dot{border-radius:50%;display:inline-block;flex-shrink:0;height:8px;width:8px}.sync-dot-connected{background:#198754}.sync-dot-connecting{animation:pulse-dot 1.2s infinite;background:#ffc107}.sync-dot-error{background:#dc3545}.sync-dot-disconnected{background:#6c757d}@keyframes pulse-dot{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.toast-enter-active[data-v-c105f666]{animation:slideInRight-c105f666 .3s ease}.toast-leave-active[data-v-c105f666]{animation:slideInRight-c105f666 .2s ease reverse}@keyframes slideInRight-c105f666{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}
