@import "https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700;800&family=Inter:wght@300;400;500;600;700&display=swap";:root{--color-brand-primary:#245266;--color-brand-primary-hover:#2b6179;--color-brand-secondary:#7bb5a3;--color-brand-accent:#032c2a;--color-brand-light:#d4e6d6;--color-brand-muted:#879789;--color-brand-surface:#fdfefa;--color-ink:#1a1a2e;--color-rail:#f7fbf8;--color-mark-cyan:#04b0be;--color-mark-red:#c94851;--color-mark-brown:#632820;--color-mark-teal:#2b6179;--color-success-fg:#166534;--color-success-bg:#dcfce7;--color-success-border:#86efac;--color-success-solid:#15803d;--color-warning-fg:#92400e;--color-warning-bg:#fef3c7;--color-warning-border:#fde68a;--color-warning-solid:#f59e0b;--color-danger-fg:#b91c1c;--color-danger-bg:#fef2f2;--color-danger-border:#fca5a5;--color-danger-solid:#dc2626;--color-info-fg:#1d4ed8;--color-info-bg:#eff6ff;--color-info-border:#93c5fd;--color-text-secondary:#546b57;--color-status-icon:#4e8a76;--primary:var(--color-brand-primary);--primary-hover:var(--color-brand-primary-hover);--accent:var(--color-brand-secondary);--text-body:var(--color-ink);--text-heading:var(--color-brand-accent);--text-muted:var(--color-text-secondary);--text-on-primary:#fff;--text-link:var(--color-brand-primary);--surface-page:var(--color-brand-surface);--surface-card:#fff;--surface-subtle:var(--color-rail);--surface-rail:var(--color-rail);--surface-invert:var(--color-brand-primary);--border-default:var(--color-brand-light);--border-strong:var(--color-brand-secondary);--focus-ring:var(--color-brand-primary);--font-heading:"Open Sans", system-ui, -apple-system, sans-serif;--font-body:"Inter", system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-2xs:10px;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extra:800;--leading-tight:1.2;--leading-snug:1.35;--leading-normal:1.5;--leading-relaxed:1.65;--tracking-tight:-.01em;--tracking-normal:0;--tracking-wide:.04em;--tracking-wider:.08em;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-full:9999px;--shadow-xs:0 1px 2px #2452660f;--shadow-card:0 4px 20px #24526614;--shadow-modal:0 8px 32px #24526624;--shadow-none:none;--header-height:56px;--rail-left-width:240px;--rail-right-width:260px;--transition-fast:.15s ease;--transition-base:.2s ease}@layer base{*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--leading-normal);background-color:var(--surface-page);color:var(--text-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-heading);letter-spacing:var(--tracking-tight);margin:0}a{color:var(--text-link);text-decoration:none}::selection{background:var(--color-brand-light);color:var(--color-brand-accent)}}:root{--on-primary-text:#ffffffe6;--on-primary-text-strong:var(--text-on-primary);--on-primary-border:#ffffff40;--on-primary-hover-bg:#ffffff1a;--on-primary-active-bg:#fff3;--on-primary-active-border:#ffffff4d;--input-border:var(--color-brand-muted);--overlay:color-mix(in srgb, var(--color-brand-accent) 32%, transparent)}#root{min-height:100vh}h1,h2{font-weight:var(--weight-bold)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-shell{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-header{height:var(--header-height);background:var(--surface-invert);z-index:50;flex:none;position:relative}.app-header__inner{height:100%;padding:0 var(--space-6);align-items:center;gap:var(--space-3);display:flex}.app-header__logo{flex:none;width:auto;height:24px;display:block}.app-header__rule{background:var(--on-primary-border);flex:none;width:1px;height:20px}.app-header__name{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:var(--text-lg);letter-spacing:var(--tracking-tight);color:var(--text-on-primary);white-space:nowrap}.app-header__nav{gap:var(--space-1);margin-left:var(--space-2);display:flex}.app-header__nav-link{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:6px var(--space-3);border-radius:var(--radius-md);color:var(--on-primary-text);box-shadow:inset 0 0 0 1px var(--on-primary-border);white-space:nowrap;transition:background-color var(--transition-fast), color var(--transition-fast)}.app-header__nav-link:hover{background:var(--on-primary-hover-bg);color:var(--on-primary-text-strong)}.app-header__nav-link--active,.app-header__nav-link--active:hover{background:var(--on-primary-active-bg);color:var(--on-primary-text-strong);box-shadow:inset 0 0 0 1px var(--on-primary-active-border)}.app-header__spacer{flex:1}.app-header__icon-btn{border-radius:var(--radius-md);width:32px;height:32px;color:var(--on-primary-text);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:inline-flex}.app-header__icon-btn:hover{background:var(--on-primary-hover-bg);color:var(--on-primary-text-strong)}.app-header__menu-toggle{display:none}.app-header__avatar{border-radius:var(--radius-full);background:var(--accent);width:32px;height:32px;color:var(--color-brand-accent);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:default;flex:none;justify-content:center;align-items:center;display:inline-flex}.app-header :focus-visible{outline-color:var(--text-on-primary)}.app-header__menu{gap:var(--space-1);padding:var(--space-3) var(--space-6) var(--space-4);background:var(--surface-invert);border-top:1px solid var(--on-primary-border);box-shadow:var(--shadow-modal);flex-direction:column;display:flex;position:absolute;top:100%;left:0;right:0}.app-header__menu .app-header__nav-link{font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}.app-header__menu-user{padding:0 var(--space-1) var(--space-3);margin-bottom:var(--space-2);border-bottom:1px solid var(--on-primary-border)}.app-header__menu-user-name{font-weight:var(--weight-semibold);color:var(--on-primary-text-strong)}.app-header__menu-user-role{font-size:var(--text-xs);color:var(--on-primary-text)}@media (width>=1100px) and (width<=1439px){.app-header__rule,.app-header__name{display:none}}@media (width<=1099px){.app-header__inner>.app-header__nav{display:none}.app-header__menu-toggle{display:inline-flex}}@media (width>=1100px){.app-header__menu{display:none}}@media (width<=640px){.app-header__inner{padding:0 var(--space-4)}.app-header__rule,.app-header__name{display:none}}.app-shell__content{min-height:0;padding:var(--space-6) var(--space-8);background:var(--surface-page);flex:1;overflow-y:auto}@media (width<=640px){.app-shell__content{padding:var(--space-4)}}.auth-screen{min-height:100vh;padding:var(--space-4);background:var(--surface-rail);justify-content:center;align-items:center;display:flex}.auth-card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;max-width:384px;box-shadow:var(--shadow-modal);overflow:hidden}.auth-card__band{background:var(--surface-invert);padding:var(--space-8) var(--space-8) 28px;text-align:center}.auth-card__logo{width:auto;height:28px;margin:0 auto var(--space-4);display:block}.auth-card__title{color:var(--text-on-primary);font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight)}.auth-card__subtitle{color:var(--on-primary-text);font-size:var(--text-sm);margin:var(--space-1) 0 0}.auth-card__body{padding:28px var(--space-8) var(--space-8);gap:var(--space-5);flex-direction:column;display:flex}.auth-card__message{color:var(--text-muted);font-size:var(--text-sm);line-height:var(--leading-relaxed);text-align:center;margin:0}.auth-card__btn{justify-content:center;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--primary);color:var(--text-on-primary);font:var(--weight-semibold) var(--text-sm)/1 var(--font-body);cursor:pointer;transition:background-color var(--transition-fast);border:0;display:flex}.auth-card__btn:hover{background:var(--primary-hover)}.auth-card__btn:disabled{opacity:.7;cursor:progress}.auth-card__foot{border-top:1px solid var(--border-default);padding-top:var(--space-3);text-align:center;font-size:var(--text-xs);color:var(--text-muted)}.page-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:flex-start;display:flex}.page-header__breadcrumb{font-size:var(--text-sm);color:var(--text-muted)}.page-header__title{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:-.01em;margin-top:var(--space-1)}.page-header__right{align-items:center;gap:var(--space-4);margin-top:var(--space-1);display:flex}.page-header__actions{align-items:center;gap:var(--space-2);display:flex}.page-header__divider{background:var(--border-strong);align-self:stretch;width:1px}.page-header__as-on-label{font-size:var(--text-xs);color:var(--text-muted);text-align:right}.page-header__as-on-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-sm);font-weight:var(--weight-semibold);margin-top:var(--space-1)}.page-placeholder{color:var(--text-muted)}.drawer-overlay{background:var(--overlay);z-index:100;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--surface-card);width:440px;max-width:100%;height:100%;box-shadow:var(--shadow-modal);overflow-y:auto}.drawer__header{justify-content:space-between;gap:var(--space-3);padding:var(--space-6) var(--space-6) 0;display:flex}.drawer__invoice-no{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-xs);color:var(--text-muted)}.drawer__vendor-name{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:var(--weight-bold);margin-top:var(--space-1)}.drawer__close{cursor:pointer;border:1px solid var(--input-border);background:var(--surface-card);border-radius:var(--radius-md);width:30px;height:30px;font-size:var(--text-base);color:var(--text-body);flex:none}.drawer__close:hover{background:var(--primary);color:var(--text-on-primary);border-color:var(--primary)}.drawer__badges{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-6) var(--space-5);border-bottom:1px solid var(--border-default);display:flex}.drawer__amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-3xl);font-weight:var(--weight-bold);letter-spacing:-.02em;padding:var(--space-5) var(--space-6) 0}.drawer__description{font-size:var(--text-sm);color:var(--text-muted);margin:var(--space-2) var(--space-6) 0;line-height:1.5}.drawer__grid{background:var(--border-default);border:1px solid var(--border-default);border-radius:var(--radius-lg);margin:var(--space-5) var(--space-6) 0;grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.drawer__grid-cell{background:var(--surface-card);padding:var(--space-3) var(--space-4)}.drawer__grid-label{font-size:var(--text-xs);color:var(--text-muted)}.drawer__grid-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-sm);margin-top:var(--space-1)}.drawer__ageing--overdue{color:var(--color-danger-fg)}.drawer__ageing--soon{color:var(--color-warning-fg)}.drawer__ageing--future{color:var(--primary)}.drawer__ageing--ontime{color:var(--color-success-fg)}.drawer__section-title{font-size:var(--text-xs);color:var(--text-muted);margin:var(--space-6) var(--space-6) var(--space-3)}.drawer__record{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:0 var(--space-4);margin:0 var(--space-6)}.drawer__record-row{justify-content:space-between;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-default);font-size:var(--text-sm);display:flex}.drawer__record-row span:first-child{color:var(--text-muted)}.drawer__record-row--last{border-bottom:none}.drawer__capture-btn{width:calc(100% - 2 * var(--space-6));margin:var(--space-5) var(--space-6) var(--space-6);text-align:center;display:block}.drawer__lock-note{margin:var(--space-5) var(--space-6) var(--space-6);font-size:var(--text-xs);color:var(--text-muted);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-3) var(--space-3);background:var(--surface-subtle);line-height:1.5}.chips{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.chip{border:1px solid var(--input-border);background:var(--surface-card);color:var(--text-body);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast)}.chip:hover{background:var(--color-brand-light)}.chip--active{background:var(--primary);border-color:var(--primary);color:var(--text-on-primary);font-weight:var(--weight-semibold)}.chip--active:hover{background:var(--primary)}.chip__hint{color:inherit;opacity:.7;font-size:var(--text-xs)}.btn{border:1px solid var(--input-border);background:var(--surface-card);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);cursor:pointer;color:var(--text-body);font-family:var(--font-body);transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast)}.btn:hover{background:var(--color-brand-light)}.btn--primary{background:var(--primary);border-color:var(--primary);color:var(--text-on-primary);font-weight:var(--weight-semibold);padding:var(--space-2) var(--space-4)}.btn--primary:hover{background:var(--primary-hover)}.btn--danger{background:var(--color-danger-solid);border-color:var(--color-danger-solid);color:var(--text-on-primary);font-weight:var(--weight-semibold);padding:var(--space-2) var(--space-4)}.btn--danger:hover{background:var(--color-danger-fg)}.btn--sm{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.btn:disabled{opacity:.5;cursor:not-allowed}.row-btn{cursor:pointer;border-radius:var(--radius-md);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);white-space:nowrap;font-family:var(--font-body);transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast)}.row-btn--primary{border:1px solid var(--primary);background:var(--primary);color:var(--text-on-primary);font-weight:var(--weight-semibold)}.row-btn--primary:hover{background:var(--primary-hover)}.row-btn--neutral{border:1px solid var(--input-border);background:var(--surface-card);color:var(--text-body)}.row-btn--neutral:hover{background:var(--primary);color:var(--text-on-primary);border-color:var(--primary)}.row-btn--danger{border:1px solid var(--color-danger-border);background:var(--surface-card);color:var(--color-danger-fg)}.row-btn--danger:hover{background:var(--color-danger-solid);color:var(--text-on-primary);border-color:var(--color-danger-solid)}.row-btn:disabled{opacity:.5;cursor:not-allowed}.table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;background:var(--surface-card);width:100%;font-size:var(--text-sm)}.col-payment-date{min-width:190px}.col-payment-ref{min-width:140px}.col-payment-bank{min-width:150px}.col-remarks{min-width:200px}.col-actions{white-space:nowrap;width:1%;min-width:200px}.col-actions--single{min-width:110px}.data-table th{text-align:left;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);background:var(--surface-subtle);border-bottom:1px solid var(--border-strong);padding:var(--space-3) var(--space-4);white-space:nowrap}.data-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-default);vertical-align:middle;font-size:var(--text-sm)}:is(.data-table tbody tr:has(.status-pill--overdue) td:first-child,.data-table tbody tr:has(.status-pill--reject) td:first-child){border-left:3px solid var(--color-danger-solid)}.data-table tbody tr:has(.status-pill--soon) td:first-child{border-left:3px solid var(--color-warning-solid)}.data-table tbody tr:has(.status-pill--future) td:first-child{border-left:3px solid var(--primary)}:is(.data-table tbody tr:has(.status-pill--ontime) td:first-child,.data-table tbody tr:has(.status-pill--insert) td:first-child){border-left:3px solid var(--color-success-solid)}.data-table tbody tr:has(.status-pill--update) td:first-child{border-left:3px solid var(--text-body)}.data-table td.cell-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.data-table td.cell-strong{font-weight:var(--weight-semibold);font-size:var(--text-sm);min-width:180px}.data-table td.cell-description{color:var(--text-muted);white-space:normal;min-width:280px;max-width:360px;line-height:1.4}.data-table td.cell-amount{font-weight:var(--weight-semibold);color:var(--text-body)}.data-table td.cell-ageing{font-weight:var(--weight-semibold);font-size:var(--text-sm)}.data-table td.cell-ageing--overdue{color:var(--color-danger-fg)}.data-table td.cell-ageing--soon{color:var(--color-warning-fg)}.data-table td.cell-ageing--future{color:var(--primary)}.row--clickable{cursor:pointer}.row--clickable:hover{background:var(--surface-subtle)}.row--warning{background:var(--color-warning-bg)}.actions-cell{gap:var(--space-2);white-space:nowrap;display:flex}.empty-state{color:var(--text-muted);padding:var(--space-6) 0;font-family:var(--font-body);font-size:var(--text-base)}.status-pill{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;display:inline-flex}.status-pill:before{content:"";background:currentColor;border-radius:2px;flex:none;width:7px;height:7px}.status-pill--overdue,.status-pill--reject{color:var(--color-danger-fg)}.status-pill--soon{color:var(--color-warning-fg)}.status-pill--future{color:var(--primary)}.status-pill--ontime,.status-pill--insert{color:var(--color-success-fg)}.status-pill--update{color:var(--text-body)}.status-pill--neutral{color:var(--text-muted)}.inline-payment{gap:var(--space-1);flex-wrap:nowrap;align-items:center;display:flex}.inline-payment input,.inline-payment__ref,.inline-payment__bank{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-xs);padding:var(--space-1) var(--space-1);border:1px solid var(--input-border);border-radius:var(--radius-md);background:var(--surface-card);outline:none}.inline-payment input[type=date]{width:128px}.inline-payment__ref{width:100%;max-width:150px}.inline-payment__bank{width:100%;max-width:150px;font-family:var(--font-body)}.inline-payment--placeholder{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs)}.remarks-cell input{width:160px;font-size:var(--text-sm);padding:var(--space-1) var(--space-2);border:1px solid var(--input-border);border-radius:var(--radius-md);background:var(--surface-card);outline:none}.remarks-cell--readonly{width:160px;font-size:var(--text-sm);padding:var(--space-1) var(--space-2);color:var(--text-body)}.remarks-cell__status{font-size:var(--text-xs);color:var(--text-muted);display:block}.form-error{background:var(--color-danger-bg);color:var(--color-danger-fg);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-3);font-size:var(--text-sm)}.form-error--sm{font-size:var(--text-xs);background:0 0;padding:2px 0}.field{margin-bottom:var(--space-3);display:block}.field span{font-size:var(--text-xs);color:var(--text-muted);margin-bottom:var(--space-1);display:block}.field input,.field select{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--input-border);border-radius:var(--radius-md);background:var(--surface-card);font-size:var(--text-sm);outline:none}.field input:focus,.field select:focus{border-color:var(--border-strong)}.modal-overlay{background:var(--overlay);z-index:200;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface-card);border:1px solid var(--border-strong);border-radius:var(--radius-xl);width:440px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-modal);overflow-y:auto}.modal__header{margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;display:flex}.modal__header h2{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:var(--weight-bold)}.modal__footer{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4);display:flex}.summary-row{gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.summary-card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);min-width:130px}.summary-card__label{font-size:var(--text-xs);color:var(--text-muted)}.summary-card__value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-lg);font-weight:var(--weight-bold);margin-top:var(--space-1)}.drop-zone{border:2px dashed var(--input-border);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;color:var(--text-muted);cursor:pointer;margin-bottom:var(--space-4);background:var(--surface-card)}.drop-zone--active{border-color:var(--primary);background:var(--color-brand-light)}.import-actions{margin:var(--space-4) 0}.warning-banner{background:var(--color-warning-bg);color:var(--color-warning-fg);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-3);font-size:var(--text-sm)}.warning-banner ul{margin:var(--space-1) 0 0;padding-left:var(--space-5)}.preview-summary{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-2)}.busy-state{align-items:center;gap:var(--space-4);padding:var(--space-16) 0;color:var(--text-muted);flex-direction:column;display:flex}.spinner{border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:var(--radius-full);width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.done-summary h2{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:var(--weight-bold)}.done-summary__actions{gap:var(--space-2);margin-top:var(--space-4);display:flex}.audit-log-table{table-layout:fixed}.audit-log-table th:first-child,.audit-log-table td:first-child{width:190px}.audit-log-table th:nth-child(2),.audit-log-table td:nth-child(2){width:130px}.audit-log-table th:nth-child(3),.audit-log-table td:nth-child(3){width:150px}.audit-log-table th:nth-child(4),.audit-log-table td:nth-child(4){width:160px}.audit-log-table td:nth-child(4){white-space:normal;word-break:break-word}.audit-log-table th:nth-child(5),.audit-log-table td:nth-child(5){width:auto}.audit-entry__changes ul{padding-left:var(--space-4);font-size:var(--text-sm);margin:0}.audit-entry__changes li{padding:2px 0}.search-box{font:inherit;height:38px;padding:0 var(--space-3);border:1px solid var(--input-border);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-body);min-width:240px}.export-button{height:38px;padding:0 var(--space-4);align-items:center;display:inline-flex}.search-box:focus{border-color:var(--border-strong);outline:none}.toast{background:var(--surface-invert);color:var(--text-on-primary);padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-sm);z-index:100;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.panel{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5)}.panel h2{font-family:var(--font-heading);font-size:var(--text-base);font-weight:var(--weight-bold);margin-bottom:var(--space-3)}.panel__header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.panel__header h2{margin-bottom:0}.panel__subtitle{font-size:var(--text-xs);color:var(--text-muted);margin-top:calc(var(--space-1) * -1);margin-bottom:var(--space-3)}.text-soft{color:var(--text-muted)}.fund-position__grid{gap:var(--space-6);grid-template-columns:minmax(340px,1fr) minmax(0,1.6fr);align-items:start;display:grid}@media (width<=900px){.fund-position__grid{grid-template-columns:1fr}}.cash-position__ageing-grid{gap:var(--space-6);grid-template-columns:minmax(320px,1fr) minmax(0,1.6fr);align-items:start;display:grid}@media (width<=900px){.cash-position__ageing-grid{grid-template-columns:1fr}}.fund-position__summary{border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden}.fund-position__table{border-collapse:collapse;width:100%}.fund-position__table td{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--text-body);border-bottom:1px solid var(--border-default)}.fund-position__table tr:last-child td{border-bottom:none}.fund-position__amount-cell{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-base);white-space:nowrap}.fund-position__amount-cell--danger{color:var(--color-danger-fg)}.fund-position__amount-cell--big{font-size:var(--text-3xl);font-weight:var(--weight-bold);letter-spacing:-.02em}.fund-position__row--highlight.is-surplus{background:var(--color-success-bg);color:var(--color-success-fg)}.fund-position__row--highlight.is-shortfall{background:var(--color-danger-bg);color:var(--color-danger-fg)}.fund-position__tag-row{align-items:center;gap:var(--space-2);display:flex}.fund-position__dot{background:currentColor;border-radius:2px;flex:none;width:8px;height:8px}.fund-position__tag-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:currentColor}.fund-position__note{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-2)}.fund-position__banks{border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden}.fund-position__banks-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-subtle);border-bottom:1px solid var(--border-default);display:flex}.fund-position__banks-title{font-size:var(--text-xs);color:var(--text-muted)}.fund-position__banks .data-table{font-size:var(--text-xs);table-layout:auto}.fund-position__banks .data-table th{padding:var(--space-2) var(--space-3);white-space:normal;word-break:break-word}.fund-position__banks .data-table td{padding:var(--space-3) var(--space-3)}.fund-position__banks .data-table td.cell-strong,.fund-position__banks .data-table td.cell-mono{font-size:var(--text-xs);white-space:nowrap}.fund-position__banks .data-table th.col-remarks,.fund-position__banks .data-table td.col-remarks{min-width:0}.fund-position__banks .data-table .col-remarks__text{text-overflow:ellipsis;white-space:nowrap;cursor:default;width:80px;display:block;overflow:hidden}.fund-position__banks .data-table th.col-actions,.fund-position__banks .data-table td.col-actions{white-space:nowrap;min-width:0}.fund-position__banks .table-scroll{scrollbar-width:thin;max-height:420px;overflow:auto}.fund-position__banks .table-scroll::-webkit-scrollbar{height:8px}.fund-position__banks .table-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}.fund-position__banks .data-table thead th{z-index:1;position:sticky;top:0}.fund-position__banks-total td{padding:var(--space-3) var(--space-4);font-weight:var(--weight-semibold);font-size:var(--text-xs);background:var(--surface-subtle);white-space:nowrap;border-bottom:none;position:sticky;bottom:0}.btn--outline-accent{border-color:var(--primary);color:var(--primary);background:var(--surface-card)}.btn--outline-accent:hover{background:var(--color-brand-light)}.commitment-cards{border:1px solid var(--border-default);border-radius:var(--radius-lg);margin-bottom:var(--space-5);display:flex;overflow:hidden}.commitment-card{text-align:left;font:inherit;color:inherit;cursor:pointer;background:var(--surface-card);border:none;border-right:1px solid var(--border-default);padding:var(--space-4) var(--space-5);flex:1}.commitment-card:last-child{border-right:none}.commitment-card:hover,.commitment-card--overdue{background:var(--surface-subtle)}.commitment-card__tag{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted);margin-bottom:var(--space-2);display:flex}.commitment-card__dot{border-radius:2px;flex:none;width:8px;height:8px}.commitment-card--overdue .commitment-card__dot{background:var(--color-danger-solid)}.commitment-card--dueSoon .commitment-card__dot{background:var(--color-warning-solid)}.commitment-card--due30 .commitment-card__dot{background:var(--primary)}.commitment-card__amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-2xl);font-weight:var(--weight-bold);margin-bottom:var(--space-1)}.commitment-card--overdue .commitment-card__amount{color:var(--color-danger-fg)}.commitment-card--dueSoon .commitment-card__amount{color:var(--color-warning-fg)}.commitment-card--due30 .commitment-card__amount{color:var(--primary)}.commitment-card__note{font-size:var(--text-xs);color:var(--text-muted)}.commitment-outflow__label{font-size:var(--text-xs);color:var(--text-muted);margin-bottom:var(--space-2)}@media (width<=640px){.commitment-cards{flex-direction:column}.commitment-card{border-right:none;border-bottom:1px solid var(--border-default)}.commitment-card:last-child{border-bottom:none}}.outflow-chart-wrap{position:relative}.outflow-chart__axis-max{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-xs);color:var(--text-muted);position:absolute;top:0;left:0}.outflow-chart{align-items:flex-end;gap:var(--space-1);height:140px;padding-top:var(--space-5);border-bottom:1px solid var(--border-default);display:flex}.outflow-chart__bar-wrap{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex}.outflow-chart__bar{border-radius:2px 2px 0 0;width:100%;min-height:2px}.outflow-chart__bar--soon{background:var(--color-warning-solid)}.outflow-chart__bar--future{background:var(--primary)}.outflow-chart__bar--nil{background:var(--border-strong)}.outflow-chart__day{font-size:var(--text-2xs);color:var(--text-muted);margin-top:var(--space-1);white-space:nowrap}.row--total td{font-weight:var(--weight-bold);border-top:2px solid var(--border-strong)}.ageing-summary-table__tag{align-items:center;gap:var(--space-2);display:inline-flex}.ageing-summary-table__dot{border-radius:2px;flex:none;width:8px;height:8px}.ageing-summary-table__tag--overdue .ageing-summary-table__dot{background:var(--color-danger-solid)}.ageing-summary-table__tag--soon .ageing-summary-table__dot{background:var(--color-warning-solid)}.ageing-summary-table__tag--future .ageing-summary-table__dot{background:var(--primary)}.most-aged__vendor-code{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-xs);font-weight:var(--weight-regular);color:var(--text-muted);margin-top:2px}.most-aged__scroll{height:420px;overflow:hidden auto}.most-aged .data-table thead th{z-index:1;position:sticky;top:0}
