:root{color:#172033;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f5f7fb;--ui-body-font-size: .875rem;--ui-pill-font-size: .8125rem;--ui-pill-padding: .35rem .75rem}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.main,.page{max-width:1180px;margin:0 auto;padding:32px 24px;font-size:var(--ui-body-font-size);line-height:1.45}.app-nav{align-items:center;display:flex;flex:1;flex-wrap:wrap;gap:8px;min-width:0}.app-nav>a,.app-nav a.nav-link{border-radius:999px;color:#475569;font-size:var(--ui-body-font-size);font-weight:400;padding:8px 12px;text-decoration:none}.app-nav>a:hover,.app-nav a.nav-link:hover{background:#f1f5f9;color:#475569;text-decoration:none}.app-nav>a.active,.app-nav a.nav-link.active{background:#dbeafe;color:#1d4ed8}.muted{color:#64748b}.helper-note{color:#6b7280;font-size:.8rem;margin:0}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid.three{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.card{border:1px solid #d9e2f0;border-radius:18px;background:#fff;box-shadow:0 12px 40px #20305014;padding:24px;margin-bottom:0}.line-card{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:.6rem .75rem;margin-bottom:.5rem}.field{display:grid;gap:6px}.field span{color:#334155;font-size:var(--ui-body-font-size);font-weight:700}.confirm-box{margin-top:1rem;font-size:.875rem;font-weight:400;line-height:1.4}.confirm-box h2,.confirm-box h3{margin-top:0;font-size:1rem;font-weight:600}.confirm-box .hint{font-size:.875rem;font-weight:400}.field-label{font-weight:600;color:#64748b}.field-row,.field-row.gl-allocation-field,.field-row.business-purpose-field,.field-row.business-purpose-hint-row{display:grid;grid-template-columns:minmax(9rem,11rem) minmax(12rem,1fr);align-items:center;gap:.35rem 1rem;margin-top:.5rem;max-width:42rem}.field-row .field-control{min-width:0}.field-row input,.field-row select,.field-row textarea,.derived-field .derived-value,.gl-allocation-select,.gl-allocation-amount{display:block;width:100%;max-width:none;margin-top:0;box-sizing:border-box;font-size:.875rem;font-weight:400;color:#0f172a}.field-row .hint.field-placeholder{grid-column:2;margin-top:.15rem;font-weight:400}.derived-field{display:grid;grid-template-columns:minmax(9rem,11rem) minmax(12rem,1fr);align-items:center;gap:.35rem 1rem;margin-top:.5rem;max-width:42rem}.derived-value{padding:.35rem .5rem;background:#f8fafc;border-radius:4px;font-variant-numeric:tabular-nums}.field-row.field-row-top,.field-row.business-purpose-field.field-row-top{align-items:start}.field-row.field-row-top .field-label,.field-row.business-purpose-field .field-label{padding-top:.45rem}label.toggle-row.field-row{grid-template-columns:minmax(9rem,11rem) auto}label.toggle-row.field-row input[type=checkbox]{width:auto;justify-self:start}.confirm-actions{margin-top:1rem;max-width:42rem}.confirm-actions .field-row{flex:1 1 100%;width:100%}.extracted{display:grid;grid-template-columns:minmax(8rem,auto) 1fr;gap:.25rem .75rem;margin:.25rem 0 0;font-size:.875rem}.extracted dt{font-weight:600;color:#64748b}.extracted dd{margin:0;font-weight:400;color:#0f172a}.gl-allocation-list{margin:.5rem 0;max-width:42rem}.field-row.gl-allocation-field .field-control .hint.field-placeholder{margin-top:.15rem}.gl-allocation-toolbar{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:.5rem;width:100%;min-width:0;box-sizing:border-box}.field-row.gl-allocation-field .gl-allocation-select{flex:1 1 0;width:0;min-width:0}.field-row.gl-allocation-field .gl-allocation-amount{flex:0 0 6.5rem;width:6.5rem;min-width:6.5rem;max-width:6.5rem}.gl-row-add,.gl-row-remove,.gl-row-hint{flex:0 0 2rem;width:2rem;height:2rem;padding:0;border-radius:6px;border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a;font-size:1.125rem;line-height:1;cursor:pointer}.gl-row-hint{font-size:1rem}.gl-row-hint:disabled{opacity:.45;cursor:not-allowed}.gl-row-hint.gl-row-hint-saved:not(:disabled){color:#15803d;border-color:#86efac;background:#f0fdf4}.gl-row-add:hover,.gl-row-remove:hover,.gl-row-hint:hover:not(:disabled){background:#e2e8f0}.gl-row-hint.gl-row-hint-saved:hover:not(:disabled){background:#dcfce7}.business-purpose-toolbar{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:flex-start;gap:.5rem;width:100%;min-width:0;box-sizing:border-box}.business-purpose-toolbar textarea{flex:1 1 0;width:0;min-width:0;max-width:none;margin-top:0}.business-purpose-toolbar .gl-row-hint{flex:0 0 2rem;margin-top:.15rem}.exchange-rate-control{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;min-width:0}.exchange-rate-input{width:30%;min-width:5rem;max-width:9rem;flex:0 0 auto}.exchange-rate-sgd{font-variant-numeric:tabular-nums;color:#0f172a;font-weight:500}.exchange-rate-sgd-muted{color:#94a3b8;font-weight:400}.hint.success{color:#15803d;background:transparent;padding:0;border-radius:0;font-weight:400}input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:10px 12px;background:#fff;color:#172033;font-size:var(--ui-body-font-size)}input[type=checkbox],input[type=radio]{width:auto;padding:0;accent-color:#1d4ed8;cursor:pointer}input[type=file]{width:auto;padding:0;border:0;background:transparent}textarea{min-height:96px;resize:vertical}.toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:18px}.lines-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.lines-header h2{margin:0}.button,button:not(.link-button):not(.remove-icon):not(.icon-button):not(.pill):not(.filter-pill):not(.tab):not(.kpi-toggle):not(.teach-toggle):not(.gl-row-add):not(.gl-row-remove):not(.gl-row-hint):not(.nav-badge):not(.reopen),a.button,label.button,label.upload-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;border:0;border-radius:999px;background:#1d4ed8;color:#fff;cursor:pointer;font-size:var(--ui-pill-font-size);font-weight:400;padding:var(--ui-pill-padding);text-decoration:none;white-space:nowrap}.button.secondary,button.secondary,button.muted,a.button.secondary,label.button.secondary,label.upload-btn{border:1px solid #cbd5e1;background:#fff;color:#172033}.button.danger,button.danger,button.reject{background:#b91c1c;color:#fff;border:0}button.retry,.btn-retry{border:1px solid #ea580c;background:#fff7ed;color:#c2410c}button.escalate,.btn-escalate{border:1px solid #1d4ed8;background:#eff6ff;color:#1e40af}button.primary,button.approve,.btn-primary{background:#1d4ed8;color:#fff;border:0}.button:hover:not(:disabled),button:not(.link-button):not(.remove-icon):not(.icon-button):not(.pill):not(.filter-pill):not(.tab):not(.kpi-toggle):not(.teach-toggle):not(.gl-row-add):not(.gl-row-remove):not(.gl-row-hint):not(.reopen):hover:not(:disabled),a.button:hover{filter:brightness(.95)}.button.secondary:hover:not(:disabled),button.secondary:hover:not(:disabled),button.muted:hover:not(:disabled){background:#f8fafc;filter:none}.button:disabled,button:disabled,.button.secondary:disabled,button.secondary:disabled,button.primary:disabled,button.approve:disabled,button.danger:disabled,button.reject:disabled,button.retry:disabled,button.escalate:disabled{cursor:not-allowed;opacity:.5}label.upload-btn input[type=file]{display:none}.link-button{border:0;background:transparent;color:#1d4ed8;cursor:pointer;font:inherit;font-weight:800;padding:0;text-decoration:underline;border-radius:0}.action-row,.action-stack{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.table,table{width:100%;border-collapse:collapse}.table th,.table td,table th,table td{border-bottom:1px solid #e2e8f0;padding:10px;text-align:left;vertical-align:top}.table th.amount-cell,.table td.amount-cell,table th.amount-cell,table td.amount-cell{text-align:right}.pill{border-radius:999px;background:#e0f2fe;color:#075985;display:inline-flex;font-size:var(--ui-pill-font-size);font-weight:400;padding:var(--ui-pill-padding);text-transform:capitalize}.filter-pill,button.filter-pill{background:#f8fafc;border:1px solid #cbd5e1;border-radius:999px;color:#172033;cursor:pointer;display:inline-flex;align-items:center;font-size:var(--ui-pill-font-size);font-weight:400;padding:var(--ui-pill-padding);white-space:nowrap}.filter-pill:hover,button.filter-pill:hover{background:#f1f5f9;filter:none}.filter-pill.active,button.filter-pill.active{background:#dbeafe;border-color:#3b82f6;color:#1d4ed8}.filter-pill.zero,button.filter-pill.zero{opacity:.55}.status-pills{display:flex;flex-wrap:wrap;gap:.5rem}.error{border-radius:12px;background:#fee2e2;color:#991b1b;padding:12px}.success{border-radius:12px;background:#dcfce7;color:#166534;padding:12px}.banner{border-radius:18px;padding:24px;margin-bottom:16px}.banner-warn{background:#fff7ed;border:1px solid #fdba74}.tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tabs button,.tabs button.tab{display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#172033;cursor:pointer;font-size:var(--ui-pill-font-size);font-weight:400;padding:var(--ui-pill-padding);white-space:nowrap}.tabs button:hover{background:#f8fafc;filter:none}.tabs button.active{background:#eff6ff;border:1px solid #1d4ed8;color:#1e40af}.badge{display:inline-block;font-size:var(--ui-pill-font-size);font-weight:400;line-height:1.4;padding:.15rem .45rem;border-radius:999px}.icon-button,button.reopen{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .5rem;border:1px solid #cbd5e1;border-radius:8px;background:#fff;cursor:pointer;font-weight:800}button.reopen{background:#f0fdf4;border-color:#86efac;font-size:1.1rem;line-height:1}button.close-period{background:#1e293b;color:#fff;border:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#0006}.modal{width:90%;max-width:420px}.modal-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.err{color:#b91c1c}.ok{color:#15803d}.sidebar-backdrop.svelte-1qzezsz{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:#0f172a59}@media(max-width:960px){.sidebar-backdrop.visible.svelte-1qzezsz{display:block}}.app-sidebar.svelte-1qzezsz{position:fixed;top:var(--app-top-offset, 64px);left:0;bottom:0;z-index:160;width:var(--sidebar-width, 220px);display:flex;flex-direction:column;border-right:1px solid #e2e8f0;background:#fff;box-sizing:border-box;transition:width .2s ease}.sidebar-nav.svelte-1qzezsz{flex:1;overflow-y:auto;padding:.75rem .5rem}.nav-group.svelte-1qzezsz+.nav-group:where(.svelte-1qzezsz){margin-top:.75rem}.nav-group-label.svelte-1qzezsz{padding:.35rem .65rem;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}.nav-group-list.svelte-1qzezsz{list-style:none;margin:0;padding:0;display:grid;gap:2px}.nav-group-list.svelte-1qzezsz a:where(.svelte-1qzezsz){display:flex;align-items:center;gap:.65rem;min-height:2.25rem;padding:.45rem .65rem;border-radius:8px;color:#475569;font-size:var(--ui-body-font-size, .875rem);text-decoration:none;position:relative}.nav-group-list.svelte-1qzezsz a:where(.svelte-1qzezsz):hover{background:#f1f5f9;color:#334155}.nav-group-list.svelte-1qzezsz a.active:where(.svelte-1qzezsz){background:#dbeafe;color:#1d4ed8;font-weight:500}.collapsed.svelte-1qzezsz .nav-group-list:where(.svelte-1qzezsz) a:where(.svelte-1qzezsz){justify-content:center;padding:.45rem .35rem}.nav-icon.svelte-1qzezsz{flex-shrink:0;width:1.5rem;text-align:center;font-size:1rem;line-height:1}.nav-label.svelte-1qzezsz{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-badge.svelte-1qzezsz{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;border-radius:999px;background:#dc2626;color:#fff;font-size:.72rem;font-weight:500;line-height:1}.nav-badge-dot.svelte-1qzezsz{position:absolute;top:.35rem;right:.3rem;width:.5rem;height:.5rem;border-radius:50%;background:#dc2626}.sidebar-toggle.svelte-1qzezsz{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:.5rem;padding:.5rem;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;color:#475569;font:inherit;font-size:.8125rem;cursor:pointer}.sidebar-toggle.svelte-1qzezsz:hover{background:#f1f5f9;border-color:#cbd5e1}.toggle-icon.svelte-1qzezsz{font-size:1rem;line-height:1}.collapsed.svelte-1qzezsz .sidebar-toggle:where(.svelte-1qzezsz){padding:.5rem .35rem}@media(max-width:960px){.app-sidebar.svelte-1qzezsz{width:220px;transform:translate(-100%);transition:transform .2s ease;box-shadow:0 10px 40px #0f172a1f}.app-sidebar.mobile-open.svelte-1qzezsz{transform:translate(0)}.app-sidebar.collapsed.svelte-1qzezsz{width:220px}.sidebar-toggle.svelte-1qzezsz{display:none}}.user-menu.svelte-1xgz5ag{position:relative;margin-left:auto}.user-trigger.svelte-1xgz5ag{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .6rem;border:1px solid #e2e8f0;border-radius:999px;background:#f8fafc;font:inherit;font-size:.875rem;color:#0f172a;cursor:pointer}.user-trigger.svelte-1xgz5ag:hover{background:#f1f5f9;border-color:#cbd5e1}.avatar.svelte-1xgz5ag{width:1.75rem;height:1.75rem;border-radius:50%;background:#1d4ed8;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600}.name.svelte-1xgz5ag{max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chevron.svelte-1xgz5ag{font-size:.65rem;color:#64748b}.dropdown.svelte-1xgz5ag{position:absolute;right:0;top:calc(100% + .35rem);min-width:14rem;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;box-shadow:0 10px 25px #0f172a1f;z-index:50;padding:.35rem 0}.menu-header.svelte-1xgz5ag{padding:.5rem 1rem;font-size:.875rem;font-weight:600;color:#334155;cursor:default}.menu-item.svelte-1xgz5ag{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;border:none;background:none;font:inherit;font-size:.875rem;color:#0f172a;text-align:left;text-decoration:none;cursor:pointer}.menu-item.svelte-1xgz5ag:hover{background:#f1f5f9}.icon.svelte-1xgz5ag{width:1.25rem;text-align:center}.divider.svelte-1xgz5ag{height:1px;margin:.35rem 0;background:#e2e8f0}.logout.svelte-1xgz5ag{color:#b91c1c}.logout.svelte-1xgz5ag:hover{background:#fef2f2}.app-shell.svelte-12qhfyh{--app-header-height: 64px;--app-banner-height: 0px;--app-top-offset: calc(var(--app-header-height) + var(--app-banner-height));--sidebar-width: 0px;min-height:100vh;background:#f5f7fb}.app-shell.has-sidebar.svelte-12qhfyh{--sidebar-width: 220px}.app-shell.sidebar-collapsed.svelte-12qhfyh{--sidebar-width: 56px}.app-shell.has-2fa-banner.svelte-12qhfyh{--app-banner-height: 3.25rem}.app-topbar.svelte-12qhfyh{position:fixed;top:0;left:0;right:0;z-index:200;background:#fff;box-shadow:0 1px 3px #0f172a0f}.topbar-inner.svelte-12qhfyh{display:flex;align-items:center;gap:.75rem;height:var(--app-header-height);padding:0 1rem;border-bottom:1px solid #e2e8f0;box-sizing:border-box}.mobile-menu-btn.svelte-12qhfyh{display:none;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;color:#334155;font-size:1.1rem;cursor:pointer;flex-shrink:0}.mobile-menu-btn.svelte-12qhfyh:hover{background:#f1f5f9}.brand.svelte-12qhfyh{display:flex;align-items:center;gap:.75rem;flex-shrink:0;line-height:1.2;text-decoration:none;color:inherit;min-width:0}.brand-logo.svelte-12qhfyh{display:block;width:auto;max-width:92px;height:auto;max-height:44px;object-fit:contain;flex-shrink:0}.brand-title.svelte-12qhfyh{font-size:.9375rem;font-weight:600;color:#1e293b;white-space:nowrap}.banner-2fa.svelte-12qhfyh{background:#fef3c7;border-bottom:1px solid #fcd34d;color:#92400e;padding:.75rem 1rem;font-weight:500;font-size:.875rem}.banner-2fa.svelte-12qhfyh a:where(.svelte-12qhfyh){color:#b45309;font-weight:600}.main--shell.svelte-12qhfyh{margin-left:var(--sidebar-width);padding-top:calc(var(--app-top-offset) + 32px);transition:margin-left .2s ease;box-sizing:border-box}.main--with-sidebar.svelte-12qhfyh{max-width:none;width:calc(100% - var(--sidebar-width))}.skeleton-bar.svelte-12qhfyh{display:inline-block;height:.875rem;border-radius:4px;background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9,#e2e8f0 75%);background-size:200% 100%;animation:svelte-12qhfyh-skeleton-shimmer 1.2s ease-in-out infinite}.skeleton-logo.svelte-12qhfyh{width:66px;height:44px}.skeleton-title.svelte-12qhfyh{width:8rem;flex:1}.skeleton-user.svelte-12qhfyh{width:6rem;border-radius:999px}@keyframes svelte-12qhfyh-skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media(max-width:960px){.mobile-menu-btn.svelte-12qhfyh{display:inline-flex}.main--shell.svelte-12qhfyh,.main--with-sidebar.svelte-12qhfyh{margin-left:0;width:100%}.brand-title.svelte-12qhfyh{font-size:.8125rem}}
