:root{--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-serif:"Playfair Display", Georgia, "Times New Roman", serif;--surface-page:#f7f5f2;--surface-card:#fff;--surface-sidebar:#fff;--text-primary:#2a2a28;--text-secondary:#6b655e;--text-muted:#9c948a;--border:#2a2a2814;--gridline:#2a2a280f;--radius-card:22px;--radius-control:14px;--radius-pill:999px;--shadow:0 10px 32px #2a2a2812, 0 2px 8px #2a2a280a;--accent:#8a9a8b;--accent-strong:#71836f;--accent-ink:#2a2a28;--accent-soft:#8a9a8b29;--pastel-purple-bg:#efeaf0;--pastel-purple-fg:#8c7a97;--pastel-blue-bg:#e8edf0;--pastel-blue-fg:#6c8998;--pastel-green-bg:#e9efe7;--pastel-green-fg:#72906d;--pastel-peach-bg:#f3e9e1;--pastel-peach-fg:#b47c5c;--series-1:#8a9a8b;--series-2:#7c93a0;--series-3:#9b8aa0;--series-4:#c08a63;--series-5:#6fa39a;--series-6:#b5605a;--series-7:#bf9a3d;--series-8:#a39a8e;--good:#6f9d6a;--pending:#bf9a3d;--critical:#b5605a;--income:var(--good);--expense:var(--critical);--sidebar-bg:var(--surface-sidebar);--sidebar-bg-active:var(--accent);--sidebar-text:var(--text-secondary);--sidebar-text-active:var(--accent-ink);--brand-green:var(--accent);--brand-green-soft:var(--accent-soft);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:15px/1.55 var(--font-sans);color:var(--text-secondary);background:var(--surface-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.01em}@media (prefers-color-scheme:dark){:root{--surface-page:#1b1a17;--surface-card:#242320;--surface-sidebar:#242320;--text-primary:#f1eee8;--text-secondary:#b3aba0;--text-muted:#837b70;--border:#f1eee814;--gridline:#f1eee812;--shadow:0 10px 32px #00000073, 0 2px 8px #0000004d;--accent:#93a594;--accent-strong:#a9bcaa;--accent-ink:#20201d;--accent-soft:#93a5942e;--pastel-purple-bg:#2d2a33;--pastel-purple-fg:#b6a6c0;--pastel-blue-bg:#232a30;--pastel-blue-fg:#93b2c0;--pastel-green-bg:#212a20;--pastel-green-fg:#93bd8d;--pastel-peach-bg:#322722;--pastel-peach-fg:#d69c78;--series-1:#93a594;--series-2:#8fa8b6;--series-3:#b3a1b9;--series-4:#d19f78;--series-5:#84bab0;--series-6:#c97b75;--series-7:#d4b559;--series-8:#b0a798;--good:#83b87e;--pending:#d4b559;--critical:#c97b75;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=light]{--surface-page:#f7f5f2;--surface-card:#fff;--surface-sidebar:#fff;--text-primary:#2a2a28;--text-secondary:#6b655e;--text-muted:#9c948a;--border:#2a2a2814;--gridline:#2a2a280f;--shadow:0 10px 32px #2a2a2812, 0 2px 8px #2a2a280a;--accent:#8a9a8b;--accent-strong:#71836f;--accent-ink:#2a2a28;--accent-soft:#8a9a8b29;--pastel-purple-bg:#efeaf0;--pastel-purple-fg:#8c7a97;--pastel-blue-bg:#e8edf0;--pastel-blue-fg:#6c8998;--pastel-green-bg:#e9efe7;--pastel-green-fg:#72906d;--pastel-peach-bg:#f3e9e1;--pastel-peach-fg:#b47c5c;--series-1:#8a9a8b;--series-2:#7c93a0;--series-3:#9b8aa0;--series-4:#c08a63;--series-5:#6fa39a;--series-6:#b5605a;--series-7:#bf9a3d;--series-8:#a39a8e;--good:#6f9d6a;--pending:#bf9a3d;--critical:#b5605a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--surface-page:#1b1a17;--surface-card:#242320;--surface-sidebar:#242320;--text-primary:#f1eee8;--text-secondary:#b3aba0;--text-muted:#837b70;--border:#f1eee814;--gridline:#f1eee812;--shadow:0 10px 32px #00000073, 0 2px 8px #0000004d;--accent:#93a594;--accent-strong:#a9bcaa;--accent-ink:#20201d;--accent-soft:#93a5942e;--pastel-purple-bg:#2d2a33;--pastel-purple-fg:#b6a6c0;--pastel-blue-bg:#232a30;--pastel-blue-fg:#93b2c0;--pastel-green-bg:#212a20;--pastel-green-fg:#93bd8d;--pastel-peach-bg:#322722;--pastel-peach-fg:#d69c78;--series-1:#93a594;--series-2:#8fa8b6;--series-3:#b3a1b9;--series-4:#d19f78;--series-5:#84bab0;--series-6:#c97b75;--series-7:#d4b559;--series-8:#b0a798;--good:#83b87e;--pending:#d4b559;--critical:#c97b75;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}body{background:var(--surface-page);margin:0;transition:background-color .15s}h1,h2,h3{font-family:var(--font-serif);color:var(--text-primary);letter-spacing:-.01em;margin:0;font-weight:700}button,input,select,textarea{font:inherit}table{font-variant-numeric:tabular-nums}.btn-primary,.btn-secondary,.btn-danger{border-radius:var(--radius-pill);cursor:pointer;border:none;padding:11px 22px;font-size:13px;font-weight:700;transition:filter .15s,transform .1s}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-secondary{border:1px solid var(--border);color:var(--text-primary);background:0 0}.btn-danger{background:var(--critical);color:#fff}.btn-primary:hover,.btn-danger:hover{filter:brightness(1.06)}.btn-primary:active,.btn-danger:active,.btn-secondary:active{transform:scale(.98)}.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled{opacity:.5;cursor:not-allowed}@media (width<=640px){input,select,textarea{font-size:16px}}@media (width<=480px){.panel,.summary-card{padding:16px}}.sidebar{background:var(--surface-sidebar);border-radius:var(--radius-card);width:264px;box-shadow:var(--shadow);color:var(--text-secondary);flex-direction:column;flex-shrink:0;min-height:calc(100vh - 48px);padding:24px 18px;display:flex;position:sticky;top:24px}.sidebar-logo{align-items:center;gap:12px;margin-bottom:36px;padding:0 8px;display:flex}.sidebar-close{border:1px solid var(--border);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;margin-left:auto;font-size:14px;display:none}.sidebar-overlay{display:none}.sidebar-logo-mark{background:var(--accent);width:36px;height:36px;color:var(--accent-ink);font-size:13px;font-weight:700;font-family:var(--font-serif);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-logo-text{font-family:var(--font-serif);color:var(--text-primary);letter-spacing:-.01em;font-size:19px;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:4px;display:flex}.sidebar-link{color:var(--text-secondary);border-radius:14px;align-items:center;gap:12px;padding:11px 14px;font-size:14px;font-weight:600;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.sidebar-link:hover{background:var(--accent-soft);color:var(--text-primary)}.sidebar-link.active{background:var(--accent);color:var(--accent-ink)}.sidebar-link-icon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar-link-icon svg{color:var(--text-muted);transition:color .15s}.sidebar-link:hover .sidebar-link-icon svg{color:var(--accent-strong)}.sidebar-link.active .sidebar-link-icon svg{color:var(--accent-ink)}@media (width<=860px){.sidebar{z-index:210;border-radius:0;width:280px;max-width:82vw;height:100vh;min-height:100vh;transition:transform .25s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-close{display:flex}.sidebar-overlay{z-index:200;opacity:0;pointer-events:none;background:#0b0d0e80;transition:opacity .2s;display:block;position:fixed;inset:0}.sidebar-overlay.visible{opacity:1;pointer-events:auto}}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.topbar-left{align-items:center;gap:12px;min-width:0;display:flex}.menu-toggle{border:1px solid var(--border);background:var(--surface-card);width:40px;height:40px;color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:17px;display:none}.topbar-greeting{font-size:32px;font-weight:700}.topbar-date{color:var(--text-secondary);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;margin:8px 0 0;font-size:13px;overflow:hidden}.theme-toggle{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-card);color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow);white-space:nowrap;flex-shrink:0;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:transform .1s;display:flex}.theme-toggle:hover{transform:translateY(-1px)}.theme-toggle:active{transform:translateY(0)}@media (width<=860px){.menu-toggle{display:inline-flex}}@media (width<=480px){.topbar{flex-wrap:nowrap;margin-bottom:20px}.topbar-greeting{font-size:20px}.topbar-left>div{min-width:0}.theme-toggle{border-radius:12px;justify-content:center;width:40px;height:40px;padding:0}.theme-toggle-label{display:none}}.summary-card{background:var(--surface-card);border-radius:var(--radius-card);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:20px 22px;display:flex}.summary-card-icon{background:var(--card-icon-bg);width:38px;height:38px;color:var(--card-icon-fg);border-radius:50%;justify-content:center;align-items:center;margin-bottom:2px;display:flex}.summary-card-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700}.summary-card-value{font-family:var(--font-serif);color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:25px;font-weight:700}@media (width<=480px){.summary-card{gap:8px;padding:16px}.summary-card-icon{width:34px;height:34px}.summary-card-value{font-size:20px}}.panel{background:var(--surface-card);border-radius:var(--radius-card);box-shadow:var(--shadow);border:none;padding:24px}.panel-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.panel-header h3{font-size:17px;font-weight:700}.spinner-block{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.spinner-ring{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spinner-rotate}.spinner-label{color:var(--text-secondary);font-size:13px}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.dashboard{flex-direction:column;gap:32px;display:flex}.summary-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;display:grid}.countdown-hero{background:linear-gradient(135deg, var(--surface-card), color-mix(in srgb, var(--accent) 5%, var(--surface-card)));border-radius:var(--radius-card);box-shadow:var(--shadow);text-align:center;border:1px solid color-mix(in srgb, var(--accent) 10%, var(--border));flex-direction:column;align-items:center;gap:16px;padding:48px 24px;display:flex;position:relative;overflow:hidden}.countdown-hero.is-empty{padding:40px 24px}.countdown-kicker{font-family:var(--font-serif);color:var(--accent-strong);text-transform:uppercase;letter-spacing:.15em;margin-bottom:4px;font-size:15px;font-weight:700}.countdown-main{flex-direction:column;align-items:center;gap:8px;display:flex}.countdown-number{font-family:var(--font-serif);color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:96px;font-weight:700;line-height:1}.countdown-number.countdown-today{align-items:center;gap:12px;font-size:40px;display:inline-flex}.countdown-label{color:var(--text-secondary);font-size:15px}.countdown-date{color:var(--text-muted);letter-spacing:.04em;border-top:1px solid var(--border);margin-top:8px;padding-top:8px;font-size:14px}.countdown-empty-text{color:var(--text-secondary);margin:0}.countdown-cta{border-radius:var(--radius-pill);margin-top:8px;padding:10px 20px;font-size:13px;font-weight:700;text-decoration:none;display:inline-block}.overview-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.overview-label{color:var(--text-secondary);font-size:14px}.overview-label strong{font-family:var(--font-serif);color:var(--text-primary);font-size:20px}.overview-sub{color:var(--text-muted);font-size:13px}.overview-bar{border-radius:var(--radius-pill);background:var(--surface-page);height:10px;overflow:hidden}.overview-bar-fill{border-radius:var(--radius-pill);background:var(--accent);height:100%;transition:width .3s;display:block}.overview-bar-fill.over{background:var(--critical)}.dashboard-columns{grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}.dashboard-empty{color:var(--text-muted);text-align:center;margin:0;padding:18px 0;font-size:14px}.dashboard-empty svg{vertical-align:-3px}.kategori-rows{flex-direction:column;gap:16px;display:flex}.kategori-row{flex-direction:column;gap:7px;display:flex}.kategori-row-top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.kategori-row-name{color:var(--text-primary);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.kategori-over-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--critical);background:color-mix(in srgb, var(--critical) 14%, transparent);border-radius:var(--radius-pill);padding:3px 9px;font-size:10px;font-weight:700}.kategori-row-amounts{color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px;font-weight:600}.kategori-row-estimasi{color:var(--text-muted);font-weight:500}.mini-bar{border-radius:var(--radius-pill);background:var(--surface-page);height:7px;overflow:hidden}.mini-bar-fill{border-radius:var(--radius-pill);background:var(--accent);height:100%;transition:width .3s;display:block}.mini-bar-fill.over{background:var(--critical)}.due-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.due-item{border-bottom:1px solid var(--gridline);align-items:center;gap:14px;padding:13px 2px;display:flex}.due-item:last-child{border-bottom:none}.due-dot{background:var(--pending);border-radius:50%;flex-shrink:0;width:10px;height:10px}.due-item .status-badge{flex-shrink:0}.dashboard-onboarding{background:var(--surface-card);border-radius:var(--radius-card);box-shadow:var(--shadow);text-align:center;flex-direction:column;align-items:center;gap:12px;max-width:560px;margin:32px auto;padding:60px 24px;display:flex}.dashboard-onboarding-icon{background:var(--accent-soft);width:64px;height:64px;color:var(--accent-strong);border-radius:50%;justify-content:center;align-items:center;display:flex}.dashboard-onboarding h2{font-size:26px}.dashboard-onboarding p{color:var(--text-secondary);max-width:420px;margin:0;line-height:1.5}.dashboard-onboarding-cta{margin-top:8px;padding:12px 22px;text-decoration:none}.due-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.due-name{color:var(--text-primary);font-size:14px;font-weight:600}.due-kategori{color:var(--text-muted);font-size:12px}.due-amounts{text-align:right;flex-direction:column;align-items:flex-end;gap:2px;display:flex}.due-sisa{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.due-paid{color:var(--text-muted);font-size:11px}.rincian-anggaran-panel{overflow-x:auto}.rincian-table-container{-webkit-overflow-scrolling:touch;width:100%;margin-bottom:24px;overflow-x:auto}.rincian-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:13px}.rincian-table th,.rincian-table td{text-align:left;border-bottom:1px solid var(--gridline);padding:10px 12px}.rincian-table th{background:var(--surface-card);color:var(--text-secondary);z-index:1;font-weight:600;position:sticky;top:0}.rincian-table td{color:var(--text-primary)}.rincian-table tbody tr:last-child td{border-bottom:none}.rincian-table .badge{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;justify-content:center;align-items:center;padding:4px 8px;font-size:11px;font-weight:600;display:inline-flex}.rincian-table .badge-wajib{background-color:color-mix(in srgb, var(--accent-strong) 15%, transparent);color:var(--accent-strong)}.rincian-table .badge-opsional{background-color:color-mix(in srgb, var(--pending) 15%, transparent);color:var(--pending)}.rincian-table .status-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;justify-content:center;align-items:center;padding:4px 8px;font-size:11px;font-weight:600;display:inline-flex}.rincian-table .status-belum-bayar{background-color:color-mix(in srgb, var(--critical) 15%, transparent);color:var(--critical)}.rincian-table .status-dp{background-color:color-mix(in srgb, var(--pending) 15%, transparent);color:var(--pending)}.rincian-table .status-lunas{background-color:color-mix(in srgb, var(--good) 15%, transparent);color:var(--good)}.rincian-summary{border-top:1px solid var(--gridline);padding-top:16px}.rincian-summary p{color:var(--text-secondary);justify-content:space-between;margin:8px 0;font-size:14px;display:flex}.rincian-summary p strong{color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap}@media (width<=960px){.dashboard-columns{grid-template-columns:1fr}}@media (width<=768px){.summary-cards{grid-template-columns:repeat(2,1fr);gap:12px}}@media (width<=480px){.summary-cards{grid-template-columns:1fr}.countdown-hero{padding:28px 18px}.countdown-number{font-size:46px}}.confirm-overlay{z-index:100;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.confirm-box{background:var(--surface-card);border-radius:var(--radius-card);width:100%;max-width:360px;box-shadow:var(--shadow);border:none;padding:26px}.confirm-box h3{margin-bottom:8px;font-size:16px}.confirm-box p{color:var(--text-secondary);margin:0 0 20px;font-size:14px}.confirm-error{background:color-mix(in srgb, var(--critical) 10%, transparent);border-radius:var(--radius-control);padding:10px 14px;color:var(--critical)!important;font-size:13px!important}.confirm-actions{justify-content:flex-end;gap:10px;display:flex}.toast-stack{z-index:100;pointer-events:none;flex-direction:column;gap:10px;max-width:calc(100vw - 40px);display:flex;position:fixed;bottom:20px;right:20px}.toast{border-radius:var(--radius-control);box-shadow:var(--shadow);background:var(--surface-card);border:1px solid var(--border);color:var(--text-primary);pointer-events:auto;align-items:center;gap:10px;min-width:220px;max-width:380px;padding:12px 14px;font-size:13.5px;font-weight:500;animation:.16s ease-out toast-in;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.toast-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:inline-flex}.toast-success{border-color:color-mix(in srgb, var(--good) 40%, var(--border))}.toast-success .toast-icon{background:color-mix(in srgb, var(--good) 18%, transparent);color:var(--good)}.toast-error{border-color:color-mix(in srgb, var(--critical) 40%, var(--border))}.toast-error .toast-icon{background:color-mix(in srgb, var(--critical) 18%, transparent);color:var(--critical)}.toast-message{word-break:break-word;flex:1;line-height:1.4}.toast-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1}.toast-close:hover{color:var(--text-primary)}@media (width<=640px){.toast-stack{max-width:none;bottom:12px;left:12px;right:12px}.toast{min-width:0;max-width:none}}.vendor-dialog-box{background:var(--surface-card);border-radius:var(--radius-card);width:100%;max-width:460px;max-height:90vh;box-shadow:var(--shadow);padding:26px;overflow-y:auto}.vendor-dialog-box h3{margin-bottom:16px;font-size:17px}@media (width<=480px){.vendor-dialog-box{padding:20px}}.form-panel{max-width:520px}.stacked-form{flex-direction:column;gap:16px;display:flex}.form-row{flex-direction:column;gap:6px;display:flex}.form-row label{color:var(--text-secondary);font-size:13px;font-weight:600}.form-row input,.form-row select,.form-row textarea{border-radius:var(--radius-control);border:1px solid var(--border);background:var(--surface-page);color:var(--text-primary);padding:11px 14px;font-size:14px}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.form-row textarea{resize:vertical}.submit-btn{border-radius:var(--radius-pill);background:var(--accent);color:var(--accent-ink);cursor:pointer;border:none;margin-top:4px;padding:13px 24px;font-size:14px;font-weight:700;transition:filter .15s}.submit-btn:hover{filter:brightness(1.05)}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.form-success{color:var(--good);background:color-mix(in srgb, var(--good) 12%, transparent);border-radius:var(--radius-control);margin:0;padding:10px 14px;font-size:13px}.manage-page{flex-direction:column;gap:20px;display:flex}.inline-form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.inline-form input,.inline-form select{border-radius:var(--radius-control);border:1px solid var(--border);background:var(--surface-page);color:var(--text-primary);padding:11px 16px;font-size:14px}.inline-form input:focus,.inline-form select:focus{outline:2px solid var(--accent);outline-offset:1px}.inline-form input[type=text]{flex:1;min-width:160px}.inline-form input[type=number]{width:140px}.manage-table{border-collapse:separate;border-spacing:0 6px;width:100%;font-size:13px}.manage-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;background:0 0;border:none;padding:0 16px 8px;font-size:11px;font-weight:700}.manage-table td{background:var(--surface-page);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:14px 16px}.manage-table td:first-child{border-left:1px solid var(--border);border-top-left-radius:14px;border-bottom-left-radius:14px}.manage-table td:last-child{border-right:1px solid var(--border);border-top-right-radius:14px;border-bottom-right-radius:14px}.manage-table tbody tr:hover td{background:color-mix(in srgb, var(--accent) 4%, var(--surface-page))}.manage-table td input{border:1px solid var(--border);background:var(--surface-page);width:100%;color:var(--text-primary);border-radius:8px;padding:8px 10px;font-size:13px}.action-cell{white-space:nowrap;align-items:center;gap:6px;display:flex}.btn-icon{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;transition:background-color .15s;display:inline-flex}.btn-icon:hover{background:var(--accent-soft)}.btn-sm{padding:7px 14px;font-size:12px}.empty-row{text-align:center;color:var(--text-muted);padding:24px}.status-message.compact{text-align:left;padding:8px 0;font-size:13px}.kategori-section{flex-direction:column;gap:14px;display:flex}.kategori-section-header{align-items:center;gap:10px;display:flex}.kategori-section-badge{border-radius:var(--radius-pill);text-transform:capitalize;padding:4px 12px;font-size:12px;font-weight:700}.kategori-section-count{color:var(--text-muted);font-size:12px}.kategori-chip-list{flex-wrap:wrap;gap:8px;display:flex}.kategori-chip{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-page);color:var(--text-primary);align-items:center;gap:8px;padding:7px 12px;font-size:13px;font-weight:500;display:flex}.kategori-chip input{border:1px solid var(--border);background:var(--surface-card);width:120px;color:var(--text-primary);border-radius:8px;padding:4px 8px;font-size:12px}.kategori-chip-actions{gap:4px;display:flex}.kategori-chip-actions button{cursor:pointer;background:0 0;border:none;padding:2px;font-size:12px;line-height:1}@media (width<=640px){.inline-form{flex-direction:column;align-items:stretch}.inline-form input[type=text],.inline-form input[type=number]{width:100%}.table-wrapper{overflow-x:visible}.manage-table thead{display:none}.manage-table,.manage-table tbody,.manage-table tr,.manage-table td{width:100%;display:block}.manage-table tr{border:1px solid var(--border);background:var(--surface-page);border-radius:14px;margin-bottom:12px;padding:4px 14px}.manage-table tr:last-child{margin-bottom:0}.manage-table td{border-bottom:1px solid var(--gridline);white-space:normal;text-align:right;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.manage-table td:last-child{border-bottom:none}.manage-table td:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);text-align:left;flex-shrink:0;font-size:11px;font-weight:700}.manage-table td.empty-row{text-align:center;padding:24px 0;display:block}.manage-table td.empty-row:before{content:none}.manage-table td input{text-align:right}.manage-table td.action-cell{justify-content:flex-end}.manage-table td.action-cell:before{content:none}}.kv-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.kv-title{flex-wrap:wrap;align-items:baseline;gap:12px;min-width:0;display:flex}.kv-title h3{font-size:18px}.kv-estimasi{color:var(--text-muted);font-size:13px}.kv-estimasi-atur{color:var(--accent-strong);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:13px;font-weight:600;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.kv-estimasi-atur:hover{color:var(--accent)}.kv-actions{flex-shrink:0;gap:6px;display:flex}.kv-edit-form{flex-wrap:wrap;flex:1;align-items:center;gap:10px;display:flex}.kv-edit-form input{border-radius:var(--radius-control);border:1px solid var(--border);background:var(--surface-page);color:var(--text-primary);padding:9px 12px;font-size:14px}.kv-edit-form input[type=text]{flex:1;min-width:140px}.kv-edit-form input[type=number]{width:180px}.kv-edit-form input:focus{outline:2px solid var(--accent);outline-offset:1px}.kv-vendor-nama{color:var(--text-primary);font-weight:600;display:block}.kv-vendor-catatan{color:var(--text-muted);white-space:normal;font-size:12px;display:block}.kv-sisa{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:700}.kv-lunas{border-radius:var(--radius-pill);color:var(--good);background:color-mix(in srgb, var(--good) 14%, transparent);padding:3px 11px;font-size:11px;font-weight:700;display:inline-block}.kv-add-vendor{margin-top:4px}.kv-empty-state{text-align:center;color:var(--text-muted);padding:20px 0}.kv-empty-state p{margin:0 0 12px;font-size:14px}.aksi-header{text-align:right}@media (width<=640px){.kv-edit-form input[type=text],.kv-edit-form input[type=number]{flex:none;width:100%}}.jenis-badge{border-radius:var(--radius-pill);padding:4px 12px;font-size:11px;font-weight:700;display:inline-block}.jenis-dp{background:var(--accent-soft);color:var(--accent-strong)}.jenis-cicilan{background:color-mix(in srgb, var(--pending) 16%, transparent);color:var(--pending)}.jenis-pelunasan{background:color-mix(in srgb, var(--good) 14%, transparent);color:var(--good)}.pembayaran-jumlah{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:700}.warning-banner{border-radius:var(--radius-control);background:color-mix(in srgb, var(--pending) 16%, transparent);color:var(--pending);align-items:center;gap:8px;margin:0;padding:10px 14px;font-size:13px;font-weight:600;line-height:1.4;display:flex}.checklist-progress{color:var(--text-muted);background:var(--surface-page);border:1px solid var(--border);border-radius:var(--radius-pill);padding:4px 12px;font-size:12px;font-weight:600}.checklist-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.checklist-item{border:1px solid var(--border);background:var(--surface-page);border-radius:14px;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;transition:background-color .15s,opacity .15s;display:flex}.checklist-item.done{opacity:.65}.checklist-check{cursor:pointer;flex:1;align-items:flex-start;gap:12px;min-width:0;display:flex}.checklist-check input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;margin-top:3px}.checklist-body{word-break:break-word;flex-direction:column;gap:4px;min-width:0;display:flex}.checklist-judul{color:var(--text-primary);font-size:14px;font-weight:600;line-height:1.35}.checklist-item.done .checklist-judul{color:var(--text-secondary);text-decoration:line-through}.checklist-catatan{color:var(--text-secondary);font-size:13px;line-height:1.4}.checklist-item.done .checklist-catatan{text-decoration:line-through}.checklist-deadline{color:var(--text-muted);background:var(--accent-soft);border-radius:var(--radius-pill);align-self:flex-start;padding:3px 10px;font-size:12px;font-weight:600}.checklist-actions{flex-shrink:0;gap:6px;display:flex}.checklist-item.editing{padding:14px;display:block}.checklist-edit-form{flex-direction:column;gap:10px;display:flex}.checklist-edit-form input,.checklist-edit-form textarea{border-radius:var(--radius-control);border:1px solid var(--border);background:var(--surface-card);color:var(--text-primary);padding:10px 12px;font-family:inherit;font-size:14px}.checklist-edit-form textarea{resize:vertical}.checklist-edit-form input:focus,.checklist-edit-form textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.checklist-edit-actions{justify-content:flex-end;gap:8px;display:flex}.checklist-edit-actions .btn-secondary{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-pill);cursor:pointer;background:0 0;padding:7px 14px;font-size:12px;font-weight:600}.checklist-edit-actions .btn-secondary:hover{background:var(--accent-soft)}.checklist-edit-actions .submit-btn{margin-top:0}@media (width<=640px){.checklist-item{flex-direction:column;align-items:stretch}.checklist-actions{justify-content:flex-end}}.app-shell{align-items:flex-start;gap:24px;min-height:100vh;padding:24px;display:flex}.app-main{flex:1;min-width:0}.app-content{max-width:1280px;margin:0 auto;padding:12px 8px 48px}.status-message{text-align:center;color:var(--text-secondary);padding:60px 0;font-size:15px}.status-message.error{color:var(--critical)}.status-badge{border-radius:var(--radius-pill);letter-spacing:.02em;white-space:nowrap;padding:3px 11px;font-size:11px;font-weight:700;display:inline-block}.status-belum_bayar{color:var(--text-muted);background:color-mix(in srgb, var(--text-muted) 15%, transparent)}.status-dp{color:var(--pending);background:color-mix(in srgb, var(--pending) 16%, transparent)}.status-lunas{color:var(--good);background:color-mix(in srgb, var(--good) 15%, transparent)}@media (width<=860px){.app-shell{gap:0;padding:12px}.app-content{padding:8px 2px 32px}}
