@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fff8ee;--bg-surface:#f3e5d0;--bg-card:#fff;--bg-card-hover:#fcf7ee;--bg-card-subtle:#faf2e6;--bg-input:#fff;--border:#e8e0d5;--border-subtle:#f0e9df;--border-hover:#d6cbc0;--border-focus:#247c72;--text:#292d2a;--text-dim:#716f68;--text-muted:#96938b;--text-primary:#292d2a;--text-inverse:#fff;--primary:#247c72;--primary-dark:#18554e;--primary-hover:#1d665d;--primary-active:#165049;--primary-bg:#247c7217;--primary-border:#247c7238;--accent:#f28b72;--accent-hover:#e07359;--accent-active:#ca5c42;--accent-bg:#f28b721f;--accent-border:#f28b7247;--accent-text:#d04f35;--green:#15803d;--green-hover:#166534;--green-bg:#ecfdf5;--green-border:#a7f3d0;--red:#dc2626;--red-hover:#b91c1c;--red-bg:#fef2f2;--red-border:#fecaca;--amber:#b45309;--amber-hover:#92400e;--amber-bg:#fffbeb;--amber-border:#fde68a;--purple:#7e22ce;--purple-bg:#faf5ff;--purple-border:#e9d5ff;--transfer:#247c72;--transfer-bg:#247c7214;--transfer-border:#247c7238;--radius-xs:6px;--radius-sm:10px;--radius:14px;--radius-lg:18px;--radius-pill:9999px;--shadow-sm:0 1px 3px #292d2a0a;--shadow:0 4px 16px #292d2a0f;--shadow-modal:0 20px 48px -8px #292d2a29, 0 0 0 1px #292d2a0d;--safe-bottom:env(safe-area-inset-bottom,0px)}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}:focus-visible{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--primary);outline:none}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:400px;box-shadow:var(--shadow);padding:36px 32px}.login-header{text-align:center;margin-bottom:28px}.login-brand{align-items:center;gap:10px;margin-bottom:8px;display:inline-flex}.login-brand h1{letter-spacing:-.02em;color:var(--text);font-size:1.75rem;font-weight:700}.login-header p{color:var(--text-dim);font-size:.9rem}.login-tabs{background:var(--bg-surface);border-radius:var(--radius-sm);border:1px solid var(--border);gap:4px;margin-bottom:24px;padding:4px;display:flex}.login-tabs button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:9px 12px;font-family:inherit;font-size:.85rem;font-weight:600;transition:all .2s}.login-tabs button:hover:not(.active){color:var(--text)}.login-tabs button.active{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary{background:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;width:100%;min-height:42px;padding:10px 18px;font-family:inherit;font-size:.92rem;font-weight:600;transition:background .15s,transform .1s,box-shadow .15s;display:inline-flex;box-shadow:0 2px 6px #247c7238}.btn-primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 4px 10px #247c724d}.btn-primary:active:not(:disabled){background:var(--primary-active);transform:translateY(1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-outline{min-height:38px;color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:.85rem;font-weight:500;transition:all .15s;display:inline-flex}.btn-outline:hover{background:var(--bg-card-hover);border-color:var(--border-hover);color:var(--text)}.btn-outline:active{transform:translateY(1px)}.btn-sm{min-height:34px;padding:6px 14px;font-size:.8rem;font-weight:600}.btn-sm.btn-primary{width:auto}.btn-icon{border-radius:var(--radius-xs);cursor:pointer;color:var(--text-muted);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:color .15s,background .15s,border-color .15s;display:inline-flex}.btn-icon:hover{color:var(--text);background:var(--bg-card-hover);border-color:var(--border)}.btn-icon.btn-danger:hover{color:var(--red);background:var(--red-bg);border-color:var(--red-border)}.form-group{margin-bottom:16px}.form-group label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:.75rem;font-weight:600;display:block}.form-group input,.form-group select,.form-group textarea{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;height:46px;color:var(--text);padding:10px 14px;font-family:inherit;font-size:.92rem;transition:border-color .15s,box-shadow .15s}.form-group textarea{resize:vertical;height:auto;min-height:88px;padding:10px 14px}.form-group select{cursor:pointer}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-bg);outline:none}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted)}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-row-inline{gap:12px;margin-bottom:16px;display:flex}.form-row-inline>.form-group{margin-bottom:0}.form-hint{color:var(--text-muted);margin-top:6px;font-size:.75rem;line-height:1.4}.form-hint-top{margin-top:-8px;margin-bottom:16px}.error-msg,.error-card{background:var(--red-bg);border:1px solid var(--red-border);color:var(--red);border-radius:var(--radius-sm);align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:.85rem;display:flex}.nominal-input{align-items:center;display:flex;position:relative}.nominal-prefix{color:var(--text-muted);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:.9rem;font-weight:600;position:absolute;left:14px}.form-group .nominal-input input{font-variant-numeric:tabular-nums;padding-left:42px;font-weight:600}.dashboard{max-width:920px;padding:24px 20px calc(115px + var(--safe-bottom));margin:0 auto}.dash-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:20px;display:flex}.brand-wrapper{align-items:center;gap:10px;display:flex}.brand-wrapper h1{letter-spacing:-.02em;color:var(--text);font-size:1.35rem;font-weight:700;line-height:1}.brand-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--primary-hover);background:var(--primary-bg);border:1px solid var(--primary-border);border-radius:var(--radius-xs);padding:2px 6px;font-size:.65rem;font-weight:600}.header-right{align-items:center;gap:10px;display:flex}.global-month-picker{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;height:36px;padding:6px 12px;font-family:inherit;font-size:.85rem;font-weight:500;transition:border-color .15s}.global-month-picker:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-bg);outline:none}.summary-section{margin-bottom:28px}.summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border-top:3px solid var(--primary);flex-direction:column;gap:6px;padding:22px 24px;display:flex;position:relative;overflow:hidden}.summary-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:8px;font-size:.75rem;font-weight:600;display:flex}.btn-hide-balance{cursor:pointer;color:var(--text-muted);border-radius:var(--radius-xs);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:color .15s,background .15s;display:flex}.btn-hide-balance:hover{color:var(--text);background:var(--primary-bg)}.summary-value{letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums;font-size:2.15rem;font-weight:700;line-height:1.2}.section{margin-bottom:32px}.section-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.section-title-wrap{align-items:center;gap:8px;display:flex}.section-header h2{color:var(--text);letter-spacing:-.01em;font-size:1.05rem;font-weight:600}.section-subtitle{color:var(--text-dim);margin-top:2px;font-size:.8rem}.account-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;display:grid}.account-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:16px;transition:border-color .15s,background .15s;display:flex}.account-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.acc-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.acc-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--primary-hover);background:var(--primary-bg);border:1px solid var(--primary-border);border-radius:var(--radius-xs);align-items:center;gap:5px;padding:2px 7px;font-size:.7rem;font-weight:600;display:inline-flex}.acc-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;font-size:.95rem;font-weight:600;overflow:hidden}.acc-balance{color:var(--green);font-variant-numeric:tabular-nums;margin-top:auto;font-size:1.2rem;font-weight:700}.acc-balance.negative{color:var(--red)}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.filters select,.filters input{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);height:36px;color:var(--text);cursor:pointer;padding:7px 12px;font-family:inherit;font-size:.85rem;transition:border-color .15s}.filters select:focus,.filters input:focus{border-color:var(--primary);outline:none}.tx-toolbar{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.tx-search-row{align-items:center;gap:8px;display:flex}.tx-search-input-wrap{flex:1;position:relative}.tx-search-icon{color:var(--text-dim);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.tx-search-input{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;height:42px;color:var(--text);padding-left:38px;padding-right:12px;font-family:inherit;font-size:.88rem;transition:border-color .15s,box-shadow .15s}.tx-search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-bg);outline:none}.btn-filter-toggle{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);height:42px;color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:0 14px;font-family:inherit;font-size:.85rem;font-weight:600;transition:all .15s;display:inline-flex}.btn-filter-toggle:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.btn-filter-toggle.active{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary)}.filter-badge-count{background:var(--primary);color:#fff;border-radius:var(--radius-pill);padding:1px 6px;font-size:.7rem;font-weight:700;line-height:1.2}.tx-filter-drawer{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:12px;padding:14px 16px;animation:.15s ease-out fadeIn;display:flex}.filter-pills-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.filter-pill-label{color:var(--text-dim);margin-right:4px;font-size:.78rem;font-weight:600}.filter-pill{border-radius:var(--radius-pill);background:var(--bg);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;padding:5px 12px;font-family:inherit;font-size:.8rem;font-weight:500;transition:all .12s}.filter-pill:hover{border-color:var(--border-hover);color:var(--text)}.filter-pill.active{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:600}.accounts-summary-banner{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;margin-bottom:20px;padding:16px 20px;display:flex}.accounts-summary-info{flex-direction:column;gap:2px;display:flex}.accounts-summary-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;font-weight:600}.accounts-summary-value{color:var(--primary);font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:800}.accounts-info-card{background:var(--primary-bg);border:1px dashed var(--primary-border);border-radius:var(--radius);color:var(--text-dim);margin-top:24px;padding:14px 16px;font-size:.82rem;line-height:1.5}.accounts-info-card strong{color:var(--primary)}.from-balance-hint{color:var(--text-dim);align-items:center;gap:4px;margin-top:4px;font-size:.78rem;display:flex}.from-balance-hint strong{color:var(--primary);font-weight:600}.transfer-warning-box{background:var(--red-bg);border:1px solid var(--red-border);border-radius:var(--radius-sm);color:var(--red);margin-bottom:12px;padding:8px 12px;font-size:.82rem;font-weight:500}.tx-list{flex-direction:column;gap:6px;display:flex}.tx-item{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;transition:background .15s,border-color .15s;display:flex}.tx-item:hover{background:var(--bg-card-hover);border-color:var(--border)}.tx-left{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.tx-icon-badge{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.tx-icon-badge.income{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}.tx-icon-badge.expense{background:var(--red-bg);color:var(--red);border:1px solid var(--red-border)}.tx-icon-badge.transfer{background:var(--primary-bg);color:var(--primary-hover);border:1px solid var(--primary-border)}.tx-info{flex:1;min-width:0}.tx-desc{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:600;overflow:hidden}.tx-meta{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;font-size:.75rem;display:flex;overflow:hidden}.tx-meta-dot{color:var(--text-muted)}.tx-right{flex-shrink:0;align-items:center;gap:12px;display:flex}.tx-amount{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:.95rem;font-weight:700}.tx-amount.income{color:var(--green)}.tx-amount.expense{color:var(--red)}.tx-amount.transfer{color:var(--primary-hover)}.tx-item.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.tx-item.clickable:hover{background:var(--bg-card-hover);border-color:var(--border-hover)}.tx-item.clickable:active{transform:scale(.99)}.tx-actions{align-items:center;gap:2px;display:flex}.transfer-arrow{color:var(--primary-hover);vertical-align:middle;margin:0 4px;display:inline-flex}.transfer-preview{background:var(--primary-bg);border:1px solid var(--primary-border);border-radius:var(--radius-sm);color:var(--text-dim);justify-content:space-between;align-items:center;margin:-4px 0 16px;padding:10px 14px;font-size:.85rem;display:flex}.transfer-preview strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.transfer-preview.invalid{background:var(--red-bg);border-color:var(--red-border)}.transfer-preview.invalid strong{color:var(--red)}.empty-card{text-align:center;background:var(--bg-card);border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;padding:36px 20px;display:flex}.empty-card-icon{color:var(--text-muted);margin-bottom:12px}.empty-card-title{color:var(--text);margin-bottom:4px;font-size:.95rem;font-weight:600}.empty-card-desc{color:var(--text-dim);max-width:320px;margin-bottom:14px;font-size:.8rem}.empty{color:var(--text-dim);text-align:center;padding:32px 16px;font-size:.85rem}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:100;background:#292d2a73;justify-content:center;align-items:center;padding:16px;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:440px;max-height:90vh;box-shadow:var(--shadow-modal);padding:24px;animation:.18s ease-out slideUp;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;display:flex}.modal-header h3{color:var(--text);letter-spacing:-.01em;font-size:1.15rem;font-weight:600}.modal-actions{border-top:1px solid var(--border-subtle);justify-content:flex-end;gap:10px;margin-top:24px;padding-top:14px;display:flex}.modal-actions .btn-primary,.modal-actions .btn-outline{width:auto}.detail-modal{max-width:440px}.detail-hero{text-align:center;background:var(--bg-card-hover);border:1px solid var(--border-subtle);border-radius:var(--radius);flex-direction:column;align-items:center;margin-bottom:20px;padding:18px 14px 20px;display:flex}.detail-hero-icon{border-radius:var(--radius);justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:12px;display:flex}.detail-hero-icon.transfer{background:var(--primary-bg);color:var(--primary-hover);border:1px solid var(--primary-border)}.detail-hero-icon.income{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}.detail-hero-icon.expense{background:var(--red-bg);color:var(--red);border:1px solid var(--red-border)}.detail-hero-amount{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.65rem;font-weight:700;line-height:1.2}.detail-hero-amount.transfer{color:var(--primary-hover)}.detail-hero-amount.income{color:var(--green)}.detail-hero-amount.expense{color:var(--red)}.detail-hero-desc{color:var(--text);margin-top:6px;font-size:1rem;font-weight:600}.detail-route-badge{background:var(--bg-card);border:1px solid var(--border);color:var(--text-dim);border-radius:9999px;align-items:center;gap:8px;margin-top:10px;padding:6px 14px;font-size:.82rem;font-weight:600;display:inline-flex}.route-arrow{color:var(--primary-hover)}.detail-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);flex-direction:column;gap:10px;margin-bottom:20px;padding:14px 16px;display:flex}.detail-row{justify-content:space-between;align-items:center;padding:4px 0;font-size:.85rem;display:flex}.detail-row:not(:last-child){border-bottom:1px dashed var(--border-subtle);padding-bottom:8px}.detail-row.highlight{border-radius:var(--radius-xs);background:#22c55e14;padding:8px 10px;border-bottom:none!important}.detail-label{color:var(--text-dim)}.detail-value{color:var(--text);font-variant-numeric:tabular-nums;text-align:right;font-weight:600}.detail-value.highlight-green{color:var(--green);font-weight:700}.detail-catatan{word-break:break-word;max-width:240px}.detail-badge{border-radius:var(--radius-xs);padding:3px 8px;font-size:.75rem;font-weight:600}.detail-badge.income{background:var(--green-bg);color:var(--green)}.detail-badge.expense{background:var(--red-bg);color:var(--red)}.detail-actions{flex-direction:column;gap:10px;display:flex}.detail-action-btn{border-radius:var(--radius-sm);justify-content:center;align-items:center;gap:8px;width:100%;padding:10px 16px;font-size:.9rem;font-weight:600;display:inline-flex}.btn-outline-danger{border:1px solid var(--red-border);color:var(--red);cursor:pointer;background:0 0;transition:all .15s}.btn-outline-danger:hover{background:var(--red-bg);border-color:var(--red)}.btn-outline-danger:active{transform:translateY(1px)}.tipe-toggle{background:var(--bg-input);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);gap:4px;padding:4px;display:flex}.tipe-toggle button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:8px 12px;font-family:inherit;font-size:.85rem;font-weight:600;transition:all .15s}.tipe-toggle button.active.expense{background:var(--red-bg);color:var(--red);box-shadow:0 1px 2px #0003}.tipe-toggle button.active.income{background:var(--green-bg);color:var(--green);box-shadow:0 1px 2px #0003}.bottom-nav{-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);padding:6px 12px;padding-bottom:calc(6px + var(--safe-bottom));z-index:50;background:#fffffff2;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #292d2a0a}.bottom-nav button{color:var(--text-dim);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;min-height:48px;padding:6px 4px;transition:color .15s,transform .1s;display:flex}.bottom-nav button:hover{color:var(--text)}.bottom-nav button.active{color:var(--primary)}.bottom-nav .nav-icon{justify-content:center;align-items:center;width:24px;height:24px;display:flex}.bottom-nav .nav-text{letter-spacing:.01em;font-size:.7rem;font-weight:600}@media (width>=641px){.bottom-nav{border-left:1px solid var(--border);border-right:1px solid var(--border);border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);max-width:920px;left:50%;transform:translate(-50%)}}.beranda-tab{flex-direction:column;gap:20px;animation:.2s ease-out fadeIn;display:flex}.beranda-hero{background:var(--primary);background:linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);color:#fff;border-radius:var(--radius-lg);flex-direction:column;gap:8px;padding:22px 24px;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 16px #247c722e}.beranda-hero:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff1f 0%,#fff0 70%);border-radius:50%;width:140px;height:140px;position:absolute;top:-30px;right:-30px}.beranda-hero-header{justify-content:space-between;align-items:center;display:flex}.beranda-hero-label{color:#ffffffe0;text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:8px;font-size:.78rem;font-weight:600;display:flex}.btn-hide-balance-hero{color:#fff;border-radius:var(--radius-pill);cursor:pointer;background:#ffffff29;border:1px solid #ffffff47;justify-content:center;align-items:center;width:28px;height:28px;transition:all .15s;display:flex}.btn-hide-balance-hero:hover{background:#ffffff47}.beranda-hero-amount{letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums;font-size:2.1rem;font-weight:800;line-height:1.15}.beranda-hero-footer{color:#ffffffd1;border-top:1px solid #ffffff2e;justify-content:space-between;align-items:center;margin-top:4px;padding-top:10px;font-size:.82rem;display:flex}.beranda-hero-acc-link{color:#fff;cursor:pointer;border-radius:var(--radius-pill);background:#ffffff24;border:1px solid #ffffff40;align-items:center;gap:4px;padding:4px 10px;font-family:inherit;font-size:.78rem;font-weight:600;transition:all .15s;display:inline-flex}.beranda-hero-acc-link:hover{background:#ffffff40}.beranda-cashflow{grid-template-columns:1fr 1fr;gap:10px;display:grid}.cashflow-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:12px;padding:16px;transition:border-color .15s,box-shadow .15s;display:flex}.cashflow-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-sm)}.cashflow-card.selisih{border-left:3px solid var(--primary);grid-column:1/-1;justify-content:space-between;padding:14px 18px}.cashflow-card.selisih.positive{border-left-color:var(--green);background:linear-gradient(135deg, var(--bg-card), var(--green-bg))}.cashflow-card.selisih.negative{border-left-color:var(--red);background:linear-gradient(135deg, var(--bg-card), var(--red-bg))}.cashflow-icon-wrap{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.cashflow-icon-wrap.income{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}.cashflow-icon-wrap.expense{background:var(--red-bg);color:var(--red);border:1px solid var(--red-border)}.cashflow-info{flex-direction:column;gap:2px;min-width:0;display:flex}.cashflow-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:600}.cashflow-amount{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:1.1rem;font-weight:700}.cashflow-amount.income{color:var(--green)}.cashflow-amount.expense{color:var(--red)}.beranda-quick-actions{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.quick-action-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;color:var(--text);flex-direction:column;align-items:center;gap:8px;padding:18px 12px;font-family:inherit;transition:all .18s;display:flex}.quick-action-btn:hover:not(:disabled){border-color:var(--primary-border);background:var(--bg-card-hover);box-shadow:var(--shadow);transform:translateY(-2px)}.quick-action-btn:active:not(:disabled){box-shadow:var(--shadow-sm);transform:translateY(0)}.quick-action-btn:disabled{opacity:.45;cursor:not-allowed}.quick-action-btn span{color:var(--text-dim);text-align:center;font-size:.78rem;font-weight:600}.quick-action-icon-wrap{border-radius:var(--radius-sm);background:var(--primary-bg);width:44px;height:44px;color:var(--primary);border:1px solid var(--primary-border);justify-content:center;align-items:center;transition:background .15s;display:flex}.quick-action-icon-wrap.transfer{background:var(--transfer-bg);color:var(--transfer);border-color:var(--transfer-border)}.quick-action-icon-wrap.accent{background:var(--accent-bg);color:var(--accent-text);border-color:var(--accent-border)}.beranda-section{flex-direction:column;gap:12px;display:flex}.beranda-section-header{justify-content:space-between;align-items:center;display:flex}.beranda-section-header h3{color:var(--text);letter-spacing:-.01em;font-size:1rem;font-weight:600}.beranda-see-all{color:var(--primary);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;align-items:center;gap:3px;padding:4px 6px;font-family:inherit;font-size:.8rem;font-weight:600;transition:color .15s,background .15s;display:inline-flex}.beranda-see-all:hover{color:var(--primary-hover);background:var(--primary-bg)}.beranda-accounts-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:thin;gap:10px;padding-bottom:4px;display:flex;overflow-x:auto}.beranda-accounts-scroll::-webkit-scrollbar{height:3px}.beranda-accounts-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-pill)}.beranda-account-chip{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-shrink:0;align-items:center;gap:10px;min-width:170px;padding:12px 16px;transition:border-color .15s;display:flex}.beranda-account-chip:hover{border-color:var(--border-hover)}.beranda-acc-icon{border-radius:var(--radius-xs);background:var(--primary-bg);width:32px;height:32px;color:var(--primary);border:1px solid var(--primary-border);flex-shrink:0;justify-content:center;align-items:center;display:flex}.beranda-acc-info{flex-direction:column;gap:1px;min-width:0;display:flex}.beranda-acc-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:600;overflow:hidden}.beranda-acc-balance{color:var(--green);font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:700}.beranda-acc-balance.negative{color:var(--red)}@media (width<=640px){.beranda-cashflow{grid-template-columns:1fr 1fr;gap:8px}.cashflow-card{gap:10px;padding:12px}.cashflow-icon-wrap{width:34px;height:34px}.cashflow-amount{font-size:.95rem}.cashflow-card.selisih{padding:12px 14px}.beranda-quick-actions{gap:8px}.quick-action-btn{gap:6px;padding:14px 8px}.quick-action-icon-wrap{width:40px;height:40px}.quick-action-btn span{font-size:.72rem}.beranda-account-chip{min-width:155px;padding:10px 14px}}.analytics-tab{flex-direction:column;gap:24px;display:flex}.analytics-header h2{color:var(--text);margin-bottom:14px;font-size:1.15rem;font-weight:600}.totals-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.total-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:6px;padding:16px 18px;display:flex}.total-card span{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.total-card strong{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:1.35rem;font-weight:700}.total-card.income strong{color:var(--green)}.total-card.expense strong{color:var(--red)}.total-card.selisih-pos strong{color:var(--green)}.total-card.selisih-neg strong{color:var(--red)}.charts-grid{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px;display:grid}@media (width<=640px){.charts-grid{grid-template-columns:1fr}}.chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.chart-card.full-width{grid-column:1/-1}.chart-card h3{color:var(--text);margin-bottom:4px;font-size:.95rem;font-weight:600}.chart-subtitle{color:var(--text-muted);margin-bottom:10px;font-size:.72rem}.chart-summary{color:var(--text-dim);background:var(--bg-input);border:1px solid var(--border-subtle);border-left:3px solid var(--primary);border-radius:var(--radius-sm);margin-bottom:16px;padding:10px 12px;font-size:.8rem;line-height:1.45}.chart-wrapper{width:100%}.wishlist-tab{animation:.2s ease-out fadeIn}.wishlist-summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:20px;margin-bottom:16px;padding:16px 20px;display:flex}.wishlist-summary-card .summary-stat{flex-direction:column;gap:4px;display:flex}.wishlist-summary-card .stat-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:600}.wishlist-summary-card .stat-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700}.wishlist-summary-card .stat-value.highlight{color:var(--primary-hover)}.wishlist-summary-card .summary-divider{background:var(--border);width:1px;height:36px}.wishlist-filters{scrollbar-width:none;gap:8px;margin-bottom:16px;padding-bottom:6px;display:flex;overflow-x:auto}.wishlist-filters::-webkit-scrollbar{display:none}.filter-pill{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-pill);min-height:34px;color:var(--text-dim);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:.8rem;font-weight:500;transition:all .15s;display:inline-flex}.filter-pill:hover{background:var(--bg-card-hover);border-color:var(--border-hover);color:var(--text)}.filter-pill.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.wishlist-info-banner{background:var(--primary-bg);border:1px solid var(--primary-border);border-radius:var(--radius-sm);color:var(--text-dim);margin-bottom:16px;padding:10px 14px;font-size:.8rem;line-height:1.45}.wishlist-info-banner strong{color:var(--text)}.wishlist-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.wishlist-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;padding:16px;transition:border-color .15s,background .15s;display:flex}.wishlist-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.wishlist-card.is-purchased{border-left:3px solid var(--green)}.wishlist-card-header{justify-content:space-between;align-items:center;display:flex}.badges-wrapper{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.badge-priority{border-radius:var(--radius-xs);text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;font-size:.68rem;font-weight:600}.badge-priority.priority-high{background:var(--red-bg);color:var(--red-hover);border:1px solid var(--red-border)}.badge-priority.priority-medium{background:var(--primary-bg);color:var(--primary-hover);border:1px solid var(--primary-border)}.badge-priority.priority-low{color:#94a3b8;background:#94a3b81f;border:1px solid #94a3b840}.badge-status{border-radius:var(--radius-xs);align-items:center;gap:5px;padding:2px 7px;font-size:.72rem;font-weight:500;display:inline-flex}.badge-status.status-want{background:var(--purple-bg);color:#c084fc;border:1px solid var(--purple-border)}.badge-status.status-deferred{background:var(--amber-bg);color:var(--amber);border:1px solid var(--amber-border)}.badge-status.status-purchased{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}.badge-status.status-cancelled{color:#94a3b8;background:#64748b26;border:1px solid #64748b40;text-decoration:line-through}.wishlist-item-name{color:var(--text);word-break:break-word;font-size:.95rem;font-weight:600;line-height:1.35}.wishlist-price-row{font-variant-numeric:tabular-nums;align-items:baseline;gap:8px;display:flex}.price-label{color:var(--text-dim);font-size:.72rem}.price-value{color:var(--primary-hover);font-size:1.05rem;font-weight:700}.wishlist-notes{color:var(--text-dim);background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);word-break:break-word;align-items:flex-start;gap:6px;padding:8px 10px;font-size:.78rem;line-height:1.4;display:flex}.wishlist-card-footer{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:10px;display:flex}.product-link{color:var(--primary-hover);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;max-width:140px;font-size:.75rem;font-weight:500;text-decoration:none;display:inline-flex;overflow:hidden}.product-link:hover{text-decoration:underline}.status-select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text);cursor:pointer;height:28px;padding:4px 8px;font-family:inherit;font-size:.75rem}.status-select:focus{border-color:var(--primary);outline:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.loading{color:var(--text-dim);justify-content:center;align-items:center;padding:40px 20px;font-size:.9rem;display:flex}@media (width<=640px){.dashboard{padding:16px 14px calc(110px + var(--safe-bottom))}.dash-header{flex-wrap:wrap;margin-bottom:18px;padding-bottom:14px}.brand-wrapper h1{font-size:1.25rem}.header-right{gap:8px}.global-month-picker{height:34px;padding:4px 8px;font-size:.8rem}.summary-card{padding:18px}.summary-value{font-size:1.75rem}.account-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr;gap:8px;display:grid}.filters select,.filters input{width:100%}.filters button{grid-column:1/-1}.form-row{grid-template-columns:1fr}.tx-item{gap:12px;padding:12px 14px}.tx-item.clickable:active{background:var(--bg-card-hover);transform:scale(.985)}.tx-actions{display:none}.tx-desc{font-size:.92rem;line-height:1.35}.tx-meta{gap:4px;font-size:.74rem}.tx-amount{white-space:nowrap;font-size:.95rem}.detail-hero-amount{font-size:1.45rem}.detail-card{padding:12px 14px}.wishlist-summary-card{gap:14px;padding:14px 16px}.modal{padding:20px 16px}}.budget-summary-row{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.budget-summary-item{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;flex-direction:column;flex:1;gap:3px;min-width:100px;padding:12px 14px;display:flex}.budget-summary-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:500}.budget-summary-value{color:var(--text);font-size:.95rem;font-weight:700}.budget-summary-value.accent{color:var(--accent-text)}.budget-summary-value.danger{color:var(--red)}.budget-list{flex-direction:column;gap:12px;display:flex}.budget-card{background:var(--bg-card);border:1.5px solid var(--border);border-radius:14px;padding:16px;transition:box-shadow .2s,border-color .2s}.budget-card:hover{border-color:var(--border-hover);box-shadow:0 4px 14px #0000000f}.budget-card.budget-warning{border-color:var(--accent-border);background:linear-gradient(135deg,#fff 0%,#fff5f0 100%)}.budget-card.budget-exceeded{border-color:var(--red-border);background:linear-gradient(135deg,#fff 0%,#fff2f2 100%)}.budget-card-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.budget-card-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.budget-category-name{color:var(--text);font-size:.95rem;font-weight:700}.budget-empty{text-align:center;background:var(--bg-card);border:1px dashed var(--border);border-radius:14px;flex-direction:column;align-items:center;padding:32px 20px 28px;display:flex}.budget-empty-icon{background:var(--primary-bg,#edf7f5);width:52px;height:52px;color:var(--primary,#247c72);border-radius:14px;justify-content:center;align-items:center;margin-bottom:14px;display:flex}.budget-empty-title{color:var(--text);margin:0 0 6px;font-size:.95rem;font-weight:700}.budget-empty-desc{color:var(--text-dim);max-width:260px;margin:0 0 16px;font-size:.8rem;line-height:1.5}.budget-empty-features{flex-direction:column;gap:6px;width:100%;max-width:220px;margin:0 0 20px;padding:0;list-style:none;display:flex}.budget-empty-features li{color:var(--text-dim);text-align:left;align-items:center;gap:7px;font-size:.78rem;font-weight:500;display:flex}.budget-empty-features li svg{color:var(--primary,#247c72);flex-shrink:0}.budget-status-badge{letter-spacing:.02em;border-radius:20px;padding:2px 8px;font-size:.65rem;font-weight:600}.budget-status-badge.budget-warning{background:var(--accent-bg);color:var(--accent-text);border:1px solid var(--accent-border)}.budget-status-badge.budget-exceeded{background:var(--red-bg);color:var(--red);border:1px solid var(--red-border)}.budget-card-actions{flex-shrink:0;gap:4px;display:flex}.budget-amounts{color:var(--text-dim);margin-bottom:10px;font-size:.83rem}.budget-spent{color:var(--text);font-size:.92rem;font-weight:700}.budget-separator{color:var(--text-muted);margin:0 2px}.budget-limit{color:var(--text-dim)}.budget-progress-bar{background:var(--border);border-radius:99px;width:100%;height:8px;margin-bottom:8px;overflow:hidden}.budget-progress-fill{border-radius:99px;height:100%;transition:width .4s,background-color .3s}.budget-footer{justify-content:space-between;align-items:center;font-size:.78rem;display:flex}.budget-persen{font-weight:700}.budget-remaining{color:var(--green);font-weight:600}.budget-remaining.negative{color:var(--red)}.budget-unset-section{background:var(--bg-card-subtle);border:1px dashed var(--border);border-radius:12px;margin-top:20px;padding:14px 16px}.budget-unset-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px;font-size:.78rem;font-weight:600}.budget-unset-chips{flex-wrap:wrap;gap:6px;display:flex}.budget-unset-chip{border:1px solid var(--primary-border);background:var(--primary-bg);color:var(--primary);cursor:pointer;border-radius:20px;align-items:center;gap:4px;padding:5px 12px;font-size:.78rem;font-weight:600;transition:background .15s,transform .1s;display:flex}.budget-unset-chip:hover{background:var(--primary);color:#fff;transform:translateY(-1px)}.form-value-static{background:var(--bg-card-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:46px;color:var(--text-dim);align-items:center;padding:10px 14px;font-size:.92rem;font-weight:500;display:flex}.loading-sm{text-align:center;color:var(--text-dim);padding:32px 0;font-size:.88rem}.budget-daily-hint{background:var(--bg-card-subtle,#f5f9f8);border-top:1px solid var(--border);border-radius:6px;justify-content:space-between;align-items:center;margin-top:10px;padding:7px 10px;display:flex}.budget-daily-label{color:var(--text-dim);align-items:center;gap:5px;font-size:.73rem;font-weight:500;display:flex}.budget-daily-value{color:var(--primary,#247c72);font-size:.82rem;font-weight:700}.budget-daily-unit{color:var(--text-dim);margin-left:1px;font-size:.7rem;font-weight:500}.budget-daily-banner{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:11px 14px;display:flex}.budget-daily-banner--danger{border-color:var(--red-border,#ffbdbd);background:var(--red-bg,#fff2f2)}.budget-daily-banner-left{align-items:center;gap:10px;display:flex}.budget-daily-banner-icon{color:var(--primary,#247c72);flex-shrink:0}.budget-daily-banner--danger .budget-daily-banner-icon{color:var(--red,#d94f3d)}.budget-daily-banner-title{color:var(--text);margin:0 0 1px;font-size:.83rem;font-weight:600}.budget-daily-banner-sub{color:var(--text-dim);margin:0;font-size:.71rem}.budget-daily-banner-right{flex-shrink:0;align-items:baseline;gap:2px;display:flex}.budget-daily-banner-amount{color:var(--primary,#247c72);font-size:1rem;font-weight:800;line-height:1}.budget-daily-banner-unit{color:var(--text-dim);font-size:.72rem;font-weight:500}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
