:root{--tk-primary:#e34234;--tk-primary-hover:#c8392b;--tk-primary-active:#a52f25;--tk-secondary:#1c1917;--tk-secondary-hover:#292524;--tk-secondary-active:#0c0a09;--neutral-50:#fafaf9;--neutral-100:#f5f5f4;--neutral-200:#e7e5e4;--neutral-300:#d6d3d1;--neutral-400:#a8a29e;--neutral-500:#78716c;--neutral-600:#57534e;--neutral-700:#44403c;--neutral-800:#292524;--neutral-900:#1c1917;--neutral-950:#0c0a09;--tk-text:var(--neutral-900);--tk-text-muted:var(--neutral-500);--tk-text-subtle:var(--neutral-400);--tk-border:var(--neutral-200);--tk-border-strong:var(--neutral-300);--tk-surface:#fff;--tk-surface-alt:var(--neutral-50);--tk-surface-hover:var(--neutral-100);--status-success:#15803d;--status-success-soft:#dcfce7;--status-success-text:#14532d;--status-warning:#b45309;--status-warning-soft:#fef3c7;--status-warning-text:#78350f;--status-danger:#991b1b;--status-danger-soft:#fee2e2;--status-danger-text:#7f1d1d;--status-info:#3b82f6;--status-info-soft:#dbeafe;--status-info-text:#1e40af;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.15;--leading-snug:1.25;--leading-normal:1.5;--leading-relaxed:1.65;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:3px;--radius-md:5px;--radius-lg:6px;--radius-pill:999px;--shadow-sm:0 1px 2px #1c19170f;--shadow-md:0 4px 12px #1c191714;--shadow-lg:0 12px 24px #1c19171f;--duration-fast:.1s;--duration-base:.15s;--duration-slow:.2s;--duration-slower:.3s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--focus-ring:0 0 0 3px #e342344d;--focus-ring-on-dark:0 0 0 2px #fff9;--focus-ring-danger:0 0 0 3px #991b1b4d;--header-height:4rem;--subheader-height:3.5rem;--content-max-width:90rem}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--tk-text);background:var(--tk-surface-alt);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}.page{gap:var(--space-3);flex-direction:column;display:flex}.page__section+.page__section{margin-top:var(--space-3)}.form-row{gap:var(--space-4);flex-flow:wrap;align-items:flex-start;display:flex}.form-grid{gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:flex-start;display:flex}.form-grid>section{flex:20rem;max-width:37.5rem;margin:0}.form-card{background:var(--tk-surface);border:1px solid var(--tk-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.form-card>*+*{border-top:1px solid var(--tk-border)}.form-card__block{padding:var(--space-4) var(--space-5)}.form-card__header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);display:flex}.form-card__header-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--tk-text);min-width:0}.form-card__header-action{flex-shrink:0}.form-card__block--metadata{gap:var(--space-3) var(--space-5);grid-template-columns:repeat(auto-fit,minmax(12.5rem,1fr));display:grid}.form-card__row{flex-wrap:wrap;display:flex}.form-card__row>.form-section{flex:20rem;min-width:0}.form-card__row>.form-section+.form-section{border-left:1px solid var(--tk-border)}@media (width<=40rem){.form-card__row>.form-section+.form-section{border-left:none;border-top:1px solid var(--tk-border)}}.form-section{flex-direction:column;display:flex}.form-section__title{padding:var(--space-3) var(--space-5) 0;font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--tk-text);margin:0}.form-section__body{padding:var(--space-3) var(--space-5) var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.skeleton-bar{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--neutral-100) 0%, var(--neutral-200) 50%, var(--neutral-100) 100%);background-size:200% 100%;height:.875rem;animation:1.4s ease-in-out infinite skeleton-shimmer}.skeleton-bar--title{width:10rem;height:1.25rem}.skeleton-bar--input{flex:12.5rem;min-width:10rem;height:2.25rem}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.input{flex-direction:column;gap:.25rem;min-width:0;display:flex}.input--label-left{align-items:center;gap:var(--space-3);flex-direction:row}.input--label-left .input__label{flex-shrink:0}.input__label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--tk-text);align-items:baseline;gap:.25rem;display:inline-flex}.input__error-marker{color:var(--status-danger)}.input__field{font-family:var(--font-body);font-size:var(--text-base);color:var(--tk-text);background:var(--tk-surface);border:1px solid var(--tk-border-strong);border-radius:var(--radius-md);box-sizing:border-box;width:100%;transition:border-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);appearance:none;padding:.5rem .75rem}.input__field:hover:not(:disabled){border-color:var(--neutral-400)}.input__field:focus-visible{border-color:var(--tk-primary);box-shadow:var(--focus-ring);outline:none}.input__field:disabled{background:var(--neutral-100);color:var(--tk-text-subtle);cursor:not-allowed}.input--error .input__field{border-color:var(--status-danger)}.input--error .input__field:focus-visible{box-shadow:var(--focus-ring-danger)}.input__helper-text{font-size:var(--text-xs);color:var(--tk-text-muted);margin:0}.input__error-text{font-size:var(--text-xs);color:var(--status-danger);margin:0}.input__field--sm{font-size:var(--text-sm);padding:.3125rem .5rem}.input__field--lg{font-size:var(--text-md);padding:.625rem .875rem}.button{font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-semibold);padding:var(--space-2) var(--space-4);cursor:pointer;border-radius:var(--radius-md);white-space:nowrap;justify-content:center;align-items:center;gap:var(--space-2);color:var(--tk-text);transition:background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);background:0 0;border:1px solid #0000;line-height:1.4;display:inline-flex}.button:focus-visible{box-shadow:var(--focus-ring);outline:none}.button--destructive:focus-visible{box-shadow:var(--focus-ring-danger)}.button__icon{flex-shrink:0;width:1rem;height:1rem}.button:disabled{cursor:not-allowed;background:var(--neutral-100);color:var(--tk-text-subtle);border-color:#0000}.button:disabled:hover{background:var(--neutral-100);color:var(--tk-text-subtle)}.button--primary{background:var(--tk-primary);color:#fff}.button--primary:hover{background:var(--tk-primary-hover)}.button--primary:active{background:var(--tk-primary-active)}.button--secondary{background:var(--tk-surface);color:var(--tk-text);border-color:var(--tk-border-strong)}.button--secondary:hover{background:var(--tk-surface-hover);border-color:var(--neutral-400)}.button--ghost{color:var(--tk-text-muted);background:0 0;border-color:#0000}.button--ghost:hover{background:var(--tk-surface-hover);color:var(--tk-text)}.button--destructive{background:var(--status-danger);color:#fff}.button--destructive:hover{background:#991b1b}.button--xs{font-size:var(--text-xs);padding:var(--space-1) var(--space-2)}.button--sm{font-size:var(--text-sm);padding:var(--space-1) var(--space-3)}.button--lg{padding:var(--space-2) var(--space-5)}.button--xl{padding:var(--space-3) var(--space-6);font-size:var(--text-md)}.button--full{width:100%}.button--active{background:var(--tk-secondary);color:#fff;border-color:#0000}.button--active:hover{background:var(--tk-secondary-hover);color:#fff}.icon-button{border-radius:var(--radius-sm);cursor:pointer;color:var(--tk-text-muted);padding:var(--space-1);transition:background-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--tk-surface-hover);color:var(--tk-text)}.icon-button:focus-visible{box-shadow:var(--focus-ring);outline:none}.icon-button:disabled{cursor:not-allowed;color:var(--tk-text-subtle);background:0 0}.icon-button:disabled:hover{color:var(--tk-text-subtle);background:0 0}.icon-button--danger{color:var(--status-danger)}.icon-button--danger:hover{background:var(--status-danger-soft);color:var(--status-danger)}.icon-button--danger:focus-visible{box-shadow:var(--focus-ring-danger)}.icon-button--sm svg{width:.875rem;height:.875rem}.icon-button--md svg{width:1rem;height:1rem}.icon-button--lg svg{width:1.25rem;height:1.25rem}.page-action-bar{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.page-action-bar__title-group{flex-direction:column;gap:.125rem;min-width:0;display:flex}.page-action-bar__title{font-size:var(--text-xl);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--tk-text);margin:0}.page-action-bar__subtitle{font-size:var(--text-sm);color:var(--tk-text-muted);margin:0}.page-action-bar__middle{justify-content:center;align-items:center;gap:var(--space-2);flex:auto;min-width:0;display:flex}.spinner{margin:var(--space-4) auto;border-style:solid;border-color:var(--neutral-200);border-top-color:var(--tk-primary);box-sizing:border-box;border-radius:50%;animation:.75s linear infinite spinner-rotate;display:block}.spinner--inline{vertical-align:middle;margin:0;display:inline-block}.spinner--sm{border-width:2px;width:1rem;height:1rem}.spinner--md{border-width:2px;width:1.5rem;height:1.5rem}.spinner--lg{border-width:3px;width:2.5rem;height:2.5rem}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.data-table{background:var(--tk-surface);border:1px solid var(--tk-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden}.data-table__scroll{overflow-x:auto}.data-table__table{border-collapse:collapse;width:100%;font-size:var(--text-sm);color:var(--tk-text)}.data-table__th{font-weight:var(--weight-semibold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--tk-text-muted);background:var(--tk-surface-alt);border-bottom:1px solid var(--tk-border);white-space:nowrap;padding:.625rem .875rem}.data-table__td{border-bottom:1px solid var(--tk-border);vertical-align:middle;padding:.625rem .875rem}.data-table__table tbody tr:last-child .data-table__td{border-bottom:none}.data-table__row--clickable{cursor:pointer;transition:background-color var(--duration-base) var(--ease-out)}.data-table__row--clickable:hover{background:var(--tk-surface-hover)}.data-table__cell--left{text-align:left}.data-table__cell--center{text-align:center}.data-table__cell--right{text-align:right}.data-table__empty{padding:var(--space-6);text-align:center;color:var(--tk-text-muted);font-size:var(--text-sm)}.data-table__pager{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-top:1px solid var(--tk-border);background:var(--tk-surface-alt);font-size:var(--text-sm);color:var(--tk-text-muted);display:flex}.data-table__pager-status{flex-shrink:0}.data-table__pager-controls{align-items:center;gap:var(--space-2);display:flex}.data-table__pager-page{text-align:center;min-width:7rem}.data-table__pager-btn{border:1px solid var(--tk-border-strong);border-radius:var(--radius-sm);color:var(--tk-text);cursor:pointer;transition:background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);background:0 0;justify-content:center;align-items:center;padding:.25rem;display:inline-flex}.data-table__pager-btn:hover:not(:disabled){background:var(--tk-surface-hover);border-color:var(--neutral-400)}.data-table__pager-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.data-table__pager-btn:disabled{color:var(--tk-text-subtle);cursor:not-allowed;background:var(--neutral-50)}.data-table__pager-btn svg{width:1rem;height:1rem}.dashboard__title{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--tk-text);margin:0}.dashboard__list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.dashboard__row{justify-content:space-between;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--tk-text);padding:var(--space-1) 0;display:flex}.dashboard__row--retainer{align-items:flex-start}.dashboard__row--clickable{cursor:pointer;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-2);margin:0 calc(var(--space-2) * -1);transition:background-color var(--duration-base) var(--ease-out)}.dashboard__row--clickable:hover{background:var(--tk-surface-hover)}.dashboard__retainer-totals{text-align:right}.dashboard__retainer-totals small{font-size:var(--text-xs);display:block}.dashboard__caption{font-size:var(--text-xs);color:var(--tk-text-muted);display:block}.dashboard__empty{font-size:var(--text-sm);color:var(--tk-text-muted);margin:0}.alert{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:var(--leading-normal);border:1px solid #0000;display:flex}.alert__icon{flex-shrink:0;width:1.125rem;height:1.125rem;margin-top:.0625rem}.alert__body{flex:auto;min-width:0}.alert__close{cursor:pointer;color:inherit;opacity:.6;border-radius:var(--radius-sm);transition:opacity var(--duration-base) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.alert__close:hover{opacity:1}.alert__close svg{width:1rem;height:1rem}.alert--success{background:var(--status-success-soft);color:var(--status-success-text);border-color:var(--status-success)}.alert--warning{background:var(--status-warning-soft);color:var(--status-warning-text);border-color:var(--status-warning)}.alert--error{background:var(--status-danger-soft);color:var(--status-danger-text);border-color:var(--status-danger)}.alert--info{background:var(--status-info-soft);color:var(--status-info-text);border-color:var(--status-info)}.dropdown{flex-direction:column;gap:.25rem;min-width:0;display:flex}.dropdown__label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--tk-text);align-items:baseline;gap:.25rem;display:inline-flex}.dropdown__error-marker{color:var(--status-danger)}.dropdown__helper-text{font-size:var(--text-xs);color:var(--tk-text-muted);margin:0}.dropdown__error-text{font-size:var(--text-xs);color:var(--status-danger);margin:0}.dropdown .rs__control{background:var(--tk-surface);border:1px solid var(--tk-border-strong);border-radius:var(--radius-md);cursor:pointer;min-height:2.25rem;font-size:var(--text-base);color:var(--tk-text);transition:border-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);align-items:center;padding:0 .5rem 0 .75rem;display:flex}.dropdown .rs__control:hover{border-color:var(--neutral-400)}.dropdown .rs__control--is-focused{border-color:var(--tk-primary);box-shadow:var(--focus-ring)}.dropdown .rs__control--is-disabled{background:var(--neutral-100);cursor:not-allowed}.dropdown--error .rs__control{border-color:var(--status-danger)}.dropdown--error .rs__control--is-focused{box-shadow:var(--focus-ring-danger)}.dropdown .rs__value-container{flex-wrap:wrap;flex:auto;gap:.25rem;min-width:0;display:flex}.dropdown .rs__single-value{color:var(--tk-text)}.dropdown .rs__placeholder{color:var(--tk-text-subtle)}.dropdown .rs__input-container{color:var(--tk-text);margin:0;padding:0}.dropdown .rs__indicators{color:var(--tk-text-muted);align-items:center;gap:.25rem;display:flex}.dropdown .rs__indicator{cursor:pointer;color:inherit;transition:color var(--duration-base) var(--ease-out);padding:.25rem;display:inline-flex}.dropdown .rs__indicator:hover{color:var(--tk-text)}.dropdown .rs__indicator-separator{display:none}.dropdown .rs__menu{background:var(--tk-surface);border:1px solid var(--tk-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:50;margin-top:.25rem;overflow:hidden}.dropdown .rs__menu-list{max-height:16rem;padding:.25rem;overflow-y:auto}.dropdown .rs__option{border-radius:var(--radius-sm);cursor:pointer;color:var(--tk-text);font-size:var(--text-base);padding:.5rem .625rem}.dropdown .rs__option--is-focused{background:var(--tk-surface-hover)}.dropdown .rs__option--is-selected{background:var(--tk-primary);color:#fff}.dropdown .rs__option--is-disabled{color:var(--tk-text-subtle);cursor:not-allowed}.dropdown .rs__no-options-message{color:var(--tk-text-muted);font-size:var(--text-sm);padding:.5rem .625rem}.dropdown--sm .rs__control{min-height:1.875rem;font-size:var(--text-sm);padding:0 .375rem 0 .5rem}.dropdown--lg .rs__control{min-height:2.75rem;font-size:var(--text-md);padding:0 .625rem 0 .875rem}.toggle-group{background:var(--neutral-100);border:1px solid var(--tk-border);border-radius:var(--radius-md);gap:.125rem;padding:.1875rem;display:inline-flex}.toggle-group__option{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);cursor:pointer;color:var(--tk-text-muted);font-family:var(--font-body);font-weight:var(--weight-medium);white-space:nowrap;transition:background-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);background:0 0;border:none;display:inline-flex}.toggle-group__option:hover:not(.toggle-group__option--active){color:var(--tk-text)}.toggle-group__option:focus-visible{box-shadow:var(--focus-ring);outline:none}.toggle-group__option--active{background:var(--tk-surface);color:var(--tk-text);box-shadow:var(--shadow-sm)}.toggle-group__count{border-radius:var(--radius-pill);background:var(--neutral-200);min-width:1.25rem;color:var(--tk-text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);justify-content:center;align-items:center;padding:0 .375rem;line-height:1.4;display:inline-flex}.toggle-group__option--active .toggle-group__count{background:var(--neutral-300);color:var(--tk-text)}.toggle-group--sm .toggle-group__option{font-size:var(--text-xs);padding:.25rem .625rem}.toggle-group--md .toggle-group__option{font-size:var(--text-sm);padding:.375rem .875rem}.invoice-form__search-row{gap:var(--space-3);flex-wrap:wrap;align-items:flex-end;display:flex}.invoice-form__ts-chips{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.invoice-form__ts-chip{background:var(--tk-surface);color:var(--tk-text);border:1px solid var(--tk-border-strong);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);padding:.25rem .75rem}.invoice-form__ts-chip:hover{border-color:var(--neutral-400)}.invoice-form__ts-chip:focus-visible{box-shadow:var(--focus-ring);outline:none}.invoice-form__ts-chip--selected{background:var(--tk-primary);border-color:var(--tk-primary);color:#fff}.invoice-form__ts-chip--selected:hover{background:var(--tk-primary-hover);border-color:var(--tk-primary-hover)}.invoice-form__muted{margin:var(--space-3) 0 0;font-size:var(--text-sm);color:var(--tk-text-muted)}.invoice-form__items td{vertical-align:top}.invoice-form__cell--pre{white-space:pre-line;font-size:var(--text-sm);color:var(--tk-text)}.invoice-form__add-row{margin-top:var(--space-2);display:flex}.invoice-form__subtotal{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--tk-border);font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--tk-text);justify-content:flex-end;display:flex}.chip{align-items:center;gap:var(--space-1);font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);border-radius:var(--radius-pill);white-space:nowrap;line-height:1;display:inline-flex}.chip__label{display:inline-block}.chip__delete{cursor:pointer;color:inherit;opacity:.6;transition:opacity var(--duration-base) var(--ease-out);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.chip__delete:hover{opacity:1}.chip__delete svg{width:.75rem;height:.75rem}.chip--default{background:var(--neutral-200);color:var(--tk-text)}.chip--success{background:var(--status-success-soft);color:var(--status-success-text)}.chip--warning{background:var(--status-warning-soft);color:var(--status-warning-text)}.chip--danger{background:var(--status-danger-soft);color:var(--status-danger-text)}.chip--info{background:var(--status-info-soft);color:var(--status-info-text)}.chip--sm{padding:.1875rem .5rem}.chip--md{font-size:var(--text-sm);padding:.25rem .625rem}.chip--deletable{padding-right:.25rem}.dialog-backdrop{padding:var(--space-4);z-index:1000;animation:dialog-backdrop-in var(--duration-base) var(--ease-out);background:#1c191773;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--tk-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-height:calc(100vh - var(--space-8));animation:dialog-in var(--duration-base) var(--ease-out);flex-direction:column;display:flex;overflow:hidden}.dialog--sm{max-width:28rem}.dialog--md{max-width:40rem}.dialog--lg{max-width:56rem}.dialog__header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--tk-border);display:flex}.dialog__title{font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--tk-text);margin:0}.dialog__close{cursor:pointer;color:var(--tk-text-muted);padding:var(--space-1);border-radius:var(--radius-sm);transition:background-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.dialog__close:hover{background:var(--tk-surface-hover);color:var(--tk-text)}.dialog__close svg{width:1.125rem;height:1.125rem}.dialog__body{padding:var(--space-4) var(--space-5);flex:auto;overflow-y:auto}.dialog__footer{justify-content:flex-end;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--tk-border);background:var(--tk-surface-alt);display:flex}@keyframes dialog-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-in{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.invoice-view{gap:var(--space-3);flex-direction:column;display:flex}.invoice-view__header{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.invoice-view__title{font-size:var(--text-xl);font-weight:var(--weight-semibold);margin:0}.invoice-view__actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.invoice-view__status{flex-direction:column;align-items:center;gap:.125rem;display:flex}.invoice-view__status-caption{font-size:var(--text-xs);color:var(--tk-text-muted)}.invoice-view__linked-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.invoice-view__search-row{gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:flex-end;display:flex}.invoice-view__muted{font-size:var(--text-sm);color:var(--tk-text-muted);margin:0}.invoice-doc{background:var(--tk-surface);border:1px solid var(--tk-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-8)}.invoice-doc__top{gap:var(--space-8);margin-bottom:var(--space-6);grid-template-columns:1fr auto;align-items:start;display:grid}.invoice-doc__top-col{gap:var(--space-5);flex-direction:column;display:flex}.invoice-doc__top-col--right{min-width:14rem}.invoice-doc__heading{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:.02em;margin:0}.invoice-doc__sender{font-size:var(--text-sm);flex-direction:column;gap:.125rem;display:flex}.invoice-doc__details{column-gap:var(--space-4);font-size:var(--text-sm);grid-template-columns:auto 1fr;row-gap:.25rem;margin:0;display:grid}.invoice-doc__details dt{color:var(--tk-text-muted)}.invoice-doc__details dd{margin:0}.invoice-doc__party{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.invoice-doc__party-label{color:var(--tk-text-muted);font-size:var(--text-sm);padding-bottom:var(--space-2);border-bottom:1px solid var(--tk-border)}.invoice-doc__party-body{font-size:var(--text-sm);flex-direction:column;gap:.125rem;display:flex}.invoice-doc__table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.invoice-doc__table th,.invoice-doc__table td{padding:var(--space-2) var(--space-3);text-align:left;vertical-align:top}.invoice-doc__table th{font-weight:var(--weight-semibold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--tk-text-muted);border-bottom:1px solid var(--tk-border)}.invoice-doc__table th+th,.invoice-doc__table td+td{border-left:1px solid var(--tk-border)}.invoice-doc__table tr+tr td{border-top:1px solid var(--tk-border)}.invoice-doc__th--right,.invoice-doc__td--right{text-align:right;white-space:nowrap}.invoice-doc__td--multiline{white-space:pre-line}.invoice-doc__li-caption{font-size:var(--text-xs);color:var(--tk-text-muted);letter-spacing:.02em}.invoice-doc__li-title{font-weight:var(--weight-semibold);margin-top:.125rem}.invoice-doc__li-notes{white-space:pre-line;color:var(--tk-text-muted);margin-top:.25rem}.invoice-doc__callout{margin-top:var(--space-6);padding:var(--space-3) var(--space-4);background:var(--neutral-100);border-radius:var(--radius-md);font-size:var(--text-sm)}.invoice-doc__totals{margin-top:var(--space-6);flex-direction:column;align-items:flex-end;display:flex}.invoice-doc__totals-row{justify-content:space-between;gap:var(--space-6);width:15.625rem;font-size:var(--text-md);padding:var(--space-1) 0;display:flex}.invoice-doc__totals-row--final{font-size:var(--text-lg)}.invoice-doc__totals-rule{border:none;border-top:1px solid var(--tk-border);width:15.625rem;margin:var(--space-1) 0}@media print{.invoice-doc{box-shadow:none;padding:var(--space-4);border:none;margin:0}}._user_joza8_5{flex-shrink:0;align-items:center;display:flex;position:relative}._trigger_joza8_12{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-body);transition:background-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);background:0 0;border:none;display:flex}._trigger_joza8_12:hover{background:var(--tk-surface-hover)}._trigger_joza8_12:focus-visible{box-shadow:var(--focus-ring);outline:none}._avatar_joza8_34{background:var(--tk-secondary);color:#fff;width:2rem;height:2rem;font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}._chevron_joza8_49{color:var(--tk-text-muted);flex-shrink:0}._dropdown_joza8_54{top:calc(100% + var(--space-1));background:var(--tk-surface);border:1px solid var(--tk-border);border-radius:var(--radius-md);min-width:16.25rem;box-shadow:var(--shadow-md);padding:var(--space-2);z-index:200;animation:_dropdown-in_joza8_1 var(--duration-base) var(--ease-out);position:absolute;right:0}@keyframes _dropdown-in_joza8_1{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}._account_joza8_78{padding:var(--space-2) var(--space-3);flex-direction:column;gap:.125rem;display:flex}._accountName_joza8_85{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--tk-text)}._accountEmail_joza8_91{font-size:var(--text-xs);color:var(--tk-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._divider_joza8_99{background:var(--tk-border);height:1px;margin:var(--space-1) 0}._sectionLabel_joza8_105{padding:var(--space-2) var(--space-3) var(--space-1);font-size:var(--text-xs);color:var(--tk-text-muted);text-transform:uppercase;letter-spacing:.04em}._menuItem_joza8_113{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--tk-text);font-family:var(--font-body);font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);background:0 0;border:none;display:flex}._menuItem_joza8_113:hover{background:var(--tk-surface-hover)}._menuItem_joza8_113:focus-visible{box-shadow:var(--focus-ring);outline:none}._menuItemActive_joza8_139{background:var(--tk-surface-hover)}._menuItemIcon_joza8_143{width:1.25rem;color:var(--tk-text-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}._menuItemBody_joza8_152{flex-direction:column;flex:auto;gap:0;min-width:0;display:flex}._menuItemPrimary_joza8_160{font-size:var(--text-sm);color:var(--tk-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._menuItemSecondary_joza8_168{font-size:var(--text-xs);color:var(--tk-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._topnav_19nzc_6{background:var(--tk-surface);border-bottom:1px solid var(--tk-border-strong);height:var(--header-height);z-index:100;grid-area:nav;position:relative}._inner_19nzc_15{align-items:stretch;gap:var(--space-6);max-width:var(--content-max-width);height:100%;padding:0 var(--space-6);box-sizing:border-box;margin:0 auto;display:flex}._brand_19nzc_26{color:var(--tk-text);align-items:center;gap:var(--space-2);flex-shrink:0;text-decoration:none;display:flex}._brandText_19nzc_35{font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:-.01em}._hamburger_19nzc_41{border-radius:var(--radius-md);padding:var(--space-2);cursor:pointer;color:var(--tk-text);transition:background-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:none}._hamburger_19nzc_41:hover{background:var(--tk-surface-hover)}._hamburger_19nzc_41:focus-visible{box-shadow:var(--focus-ring);outline:none}._items_19nzc_64{gap:var(--space-1);flex:1;align-items:stretch;height:100%;margin:0;padding:0;list-style:none;display:flex}._itemWrapper_19nzc_75{align-items:stretch;display:flex}._item_19nzc_64{padding:0 var(--space-3);color:var(--tk-text-muted);font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-medium);transition:color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);align-items:center;text-decoration:none;display:flex;position:relative}._item_19nzc_64:hover{color:var(--tk-text)}._item_19nzc_64:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:none}._itemActive_19nzc_103{color:var(--tk-text);font-weight:var(--weight-semibold)}._itemActive_19nzc_103:after{content:"";left:var(--space-3);right:var(--space-3);background:var(--tk-primary);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px}@media (width<=80rem){._hamburger_19nzc_41{margin-left:auto;display:flex}._items_19nzc_64{display:none}._itemsOpen_19nzc_128{background:var(--tk-surface);border-bottom:1px solid var(--tk-border-strong);height:auto;box-shadow:var(--shadow-md);padding:var(--space-2);z-index:99;box-sizing:border-box;animation:_panel-in_19nzc_1 var(--duration-base) var(--ease-out);flex-direction:column;gap:0;display:flex;position:absolute;top:100%;left:0;right:0}._itemsOpen_19nzc_128 ._itemWrapper_19nzc_75{align-items:stretch}._itemsOpen_19nzc_128 ._item_19nzc_64{padding:var(--space-3);box-sizing:border-box;border-radius:var(--radius-md);width:100%}._itemsOpen_19nzc_128 ._item_19nzc_64:hover,._itemsOpen_19nzc_128 ._itemActive_19nzc_103{background:var(--tk-surface-hover)}._itemsOpen_19nzc_128 ._itemActive_19nzc_103:after{display:none}}@keyframes _panel-in_19nzc_1{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}._layout_10fgl_5{background:var(--tk-surface-alt);grid-template-areas:"nav""content";grid-template-rows:var(--header-height) 1fr;height:100vh;display:grid;overflow:hidden}._content_10fgl_14{background:var(--tk-surface-alt);color:var(--tk-text);font-family:var(--font-body);font-size:var(--text-base);width:100%;max-width:var(--content-max-width);padding:var(--space-4) var(--space-5);box-sizing:border-box;grid-area:content;margin-inline:auto;overflow-y:auto}@media print{._layout_10fgl_5{height:auto;display:block;overflow:visible}._content_10fgl_14{padding:0;overflow:visible}}.receipt-dropzone{border:2px dashed var(--tk-border-strong);border-radius:var(--radius-md);padding:var(--space-4);text-align:center;cursor:pointer;transition:background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out);background:0 0}.receipt-dropzone:hover{border-color:var(--neutral-400);background:var(--tk-surface-hover)}.receipt-dropzone:focus-visible{box-shadow:var(--focus-ring);outline:none}.receipt-dropzone--dragging{border-color:var(--tk-primary);background:var(--status-warning-soft)}.receipt-dropzone--uploading{cursor:default}.receipt-dropzone__prompt{align-items:center;gap:var(--space-2);color:var(--tk-text-muted);font-size:var(--text-sm);flex-direction:column;display:flex}.receipt-dropzone__prompt svg{width:1.5rem;height:1.5rem}.receipt-dropzone__status{justify-content:center;align-items:center;gap:var(--space-2);color:var(--tk-text);font-size:var(--text-sm);display:inline-flex}.receipt-dropzone__error{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--status-danger)}.purchase-page__header{align-items:center;gap:var(--space-2);display:flex}.purchase-page__title{font-size:var(--text-xl);font-weight:var(--weight-semibold);flex:auto;min-width:0;margin:0}.purchase-page__actions{gap:var(--space-2);display:flex}.purchase-page__section-title{font-size:var(--text-md);font-weight:var(--weight-semibold);margin:0}.purchase-page__notes-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--tk-text);margin-bottom:.25rem;display:block}.purchase-page__notes{width:100%;font-family:var(--font-body);font-size:var(--text-base);color:var(--tk-text);background:var(--tk-surface);border:1px solid var(--tk-border-strong);border-radius:var(--radius-md);resize:vertical;transition:border-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);box-sizing:border-box;padding:.5rem .75rem}.purchase-page__notes:focus-visible{border-color:var(--tk-primary);box-shadow:var(--focus-ring);outline:none}.ts-list__empty{color:var(--tk-text-muted);font-size:var(--text-sm)}.ts-list__cell--muted{color:var(--tk-text-muted)}.ts-list__controls{gap:var(--space-4);flex-wrap:wrap;display:flex}.ts-list__filter{width:20rem;max-width:100%}.timesheet__row,.timesheet__header{grid-template-columns:108px 1fr 1.4fr 122px 122px 54px 70px 1.4fr 36px;align-items:start;display:grid}.timesheet{flex-direction:column;display:flex}.timesheet__table{background:#fff;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden}.timesheet__header{background:#f1f5f9;border-bottom:1px solid #e2e8f0}.timesheet__header-cell{text-transform:uppercase;letter-spacing:.055em;color:#64748b;padding:8px 8px 7px;font-size:9px;font-weight:600}.timesheet__header-cell--right{text-align:right}.timesheet__header-cell--center{text-align:center}.timesheet__row{border-top:1px solid #e2e8f0;min-height:56px;transition:background .1s}.timesheet__row:first-of-type{border-top:none}.timesheet__row:hover{background:#f8fafc}.timesheet__cell{align-items:flex-start;padding:6px 4px;display:flex}.timesheet__cell--hours{font-variant-numeric:tabular-nums;color:#1e293b;justify-content:flex-end;padding-top:11px;padding-right:10px;font-size:11px;font-weight:500}.timesheet__cell--delete{justify-content:center}.timesheet__input{color:#1e293b;box-sizing:border-box;background:0 0;border:1px solid #0000;border-radius:4px;width:100%;padding:5px 6px;font-family:inherit;font-size:11px;transition:border-color .15s,background .15s,box-shadow .15s}.timesheet__input::placeholder{color:#94a3b8}.timesheet__input:hover{background:#fff;border-color:#e2e8f0}.timesheet__input:focus{background:#fff;border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f61f}.timesheet__input--time{text-align:center}.timesheet__input--number{text-align:right;padding-right:7px}.timesheet__input--textarea{resize:none;vertical-align:top;min-height:100px;line-height:1.45;overflow:hidden}.timesheet__footer{justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.timesheet__footer-actions{align-items:center;gap:8px;display:flex}.timesheet__total{color:#1e293b;font-size:14px;font-weight:600}.timesheet__total span{color:#3b82f6;font-variant-numeric:tabular-nums}.timesheet__btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:6px;align-items:center;gap:5px;padding:7px 15px;font-family:inherit;font-size:13px;font-weight:500;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.timesheet__btn:disabled{opacity:.4;cursor:not-allowed}.timesheet__btn--primary{color:#fff;background:#3b82f6;border-color:#3b82f6}.timesheet__btn--primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.timesheet__btn--outline{color:#1e293b;background:0 0;border-color:#e2e8f0}.timesheet__btn--outline:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.timesheet__btn--submit{color:#fff;background:#0ea5e9;border-color:#0ea5e9}.timesheet__btn--submit:hover:not(:disabled){background:#0284c7;border-color:#0284c7}.timesheet__btn--ghost-danger{color:#ef4444;background:0 0;border:none;border-radius:4px;padding:4px 5px;font-size:15px;line-height:1}.timesheet__btn--ghost-danger:hover:not(:disabled){background:#ef444414}.timesheet__period-header{align-items:center;gap:16px;margin-bottom:14px;display:flex}.timesheet__print-period{display:none}.timesheet__status-badge{color:#0369a1;background:#e0f2fe;border:1px solid #bae6fd;border-radius:6px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.timesheet__print-total{display:none}.timesheet__loading{justify-content:center;align-items:center;padding:56px;display:flex}.retainer-summary{border-top:1.5px solid #1e293b;margin-top:18px;padding-top:12px}.retainer-summary__title{color:#1e293b;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:13px;font-weight:600}.retainer-summary__month{margin-bottom:10px}.retainer-summary__month:last-child{margin-bottom:0}.retainer-summary__month-label{color:#1e293b;margin-bottom:4px;font-size:13px;font-weight:600}.retainer-summary__row{color:#1e293b;justify-content:space-between;padding:0 6px;font-size:11px;line-height:1.6;display:flex}.retainer-summary__label{color:#64748b}.retainer-summary__value{font-variant-numeric:tabular-nums;font-weight:500}.timesheet__toggle{color:#1e293b;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:12px;display:inline-flex}.timesheet__toggle input{cursor:pointer}.period-selector{justify-content:center;align-items:center;gap:8px;margin-bottom:14px;display:flex}.period-selector__btn{color:#1e293b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:18px;line-height:1;transition:background .15s,border-color .15s;display:flex}.period-selector__btn:hover{background:#f1f5f9;border-color:#cbd5e1}.period-selector__label{color:#1e293b;text-align:center;letter-spacing:.01em;min-width:230px;font-size:15px;font-weight:600}@page{margin-top:0;margin-bottom:0;margin-left:1cm;margin-right:1cm}@media print{.no-print{display:none!important}body{padding:.8cm 0}.timesheet__table{border:none;border-radius:0}.timesheet__header{-webkit-print-color-adjust:exact;print-color-adjust:exact;grid-template-columns:88px 2fr 4fr 72px 72px 48px;align-items:start}.timesheet__row{grid-template-columns:88px 2fr 4fr 72px 72px 48px;align-items:start}.timesheet__input{vertical-align:top;display:block;box-shadow:none!important;background:0 0!important;border:none!important;padding:2px 0!important;font-size:11px!important}.timesheet__cell{align-items:flex-start;padding:3px 5px;font-size:11px}.timesheet__header-cell{padding:5px 5px 4px;font-size:10px}.timesheet__print-period{color:#1e293b;text-align:center;margin-bottom:10px;font-size:15px;font-weight:600;display:block}.timesheet__print-total{color:#1e293b;border-top:1.5px solid #1e293b;justify-content:flex-end;margin-top:2px;padding-top:6px;padding-right:4px;font-size:12px;font-weight:600;display:flex}.timesheet__print-total span{font-variant-numeric:tabular-nums;margin-left:6px}input[type=date]::-webkit-calendar-picker-indicator{display:none!important}input[type=time]::-webkit-calendar-picker-indicator{display:none!important}}
