:root{color-scheme:light;--app-font-family: "Microsoft YaHei", "PingFang SC", "Noto Sans SC", sans-serif;--app-color-primary: #0f6bdb;--app-color-background: #f5f7f9;--app-color-surface: #fff;--app-color-text: #1f2937;--app-color-muted: #606266;--app-border-color: #dcdfe6;--app-border: 1px solid var(--app-border-color);--app-header-height: 60px;--app-module-sidebar-width: 176px;--app-space-page: 16px;--app-space-card: 16px;--app-control-height: 34px;--app-radius-xs: 2px;--app-radius-sm: 4px;--app-radius-md: 6px;--app-radius-lg: 8px;--app-radius-full: 9999px;--app-focus-color: #0f6bdb;--app-focus-ring: 0 0 0 3px rgba(15, 107, 219, .28);--app-color-on-primary: var(--app-color-surface);--app-color-text-tertiary: #6b7280;--app-color-background-subtle: #f8fafc;--app-color-surface-hover: var(--app-color-background-subtle);--app-color-text-secondary: #4b5563;--app-color-text-strong: #303133;--app-color-text-disabled: #c0c4cc;--app-color-on-accent: var(--app-color-surface);--app-color-divider: #ebeef5;--app-color-primary-hover: #0b5fc7;--app-color-warning-text: #d48806;--app-color-danger-text: #d93025;--app-action-neutral-color: #344054;--app-action-neutral-border: #d0d7e2;--app-action-neutral-hover-border: #b7c4d6;--app-action-danger-color: #b42318;--app-action-danger-border: #f0b8b5;--app-action-danger-background: #fff5f5;--app-action-danger-hover-color: #912018;--app-action-danger-hover-border: #ee9b96;--app-action-danger-hover-background: #fee4e2;--app-action-warning-color: #b45309;--app-action-warning-border: #f3c27a;--app-action-warning-background: #fff7ed;--app-action-warning-hover-color: #92400e;--app-action-warning-hover-border: #f59e0b;--app-action-warning-hover-background: #ffedd5;--app-action-success-background: #20a162;--app-action-success-border: var(--app-action-success-background);--app-action-success-hover-background: #168653;--app-action-success-hover-border: var(--app-action-success-hover-background);--app-element-primary: #409eff;--app-element-primary-soft: #ecf5ff;--app-element-primary-light: #66b1ff;--app-legacy-pagination-action: var(--app-element-primary);--app-legacy-pagination-soft: var(--app-element-primary-soft);--app-header-control-background: #0b57b7;--app-scrollbar-thumb-color: #d9dde3;--app-shell-panel-border: #d8dee8;--app-content-shell-border: var(--app-color-divider);--app-border-color-strong: #e4e7ed;--app-border-color-subtle: #eef1f5;--app-border-color-soft: #e5e7eb;--app-overflow-controls-border: var(--app-border-color-soft);--app-overflow-button-border: #b8c4d4;--app-overflow-button-color: #334155;--app-nav-item-border: var(--app-border-color-strong);--app-nav-item-color: #303133;--app-nav-hover-background: #f5f9ff;--app-nav-active-background: #eef6ff;--app-subnav-item-border: var(--app-border-color-subtle);--app-module-navbar-color: #475467;--app-module-navbar-hover-border: #cfe1f8;--app-module-navbar-active-border: #b8d7ff;--app-module-navbar-active-background: #eaf3ff;--app-workspace-sidebar-background: #f4f6f8;--app-classic-nav-border: #edf0f4;--app-classic-nav-color: #3f4854;--app-classic-nav-hover-background: #f7faff;--app-classic-nav-active-background: #edf6ff;--app-color-background-mute: #f5f7fa;--app-color-background-soft: #fafafa;--app-color-background-faint: #f7f7f7;--app-color-accent: #1677d2;--app-color-accent-hover: #1269bb;--app-color-accent-soft: #eaf4ff;--app-accent-tint-border: #d9ecff;--app-color-form-error: #f56c6c;--app-focus-ring-error: 0 0 0 2px rgba(245, 108, 108, .16);--app-focus-ring-soft: 0 0 0 2px rgba(15, 107, 219, .15);--app-focus-outline-strong: rgba(15, 107, 219, .35);--app-focus-outline-soft: rgba(15, 107, 219, .28);--app-focus-outline-tab: rgba(15, 107, 219, .24);--app-legacy-focus-outline: rgba(64, 158, 255, .16);--app-shadow-card: 0 1px 3px rgba(100, 100, 100, .08);--app-shadow-popover: 0 8px 22px rgba(31, 41, 55, .14);--app-shadow-toolbar-card: 0 8px 18px rgba(16, 24, 40, .08);--app-shadow-modal: 0 12px 30px rgba(15, 23, 42, .2);--app-shadow-dropdown: 0 2px 12px rgb(0 0 0 / 10%);--app-shadow-header: 0 1px 4px rgba(0, 21, 41, .08);--app-modal-mask-background: rgba(0, 0, 0, .36);--app-header-menu-color: rgba(255, 255, 255, .88);--app-header-chip-background: rgba(255, 255, 255, .16);--app-header-chip-background-active: rgba(255, 255, 255, .26);--app-header-chip-border-active: rgba(255, 255, 255, .36);--app-header-badge-background: rgba(255, 255, 255, .18);--app-header-badge-border: rgba(255, 255, 255, .45);--app-active-marker-background: rgba(255, 255, 255, .2);--app-status-success-text: #237804;--app-status-success-border: #b7eb8f;--app-status-success-background: #f6ffed;--app-status-info-text: #0958d9;--app-status-info-border: #91d5ff;--app-status-info-background: #e6f7ff;--app-status-warning-text: #ad6800;--app-status-warning-border: #ffe58f;--app-status-warning-background: #fffbe6;--app-status-danger-text: #d93026;--app-status-danger-border: #ffccc7;--app-status-danger-background: #fff2f0;--app-status-cyan-text: #08979c;--app-status-cyan-border: #b7ebf2;--app-status-cyan-background: #e6fffb;--app-status-neutral-text: #364152;--app-status-neutral-border: #d9e2ec;--app-attachment-success-text: #529b2e;--app-attachment-success-border: #c2e7b0;--app-attachment-success-background: #f0f9eb;--app-attachment-warning-text: #b88230;--app-attachment-warning-border: #f3d19e;--app-attachment-warning-background: #fdf6ec;--app-attachment-danger-text: #c45656;--app-attachment-danger-border: #fab6b6;--app-attachment-danger-background: #fef0f0;--app-iview-primary: #2d8cf0;--app-iview-info: #2db7f5;--app-iview-danger: #ed4014;--app-iview-warning: #f90;--app-iview-text: #515a6e;--app-iview-text-muted: #808695;--app-iview-border: #dcdee2;--app-iview-border-subtle: #e8eaec;--app-iview-table-tint: #f8f8f9;--app-iview-table-selected: #ebf7ff;--app-legacy-table-color: #444;--app-milestone-border: #dbeafe;--app-milestone-color: #1d4ed8;--app-member-icon-color: #75d0d4;--app-member-icon-internal-color: #5f83ee;--app-section-band-note-color: #7aa5d2;--app-calendar-nav-color: #a8b0bd;--app-calendar-weekday-color: #b8bec9;--app-clear-button-background: #9098a8;--app-clear-button-background-hover: #7b8494;--app-icon-border-muted: #909399;--app-row-expand-color: #526170;--app-row-expand-border: #cfd7e3;--app-row-expansion-border: #dce8f5;--app-row-expansion-background: #f8fbff;--app-table-row-active-background: #f0f7ff;--app-table-row-marked-background: #e8f7ee;--app-table-row-marked-color: #1f5430;--app-table-row-voided-background: #eb5757;--app-table-row-dense: 32px;--app-table-row-standard: 40px;--app-table-row-comfortable: 48px;--app-table-cell-padding-block-dense: 4px;--app-table-cell-padding-block-standard: 8px;--app-table-cell-padding-block-comfortable: 12px;--app-table-expanded-cell-padding: 8px 12px;--app-table-header-background: var(--app-color-surface);--app-table-header-color: var(--app-color-muted);--app-table-header-font-weight: 600;--app-table-font-size: 12px;--app-table-row-hover-background: var(--app-color-background-mute);--app-table-border-color: var(--app-color-divider);--app-table-end-gutter: 14px;--app-choice-color: #46566b;--app-choice-border: #dce3ec;--app-modal-nav-background: #f7f9fc;--app-workspace-footer-background: #fafbfc;--app-metric-card-background: #f9fbfd;--app-empty-state-border: #cfd8e3;--app-empty-state-title-color: #162033;--app-empty-state-text-color: #667085;--app-inset-panel-border: #d9e2ef;--app-rich-text-focus-border: #c6d8f2;--app-chart-center-label-fill: #8c8c8c;--app-chart-slice-label-fill: #666;--app-analytics-warning-text: #9a6700;--app-dialog-danger: #c53030;--app-dialog-warning-text: #744210;--app-dialog-warning-border: #b7791f;--app-dialog-warning-background: #fffaf0;font-family:var(--app-font-family);background:var(--app-color-background);color:var(--app-color-text)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--app-color-background);font-size:13px}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--app-focus-color);outline-offset:2px;box-shadow:var(--app-focus-ring)}code{font-family:SFMono-Regular,ui-monospace,monospace}.app-icon{display:block;flex:0 0 auto}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.layout-container{min-height:100vh;width:100%;overflow:hidden}.layout-header-bar{height:var(--app-header-height);background:var(--app-color-primary);box-shadow:var(--app-shadow-header)}.header-bar{display:flex;align-items:center;gap:10px;height:100%;padding:0 12px;color:var(--app-color-on-primary)}.main-title{color:var(--app-color-on-primary);max-width:min(36vw,520px);overflow:hidden;font-size:15px;font-weight:700;line-height:48px;text-overflow:ellipsis;white-space:nowrap;flex:0 0 auto}.main-title-divider{padding:0 .25em}.top-menu{display:flex;align-items:center;gap:2px;width:max-content;min-width:100%}.top-menu-overflow{position:relative;flex:1 1 auto;min-width:0}.top-menu-viewport{overflow-y:hidden;scrollbar-width:none}.top-menu-viewport::-webkit-scrollbar{display:none}.top-menu a{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;color:var(--app-header-menu-color);padding:8px;border-radius:4px;font-size:13px}.top-menu a:hover,.top-menu a.router-link-active,.top-menu a.top-menu-active{color:var(--app-color-on-primary);background:var(--app-header-chip-background)}.header-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}.header-env-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border:1px solid var(--app-header-badge-border);border-radius:4px;background:var(--app-header-badge-background);color:var(--app-color-on-primary);font-size:11px;font-weight:500;letter-spacing:.5px;line-height:1;white-space:nowrap;-webkit-user-select:none;user-select:none}.header-user{position:relative;display:flex;align-items:center;gap:8px;flex:0 0 auto}.user-chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid transparent;border-radius:16px;background:var(--app-header-chip-background);color:var(--app-color-on-primary);font-size:13px;font-family:inherit;line-height:1;transition:background-color .15s ease,border-color .15s ease}.user-chip-trigger{cursor:pointer}.user-chip-trigger:hover,.user-chip-trigger.active{background:var(--app-header-chip-background-active);border-color:var(--app-header-chip-border-active)}.user-chip-caret{opacity:.85;transition:transform .15s ease}.user-dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:100;min-width:130px;padding:6px 0;border:1px solid var(--app-color-divider);border-radius:6px;background:var(--app-color-surface);box-shadow:var(--app-shadow-popover)}.user-dropdown-arrow{position:absolute;top:-6px;right:18px;width:10px;height:10px;border-top:1px solid var(--app-color-divider);border-left:1px solid var(--app-color-divider);background:var(--app-color-surface);transform:rotate(45deg)}.user-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;height:36px;padding:0 16px;border:none;background:transparent;color:var(--app-color-text-strong);font-size:13px;font-family:inherit;text-align:left;cursor:pointer;transition:background-color .15s ease,color .15s ease}.user-dropdown-item:hover{background:var(--app-nav-hover-background);color:var(--app-color-primary)}.user-dropdown-item-danger:hover{background:var(--app-action-danger-background);color:var(--app-action-danger-color)}.password-modal-panel{width:min(460px,100%);border-radius:6px}.password-modal-panel .app-modal-header{padding:14px 20px;border-bottom:1px solid var(--app-color-divider);background:var(--app-color-surface)}.password-modal-panel .app-modal-copy strong{font-size:15px;font-weight:600;color:var(--app-color-text-strong)}.password-modal-panel .app-modal-close{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 10px;border-radius:4px;font-size:12px}.password-modal-panel .app-modal-body{padding:24px 24px 16px}.password-form{display:flex;flex-direction:column;gap:18px}.password-form-item{display:grid;grid-template-columns:85px 1fr;align-items:center;gap:12px}.password-form-label{display:flex;align-items:center;justify-content:flex-end;gap:4px;color:var(--app-color-text);font-size:13px;white-space:nowrap}.password-form-label b{color:var(--app-action-danger-color);font-weight:600}.password-form-control{min-width:0}.password-form-control input{width:100%;height:34px;padding:0 12px;border:1px solid var(--app-border-color);border-radius:4px;background:var(--app-color-surface);color:var(--app-color-text-strong);font-size:13px;font-family:inherit;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.password-form-control input::placeholder{color:var(--app-color-text-disabled);font-size:12px}.password-form-control input:focus{border-color:var(--app-color-primary);box-shadow:var(--app-focus-ring-soft)}.password-form-feedback{margin:0 0 0 97px;font-size:12px;line-height:1.4;color:var(--app-action-danger-color)}.password-form-feedback.success{color:var(--app-action-success-background)}.password-form-footer{margin-top:8px;padding-top:14px;border-top:1px solid var(--app-color-divider);display:flex;justify-content:flex-end;gap:10px}.horizontal-overflow{position:relative;min-width:0}.horizontal-overflow-viewport{min-width:0;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-gutter:stable}.horizontal-overflow-edge{position:absolute;top:0;bottom:0;width:26px;display:flex;align-items:center;pointer-events:none;color:var(--app-color-on-primary);font-size:14px;line-height:1}.horizontal-overflow-edge--start{left:0;justify-content:flex-start;padding-left:2px;background:linear-gradient(to right,var(--app-color-primary) 55%,transparent)}.horizontal-overflow-edge--start:before{content:"‹"}.horizontal-overflow-edge--end{right:0;justify-content:flex-end;padding-right:2px;background:linear-gradient(to left,var(--app-color-primary) 55%,transparent)}.horizontal-overflow-edge--end:before{content:"›"}.layout-main{height:calc(100vh - var(--app-header-height));padding:var(--app-space-page)}.content-shell{height:100%;overflow:auto;background:var(--app-color-surface);box-shadow:var(--app-shadow-card);padding:var(--app-space-page)}.content-shell::-webkit-scrollbar{width:8px}.content-shell::-webkit-scrollbar-thumb{background:var(--app-scrollbar-thumb-color);border-radius:999px}.content-shell::-webkit-scrollbar-track{background:transparent}.project-ledger-layout{display:grid;grid-template-columns:var(--app-module-sidebar-width) minmax(0,1fr);gap:var(--app-space-page);align-items:start}.project-ledger-sidebar{position:sticky;top:0;min-width:0;border:1px solid var(--app-shell-panel-border);background:var(--app-color-background-subtle)}.project-ledger-nav-item{display:grid;grid-template-columns:22px minmax(0,1fr) 18px;gap:8px 10px;align-items:center;width:100%;min-height:54px;padding:12px 14px;border:0;border-bottom:1px solid var(--app-nav-item-border);border-right:3px solid transparent;background:transparent;color:var(--app-nav-item-color);text-align:left;cursor:pointer}.project-ledger-nav-item:hover{background:var(--app-color-surface)}.project-ledger-nav-item.active{border-right-color:var(--app-color-primary);background:var(--app-nav-active-background);color:var(--app-color-primary)}.project-ledger-nav-item strong{min-width:0;font-size:13px;font-weight:700}.project-ledger-nav-caret{grid-column:3;grid-row:1 / span 2;justify-self:end;color:var(--app-color-muted);font-size:12px}.project-ledger-nav-icon{flex:0 0 auto;margin-right:9px;color:currentColor;font-size:14px;line-height:1}.project-ledger-subnav{border-bottom:1px solid var(--app-nav-item-border);background:var(--app-color-surface)}.project-ledger-subnav-item{display:flex;align-items:center;width:100%;min-height:42px;padding:10px 14px 10px 48px;border:0;border-bottom:1px solid var(--app-subnav-item-border);background:transparent;color:var(--app-color-muted);font-size:13px;text-align:left;cursor:pointer}.project-ledger-subnav-item:last-child{border-bottom:0}.project-ledger-subnav-item:hover{background:var(--app-nav-hover-background);color:var(--app-color-primary)}.project-ledger-subnav-item.active{border-right:3px solid var(--app-color-primary);background:var(--app-nav-active-background);color:var(--app-color-primary);font-weight:700}.project-ledger-main{min-width:0;display:flex;flex-direction:column;gap:12px}.module-navbar{display:flex;flex-direction:column;gap:0;border-bottom:1px solid var(--app-shell-panel-border);background:var(--app-color-surface)}.module-navbar-primary{display:flex;align-items:center;gap:6px;min-width:0;overflow-x:auto;scrollbar-width:thin}.module-navbar-primary{min-height:46px;padding:8px 16px}.module-navbar-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;height:30px;padding:0 12px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--app-module-navbar-color);font-size:12px;white-space:nowrap;cursor:pointer}.top-menu-icon,.module-navbar-icon{flex:0 0 auto}.module-navbar-link:hover{border-color:var(--app-module-navbar-hover-border);color:var(--app-color-primary);background:var(--app-nav-hover-background)}.module-navbar-link.active{border-color:var(--app-module-navbar-active-border);background:var(--app-module-navbar-active-background);color:var(--app-color-primary);font-weight:700}.classic-workspace{display:flex;flex-direction:column;height:calc(100vh - var(--app-header-height));min-height:0}.classic-workspace>.layout-main{flex:1 1 auto;width:100%;height:auto;min-height:0}.classic-workspace-sidebar{display:grid;grid-template-columns:var(--app-module-sidebar-width) minmax(0,1fr);gap:var(--app-space-page);padding:var(--app-space-page);background:var(--app-workspace-sidebar-background)}.classic-workspace-sidebar>.module-navbar{width:auto;min-width:0;border:1px solid var(--app-shell-panel-border);overflow:hidden}.classic-workspace-sidebar .module-navbar-primary{flex:1 1 auto;flex-direction:column;align-items:stretch;gap:0;min-height:0;padding:0;overflow-x:hidden;overflow-y:auto}.classic-workspace-sidebar .module-navbar-link{justify-content:flex-start;width:100%;height:54px;padding:0 16px;border:0;border-bottom:1px solid var(--app-classic-nav-border);border-right:3px solid transparent;border-radius:0;color:var(--app-classic-nav-color);font-size:13px}.classic-workspace-sidebar .module-navbar-link:hover{border-color:var(--app-classic-nav-border);background:var(--app-classic-nav-hover-background)}.classic-workspace-sidebar .module-navbar-link.active{border-color:var(--app-classic-nav-border);border-right-color:var(--app-color-primary);background:var(--app-classic-nav-active-background);color:var(--app-color-primary)}.classic-workspace-sidebar>.layout-main{padding:0;min-width:0;background:transparent}.classic-workspace-sidebar>.layout-main>.content-shell{border:1px solid var(--app-content-shell-border);padding:16px;box-shadow:var(--app-shadow-card)}@media(max-width:760px){.classic-workspace-sidebar{display:flex;flex-direction:column;gap:12px;padding:12px}.classic-workspace-sidebar>.module-navbar{flex:0 0 auto;width:100%;min-width:0;border-right:0;border-bottom:1px solid var(--app-shell-panel-border)}.classic-workspace-sidebar .module-navbar-primary{flex-direction:row;overflow-x:auto;overflow-y:hidden}.classic-workspace-sidebar .module-navbar-link{width:auto;border-bottom:0}}@media(max-width:860px){.main-title{font-size:14px;line-height:1.4}.main-title-company,.main-title-divider{display:none}.layout-main{height:auto;min-height:calc(100vh - var(--app-header-height));padding:12px}.project-ledger-layout{grid-template-columns:1fr}.project-ledger-sidebar{position:static}.project-ledger-nav-item{grid-template-columns:22px minmax(0,1fr) auto}}[data-desktop-platform] .layout-header-bar{-webkit-app-region:drag}[data-desktop-platform] .layout-header-bar :is(a,button,input,.top-menu-overflow,.header-actions){-webkit-app-region:no-drag}[data-desktop-platform=darwin] .header-bar{padding-left:84px}[data-desktop-platform=win32] .header-bar{padding-right:calc(100vw - env(titlebar-area-x,0px) - env(titlebar-area-width,calc(100vw - 138px)) + 12px)}[data-desktop-platform] .login-page:before{content:"";position:fixed;inset:0 0 auto;z-index:1;height:32px;-webkit-app-region:drag}.page-section{display:flex;flex-direction:column;gap:var(--app-space-page)}.toolbar-card{background:var(--app-color-surface);border:1px solid var(--app-color-divider);padding:14px var(--app-space-card)}.toolbar-copy{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.toolbar-copy strong{font-size:13px;color:var(--app-color-text-strong)}.toolbar-copy span{color:var(--app-color-text-tertiary);font-size:12px}.toolbar-body{display:flex;flex-direction:column;gap:12px}.filter-fields{display:flex;gap:12px;flex-wrap:wrap;flex:1 1 640px}.filter-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--app-color-muted)}.filter-item>span{white-space:nowrap}.filter-item input,.filter-item select{height:32px;min-width:168px;padding:0 10px;border:1px solid var(--app-border-color);background:var(--app-color-surface);color:var(--app-color-muted)}.filter-checkbox-item label{display:inline-flex;align-items:center;gap:6px;height:32px}.filter-checkbox-item input{min-width:auto}.filter-item textarea,.modal-field input,.modal-field select,.modal-field textarea{width:100%;padding:8px 10px;border:1px solid var(--app-border-color);background:var(--app-color-surface);color:var(--app-color-muted);font:inherit}.modal-field textarea{min-height:92px;resize:none}.modal-field select{height:36px}.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;align-content:flex-start}.table-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.table-actions.compact-actions{gap:8px;flex-wrap:nowrap}.table-actions.compact-actions>*{flex:0 0 auto;white-space:nowrap}.data-table:has(.table-actions,.legacy-row-actions)>:is(thead,tbody,tfoot)>tr>:last-child,.data-table>tbody>tr>td:has(.table-actions,.legacy-row-actions){text-align:center}.text-button{border:0;padding:0;background:transparent;color:var(--app-color-primary);cursor:pointer;font-size:12px}.text-button.warning{color:var(--app-color-warning-text)}.text-button:disabled{color:var(--app-color-text-disabled);cursor:not-allowed;text-decoration:none}.text-button.danger{color:var(--app-color-danger-text)}.action-button,.status-button,.tab-button{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 14px;border:1px solid var(--app-action-neutral-border);border-radius:4px;background:var(--app-color-surface);color:var(--app-action-neutral-color);font-size:12px;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.link-button{text-align:center}.action-button:hover,.status-button:hover,.tab-button:hover{border-color:var(--app-action-neutral-hover-border);background:var(--app-color-surface-hover);color:var(--app-color-text)}.action-button:focus-visible,.status-button:focus-visible,.tab-button:focus-visible{outline:2px solid var(--app-focus-outline-tab);outline-offset:2px}.action-button.primary,.status-button.active,.tab-button.active{color:var(--app-color-on-accent);border-color:var(--app-color-primary);background:var(--app-color-primary);font-weight:600}.action-button.primary:hover,.status-button.active:hover,.tab-button.active:hover{border-color:var(--app-color-primary-hover);background:var(--app-color-primary-hover);color:var(--app-color-on-accent)}.action-button.active{color:var(--app-color-primary);border-color:var(--app-legacy-pagination-action);background:var(--app-legacy-pagination-soft);font-weight:600}.action-button.danger{color:var(--app-action-danger-color);border-color:var(--app-action-danger-border);background:var(--app-action-danger-background)}.action-button.danger:hover{color:var(--app-action-danger-hover-color);border-color:var(--app-action-danger-hover-border);background:var(--app-action-danger-hover-background)}.action-button.warning{color:var(--app-action-warning-color);border-color:var(--app-action-warning-border);background:var(--app-action-warning-background)}.action-button.warning:hover{color:var(--app-action-warning-hover-color);border-color:var(--app-action-warning-hover-border);background:var(--app-action-warning-hover-background)}.action-button.success{color:var(--app-color-on-accent);border-color:var(--app-action-success-border);background:var(--app-action-success-background)}.action-button.success:hover{color:var(--app-color-on-accent);border-color:var(--app-action-success-hover-border);background:var(--app-action-success-hover-background)}.action-button:disabled,.row-action:disabled{cursor:not-allowed;opacity:.48}.toolbar-stack{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start}.status-buttons,.tab-strip{display:flex;gap:8px;flex-wrap:wrap}.app-modal-mask{background:var(--app-modal-mask-background)}.app-modal-mask .el-overlay-dialog{padding:24px}.app-modal{--el-dialog-padding-primary: 0;--el-dialog-border-radius: 0;width:min(680px,100%);max-height:calc(100vh - 48px);overflow:auto;background:var(--app-color-surface);border:1px solid var(--app-border-color);box-shadow:var(--app-shadow-modal)}.app-modal>.el-dialog__footer{flex:0 0 auto}.app-modal-fade-enter-active,.app-modal-fade-leave-active{transition:opacity .12s ease}.app-modal-fade-enter-from,.app-modal-fade-leave-to{opacity:0}.app-modal-large{width:min(920px,100%)}.app-modal-small{width:min(420px,100%)}.app-modal-header{display:flex;justify-content:space-between;gap:16px;padding:16px;border-bottom:1px solid var(--app-color-divider);background:var(--app-color-background-subtle)}.app-modal-copy{display:flex;flex-direction:column;gap:4px}.app-modal-copy strong{font-size:14px;color:var(--app-color-text-strong)}.app-modal-copy span{font-size:12px;color:var(--app-color-text-tertiary)}.app-modal-close{flex-shrink:0;height:32px;padding:0 14px;border:1px solid var(--app-border-color);background:var(--app-color-surface);color:var(--app-color-muted);cursor:pointer;white-space:nowrap}.app-modal-body{display:flex;flex-direction:column;gap:16px;padding:16px;color:inherit;font-size:inherit}.modal-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.modal-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--app-color-muted)}.modal-field-full{grid-column:1 / -1}.app-modal-footer{display:flex;justify-content:flex-end;gap:8px}.section-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.section-header h2{margin:0 0 8px;font-size:20px;font-weight:600}.section-header p{margin:0;color:var(--app-color-text-secondary);line-height:1.6;font-size:13px}.advanced-filter-trigger{gap:6px}.advanced-filter-active-marker{padding:1px 6px;border-radius:999px;background:var(--app-active-marker-background);font-size:11px;font-weight:600;line-height:18px}@media(max-width:860px){.filter-item{width:100%;flex-direction:column;align-items:flex-start}.filter-item input,.filter-item select{width:100%;min-width:0}}:is(.app-table,.app-table--dense,.app-table--standard,.app-table--comfortable,.finance-ledger-table,.finance-invoice-table,.finance-breakdown-table,.finance-professional-table,.archive-ledger-table,.archive-borrow-table,.contract-ledger-table,.project-ledger-el-table,.receivables-table,.experts-ledger-table,.settlement-ledger-table,.settlement-detail-table,.department-workspace-table){--el-table-header-bg-color: var(--app-table-header-background);--el-table-header-text-color: var(--app-table-header-color);--el-table-text-color: var(--app-color-muted);--el-table-tr-bg-color: var(--app-color-surface);--el-table-row-hover-bg-color: var(--app-table-row-hover-background);--el-table-border-color: var(--app-table-border-color)}:is(.app-table,.app-table--dense,.app-table--standard,.app-table--comfortable,.finance-ledger-table,.finance-invoice-table,.finance-breakdown-table,.finance-professional-table,.archive-ledger-table,.archive-borrow-table,.contract-ledger-table,.project-ledger-el-table,.receivables-table,.experts-ledger-table,.settlement-ledger-table){font-size:var(--app-table-font-size)}:is(.app-table,.app-table--dense,.app-table--standard,.app-table--comfortable,.finance-ledger-table,.finance-invoice-table,.finance-breakdown-table,.finance-professional-table,.archive-ledger-table,.archive-borrow-table,.contract-ledger-table,.project-ledger-el-table,.receivables-table,.experts-ledger-table,.settlement-ledger-table,.settlement-detail-table,.department-workspace-table) .el-table__header-wrapper th.el-table__cell{font-weight:var(--app-table-header-font-weight)}:is(.app-table--dense,.receivables-table,.experts-ledger-table,.settlement-ledger-table,.settlement-detail-table,.department-workspace-table) .el-table__cell{padding:var(--app-table-cell-padding-block-dense) 0}:is(.app-table--standard,.finance-ledger-table,.finance-invoice-table,.finance-breakdown-table,.finance-professional-table,.archive-ledger-table,.archive-borrow-table,.contract-ledger-table,.project-ledger-el-table) .el-table__cell{padding:var(--app-table-cell-padding-block-standard) 0}:is(.app-table--comfortable) .el-table__cell{padding:var(--app-table-cell-padding-block-comfortable) 0}:is(.app-table--clickable,.archive-ledger-table,.contract-ledger-table,.experts-ledger-table,.finance-professional-table,.project-ledger-el-table) .el-table__row{cursor:pointer}:is(.app-table,.app-table--dense,.app-table--standard,.app-table--comfortable,.project-ledger-el-table) .el-table__row:focus-visible{outline:2px solid var(--app-focus-color);outline-offset:-2px}:is(.app-table,.app-table--dense,.app-table--standard,.app-table--comfortable,.archive-ledger-table,.contract-ledger-table,.experts-ledger-table,.project-ledger-el-table,.finance-professional-table) .el-table__row.table-row-active>td.el-table__cell,:is(.app-table,.app-table--dense,.app-table--standard,.app-table--comfortable,.archive-ledger-table,.contract-ledger-table,.experts-ledger-table,.project-ledger-el-table,.finance-professional-table) .el-table__row.table-row-active:hover>td.el-table__cell{background:var(--app-table-row-active-background)}:is(.app-table,.app-table--dense,.app-table--standard,.app-table--comfortable,.project-ledger-el-table,.finance-professional-table) .el-table__row.table-row-voided>td.el-table__cell,:is(.app-table,.app-table--dense,.app-table--standard,.app-table--comfortable,.project-ledger-el-table,.finance-professional-table) .el-table__row.table-row-voided:hover>td.el-table__cell{background:var(--app-table-row-voided-background);color:var(--app-color-surface)}:is(.app-table,.app-table--dense,.app-table--standard,.app-table--comfortable,.project-ledger-el-table,.finance-professional-table) .el-table__row.table-row-marked>td.el-table__cell,:is(.app-table,.app-table--dense,.app-table--standard,.app-table--comfortable,.project-ledger-el-table,.finance-professional-table) .el-table__row.table-row-marked:hover>td.el-table__cell{background:var(--app-table-row-marked-background);color:var(--app-table-row-marked-color)}:is(.app-table,.app-table--dense,.app-table--standard,.app-table--comfortable,.finance-ledger-table,.settlement-ledger-table) .el-table__expanded-cell{padding:var(--app-table-expanded-cell-padding)}.app-table-money-cell .cell,.project-ledger-el-table td.el-table__cell.ledger-money-cell .cell{font-variant-numeric:tabular-nums}.app-table-empty-cell .cell,.project-ledger-el-table td.el-table__cell.ledger-empty-cell .cell{color:var(--app-color-text-disabled)}.el-table-scroll-hint--scroll-x .el-table .el-scrollbar__bar.is-horizontal{display:block!important;opacity:1}.el-table-scroll-hint .el-table__cell:last-child .cell{padding-right:var(--app-table-end-gutter)}.el-table:is(.is-scrolling-middle,.is-scrolling-right) .el-table-fixed-column--left.is-last-column{box-shadow:5px 0 11px color-mix(in srgb,var(--app-color-text) 20%,transparent)}.el-table:is(.is-scrolling-middle,.is-scrolling-right):not(:has(.el-table-fixed-column--left)) :is(.el-table__header-wrapper,.el-table__body-wrapper,.el-table__footer-wrapper){position:relative}.el-table:is(.is-scrolling-middle,.is-scrolling-right):not(:has(.el-table-fixed-column--left)) :is(.el-table__header-wrapper,.el-table__body-wrapper,.el-table__footer-wrapper):after{content:"";position:absolute;inset:0 auto 0 0;width:22px;pointer-events:none;z-index:3;background:linear-gradient(to right,color-mix(in srgb,var(--app-color-text) 19%,transparent),transparent)}.table-scroll-edge--scrolled{-webkit-mask-image:linear-gradient(to right,transparent,#000 18px);mask-image:linear-gradient(to right,transparent,#000 18px)}.app-table-pagination{flex:0 0 auto;justify-content:flex-end;padding:8px}.project-ledger-el-table .el-table__header-wrapper th.el-table__cell,.project-ledger-el-table .el-table__footer-wrapper td.el-table__cell{padding:9px 0}.project-ledger-el-table .el-table__header th.el-table__cell{position:static;box-shadow:none}.project-ledger-el-table tbody td.el-table__cell{height:auto}.project-ledger-el-table tbody td.project-name-cell .cell{white-space:normal;overflow-wrap:anywhere;overflow:visible;text-overflow:clip}.project-ledger-el-table .el-table__footer-wrapper td.el-table__cell{background:var(--app-color-background-soft);box-shadow:0 -1px 0 var(--app-color-divider);color:var(--app-color-muted);font-weight:600}:is(.app-table,.app-table--dense,.app-table--standard,.app-table--comfortable).el-table--group .el-table__cell{border-right:0}.finance-professional-table .el-table__footer-wrapper tr :is(td,th).el-table-fixed-column--right{position:static!important}.legacy-ledger-primary{display:grid;grid-template-columns:minmax(0,1fr);gap:0;align-items:stretch;min-width:0}.legacy-ledger-row{display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap;min-width:0}.legacy-ledger-filter-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px 16px}.legacy-ledger-filter-row>.legacy-ledger-search{flex:1 1 420px}.legacy-ledger-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto;flex-wrap:wrap;min-height:32px;margin-left:auto;min-width:0}.legacy-ledger-search .status-buttons{flex:0 1 auto;min-width:220px}.project-management-table-scope table>:is(thead,tbody,tfoot)>tr>:first-child{text-align:center}.project-management-table-scope table>:is(thead,tbody,tfoot)>tr>.project-ledger-operation-column,.project-management-table-scope table:has(.table-actions,.legacy-row-actions)>:is(thead,tbody,tfoot)>tr>:last-child,.project-management-table-scope table>tbody>tr>td:has(.table-actions,.legacy-row-actions){text-align:center}.project-management-table-scope .table-actions,.project-management-table-scope .legacy-row-actions{justify-content:center}.legacy-ledger-table td.ledger-money-cell{white-space:nowrap;font-variant-numeric:tabular-nums}.project-ledger-el-table{flex:1 1 auto;min-height:0;width:100%}.project-ledger-el-table .ledger-header-cell-content{display:inline-flex;align-items:center;justify-content:center;gap:2px}.project-ledger-el-table .ledger-sort-button{display:inline-flex;align-items:center;gap:2px;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;padding:0}.ledger-create-button{min-width:104px}.missing-numbers-body{display:flex;flex-direction:column;gap:12px;max-height:420px;overflow-y:auto}.missing-numbers-error{display:flex;align-items:center;gap:8px;color:var(--app-color-form-error)}.missing-numbers-group{border:1px solid var(--app-nav-item-border);border-radius:4px;padding:10px 12px}.missing-numbers-group-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.missing-numbers-group-header span,.missing-numbers-empty,.missing-numbers-state{margin:0;color:var(--app-color-text-tertiary);font-size:13px}.missing-numbers-list{display:flex;flex-wrap:wrap;gap:6px}.missing-number-chip-exceptional{color:var(--app-color-form-error);border-color:#f5c6c2;background:var(--app-attachment-danger-background)}.ledger-filter-chips{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding-top:8px}.ledger-filter-chip{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 6px 0 10px;border:1px solid #d9e2f5;border-radius:12px;background:#f0f5ff;color:#2f54eb;font-size:12px;white-space:nowrap}.ledger-filter-chip-remove,.ledger-filter-chips-clear,.ledger-header-filter-caret{border:0;background:transparent;cursor:pointer;font-size:12px}.ledger-filter-chip-remove,.ledger-header-filter-caret{padding:0 2px;line-height:1}.ledger-filter-chip-remove{color:inherit}.ledger-filter-chips-clear{color:var(--app-color-text-tertiary);padding:0 4px}.ledger-filter-chips-clear:hover{color:var(--app-color-muted)}.ledger-header-filter-caret{color:var(--app-color-text-tertiary)}.ledger-header-filter-caret:hover,.ledger-header-filter-caret.active{color:#2f54eb}@media(max-width:860px){.legacy-ledger-primary{align-items:stretch}.legacy-ledger-row,.legacy-ledger-toolbar-actions{width:100%}.legacy-ledger-search .status-buttons{flex:1 1 100%;min-width:0}.ledger-create-button{width:100%}.legacy-ledger-toolbar-actions{justify-content:flex-start;margin-left:0}}@media(min-width:961px){.legacy-primary-module-page>.project-ledger-layout>.project-ledger-main>.table-card.legacy-ledger-table{flex:1 1 auto;height:auto;min-height:0}}.ledger-header-filter-popover{position:fixed;z-index:2300;width:264px;padding:12px;background:var(--app-color-surface);border:1px solid var(--app-nav-item-border);border-radius:6px;box-shadow:0 6px 20px #0000001f;display:flex;flex-direction:column;gap:10px}.ledger-header-filter-sort{display:flex;gap:8px}.ledger-header-filter-sort button{flex:1;border:1px solid var(--app-border-color);background:var(--app-color-surface);border-radius:16px;padding:4px 0;cursor:pointer;color:var(--app-color-muted)}.ledger-header-filter-sort button.active{border-color:#2f54eb;color:#2f54eb;background:#f0f5ff}.ledger-header-filter-search input,.ledger-header-filter-range input{width:100%;border:1px solid var(--app-border-color);border-radius:4px;padding:6px 8px;font-size:13px;box-sizing:border-box}.ledger-header-filter-options{max-height:220px;overflow-y:auto;border:1px solid var(--app-color-divider);border-radius:4px}.ledger-header-filter-option{display:flex;align-items:center;gap:8px;padding:6px 8px;cursor:pointer;font-size:13px}.ledger-header-filter-option+.ledger-header-filter-option{border-top:1px solid #f2f6fc}.ledger-header-filter-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ledger-header-filter-empty{padding:24px 0;text-align:center;color:var(--app-color-text-tertiary);font-size:13px}.ledger-header-filter-range{display:flex;align-items:center;gap:6px}.ledger-header-filter-range input{flex:1;min-width:0}.ledger-header-filter-range-separator{color:var(--app-color-text-tertiary)}.ledger-header-filter-footer{display:flex;justify-content:center;gap:8px;border-top:1px solid var(--app-color-divider);padding-top:10px}.legacy-row-actions .text-button:hover:not(:disabled){text-decoration:underline}.legacy-row-actions .mark-action,.legacy-row-actions .mark-action-placeholder{margin-left:4px}.row-action.mark-action{display:inline-flex;align-items:center;justify-content:center;width:20px;min-width:20px;height:20px;padding:0;border:0;background:transparent;color:var(--app-color-text-tertiary)}.row-action.mark-action:hover:not(:disabled){color:var(--app-color-primary)}.row-action.mark-action.marked,.row-action.mark-action.marked:hover:not(:disabled){color:#67c23a}.row-action.mark-action.marked .app-icon{fill:currentColor}.mark-action-placeholder{display:inline-block;width:20px;min-width:20px;visibility:hidden}.legacy-row-actions .ledger-status-trigger{margin-left:10px}.legacy-row-actions .ledger-status-trigger:after{content:"▾";margin-left:2px}.legacy-row-actions .ledger-status-trigger.open{color:var(--app-color-primary)}.ledger-status-menu{position:fixed;z-index:2200;min-width:128px;padding:4px;border:1px solid var(--app-border-color);border-radius:6px;background:var(--app-color-surface);box-shadow:var(--app-shadow-dropdown)}.ledger-status-menu-item{display:block;width:100%;padding:7px 12px;border:0;border-radius:4px;background:transparent;color:var(--app-color-text-strong);font-size:13px;text-align:left;cursor:pointer}.ledger-status-menu-item:hover{background:var(--app-color-background-mute)}.ledger-status-menu-item.danger{color:var(--app-color-danger-text)}.ledger-status-menu-item.warning{color:var(--app-color-warning-text)}.app-modal.contract-detail-modal{width:min(760px,100%)}.legacy-primary-module-page.contract-page>.contract-module-layout>.project-ledger-main.contract-secondary-page{overflow-y:auto}.contract-detail-body{gap:0}.contract-detail-legacy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.contract-detail-readonly-form input[readonly],.contract-detail-readonly-form textarea[readonly]{color:#606266;background:#f8fafc;cursor:default}.contract-detail-readonly-form textarea[readonly]{min-height:88px;resize:none}.contract-detail-readonly-form input:disabled{cursor:default}.contract-detail-attachments{margin-top:4px}.contract-detail-footer{border-top:1px solid #ebeef5}.contract-detail-footer-actions{margin-left:auto}@media(max-width:720px){.contract-detail-legacy-grid,.contract-detail-modal .legacy-contract-line-grid{grid-template-columns:1fr}}.contract-legacy-toolbar{align-items:flex-start}.contract-legacy-search{position:relative;display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.contract-quick-no input{width:220px}.contract-search-popover-wrap{position:relative}.contract-search-popover{position:absolute;top:calc(100% + 8px);left:0;z-index:20;width:min(420px,calc(100vw - 48px));padding:14px;border:1px solid #dcdfe6;background:#fff;box-shadow:0 10px 24px #0f172a29}.contract-search-popover .single-column-form,.contract-advanced-fields{display:grid;grid-template-columns:1fr;gap:12px}.contract-search-popover .customer-party-row{grid-template-columns:1fr}.contract-search-popover-actions{display:flex;justify-content:center;gap:8px;margin-top:14px}.contract-advanced-toggle{justify-self:start}.contract-advanced-toggle.active{color:#0f6bdb}.layout-main:has(.contract-page){padding:0}.content-shell:has(.contract-page){padding:0;overflow:hidden;box-shadow:none}.contract-page{height:100%;margin:0;overflow:hidden;background:#fff}.contract-module-layout{display:grid;grid-template-columns:var(--app-module-sidebar-width) minmax(0,1fr);height:100%;min-height:0;background:#fff}.contract-module-sidebar{border-right:1px solid #dcdfe6;background:#f2f4f7}.contract-module-side-item{display:flex;align-items:center;gap:8px;min-height:42px;padding:0 18px;border-bottom:1px solid #e4e7ed;color:#303133;font-size:13px;text-decoration:none}.contract-module-side-item.active{background:#fff;color:#303133;font-weight:600;box-shadow:inset 3px 0 #0f6bdb}.contract-list-page{display:flex;flex-direction:column;gap:0;height:100%;min-width:0;min-height:0;padding:12px 12px 0}.contract-flat-toolbar{padding:10px 12px;border:1px solid #dcdfe6;border-bottom:0;background:#fff}.contract-table-panel{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;border:1px solid var(--app-border-color);background:var(--app-color-surface);overflow:hidden}.contract-table-status{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:38px;padding:0 12px;border-bottom:1px solid var(--app-color-divider);color:var(--app-color-muted);font-size:12px}.contract-table-panel .table-card{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;border:0;border-radius:0;overflow:hidden}.contract-ledger-table{flex:1 1 auto;min-height:0;width:100%}.contract-ledger-table .table-link-button{max-width:100%;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.contract-ledger-pagination{flex:0 0 auto;justify-content:flex-end;min-height:52px;padding:10px 12px;border-top:1px solid var(--app-color-divider)}.app-modal.contract-form-modal{display:flex;flex-direction:column;width:min(900px,calc(100vw - 64px));max-height:min(760px,calc(100vh - 64px));overflow:hidden;border-radius:4px}.contract-form-modal .app-modal-header{flex:0 0 auto;align-items:center;min-height:46px;padding:10px 12px;background:#fff}.contract-form-modal .app-modal-copy strong{font-size:13px}.contract-form-body.contract-legacy-modal-body{flex:1 1 auto;gap:0;overflow:auto;padding:12px 14px;background:#fff}.legacy-contract-entry-form{display:grid;gap:8px}.legacy-contract-line-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;row-gap:8px}.legacy-contract-field,.legacy-contract-textarea-row{display:grid;grid-template-columns:94px minmax(0,1fr);gap:8px;color:#606266;font-size:12px}.legacy-contract-field{align-items:center;min-height:32px}.legacy-contract-field.contract-rebidding-field{grid-column:1 / -1;grid-template-columns:max-content minmax(0,320px)}.legacy-contract-field>span,.legacy-contract-textarea-row>span{text-align:right;white-space:nowrap}.legacy-contract-field.required>span:before,.legacy-contract-textarea-row.required>span:before{content:"* ";color:#f56c6c}.legacy-contract-field input,.legacy-contract-field select,.legacy-contract-textarea-row textarea{width:100%;min-width:0;border:1px solid #dcdfe6;border-radius:3px;background:#fff;color:#606266;font-size:12px}.legacy-contract-field input,.legacy-contract-field select{height:30px;padding:0 10px}.legacy-contract-field input[type=date]{line-height:30px}.legacy-contract-textarea-row{align-items:start}.legacy-contract-textarea-row>span{padding-top:7px}.legacy-contract-textarea-row textarea{min-height:100px;padding:8px 10px;resize:vertical;line-height:1.5}.legacy-contract-template-textarea{position:relative;min-width:0}.legacy-contract-template-textarea textarea{padding-right:74px}.legacy-contract-template-button{position:absolute;top:8px;right:8px;width:56px;height:28px;min-width:0;border:0;border-radius:3px;background:#1682e6;color:#fff;font-size:12px;font-weight:600;cursor:pointer}.legacy-contract-template-button:hover{background:#0f6bdb}.legacy-contract-template-button:focus{outline:2px solid #b3d8ff;outline-offset:1px}.contract-text-template-modal{width:min(740px,100%)}.contract-text-template-body{gap:12px}.contract-text-template-input{width:100%;min-height:112px;padding:10px 12px;border:1px solid #dcdfe6;border-radius:4px;color:#303133;font:inherit;line-height:1.5;resize:vertical}.contract-text-template-toolbar,.contract-text-template-actions,.contract-text-template-footer{display:flex;align-items:center;gap:8px}.contract-text-template-list{display:grid;gap:10px;min-height:220px;padding:12px;border:1px solid #dcdfe6;border-radius:4px;background:#fff}.contract-text-template-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:14px;border:1px solid #ebeef5;border-radius:4px;background:#fff}.contract-text-template-item.active{border-color:#409eff;background:#ecf5ff}.contract-text-template-item p{margin:0;color:#303133;font-size:12px;line-height:1.6;white-space:pre-wrap}.contract-text-template-actions{justify-content:flex-end}.legacy-contract-customer-field{align-items:center}.legacy-contract-party-picker.customer-party-field,.legacy-contract-party-picker .customer-party-row,.legacy-contract-party-picker .form-field{display:block;min-width:0}.legacy-contract-party-picker .form-field{gap:0}.legacy-contract-party-picker .form-field>span{display:none}.legacy-contract-party-picker .customer-party-input-action{gap:0}.legacy-contract-party-picker .customer-party-input-action input{height:30px;padding:0 10px;border-radius:3px 0 0 3px;border-right:0}.legacy-contract-party-picker .customer-party-input-action .action-button{width:64px;height:30px;padding:0;border-radius:0 3px 3px 0}.legacy-contract-check-row{align-items:center;min-height:32px}.legacy-contract-check{display:grid;grid-template-columns:94px auto;align-items:center;gap:8px;color:#606266;font-size:12px}.legacy-contract-check span{text-align:right;white-space:nowrap}.legacy-contract-check input,.legacy-contract-save-close input{width:14px;height:14px;min-width:0;margin:0;padding:0}.legacy-contract-upload-panel{display:grid;gap:10px}.legacy-contract-template-panel{display:grid;gap:8px;padding:10px 0 2px;border-top:1px solid #ebeef5}.legacy-contract-upload-title{display:flex;align-items:center;gap:8px;min-height:32px;padding:0 12px;border:1px solid #b3d8ff;background:#ecf5ff;color:#606266;font-size:12px}.contract-pending-upload{display:flex;flex-direction:column;gap:10px}.legacy-contract-upload-panel .contract-pending-upload,.legacy-contract-upload-panel .attachment-panel{padding:12px;border:1px dashed #dcdfe6;background:#fff}.legacy-contract-upload-drop{display:grid;place-items:center;gap:6px;min-height:86px;border:1px dashed #dcdfe6;background:#fff;color:var(--app-color-text-tertiary);font-size:12px;text-align:center;cursor:pointer}.legacy-contract-upload-drop:hover{border-color:#409eff;color:#606266}.legacy-contract-upload-cloud{color:#e64646;font-size:34px;line-height:1}.legacy-contract-upload-description{width:100%;height:30px;min-width:0;padding:0 10px;border:1px solid #dcdfe6;border-radius:3px;background:#fff;color:#606266;font-size:12px}.legacy-contract-upload-panel .attachment-panel-header{margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #ebeef5}.legacy-contract-upload-panel .table-card.compact{max-height:180px;overflow:auto}.app-modal-footer.legacy-contract-modal-footer{flex:0 0 auto;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-top:1px solid #ebeef5;background:#fff}.legacy-contract-save-close,.legacy-contract-footer-actions{display:inline-flex;align-items:center}.legacy-contract-save-close{gap:6px;color:#606266;font-size:12px}.legacy-contract-footer-actions{gap:8px}.app-modal.contract-preview-modal{display:flex;flex-direction:column;width:min(1640px,calc(100vw - 32px));height:calc(100vh - 32px);max-height:calc(100vh - 32px);overflow:hidden}.contract-preview-modal .app-modal-header,.contract-preview-modal .app-modal-footer{flex:0 0 auto}.contract-preview-modal .app-modal-footer{padding:10px 16px;border-top:1px solid #ebeef5;background:#fff}.contract-preview-frame-wrap{position:relative;flex:1 1 auto;min-height:0;padding:0;border-top:1px solid #ebeef5;border-bottom:1px solid #ebeef5;overflow:hidden;background:#f5f7fa}.contract-onlyoffice-editor{width:100%;height:100%;min-height:0}.contract-docx-preview{height:100%;overflow:auto}@media print{body *{visibility:hidden}.contract-docx-preview,.contract-docx-preview *{visibility:visible}.contract-docx-preview{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible}}.contract-preview-loading,.contract-preview-error{position:absolute;z-index:2;top:0;left:50%;margin:24px auto 0;width:min(420px,calc(100% - 48px));padding:12px 14px;border-radius:4px;background:#fff;color:#606266;font-size:12px;text-align:center;transform:translate(-50%)}.contract-preview-error{border:1px solid #f5c2c7;background:#fff5f5;color:#b42318}@media(max-width:760px){.app-modal.contract-form-modal{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.contract-preview-mask{padding:8px}.app-modal.contract-preview-modal{width:calc(100vw - 16px);height:calc(100vh - 16px);max-height:calc(100vh - 16px)}.legacy-contract-line-grid{grid-template-columns:minmax(0,1fr);row-gap:8px}.legacy-contract-field,.legacy-contract-textarea-row,.legacy-contract-check{grid-template-columns:82px minmax(0,1fr)}.legacy-contract-upload-panel .attachment-upload-row{grid-template-columns:minmax(0,1fr)}.legacy-contract-modal-footer{align-items:stretch;flex-direction:column}.legacy-contract-footer-actions{justify-content:flex-end}}.project-billing-project-context .toolbar-body{gap:14px}.project-billing-context-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.project-billing-context-heading>div{display:grid;gap:4px}.project-billing-context-heading strong{color:#162033;font-size:15px}.project-billing-tab-card{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:0 16px;border:1px solid #91d5ff;border-radius:4px;background:#e6f7ff;color:#096dd9;font:inherit;font-size:12px;cursor:pointer}.project-billing-tab-card:hover{border-color:#40a9ff;background:#bae7ff}.project-billing-tab-card strong{color:inherit;font-weight:700}.legacy-billing-workspace .toolbar-body{gap:20px}.legacy-billing-topline{align-items:center;border-bottom:1px solid #d8dee8;display:flex;gap:18px;justify-content:space-between;min-height:96px;padding:10px 0 22px}.legacy-add-billing-button{min-height:44px;min-width:150px;justify-content:center}.billing-reference-actions{align-items:center;display:flex;flex-wrap:wrap;gap:14px;justify-content:flex-end}.billing-reference-button{align-items:center;border:1px solid transparent;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;font:inherit;font-size:13px;font-weight:600;gap:10px;min-height:44px;padding:0 22px;transition:background .15s ease,box-shadow .15s ease,transform .15s ease}.billing-reference-button:hover{box-shadow:0 8px 18px #0f172a24;transform:translateY(-1px)}.billing-reference-button-blue{background:#2db7f5}.billing-reference-button-blue:hover{background:#1890ff}.billing-reference-button-orange{background:#fa8c16}.billing-reference-button-orange:hover{background:#f97316}.billing-reference-icon{color:#ffffffdb;font-size:12px}.legacy-billing-tabs-panel{border:1px solid #d8dee8;border-radius:4px;background:#fff}.legacy-billing-tab-strip{align-items:flex-end;border-bottom:1px solid #d8dee8;display:flex;flex-wrap:wrap;gap:0;min-height:46px;padding:0 18px}.legacy-billing-tab-strip .project-billing-tab-card{background:#fff;border-color:#d8dee8;border-radius:4px 4px 0 0;border-bottom-color:transparent;color:#1677ff;font-size:13px;margin:0 0 -1px;min-height:46px;min-width:112px;justify-content:center}.legacy-billing-tab-strip .project-billing-tab-card.active{border-color:#d8dee8;border-bottom-color:#fff;color:#1677ff;font-weight:700}.legacy-billing-form-card{max-height:calc(100vh - 460px);overflow-y:auto;padding:30px 28px}.legacy-billing-form-grid{display:grid;gap:12px 28px;grid-template-columns:repeat(3,minmax(0,1fr))}.billing-template-fields{display:grid;gap:16px 28px;grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}.billing-template-amount{border:1px solid #e2e8f0;border-radius:4px;display:grid;gap:10px;min-width:0;padding:14px}.billing-template-guidance{color:#667085;font-size:12px;grid-column:1 / -1;margin:0}@media(max-width:860px){.billing-template-fields{grid-template-columns:1fr}}.legacy-billing-field{align-items:center;display:grid;gap:10px;grid-template-columns:116px minmax(0,1fr)}.legacy-billing-field.span-2{grid-column:span 2;grid-template-columns:116px minmax(0,1fr)}.legacy-billing-field.span-3{align-items:start;grid-column:1 / -1;grid-template-columns:116px minmax(0,1fr)}.legacy-billing-field.span-3:has(>select){align-items:center}.legacy-billing-field>span:first-child{color:#667085;font-size:13px;text-align:right}.billing-template-fields--consulting .billing-template-amount .legacy-billing-field,.billing-template-fields--consulting .billing-template-total{grid-template-columns:132px minmax(0,1fr)}.billing-template-fields--consulting .billing-template-amount .legacy-billing-field>span:first-child{white-space:nowrap}.billing-template-total{background:#f5f7fa;border:1px solid #e2e8f0;border-radius:4px;min-width:0;padding:14px}.legacy-billing-field input,.legacy-billing-field select,.legacy-billing-field textarea{border:1px solid #cfd8e3;border-radius:4px;color:#162033;font:inherit;min-height:36px;padding:0 12px;width:100%}.legacy-billing-field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--app-color-surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px 16px;padding-right:36px}.legacy-billing-field textarea{min-height:110px;padding:10px 12px;resize:vertical}.billing-payee-controls{display:grid;gap:8px;min-width:0}.legacy-billing-contract-terms{border-top:1px solid #eef1f5;display:grid;gap:12px 28px;grid-column:1 / -1;grid-template-columns:minmax(0,1fr);padding-top:12px}.legacy-billing-contract-term{align-items:start;display:grid;gap:10px;grid-template-columns:116px minmax(0,1fr)}.legacy-billing-contract-term>span:first-child{color:#667085;font-size:13px;text-align:right}.legacy-billing-contract-term textarea{border:1px solid #e2e8f0;border-radius:4px;color:#162033;font:inherit;min-height:88px;padding:10px 12px;resize:vertical;width:100%;background:#fbfcfe}.billing-variable-field{display:block;min-width:0;position:relative}.billing-variable-field input{padding-left:36px}.billing-variable-badge{background:#e8f1ff;border-radius:3px;color:#1677d2;display:inline-block;font-size:11px;font-style:normal;font-weight:700;left:8px;line-height:16px;padding:0 5px;position:absolute;top:50%;transform:translateY(-50%);z-index:1}.legacy-billing-field .field-error{grid-column:2;text-align:left}.legacy-billing-field input[readonly]{background:#f5f7fa;color:#667085;cursor:default}.legacy-billing-source-note{color:#667085;font-size:12px;grid-column:1 / -1;margin:-2px 0 2px 126px}.legacy-billing-tab-actions{align-items:center;display:flex;gap:12px;justify-content:flex-end;padding-top:22px}.legacy-billing-feedback{color:#667085;font-size:12px;margin:-4px 0 0}.billing-required:before{color:#c62828;content:"*";margin-right:4px}.billing-modal-footer{flex-wrap:wrap}.billing-validation-feedback{background:#fff1f0;border:1px solid #ffa39e;border-radius:4px;color:#b42318;flex:1 0 100%;font-size:14px;font-weight:600;margin:0;padding:10px 12px;text-align:left}.legacy-billing-field input[aria-invalid=true]{border-color:#d92d20;box-shadow:0 0 0 2px #fee4e2}.billing-template-guidance.field-error{color:#b42318}.billing-edit-modal{display:grid;gap:14px;padding:18px 20px}.billing-edit-modal .legacy-billing-topline{border-bottom:0;justify-content:flex-start;min-height:0;padding:0}.billing-edit-modal .legacy-billing-form-card{background:#fff;border:1px solid #d8dee8;border-radius:4px;max-height:none;overflow:visible;padding:22px 24px}.billing-edit-modal .legacy-billing-feedback{margin:0;min-height:16px}.legacy-billing-footer{align-items:center;background:#fff;border-top:1px solid #d8dee8;position:sticky;bottom:0;display:flex;justify-content:space-between;gap:16px;margin:2px -16px -16px;padding:16px;z-index:8}.legacy-billing-save-close{align-items:center;color:#344054;display:inline-flex;gap:8px;font-size:13px}.legacy-billing-save-close input{height:16px;width:16px}.billing-reference-preview{align-items:center;background:#0f172a9e;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:36px;position:fixed;z-index:1000}.billing-reference-preview-panel{background:#fff;border-radius:6px;box-shadow:0 24px 70px #0f172a52;display:grid;grid-template-rows:auto minmax(0,1fr);max-height:88vh;max-width:min(960px,92vw);overflow:hidden;width:100%}.billing-reference-preview-header{align-items:center;border-bottom:1px solid #d8dee8;display:flex;justify-content:space-between;gap:16px;padding:14px 18px}.billing-reference-preview-header strong{color:#162033;font-size:14px}.billing-reference-preview-body{background:#f6f8fb;overflow:auto;padding:18px}.billing-reference-preview-body img{display:block;height:auto;margin:0 auto;max-width:100%}@media(max-width:860px){.legacy-billing-topline,.legacy-billing-footer{align-items:stretch;flex-direction:column}.legacy-billing-contract-terms{grid-template-columns:1fr}.billing-reference-actions,.legacy-billing-footer .toolbar-actions{justify-content:flex-start;width:100%}.billing-reference-button,.legacy-add-billing-button{width:100%}.legacy-billing-form-card{padding:20px 14px}.legacy-billing-form-grid{grid-template-columns:1fr}.legacy-billing-field,.legacy-billing-field.span-2,.legacy-billing-field.span-3{grid-column:1;grid-template-columns:1fr}.legacy-billing-field>span:first-child{text-align:left}.legacy-billing-tab-actions{justify-content:flex-start}.billing-reference-preview{padding:14px}}.legacy-template-workspace{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:620px;height:calc(100vh - 142px);border:1px solid #dfe5ec;background:#fff;overflow:hidden}.legacy-template-tree{min-width:0;overflow:auto;border-right:1px solid #dfe5ec;background:#fff}.legacy-template-tree-header{display:flex;min-height:48px;align-items:center;justify-content:space-between;padding:0 12px 0 16px;border-bottom:1px solid #e8edf3;color:#303133;font-size:13px;font-weight:600}.legacy-template-add,.legacy-template-node-add{width:24px;height:24px;padding:0;color:#409eff;font-size:16px;line-height:22px}.legacy-template-node-add{display:none;margin-left:auto;color:var(--app-color-text-tertiary);font-size:13px}.legacy-template-tree-row:hover .legacy-template-node-add,.legacy-template-tree-row.active .legacy-template-node-add{display:inline-flex}.legacy-template-tree-list{padding:6px 0}.legacy-template-tree-row{display:flex;min-height:38px;align-items:center;gap:7px;padding-top:0;padding-right:10px;padding-bottom:0;color:#606266;cursor:pointer;font-size:13px;transition:background-color .12s ease}.legacy-template-tree-row:hover{background:#f5f9ff}.legacy-template-tree-row.active{background:#dcecff;color:#1f75d6}.legacy-template-tree-toggle{display:inline-flex;width:18px;height:22px;align-items:center;justify-content:center;padding:0;border:0;background:transparent;color:#606266;cursor:pointer}.legacy-template-tree-toggle.muted{visibility:hidden}.legacy-template-tree-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legacy-template-tree-empty{padding:22px 18px;color:var(--app-color-text-tertiary);font-size:12px;line-height:1.6}.legacy-template-editor{display:flex;min-width:0;min-height:0;flex-direction:column;overflow:hidden;background:#fff}.legacy-template-editor-header{display:flex;min-height:48px;align-items:center;gap:14px;padding:0 12px;border-bottom:1px solid #dfe5ec}.legacy-template-editor-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.legacy-template-editor-title{overflow:hidden;color:#303133;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.legacy-template-feedback{margin-left:auto;overflow:hidden;color:var(--app-color-text-tertiary);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.legacy-template-formula-bar{display:flex;min-height:38px;align-items:center;border-bottom:1px solid #dfe5ec;background:#fff;color:#303133}.legacy-template-cell-name{display:inline-flex;width:74px;align-items:center;justify-content:center;color:#606266;font-size:12px}.legacy-template-formula-divider{padding-right:8px;color:#409eff}.legacy-template-formula-icon{padding:0 8px;color:#303133;font-size:13px;font-style:italic}.legacy-template-formula-input{min-width:0;flex:1;height:30px;padding:0 8px;border:0;outline:0;color:#303133;font-size:13px}.legacy-template-formula-input:focus-visible{box-shadow:var(--app-focus-ring)}.legacy-template-sheet-scroll{min-height:0;flex:1;overflow:auto}.legacy-template-sheet{min-width:1180px;border-collapse:collapse;table-layout:fixed;color:#303133;font-size:13px}.legacy-template-sheet th,.legacy-template-sheet td{height:38px;padding:0;border-right:1px solid #dfe5ec;border-bottom:1px solid #dfe5ec}.legacy-template-sheet thead th{width:112px;height:28px;background:#f5f7fa;color:#606266;font-weight:500;text-align:center}.legacy-template-sheet thead th:not(.legacy-template-corner){width:112px}.legacy-template-sheet .legacy-template-corner,.legacy-template-sheet tbody th{width:48px;background:#f5f7fa;color:#606266;font-size:12px;font-weight:400;text-align:center}.legacy-template-sheet td{background:#fff}.legacy-template-sheet tbody tr:first-child td{height:82px}.legacy-template-sheet td input.legacy-template-title-cell{font-size:24px;font-weight:700;text-align:center}.legacy-template-sheet td.active{outline:2px solid #409eff;outline-offset:-2px}.legacy-template-sheet td input{display:block;width:100%;height:100%;min-width:0;padding:0 8px;border:0;outline:0;background:transparent;color:inherit;font:inherit;text-align:left}.legacy-template-sheet td input:focus-visible{outline:2px solid var(--app-focus-color);outline-offset:-2px}.legacy-template-sheet td:first-of-type input{font-weight:500}.legacy-template-parameters{display:flex;min-height:80px;flex-wrap:wrap;align-items:flex-start;gap:8px}.legacy-template-parameter{padding:4px 8px;border:1px solid #b3d8ff;border-radius:2px;background:#ecf5ff;color:#409eff;font-family:monospace;font-size:12px}.legacy-template-empty-state{color:var(--app-color-text-tertiary);font-size:12px}.system-role-editor{display:flex;flex-direction:column;gap:16px}.legacy-dict-split{display:grid;grid-template-columns:minmax(250px,30%) minmax(0,70%);flex:1 1 auto;min-height:620px;border:1px solid #dcdfe6;background:#fff}.page-section:has(.legacy-dict-split){height:100%}.dict-group-pane,.dict-items-pane{min-width:0;background:#fff}.dict-group-pane{border-right:1px solid #dcdfe6}.legacy-dict-pane-toolbar{display:flex;min-height:58px;align-items:center;padding:10px 14px}.dict-group-tree{border-top:1px solid #ebeef5}.dict-group-tree-row{display:flex;min-height:42px;align-items:center;gap:4px;padding-top:6px;padding-right:10px;padding-bottom:6px;border-bottom:1px solid #f0f2f5;color:#303133;font-size:12px;cursor:pointer}.dict-tree-toggle,.dict-tree-marker{display:inline-flex;width:18px;height:24px;flex:0 0 18px;align-items:center;justify-content:center;border:0;padding:0;background:transparent;color:#7b8794;font:inherit}.dict-tree-toggle{cursor:pointer;font-size:16px;line-height:1}.dict-group-tree-row:hover,.dict-group-tree-row.active{background:#eef6ff;color:#0f6bdb}.dict-group-tree-name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dict-group-tree-actions{display:none;gap:4px}.dict-group-tree-row:hover .dict-group-tree-actions,.dict-group-tree-row.active .dict-group-tree-actions{display:flex}.dict-group-action{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;border:1px solid #d8dee8;border-radius:3px;padding:0;background:#fff;color:#0f6bdb;cursor:pointer;font-size:13px;line-height:1}.dict-group-action:hover{border-color:#8bbcf4;background:#f5f9ff}.dict-group-action.danger{color:#d93025}.legacy-dict-selection-notice{display:flex;min-height:46px;align-items:center;gap:12px;margin:12px 14px;padding:8px 14px;border:1px solid #b3d8ff;border-radius:4px;background:#ecf5ff;color:#606266;font-size:12px}.legacy-dict-selection-notice>span{display:inline-flex;width:16px;height:16px;align-items:center;justify-content:center;border-radius:50%;background:#409eff;color:#fff;font-size:11px;font-weight:700}.legacy-dict-group-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-height:58px;align-items:center;gap:24px;margin:0 14px 12px;padding:10px 14px;border:1px solid #ebeef5;border-radius:4px;background:#fff}.legacy-dict-group-summary div{display:flex;min-width:0;align-items:center}.legacy-dict-group-summary strong,.legacy-dict-group-summary span{color:#303133;font-size:12px;font-weight:400}.legacy-dict-group-summary strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legacy-dict-items-table{border:0;border-top:1px solid #ebeef5}.legacy-dict-items-table th:last-child,.legacy-dict-items-table td:last-child{white-space:nowrap}.legacy-empty-pane{padding:22px 14px;color:var(--app-color-text-tertiary);font-size:12px}.permission-check-grid{display:grid;gap:8px;max-height:420px;overflow:auto}.permission-check-grid label{display:flex;gap:8px;align-items:center;min-height:28px;color:#4b5563;font-size:12px}.role-group-toolbar{justify-content:space-between}.legacy-role-layout{min-width:0}.legacy-role-layout>.table-card{min-height:460px}.legacy-role-action-bar{display:flex;justify-content:flex-end;gap:6px;padding:10px 14px;border-bottom:1px solid #ebeef5}.role-group-tabs{flex:1 1 420px}.role-authorization-modal{display:grid;gap:14px}.role-detail-tabs{flex-wrap:wrap;padding-top:12px;border-top:1px solid #ebeef5}.role-permission-panel{display:grid;gap:12px}.role-permission-panel .permission-check-grid{max-height:360px;padding:12px;border:1px solid #ebeef5;background:#fff}.dict-tree-marker{display:inline-block;width:18px;color:var(--app-color-text-tertiary)}.role-detail-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid #ebeef5;background:#fff}.role-detail-description{grid-column:1 / -1;border-right:0}.role-detail-actions{justify-content:flex-start}.role-user-panel{display:grid;gap:12px;padding-top:14px;border-top:1px solid #ebeef5;overflow-x:auto}.role-user-filters{display:flex;gap:8px;flex-wrap:wrap}.role-user-table{min-width:620px}.role-user-table th,.role-user-table td{padding:9px 10px}@media(max-width:860px){.legacy-dict-split{grid-template-columns:1fr}}@media(max-width:860px){.dict-group-pane{border-right:0;border-bottom:1px solid #dcdfe6}}@media(max-width:860px){.legacy-template-workspace{grid-template-columns:220px minmax(0,1fr);height:calc(100vh - 128px)}}.role-detail-actions{justify-content:flex-end}.legacy-primary-module-page.project-detail-page>.project-detail-ledger-layout>.project-edit-ledger-main{overflow-y:auto}.base-detail-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 0}.base-detail-title-block{display:grid;gap:10px;min-width:0}.base-detail-hero-meta{display:flex;gap:8px;flex-wrap:wrap;color:#606f85;font-size:12px}.base-detail-hero-meta span{display:inline-flex;align-items:center;max-width:360px;min-height:28px;padding:0 9px;border:1px solid #e6eaf0;background:#f8fafc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.base-detail-hero-meta .base-detail-status{gap:6px;color:var(--app-status-neutral-text);font-weight:600}.base-detail-status:before{content:"";flex:0 0 6px;height:6px;border-radius:var(--app-radius-full);background:currentColor}.base-detail-hero-meta .base-detail-status.success{color:var(--app-status-success-text)}.base-detail-hero-meta .base-detail-status.warning{color:var(--app-status-warning-text)}.base-detail-hero-meta .base-detail-status.danger{color:var(--app-status-danger-text)}.base-detail-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:4px}.base-detail-summary-card{display:flex;flex-direction:column;gap:6px;padding:10px 14px;border:1px solid #e2e8f0;border-radius:6px;background:#fff}.base-detail-summary-label{font-size:12px;font-weight:500;color:#64748b}.base-detail-summary-values{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.base-detail-summary-primary{font-size:16px;font-weight:700;color:#0f172a;letter-spacing:-.01em}.base-project-detail-dashboard{display:grid;gap:12px}.base-detail-section{display:grid;gap:14px;padding:16px;border:1px solid #dce3ec;background:#fff}.base-detail-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.base-detail-section-heading>div:not(.base-detail-heading-actions){display:grid;gap:4px}.base-detail-section-heading>.base-detail-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto;flex-wrap:nowrap}.base-detail-info-grid{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.base-detail-info-grid>div{display:grid;gap:4px;min-width:0;min-height:70px;padding:10px 12px;border:1px solid #e7ecf3;background:#f8fafc}.base-detail-info-grid span,.base-detail-info-grid small{color:#667085;font-size:12px}.base-detail-info-grid strong{color:#162033;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.base-detail-implementation{display:grid;gap:12px}.base-detail-implementation-heading{padding-top:12px;border-top:1px solid #eef1f5}.base-detail-implementation-cards{display:grid;gap:12px}.base-detail-implementation-card{display:grid;gap:10px;padding:12px 14px;border:1px solid #e7ecf3;background:#fbfcfe}.base-detail-implementation-card-heading{display:flex;align-items:center;gap:10px;color:#162033;font-size:13px}.base-detail-implementation-card-heading strong{font-weight:600}.base-detail-implementation-card-heading span{color:#667085;font-size:12px}.base-detail-implementation-card-link{margin-left:auto;font-size:12px}.base-detail-implementation-group-label{color:#667085;font-size:12px;font-weight:600}.base-detail-implementation-grid>div{min-height:0;background:#fff}.base-detail-subprojects{gap:12px}.base-detail-subproject-table-wrap{overflow-x:auto;border:1px solid var(--app-color-divider)}.base-detail-business-type-heading{display:block;text-align:left}.base-detail-business-type-cell{text-align:left}.base-detail-business-type-cell strong{color:var(--app-color-text-strong);font-size:13px}.base-detail-section.base-detail-contract-section :is(th,td):first-child{text-align:left}.project-contract-relation-modal{max-width:980px}.project-contract-relation-body{display:grid;gap:12px}.project-contract-relation-search{display:flex;align-items:center;gap:10px}.project-contract-relation-search .filter-item,.project-contract-relation-search .filter-item input{flex:1;min-width:0}.project-contract-relation-table-wrap{border-radius:4px;max-height:420px;min-height:168px;overflow:auto}.project-contract-relation-table td[colspan]{color:var(--app-color-text-tertiary);height:128px;text-align:center}.project-contract-relation-table{min-width:860px}.project-contract-relation-table th:first-child,.project-contract-relation-table td:first-child{width:64px;text-align:center}.project-contract-relation-count{margin-right:auto;color:#667085;font-size:12px}@media(max-width:1180px){.base-detail-hero{flex-direction:column}.base-detail-info-grid,.base-detail-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.base-detail-info-grid{grid-template-columns:1fr}.base-detail-section-heading{flex-direction:column}.base-detail-hero{padding:14px 0}.base-detail-section{padding:14px 16px}.base-detail-section-heading>.base-detail-heading-actions{width:100%;justify-content:flex-start}.base-detail-hero-meta span{max-width:100%;width:100%}.base-detail-summary-grid{grid-template-columns:1fr}}.project-contract-relation-body{display:flex;flex-direction:column;gap:16px}.finance-professional-editor-modal-mask .el-overlay-dialog{padding:2vh 2vw}.app-modal.finance-professional-editor-modal{width:min(1480px,96vw);max-height:94vh}.finance-professional-editor-modal .business-project-modal-content{padding:12px}.finance-professional-editor-modal .form-grid{gap:10px 12px}.finance-professional-editor-modal .form-field{gap:6px}.finance-professional-editor-modal .form-textarea{min-height:48px;resize:vertical;line-height:1.4}.finance-edit-pane{display:grid;gap:12px}.finance-edit-pane .data-table{min-width:980px}.finance-legacy-layout{display:grid;grid-template-columns:var(--app-module-sidebar-width) minmax(0,1fr)}.finance-legacy-sidebar{min-width:0}.finance-side-item{gap:8px}.finance-legacy-main{display:flex;flex-direction:column;min-width:0}.finance-advanced-search .finance-filter-popover{right:0;left:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:min(720px,calc(100vw - 360px));max-height:min(640px,calc(100vh - 190px));gap:12px;overflow:auto;padding:16px;transform:none}.finance-filter-popover>label{display:grid;min-width:0;gap:6px;color:#606266;font-size:12px}.finance-filter-popover input{width:100%;min-width:0;height:34px;padding:0 10px;border:1px solid #dcdfe6;border-radius:4px;background:#fff;color:#606266;font:inherit}.finance-filter-popover .finance-filter-select{width:100%}.finance-filter-popover .advanced-filter-actions{grid-column:1 / -1;justify-content:flex-end;padding-top:12px;border-top:1px solid #ebeef5}.performance-advanced-search .performance-filter-popover{left:0;right:auto;width:min(760px,calc(100vw - 540px));max-height:min(640px,calc(100vh - 190px));overflow:auto;transform:none}@media(max-width:860px){.performance-advanced-search .performance-filter-popover{width:min(760px,calc(100vw - 48px))}}.performance-filter-popover .advanced-filter-actions{grid-column:1 / -1;justify-content:flex-end}.finance-invoice-form{display:flex;flex-direction:column;gap:18px;min-width:0}.finance-invoice-context{display:grid;grid-template-columns:minmax(140px,.45fr) minmax(0,1fr);gap:10px}.finance-invoice-context>div{display:grid;min-width:0;gap:5px;padding:12px 14px;border:1px solid #e4e7ed;border-radius:4px;background:#f8fafc}.finance-invoice-context-full{grid-column:1 / -1}.finance-invoice-context span{color:#909399;font-size:12px}.finance-invoice-context strong{color:#303133;font-size:12px;font-weight:500;line-height:1.55;overflow-wrap:anywhere}.finance-invoice-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.finance-invoice-fields input,.finance-invoice-fields select{width:100%;min-width:0;height:36px;padding:0 10px;border:1px solid #dcdfe6;border-radius:4px;background:#fff;color:#303133;font:inherit}.finance-invoice-fields input:focus,.finance-invoice-fields select:focus{border-color:#409eff;outline:2px solid rgb(64 158 255 / 16%);outline-offset:0}.finance-invoice-fields input:disabled{background:#f5f7fa;color:#909399;cursor:not-allowed}.finance-invoice-form .form-help{margin:-4px 0 0;padding:10px 12px;border-left:3px solid #e6a23c;background:#fdf6ec;color:#8a5a12;line-height:1.5}.finance-invoice-form-error{margin:0;padding:10px 12px;border-left:3px solid #b42318;background:#fef3f2;color:#b42318;font-size:12px;line-height:1.5}.finance-invoice-form-actions{padding-top:14px;border-top:1px solid #ebeef5}.finance-toolbar-card>.toolbar-body>.toolbar-stack{align-items:center;min-height:40px;padding:8px 14px}.finance-advanced-input{width:170px}.finance-ledger-table,.finance-invoice-table,.finance-breakdown-table,.finance-professional-table{width:100%}.finance-ledger-table .finance-money-negative{color:var(--app-color-danger-text)}.finance-ledger-table .finance-money-zero{color:var(--app-color-text-tertiary)}.finance-ledger-table .el-table__footer .el-table__cell{font-weight:var(--app-table-header-font-weight)}.finance-professional-ledger{display:grid;gap:12px;min-width:0}.finance-professional-heading h1{margin:0;color:#1d2939;font-size:16px}.finance-professional-toolbar{display:grid;gap:10px;padding:12px}.legacy-primary-module-page .finance-professional-heading{flex:0 0 auto}.finance-professional-ledger>.inline-feedback{flex:0 0 auto;margin:0}.finance-professional-primary-filters,.finance-professional-selected-actions,.finance-professional-ledger-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.finance-professional-selected-actions{flex:0 1 auto;min-width:0}.finance-professional-ledger-tools{justify-content:flex-end;margin-left:auto}.finance-professional-search .finance-filter-popover{left:0;right:auto;transform:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:min(720px,calc(100vw - 420px));max-height:min(640px,calc(100vh - 190px));gap:12px;overflow:auto;padding:16px}.layout-main:has(.analytics-legacy-page){padding:0;background:#f4f6f8}.content-shell:has(.analytics-legacy-page){padding:0;box-shadow:none}.analytics-legacy-page{min-height:100%;gap:0}.analytics-legacy-layout{display:grid;grid-template-columns:var(--app-module-sidebar-width) minmax(0,1fr);min-height:calc(100vh - var(--app-header-height));background:#fff}.analytics-legacy-sidebar{min-width:0;border-right:1px solid #dcdfe6;background:#f7f7f7}.analytics-side-group{border-bottom:1px solid #e4e7ed}.analytics-side-item{display:grid;grid-template-columns:24px minmax(0,1fr) 18px;align-items:center;gap:8px;width:100%;min-height:61px;padding:0 18px;border:0;border-bottom:1px solid #e4e7ed;border-right:3px solid transparent;background:transparent;color:#303133;font-size:13px;text-align:left;cursor:pointer}.analytics-side-item:hover{background:#fff;color:#409eff}.analytics-side-item.active{border-right-color:#409eff;background:#eef8ff;color:#409eff}.analytics-side-caret{justify-self:end;color:#606266;font-size:13px}.analytics-side-subitem{display:block;width:100%;min-height:38px;padding:8px 16px 8px 52px;border:0;border-right:3px solid transparent;border-bottom:1px solid #eef1f5;background:transparent;color:#606266;font-size:13px;text-align:left;cursor:pointer}.analytics-side-subitem:hover,.analytics-side-subitem.active{color:#409eff;background:#f2f9ff}.analytics-side-subitem.active{border-right-color:#409eff;font-weight:700}.analytics-legacy-main{min-width:0;display:flex;flex-direction:column;gap:10px;padding:12px 18px 16px;overflow:hidden}.analytics-legacy-toolbar{position:relative;display:flex;align-items:center;gap:10px;min-height:62px;padding:10px 12px;border:1px solid #dcdfe6;background:#fff}.analytics-date-control{display:flex;align-items:center;gap:10px;color:#606266;font-size:12px}.analytics-date-control>span{white-space:nowrap}.analytics-date-range{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 8px;border:1px solid #dcdfe6;border-radius:4px;background:#fff}.analytics-date-range input{width:134px;min-width:0;height:30px;border:0;color:#606266;font-size:13px}.analytics-date-range:focus-within{border-color:var(--app-color-primary);box-shadow:var(--app-focus-ring)}.analytics-date-range input:focus{outline:none}.analytics-advanced-search{position:relative}.analytics-advanced-search summary{display:inline-flex;align-items:center;height:32px;padding:0 14px;border:1px solid #409eff;border-radius:4px;background:#409eff;color:#fff;font-size:12px;font-weight:600;list-style:none;cursor:pointer}.analytics-advanced-search summary::-webkit-details-marker{display:none}.analytics-advanced-panel{position:absolute;z-index:20;top:calc(100% + 8px);left:0;width:410px;padding:14px;border:1px solid #dcdfe6;border-radius:4px;background:#fff;box-shadow:0 8px 24px #1f293724}.analytics-advanced-panel label{display:grid;grid-template-columns:78px minmax(0,1fr);align-items:center;gap:10px;margin-bottom:10px;color:#606266;font-size:12px}.analytics-advanced-panel input,.analytics-advanced-panel select{width:100%;min-width:0;height:32px;padding:0 10px;border:1px solid #dcdfe6;border-radius:4px;background:#fff;color:#606266}.analytics-advanced-actions{display:flex;justify-content:center;gap:10px;padding-top:4px}.analytics-toolbar-fill{flex:1 1 auto}.analytics-icon-button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;border:1px solid #d0d7e2;border-radius:4px;background:#fff;color:#606266;font-size:16px;line-height:1;cursor:pointer}.analytics-icon-button:hover{border-color:#409eff;color:#409eff}.analytics-legacy-feedback{min-height:18px;margin:-2px 2px 0;color:#606266;font-size:12px}.analytics-legacy-chart-grid{display:grid;gap:10px}.analytics-legacy-chart-grid.three,.analytics-legacy-chart-grid.professional{grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-legacy-panel{min-width:0;min-height:248px;padding:14px 18px;border:1px solid #dcdfe6;background:#fff}.analytics-echart{width:100%}.analytics-legacy-main .table-card{flex:0 0 auto;border-color:#dcdfe6}.analytics-metric-grid{grid-template-columns:repeat(6,minmax(150px,1fr))}.analytics-metric-card{position:relative;min-height:104px;padding-left:20px}.analytics-metric-card:before{content:"";position:absolute;top:0;bottom:0;left:0;width:4px;background:#0f6bdb}.analytics-metric-card.metric-green:before{background:#20a162}.analytics-metric-card.metric-rose:before{background:#f43f5e}.analytics-metric-card.metric-amber:before{background:#f59e0b}.analytics-metric-card span{margin-left:6px;color:#6b7280;font-size:12px}.analytics-panel-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.analytics-panel-header h2{margin:0}.analytics-panel-header span{color:var(--app-color-text-tertiary);font-size:12px;white-space:nowrap}.analytics-table-card{min-width:0}.legacy-filter-popover.archive-filter-popover,.expert-filter-popover.legacy-filter-popover{transform:none;left:0}.legacy-filter-popover.archive-filter-popover{width:560px}.legacy-filter-popover.archive-filter-popover .legacy-popover-field{grid-template-columns:90px minmax(0,1fr)}.legacy-filter-popover.archive-filter-popover .archive-filter-select{width:100%}.archive-ledger-table,.archive-borrow-table{flex:1 1 auto;width:100%}.app-modal.archive-borrow-modal{display:flex;flex-direction:column;width:min(520px,calc(100vw - 48px));overflow:hidden;border-radius:4px}.archive-borrow-modal .app-modal-header{flex:0 0 auto;align-items:center;min-height:46px;padding:10px 12px;background:var(--app-color-surface)}.archive-borrow-modal-body{flex:1 1 auto;min-height:0;padding:16px 20px;background:var(--app-color-surface)}.archive-borrow-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.archive-borrow-field{display:grid;grid-template-columns:80px minmax(0,1fr);align-items:center;gap:8px;color:var(--app-color-muted);font-size:12px}.archive-borrow-field>span{text-align:right;white-space:nowrap}.archive-borrow-field.required>span:before{content:"* ";color:#f56c6c;font-weight:700}.archive-borrow-field input:not([class*=el-]){width:100%;height:32px;min-width:0;padding:0 10px;border:var(--app-border);border-radius:4px;background:var(--app-color-surface);color:var(--app-color-muted);font:inherit;font-size:12px;box-sizing:border-box}.archive-borrow-field input:not([class*=el-]):focus{border-color:#409eff;outline:none;box-shadow:var(--app-focus-ring)}.archive-borrow-field .el-select{width:100%}.archive-borrow-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-top:1px solid var(--app-color-divider);background:var(--app-color-surface)}.archive-edit-modal .project-module-workspace{flex:1 1 auto;border:0}.archive-edit-modal .workspace-scroll>.archive-attachments{margin-top:18px}.archive-edit-modal .form-field b{color:#f56c6c;font-weight:600}.archive-edit-modal .form-field-invalid input{border-color:#f56c6c}.archive-edit-modal .form-textarea{min-height:64px}.archive-upload-dropzone{display:flex;flex-direction:column;align-items:center;gap:8px;padding:26px 16px;border:1px dashed var(--app-border-color);color:var(--app-color-muted);font-size:13px;text-align:center;cursor:pointer}.archive-upload-dropzone:hover,.archive-upload-dropzone.dragging{border-color:var(--app-color-primary);color:var(--app-color-primary)}.archive-upload-icon{color:#e04a3a}.archive-attachments-heading{display:flex;align-items:center;gap:6px;color:var(--app-color-text-strong);font-size:13px}.archive-attachment-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.archive-attachment-item{display:flex;align-items:center;gap:8px;min-height:40px;padding:4px 8px;border-bottom:1px solid var(--app-color-divider)}.archive-attachment-icon{flex-shrink:0;color:var(--app-color-muted)}.archive-attachment-name{flex:1;min-width:0;overflow:hidden;padding:0;border:0;background:none;color:var(--app-color-primary);font-size:13px;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.archive-attachment-size{flex-shrink:0;color:var(--app-color-text-tertiary);font-size:12px}.archive-attachment-empty{padding:22px 8px;color:var(--app-color-text-tertiary);font-size:13px;text-align:center}.policy-library-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:stretch}.policy-module-layout{grid-template-columns:var(--app-module-sidebar-width) minmax(0,1fr)}.policy-module-sidebar{align-self:stretch}.policy-main-content,.policy-category-panel,.policy-document-panel{min-width:0}.policy-category-panel{display:flex;flex-direction:column;gap:12px;padding:14px}.policy-panel-header{display:flex;justify-content:space-between;gap:10px;align-items:center}.policy-panel-header h2{margin:0}.policy-category-tree{display:flex;flex-direction:column;gap:4px;max-height:520px;overflow:auto}.policy-tree-row{width:100%;min-height:32px;border:0;background:transparent;color:#303133;font-size:12px;text-align:left;cursor:pointer}.policy-tree-row:hover,.policy-tree-row.active{background:#ecf5ff;color:#0f6bdb}.policy-document-panel{display:flex;flex-direction:column;gap:12px}.policy-compact-search{display:flex;flex:0 1 360px;gap:8px;align-items:center;min-width:220px;color:#606266;font-size:12px}.policy-compact-search input{flex:1;min-width:0;height:32px;padding:0 10px;border:1px solid #dcdfe6;color:#303133}.policy-category-manager-toolbar{display:flex;gap:8px;align-items:center}.policy-category-manager-search{display:flex;flex:0 1 380px;gap:8px}.policy-category-manager-search input{flex:1;min-width:0;height:32px;padding:0 10px;border:1px solid #dcdfe6;color:#303133}.policy-category-manager-actions{display:flex;gap:8px;margin-left:auto}.policy-category-manager-table-wrap{max-height:min(630px,calc(100vh - 250px));overflow:auto;border:1px solid #dcdfe6}.policy-category-tree-cell{display:flex;gap:6px;align-items:center}.policy-category-toggle,.policy-category-toggle-placeholder{width:22px;flex:0 0 22px}.policy-category-toggle{height:22px;padding:0;border:1px solid #dcdfe6;background:#fff;color:#606266;line-height:18px;cursor:pointer}.policy-content-input{min-height:220px;line-height:1.7}.policy-detail-content h2{margin:0 0 12px;color:#36c;font-size:18px;text-align:center}.policy-detail-meta{display:flex;justify-content:center;gap:16px;margin-bottom:14px;color:#606266;font-size:12px}.policy-detail-body{min-height:220px;padding:14px 18px;background:#ebf0fa;color:#303133;line-height:1.8}@media(max-width:860px){.policy-library-layout{grid-template-columns:1fr}.policy-module-sidebar{position:static}.policy-compact-search{flex-basis:auto;min-width:0}.policy-category-manager-toolbar{align-items:stretch;flex-direction:column}.policy-category-manager-search{flex-grow:1;flex-basis:auto}.policy-category-manager-actions{margin-left:0;flex-wrap:wrap}.project-ledger-layout.policy-module-layout{grid-template-columns:1fr}}.performance-member-type-cards{display:grid;grid-template-columns:repeat(2,minmax(0,240px));gap:12px}.performance-member-type-cards button{display:grid;gap:4px;padding:14px 16px;border:1px solid #d7dee8;border-radius:6px;background:#fff;color:#475467;text-align:left;cursor:pointer}.performance-member-type-cards button.active{border-color:#1677d2;box-shadow:inset 3px 0 #1677d2;background:#f3f9ff;color:#1269bb}.performance-member-type-cards strong{font-size:14px}.performance-member-type-cards span{font-size:12px}.performance-date-range{display:flex;align-items:center}.performance-date-range{flex:0 0 auto;gap:8px;min-height:34px;color:#475467;font-size:12px;white-space:nowrap}.performance-date-range input{width:138px;min-width:0;height:34px;padding:0 10px;border:1px solid #dcdfe6;border-radius:4px;background:#fff;color:#606266;font:inherit}.performance-toolbar-card>.toolbar-body{padding:10px 14px}.performance-filter-popover label{display:grid;gap:5px;color:#475467;font-size:12px}.performance-filter-popover{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin-top:12px;padding:14px;border:1px solid #dce3ec;background:#f8fafc}.performance-filter-popover input,.performance-filter-popover select{min-width:0}.performance-detail-state{padding:0;color:#667085}.performance-detail-state.error,.performance-inline-error{color:#b42318}.performance-detail-table{min-width:1060px;background:#fff}.performance-detail-table .el-table__cell{padding:5px 0}.performance-member-table .performance-detail-table th,.performance-member-table .performance-detail-table td{border-right:0;text-align:left}.mywork-toolbar,.mywork-filters,.mywork-panel-header,.legacy-project-card{display:flex;gap:12px}.mywork-toolbar{justify-content:space-between;align-items:center;flex-wrap:wrap;padding:12px 14px;border:1px solid #ebeef5;background:#fff}.mywork-toolbar-card .mywork-toolbar{justify-content:flex-end;min-height:52px;padding:10px 14px 12px;border:0;background:#f8fafc}.mywork-filters{align-items:center;flex-wrap:wrap}.mywork-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.mywork-panel{min-width:0}.mywork-panel-header{justify-content:space-between;align-items:center;margin-bottom:14px}.mywork-panel-header h2{margin:0}.mywork-panel-header .mywork-year-picker{width:200px;flex-shrink:0}.mywork-panel-header span{color:#909399;font-size:12px}.mywork-empty{padding:12px 14px;border:1px solid #ebeef5;background:#fff}.mywork-empty{color:#606266;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.my-work-layout{display:grid;grid-template-columns:var(--app-module-sidebar-width) minmax(0,1fr);gap:var(--app-space-page);align-items:start}.my-work-sidebar{position:sticky;top:0;min-width:0;border:1px solid #d8dee8;background:#f8fafc}.my-work-nav-item{display:grid;grid-template-columns:22px minmax(0,1fr) 18px;gap:8px 10px;align-items:center;min-height:54px;padding:12px 14px;border-bottom:1px solid #e4e7ed;border-right:3px solid transparent;color:#303133;text-decoration:none}.my-work-nav-item:last-child{border-bottom:0}.my-work-nav-item:hover{background:#fff;color:#0f6bdb}.my-work-nav-item.active{border-right-color:#0f6bdb;background:#eef6ff;color:#0f6bdb}.my-work-nav-item strong{min-width:0;font-size:13px}.my-work-content{min-width:0}.library-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:start}.my-work-library-toolbar-card{box-shadow:none}.my-work-library-toolbar-card>.toolbar-body{padding:10px 14px}.category-manager-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border:1px solid #ebeef5;background:#fff;color:#606266;font-size:12px}.category-manager-toolbar input{height:32px;border:1px solid #dcdfe6;background:#fff;color:#606266;font:inherit}.library-main,.library-tree,.attachment-panel{min-width:0}.library-main,.attachment-panel{display:flex;flex-direction:column;gap:12px}@media(max-width:900px){.performance-filter-popover{grid-template-columns:repeat(2,minmax(140px,1fr))}.performance-member-type-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.performance-filter-popover,.performance-member-type-cards{grid-template-columns:1fr}.performance-date-range{align-items:stretch;flex-direction:column}.performance-date-range input{width:100%}}@media(max-width:860px){.mywork-grid,.my-work-layout{grid-template-columns:1fr}.my-work-sidebar{position:static}.library-layout{grid-template-columns:1fr}}@media(min-width:961px){.legacy-primary-module-page.my-work-library-page>.my-work-layout>.my-work-content{overflow:hidden}.legacy-primary-module-page.my-work-library-page .library-layout{height:100%;min-height:0;align-items:stretch}.legacy-primary-module-page.my-work-library-page .library-tree{height:100%;min-height:0;overflow-y:auto}.legacy-primary-module-page.my-work-library-page .library-main{height:100%;min-height:0;gap:8px;overflow:hidden}.legacy-primary-module-page.my-work-library-page .my-work-library-toolbar-card{flex:0 0 auto}.legacy-primary-module-page .performance-ledger-page{display:flex;flex-direction:column;gap:8px;height:100%;min-height:0;overflow:hidden}.legacy-primary-module-page .performance-toolbar-card,.legacy-primary-module-page .performance-member-type-cards,.legacy-primary-module-page .performance-ledger-page>.action-feedback{flex:0 0 auto}.legacy-primary-module-page .performance-table-card{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden}.legacy-primary-module-page .performance-table-card>.toolbar-body{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden}}.base-project-editor .legacy-project-party-field .customer-party-row{grid-template-columns:minmax(0,1.35fr) minmax(150px,.8fr) minmax(170px,.85fr);gap:10px 20px}.base-project-editor .legacy-project-party-field .customer-party-input-action{grid-template-columns:minmax(0,1fr) 58px}.legacy-form-field-invalid input,.legacy-form-field-invalid .customer-party-customer input{border-color:#f56c6c}.legacy-customer-picker-field .customer-party-row{grid-template-columns:minmax(260px,1.35fr) minmax(160px,.8fr) minmax(170px,.85fr) auto;gap:10px 16px;align-items:center}.legacy-customer-picker-field .customer-party-input-action{gap:0}.legacy-customer-picker-field .customer-party-input-action input{height:32px;border-radius:4px 0 0 4px}.legacy-customer-picker-field .customer-party-input-action .action-button{height:32px;min-height:32px;padding:0 12px;border-radius:0 4px 4px 0;white-space:nowrap}.legacy-customer-picker-field .customer-party-clear{align-self:center;height:32px;min-height:32px}.customer-party-field{display:grid;gap:10px}.customer-party-field>strong{color:#303133;font-size:13px;font-weight:600}.customer-party-row{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(150px,.8fr) minmax(150px,.8fr) auto;gap:12px;align-items:end}.customer-party-field-simple .customer-party-row{grid-template-columns:minmax(0,1fr)}.customer-party-input-action{display:flex;gap:8px}.customer-party-input-action input{min-width:0}.customer-party-clear{align-self:end}.customer-picker-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:12px;align-items:start}.customer-picker-table-wrap{max-height:320px;overflow:auto;border:1px solid #ebeef5;background:#fff}.customer-picker-table-wrap .customer-picker-customer-table{min-width:620px}.customer-picker-table-wrap .customer-picker-contact-table{min-width:420px}.customer-picker-table-wrap .record-table tbody tr{cursor:pointer}.customer-picker-row-active td{background:#ecf5ff;color:#0f6bdb;font-weight:600}.customer-picker-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-top:4px}.customer-picker-pagination,.customer-picker-close-option{display:flex;align-items:center;gap:8px;color:#606266;font-size:12px}.customer-editor-contact-grid{display:grid;gap:14px}.customer-editor-phone-row{display:flex;gap:8px}.customer-editor-phone-row input{flex:1 1 auto;min-width:0}.customer-editor-phone-row button{flex:0 0 auto;white-space:nowrap}@media(max-width:900px){.legacy-project-info-grid,.base-project-editor .legacy-project-party-field .customer-party-row,.legacy-customer-picker-field .customer-party-row{grid-template-columns:1fr}.legacy-customer-picker-field .customer-party-clear{justify-self:end}.customer-party-row,.customer-picker-grid{grid-template-columns:1fr}.customer-picker-footer{align-items:stretch;flex-direction:column}.customer-picker-pagination,.customer-picker-close-option,.customer-picker-footer .toolbar-actions{width:100%}.customer-picker-footer .toolbar-actions{justify-content:flex-end}}.materials-search-popover-wrap{position:relative;flex:0 0 auto}.materials-search-popover{position:absolute;z-index:20;top:calc(100% + 8px);left:0;display:grid;width:400px;gap:12px;padding:14px;border:1px solid #dcdfe6;background:#fff;box-shadow:0 8px 22px #0f233424}.materials-search-popover .material-filter-item{grid-template-columns:70px minmax(0,1fr)}.materials-search-popover-actions{display:flex;justify-content:center;gap:10px;padding-top:2px}@media(max-width:860px){.materials-search-popover{width:min(400px,calc(100vw - 48px))}}.login-page{position:relative;min-height:100vh;width:100%;background:#fff;overflow:hidden}.login-hero-banner{width:100%;height:56vh;min-height:400px;background-color:#0457b7;background-repeat:no-repeat;background-position:center center;background-size:cover;position:relative}.login-hero-content{position:relative;height:100%;width:100%;margin:0;padding:0}.login-hero-title{position:absolute;top:80px;left:32px;color:#fff;text-shadow:0 0 4px rgba(0,0,0,.6);-webkit-user-select:none;user-select:none}.login-company-name{font-size:38px;line-height:1.25;font-weight:700;letter-spacing:.5px}.login-system-name{display:inline-block;margin-top:12px;padding-top:6px;font-size:35px;line-height:1.25;font-weight:700;border-top:2px solid #ffffff;border-radius:5px 20% 50%;letter-spacing:.5px}.login-panel{position:absolute;top:56vh;left:50%;transform:translate(-50%,-50%);width:min(340px,calc(100% - 32px));background:#fff;border-radius:6px;box-shadow:0 8px 32px #0f172a29;padding:24px 22px;z-index:10}.login-form{display:grid;gap:16px}.login-form .form-field{display:grid;gap:6px}.login-form .form-field span{font-size:13px;font-weight:500;color:#334155}.login-form .form-field input{height:38px;padding:0 12px;border:1px solid #cbd5e1;border-radius:4px;font-size:14px;color:#0f172a;background:#fff;transition:border-color .15s ease}.login-form .form-field input:focus{border-color:#2563eb;outline:none;box-shadow:var(--app-focus-ring)}.login-form .placeholder.error{padding:8px 12px;border-radius:4px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:13px}.login-submit{width:100%;height:38px;justify-content:center;border-radius:4px;font-size:14px;font-weight:600;background:#2563eb;color:#fff;border:none;cursor:pointer;margin-top:4px}.login-submit:hover:not(:disabled){background:#1d4ed8}@media(max-width:860px){.login-hero-title{top:40px;left:20px;right:20px}.login-company-name{font-size:24px}.login-system-name{font-size:22px;margin-top:10px}.login-panel{top:52vh;width:calc(100% - 32px)}}.milestone-list{display:flex;flex-wrap:wrap;gap:6px;min-width:220px}.milestone-list--clamped{flex-wrap:nowrap;overflow:hidden}.milestone-list span{border:1px solid var(--app-milestone-border);border-radius:6px;color:var(--app-milestone-color);font-size:12px;padding:3px 7px;white-space:nowrap}.milestone-expand-panel{min-width:0}.project-ledger-toolbar-card{position:sticky;top:-16px;z-index:20;padding:0;overflow:visible;background:var(--app-color-surface);box-shadow:var(--app-shadow-toolbar-card)}.project-ledger-toolbar-card .toolbar-copy{margin-bottom:0;padding:14px 16px 10px;border-bottom:1px solid var(--app-border-color-subtle)}.project-ledger-toolbar-card .toolbar-body{gap:0}.legacy-ledger-toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:10px 14px 12px}.legacy-ledger-search{display:flex;width:100%;align-items:center;gap:8px 10px;flex-wrap:wrap;min-width:0}.legacy-ledger-actions-main,.legacy-ledger-create-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.legacy-ledger-create-actions{padding-left:14px;border-left:1px solid var(--app-border-color-strong)}.legacy-date-picker,.legacy-search-popover-wrapper{position:relative;flex:0 1 auto}.legacy-date-picker{flex-basis:260px}.legacy-search-popover-wrapper{flex-basis:auto}.legacy-date-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;width:100%;height:32px;padding:0 12px;border:1px solid var(--app-border-color);border-radius:4px;background:var(--app-color-surface);color:var(--app-color-text-tertiary);font-size:12px;text-align:left;cursor:pointer}.legacy-date-trigger.active,.legacy-date-trigger:focus{border-color:var(--app-element-primary);outline:2px solid var(--app-legacy-focus-outline)}.legacy-calendar-icon{width:16px;height:16px;border:1px solid var(--app-icon-border-muted);border-top-width:3px;border-radius:2px;flex:0 0 auto;transition:opacity .15s ease}.legacy-date-clear-button{position:absolute;top:50%;right:11px;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:var(--app-clear-button-background);opacity:0;pointer-events:none;transform:translateY(-50%);cursor:pointer;transition:opacity .15s ease,background .15s ease}.legacy-date-clear-button:before,.legacy-date-clear-button:after{content:"";position:absolute;top:10px;left:6px;width:10px;height:2px;border-radius:999px;background:var(--app-color-surface)}.legacy-date-clear-button:before{transform:rotate(45deg)}.legacy-date-clear-button:after{transform:rotate(-45deg)}.legacy-date-picker.has-value:hover .legacy-calendar-icon,.legacy-date-picker.has-value:focus-within .legacy-calendar-icon{opacity:0}.legacy-date-picker.has-value:hover .legacy-date-clear-button,.legacy-date-clear-button:focus{opacity:1;pointer-events:auto}.legacy-date-clear-button:hover,.legacy-date-clear-button:focus{background:var(--app-clear-button-background-hover)}.legacy-search-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:32px;font-size:12px;line-height:1}.legacy-search-icon{position:relative;display:inline-block;flex:0 0 18px;width:18px;height:18px}.legacy-search-icon:before{content:"";position:absolute;top:1px;left:1px;width:10px;height:10px;border:2px solid currentColor;border-radius:50%}.legacy-search-icon:after{content:"";position:absolute;right:1px;bottom:2px;width:7px;height:2px;border-radius:999px;background:currentColor;transform:rotate(45deg);transform-origin:center}.legacy-calendar-popover,.legacy-filter-popover{position:absolute;top:44px;z-index:30;background:var(--app-color-surface);border:1px solid var(--app-color-divider);border-radius:6px;box-shadow:var(--app-shadow-popover)}.legacy-calendar-popover{left:0;display:grid;grid-template-columns:140px 1fr;width:780px}.legacy-date-shortcuts{display:flex;flex-direction:column;padding:12px 0;border-right:1px solid var(--app-color-divider)}.legacy-date-shortcuts button{min-height:42px;padding:0 24px;border:0;background:transparent;color:var(--app-color-text-strong);text-align:left;font-size:13px;cursor:pointer}.legacy-date-shortcuts button:hover{background:var(--app-color-background-mute);color:var(--app-color-primary)}.legacy-calendar-panel{min-width:0}.legacy-calendar-nav{display:grid;grid-template-columns:32px 32px 1fr 32px 32px;align-items:center;padding:14px 22px 8px}.legacy-calendar-nav button{border:0;background:transparent;color:var(--app-calendar-nav-color);font-size:20px;cursor:pointer}.legacy-calendar-nav button:hover{color:var(--app-color-primary)}.legacy-calendar-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;padding:0 28px 18px}.legacy-calendar-month{min-width:0}.legacy-calendar-month strong{display:block;margin:-34px 0 20px;color:var(--app-color-text-strong);text-align:center;font-size:14px;font-weight:500}.legacy-calendar-weekdays,.legacy-calendar-days{display:grid;grid-template-columns:repeat(7,36px);justify-content:center;gap:4px}.legacy-calendar-weekdays span{height:28px;color:var(--app-calendar-weekday-color);text-align:center;line-height:28px}.legacy-calendar-days button{height:32px;border:0;border-radius:4px;background:transparent;color:var(--app-color-text-strong);font:inherit;cursor:pointer}.legacy-calendar-days button:hover,.legacy-calendar-days button.in-range{background:var(--app-element-primary-soft);color:var(--app-color-primary)}.legacy-calendar-days button.selected{background:var(--app-element-primary);color:var(--app-color-on-primary)}.legacy-calendar-days button.muted{color:var(--app-color-text-disabled)}.legacy-calendar-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--app-color-divider)}.legacy-filter-popover{left:50%;width:520px;padding:16px 26px;transform:translate(-24%)}.legacy-filter-arrow{position:absolute;top:-8px;left:40px;width:16px;height:16px;border-top:1px solid var(--app-color-divider);border-left:1px solid var(--app-color-divider);background:var(--app-color-surface);transform:rotate(45deg)}.legacy-popover-field{display:grid;grid-template-columns:104px minmax(0,1fr);align-items:center;gap:12px;margin-bottom:8px;color:var(--app-action-neutral-color);font-size:13px}.legacy-popover-field>span{text-align:right}.legacy-popover-field input,.legacy-popover-field select{width:100%;height:36px;padding:0 12px;border:1px solid var(--app-border-color);border-radius:4px;background:var(--app-color-surface);color:var(--app-color-text-secondary);font:inherit}.legacy-popover-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:10px}.icon-action{min-width:32px;padding:0}.custom-column-popover-wrapper{position:relative;flex:0 0 auto}.custom-column-popover{position:absolute;top:40px;right:0;z-index:30;display:flex;flex-direction:column;width:264px;max-height:380px;border:1px solid var(--app-color-divider);border-radius:6px;background:var(--app-color-surface);box-shadow:var(--app-shadow-popover)}.custom-column-arrow{position:absolute;top:-8px;right:34px;width:16px;height:16px;border-top:1px solid var(--app-color-divider);border-left:1px solid var(--app-color-divider);background:var(--app-color-surface);transform:rotate(45deg)}.custom-column-title{flex:0 0 auto;padding:12px 14px 10px;border-bottom:1px solid var(--app-color-divider);color:var(--app-color-text-strong);font-size:12px;font-weight:600}.custom-column-options{flex:1 1 auto;min-height:0;padding:6px 8px;overflow-y:auto}.custom-column-option{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;min-height:32px;padding:0 6px;border-radius:4px;color:var(--app-color-text-secondary);font-size:12px;cursor:pointer}.custom-column-option:hover{background:var(--app-color-background-mute)}.custom-column-option input{width:14px;height:14px;margin:0;accent-color:var(--app-color-primary)}.custom-column-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-column-actions{display:flex;flex:0 0 auto;justify-content:flex-end;gap:8px;padding:10px 14px;border-top:1px solid var(--app-color-divider);background:var(--app-color-surface)}.legacy-filter-actions{align-items:end;justify-content:flex-start}.table-card.legacy-ledger-table{display:flex;flex-direction:column;height:max(420px,calc(100vh - 292px));min-height:0;overflow:hidden}.legacy-ledger-table :is(th,td){overflow:hidden;text-overflow:ellipsis;text-align:left;white-space:nowrap}.legacy-ledger-table :is(th,td):first-child{text-align:center}.legacy-ledger-table thead th{position:sticky;top:0;z-index:2;padding-right:10px;padding-left:10px;background:var(--app-color-background-mute);box-shadow:0 1px 0 var(--app-color-divider)}.legacy-ledger-table thead tr:first-child:has(+tr) th{padding:8px 14px;line-height:18px}.legacy-ledger-table thead tr+tr th{top:35px}.legacy-ledger-table tfoot td{background:var(--app-color-background-soft);box-shadow:0 -1px 0 var(--app-color-divider);color:var(--app-color-muted);font-weight:600}.legacy-row-actions{min-width:104px;align-items:center;flex-wrap:nowrap;justify-content:center;gap:6px}.row-action{height:28px;padding:0 10px;border:0;border-radius:4px;color:var(--app-color-on-primary);font-size:12px;white-space:nowrap;cursor:pointer}.legacy-submodule-page{display:flex;flex-direction:column;gap:8px;height:calc(100vh - 92px);min-height:620px}.legacy-combo-select{position:relative;width:340px}.legacy-combo-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:32px;padding:3px 8px 3px 6px;border:1px solid var(--app-border-color);border-radius:4px;background:var(--app-color-surface);color:var(--app-color-muted);font:inherit;text-align:left;cursor:pointer}.legacy-combo-trigger:hover,.legacy-combo-trigger:focus,.legacy-combo-trigger.open{border-color:var(--app-element-primary);outline:0}.legacy-combo-trigger:focus-visible{box-shadow:var(--app-focus-ring)}.legacy-combo-trigger.is-placeholder{color:var(--app-color-text-disabled)}.legacy-combo-placeholder{padding-left:6px}.legacy-combo-tags{display:flex;flex:1 1 auto;flex-wrap:wrap;gap:4px;min-width:0}.legacy-combo-tag{display:inline-flex;align-items:center;gap:2px;height:22px;padding:0 4px 0 8px;border:1px solid var(--app-accent-tint-border);border-radius:4px;background:var(--app-element-primary-soft);color:var(--app-element-primary);font-size:12px;white-space:nowrap}.legacy-combo-tag-remove{padding:0 2px;border:0;background:transparent;color:var(--app-element-primary);font-size:13px;line-height:1;cursor:pointer}.legacy-combo-tag-remove:hover{color:var(--app-element-primary-light)}.legacy-combo-caret{color:var(--app-color-text-tertiary);font-size:12px}.legacy-combo-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:20;width:100%;max-height:260px;overflow:auto;padding:4px 0;border:1px solid var(--app-border-color);border-radius:4px;background:var(--app-color-surface);box-shadow:var(--app-shadow-dropdown)}.legacy-combo-filter{padding:2px 8px 6px}.legacy-combo-filter input{width:100%;height:28px;padding:0 10px;border:1px solid var(--app-border-color);border-radius:4px;color:var(--app-color-muted);font:inherit;font-size:12px}.legacy-combo-filter input:focus{border-color:var(--app-element-primary);outline:0;box-shadow:var(--app-focus-ring)}.legacy-combo-option{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;width:100%;min-height:30px;padding:0 12px;border:0;background:transparent;color:var(--app-color-muted);font:inherit;text-align:left;cursor:pointer}.legacy-combo-option:hover,.legacy-combo-option.selected{background:var(--app-nav-hover-background);color:var(--app-element-primary)}.legacy-combo-check{color:var(--app-element-primary);font-size:12px}.legacy-combo-empty{margin:0;padding:8px 12px;color:var(--app-color-text-tertiary);font-size:12px}.legacy-number-input{width:96px;height:32px;padding:0 10px;border:1px solid var(--app-border-color);border-radius:4px;color:var(--app-color-muted);font:inherit}.legacy-feedback{margin:0;padding:4px 8px;min-height:22px}.legacy-submodule-table-wrap{flex:1 1 auto;min-height:0;overflow:auto;border:1px solid var(--app-color-divider);background:var(--app-color-surface)}.receivables-filter-form{display:flex;flex:1 1 auto;flex-wrap:wrap;align-items:center;row-gap:4px}.receivables-filter-form .el-form-item{margin-right:12px;margin-bottom:0}.receivables-filter-form .el-form-item__label{color:var(--app-color-muted);font-size:13px}.receivables-filter-name{width:180px}.receivables-filter-no{width:150px}.receivables-filter-customer{width:200px}.receivables-filter-daterange{width:260px}.receivables-filter-panel{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:8px;padding:12px 16px;border:1px solid var(--app-color-divider);border-radius:6px;background:var(--app-color-surface)}.receivables-filter-panel .legacy-popover-field{grid-template-columns:auto minmax(0,1fr);margin-bottom:0}.receivables-filter-panel .legacy-popover-field>input{width:160px}.receivables-filter-panel .legacy-range-inputs{width:220px}.receivables-filter-panel .legacy-popover-actions{padding-top:0}.expert-filter-popover{width:400px}.legacy-range-inputs{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;min-width:0}.legacy-range-inputs em{color:var(--app-color-text-tertiary);font-style:normal}.legacy-form-grid{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:10px 16px;align-items:end}.legacy-form-field{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;align-items:center;color:var(--app-color-muted);font-size:12px}.legacy-form-field>span{text-align:right;white-space:nowrap}.legacy-form-field input,.legacy-form-field select{width:100%;height:32px;min-width:0;padding:0 10px;border:1px solid var(--app-border-color);border-radius:4px;background:var(--app-color-surface);color:var(--app-color-muted);font:inherit;transition:border-color .15s ease-out,box-shadow .15s ease-out}.legacy-member-type-switch{display:grid;grid-template-columns:repeat(2,190px);gap:16px;width:400px}.legacy-member-type-card{height:98px;border:1px solid var(--app-color-divider);border-radius:4px;background:var(--app-color-surface);color:var(--app-color-muted);display:grid;place-content:center;gap:6px;font:inherit;font-size:14px;cursor:pointer}.legacy-member-type-card.active{border:2px solid var(--app-element-primary);color:var(--app-element-primary);font-weight:700}.legacy-member-icon{position:relative;display:block;width:34px;height:34px;margin:0 auto 2px;color:var(--app-member-icon-color)}.legacy-member-icon.internal{color:var(--app-member-icon-internal-color)}.legacy-member-icon.internal:before{content:"";position:absolute;left:8px;bottom:2px;width:19px;height:26px;border:3px solid currentColor;border-bottom-width:4px;border-radius:2px 2px 0 0;transform:skewY(-26deg)}.legacy-member-icon.internal:after{content:"";position:absolute;left:17px;bottom:2px;width:7px;height:13px;border-left:3px solid currentColor;border-top:3px solid currentColor}.legacy-member-icon.external:before{content:"";position:absolute;left:8px;top:2px;width:14px;height:14px;border:3px solid currentColor;border-radius:50%}.legacy-member-icon.external:after{content:"";position:absolute;left:4px;bottom:2px;width:20px;height:16px;border:3px solid currentColor;border-top:0;border-radius:0 0 14px 14px}.legacy-personal-settlement-date-picker .legacy-date-trigger{width:240px;height:32px;font-size:12px}.personal-settlement-filter-popover{left:0;width:520px;transform:none}.project-edit-ledger-main{gap:12px}.project-edit-ledger-toolbar{align-items:center}.base-project-context{min-width:0;display:flex;flex:1 1 620px;align-items:center;gap:14px;flex-wrap:wrap}.project-context-breadcrumb{display:inline-flex;align-items:center;min-width:0;gap:8px;flex-wrap:wrap;color:var(--app-color-text-tertiary);font-size:13px;line-height:1.4}.project-context-breadcrumb-root,.project-context-breadcrumb-current{min-width:0;color:var(--app-color-primary);font-weight:700;text-decoration:none}.project-context-breadcrumb-root:hover,.project-context-breadcrumb-current:hover{text-decoration:underline}.project-context-breadcrumb-separator{color:var(--app-color-text-disabled);font-weight:700}.project-context-breadcrumb-current{display:inline-block;max-width:min(520px,100%);overflow:hidden;color:var(--app-color-text);font-size:15px;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}.base-project-context strong{min-width:min(100%,220px);max-width:360px;overflow:hidden;color:var(--app-color-text);font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.base-project-context dl{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}.base-project-context dl div{display:inline-flex;align-items:center;min-height:30px;border:1px solid var(--app-border-color-strong);background:var(--app-color-surface)}.base-project-context dt,.base-project-context dd{margin:0;padding:0 10px;font-size:12px;line-height:30px;white-space:nowrap}.base-project-context dt{border-right:1px solid var(--app-border-color-strong);background:var(--app-color-background-mute);color:var(--app-color-text-tertiary)}.base-project-context dd{color:var(--app-color-text-strong)}.project-edit-ledger-workspace{gap:0;border:1px solid var(--app-border-color-strong);background:var(--app-color-surface)}.business-project-inline-workspace{display:block}.app-modal.business-project-modal{width:min(1180px,94vw);max-width:none;height:88vh;max-height:88vh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.business-project-modal-mask .el-overlay-dialog{padding:3vh 3vw}.business-project-modal .app-modal-header{min-height:62px}.app-modal-body.business-project-modal-body{gap:0;min-height:0;overflow-y:auto;padding:0}.business-project-modal-layout{display:grid;grid-template-columns:176px minmax(0,1fr);flex:1;min-height:0}.business-project-modal-nav{display:flex;flex-direction:column;gap:4px;padding:12px 0;overflow-y:auto;border-right:1px solid var(--app-choice-border);background:var(--app-modal-nav-background)}.business-project-modal-nav button{min-height:44px;padding:0 18px;border:0;border-right:3px solid transparent;background:transparent;color:var(--app-choice-color);text-align:left;cursor:pointer}.business-project-modal-nav button.active{border-right-color:var(--app-color-accent);background:var(--app-color-accent-soft);color:var(--app-color-accent-hover);font-weight:700}.business-project-modal-content{min-width:0;padding:18px;overflow-y:auto;background:var(--app-color-surface)}.app-modal-footer.business-project-modal-footer{margin:0;padding:12px 16px;border-top:1px solid var(--app-choice-border);background:var(--app-color-surface)}.business-project-modal .business-project-inline-workspace{margin:0}.business-project-modal .business-project-inline-workspace .project-ledger-layout,.business-project-modal .business-project-inline-workspace .project-edit-ledger-workspace{border:0;box-shadow:none}.business-project-modal .department-workspace-route-shell{display:flex;flex-direction:column;height:100%}.business-project-modal .department-workspace-route-shell .page-section,.business-project-modal .business-project-inline-workspace,.business-project-modal .business-project-inline-workspace .project-ledger-main,.business-project-modal .business-project-inline-workspace .project-edit-shell{display:flex;flex:1 1 auto;flex-direction:column;align-items:stretch;min-height:0}.business-project-modal .business-project-inline-workspace .project-module-workspace,.business-project-modal .business-project-inline-workspace .project-module-content{flex:1 1 auto;min-height:0}.business-project-modal .business-project-inline-workspace .workspace-scroll{overflow-y:auto}@media(max-width:720px){.business-project-modal-mask .el-overlay-dialog{padding:0}.app-modal.business-project-modal{width:100vw;height:100vh;max-height:100vh;border-radius:0}.business-project-modal-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.business-project-modal-nav{flex-direction:row;overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid var(--app-choice-border)}.business-project-modal-nav button{min-width:max-content;border-right:0;border-bottom:3px solid transparent}.business-project-modal-nav button.active{border-bottom-color:var(--app-color-accent)}.business-project-modal-content{padding:12px}}.base-detail-empty-subprojects{display:grid;justify-items:start;gap:8px;min-height:120px;padding:22px;border:1px dashed var(--app-empty-state-border);background:var(--app-color-background-subtle)}.base-detail-empty-subprojects strong{color:var(--app-empty-state-title-color);font-size:14px}.base-detail-empty-subprojects p{margin:0;color:var(--app-empty-state-text-color)}.project-edit-ledger-workspace .project-module-workspace{border:0}.project-edit-ledger-workspace .workspace-scroll>.panel-card,.project-module-workspace .workspace-scroll .panel-card,.project-subproject-info-card{border:0;background:transparent;padding:0}.project-edit-shell{display:flex;flex-direction:column}.panel-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.department-create-form{display:grid;gap:16px}.department-create-form>.modal-field{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:12px}.department-create-form>.modal-field>span{text-align:right}.project-module-workspace{display:flex;flex-direction:row;min-width:0;border:1px solid var(--app-border-color-strong);background:var(--app-color-surface)}.project-module-content{display:flex;flex:1 1 auto;flex-direction:column;min-width:0}.workspace-scroll{flex:1 1 auto;min-height:0;padding:22px 28px;container-type:inline-size}.workspace-footer{display:flex;flex:none;align-items:center;justify-content:space-between;gap:12px;padding:14px 28px;border-top:1px solid var(--app-color-divider);background:var(--app-workspace-footer-background)}.project-module-tabs{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--app-border-color-strong)}.project-module-workspace>.project-module-tabs{flex:0 0 156px;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:8px;padding:22px 16px;border-right:1px solid var(--app-border-color-strong);border-bottom:0}.project-module-workspace>.project-module-tabs .tab-button{justify-content:flex-start;width:100%}.project-module-workspace>.project-module-tabs .tab-button svg{flex:0 0 auto}.project-module-workspace .form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 20px}@container (max-width: 860px){.project-module-workspace .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (max-width: 600px){.project-module-workspace .form-grid{grid-template-columns:1fr}}.project-module-workspace .form-field{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:4px 8px;margin:0}.project-module-workspace .form-field>span:first-child{flex:0 0 98px;width:98px;min-width:98px;max-width:98px;text-align:right;white-space:nowrap;font-size:12px;color:var(--app-color-muted)}.project-module-workspace .form-field>input,.project-module-workspace .form-field>select,.project-module-workspace .form-field>textarea,.project-module-workspace .form-field>.field-with-suffix,.project-module-workspace .form-field>details,.project-module-workspace .form-field>.app-date-input-wrap{flex:1 1 0;min-width:0;width:auto}.project-module-workspace .form-field>.toggle-switch{flex:0 0 auto}.project-module-workspace .form-field-wide{grid-column:1 / -1;align-items:flex-start}.project-module-workspace .form-field-wide>span:first-child{flex:0 0 auto;min-width:98px;max-width:none;padding-top:8px}.project-module-workspace .form-field .field-error{flex-basis:100%;padding-left:106px}.field-with-suffix{display:flex;align-items:center;flex:1 1 auto;gap:8px;min-width:0}.field-with-suffix input{flex:1 1 auto;min-width:0}.field-with-suffix em{flex:none;color:var(--app-color-text-tertiary);font-style:normal}.app-date-input-wrap{position:relative;display:inline-flex;align-items:center;width:100%;min-width:0}.app-date-input-wrap .app-date-native-input{width:100%}.app-date-input-wrap .app-date-native-input:not(.has-value):not(:focus)::-webkit-datetime-edit{color:transparent}.app-date-input-wrap .app-date-placeholder{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--app-color-text-tertiary);font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 32px)}.app-date-input-wrap .app-date-native-input:focus+.app-date-placeholder,.app-date-input-wrap .app-date-native-input.has-value+.app-date-placeholder{display:none}.implementation-tip{display:flex;align-items:center;gap:6px;padding:9px 12px;border:1px solid var(--app-accent-tint-border);border-radius:4px;background:var(--app-element-primary-soft);color:var(--app-element-primary);font-size:12px}.implementation-group-band,.section-band{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px;margin-bottom:14px;padding:8px 14px;border:1px solid var(--app-accent-tint-border);border-radius:4px;background:var(--app-element-primary-soft);color:var(--app-color-text-strong);font-size:13px;font-weight:600}.implementation-group-filter{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500}.implementation-group-filter select{width:150px;height:28px;padding:0 8px;border:1px solid var(--app-color-border);border-radius:4px;background:var(--app-color-surface);color:var(--app-color-text);font-size:12px}.workspace-scroll>*:first-child .section-band:first-child,.workspace-scroll>.section-band:first-child,.project-subproject-info-card>.form-grid>.section-band:first-child,.form-grid>.section-band:first-child{margin-top:0}.section-band h3{margin:0;font-size:13px}.section-band-note{color:var(--app-section-band-note-color);font-size:11px;font-weight:400}.settlement-summary-grid{margin-top:10px}.implementation-field-note{padding:12px 14px;border:1px solid var(--app-accent-tint-border);border-radius:4px;background:var(--app-element-primary-soft);color:var(--app-color-muted);font-size:12px}.implementation-field-note strong{display:block;margin-bottom:6px;color:var(--app-color-text-strong)}.implementation-field-note p{margin:0;line-height:1.7}.panel-heading-row{margin-bottom:14px}.compact-heading-row{align-items:flex-start;margin-bottom:10px}.panel-heading-row h2{margin:0}.panel-heading-row h3{margin:0;color:var(--app-color-text-strong);font-size:13px}.form-field-wide{grid-column:1 / -1}.base-project-editor{display:flex;flex-direction:column;min-height:0;background:var(--app-color-surface)}.base-project-editor .inline-feedback{margin:0;padding:8px 12px;border-top:1px solid var(--app-color-divider)}.legacy-project-edit-title{min-height:48px;padding:15px 44px 12px 16px;border-bottom:1px solid var(--app-border-color-strong);color:var(--app-color-text-strong);font-size:14px;font-weight:700}.base-project-editor-form{display:flex;flex-direction:column;min-height:0}.base-project-editor-body{min-height:220px;max-height:min(540px,calc(100vh - 230px));padding:18px 24px;overflow:auto}.base-project-tab-panel{display:grid;gap:12px}.legacy-project-info-grid{grid-template-columns:1fr;gap:10px}.base-project-editor .legacy-project-name-field{grid-template-columns:90px minmax(0,1fr)}.base-project-editor .legacy-project-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px}.base-project-editor .legacy-project-meta-grid .legacy-form-field{grid-template-columns:98px minmax(0,1fr)}.legacy-form-field b{color:var(--app-color-form-error);font-weight:600}.base-project-editor .legacy-project-party-field{margin-top:2px}.base-project-editor .legacy-project-party-field .form-field{grid-template-columns:90px minmax(0,1fr)}.legacy-form-field-invalid input:focus{border-color:var(--app-color-form-error);box-shadow:var(--app-focus-ring-error);outline:none}.legacy-form-field-error{grid-column:2;margin:0;color:var(--app-color-form-error);font-size:12px;line-height:1.4}.legacy-form-field-error.legacy-party-error{margin:2px 0 0}.base-project-editor-actions .action-button{transition:transform .14s ease-out}.base-project-editor-actions .action-button:not(:disabled):active{transform:scale(.97)}@media(prefers-reduced-motion:reduce){.base-project-editor-actions .action-button{transition:none}.base-project-editor-actions .action-button:not(:disabled):active{transform:none}}.base-project-editor-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:54px;padding:10px 14px;border-top:1px solid var(--app-border-color-strong);background:var(--app-color-surface)}.base-project-close-check,.base-project-editor-actions{display:flex;align-items:center;gap:8px}.base-project-close-check{color:var(--app-color-text-strong);font-size:12px}.base-project-close-check input{width:16px;height:16px}.legacy-customer-picker-field .form-field{display:grid;grid-template-columns:98px minmax(0,1fr);gap:8px;align-items:center;color:var(--app-color-muted);font-size:12px}.legacy-customer-picker-field .form-field>span{text-align:right;white-space:nowrap}.legacy-customer-picker-field .form-field input{width:100%;height:32px;min-width:0;padding:0 10px;border:1px solid var(--app-border-color);border-radius:4px;background:var(--app-color-surface);color:var(--app-color-muted);font:inherit}@media(max-width:900px){.base-project-editor .legacy-project-meta-grid{grid-template-columns:1fr}}@media(max-width:640px){.legacy-project-edit-title{min-height:46px;padding:14px 44px 10px 12px}.base-project-editor-body{max-height:calc(100vh - 154px);min-height:0;padding:14px 12px}.base-project-editor-footer{align-items:stretch;flex-direction:column}.base-project-editor-actions,.base-project-editor-actions .action-button{width:100%}.legacy-customer-picker-field .form-field{grid-template-columns:86px minmax(0,1fr)}}.highlight-toggle{display:inline-flex;align-items:center;gap:8px;margin-left:8px}.highlight-toggle-label{color:var(--app-color-muted);font-size:13px}.toggle-switch{position:relative;display:inline-flex;align-items:center;width:52px;height:24px;padding:0;border:0;border-radius:999px;background:var(--app-border-color);cursor:pointer;transition:background .15s ease-out}.toggle-switch.on{background:var(--app-element-primary)}.toggle-switch:disabled{cursor:not-allowed;opacity:.6}.toggle-switch-thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--app-color-surface);transition:transform .15s ease-out}.toggle-switch.on .toggle-switch-thumb{transform:translate(28px)}.toggle-switch-text{width:100%;padding:0 7px 0 24px;color:var(--app-color-muted);font-size:12px;text-align:right}.toggle-switch.on .toggle-switch-text{padding:0 24px 0 7px;color:var(--app-color-on-primary);text-align:left}.compact-tabs{margin-top:12px;padding-bottom:10px}.legacy-project-list{display:flex;flex-direction:column;gap:10px;max-height:326px;overflow:auto}.legacy-project-card{align-items:center;justify-content:space-between;min-height:46px;padding:10px 12px 10px 14px;border:1px solid var(--app-color-divider);background:var(--app-color-surface);color:var(--app-color-text-strong)}.legacy-project-card span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600}.legacy-project-card b{flex:0 0 auto;padding:3px 8px;border:1px solid var(--app-status-cyan-border);background:var(--app-status-cyan-background);color:var(--app-status-cyan-text);font-size:12px;font-weight:500}.compact-filter{display:flex;align-items:center;gap:8px;color:var(--app-color-muted);font-size:12px}.compact-filter input{width:138px;height:32px;border:1px solid var(--app-border-color);background:var(--app-color-surface);color:var(--app-color-text-strong)}.legacy-workbench-grid{align-items:stretch}.legacy-stat-list{display:grid;gap:12px;max-height:300px;overflow:auto}.legacy-stat-list.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.legacy-stat-row{display:grid;gap:8px;padding:10px 12px;border:1px solid var(--app-color-divider);background:var(--app-color-surface)}.legacy-stat-row div{display:flex;align-items:center;justify-content:space-between;gap:12px}.legacy-stat-row strong{min-width:0;color:var(--app-color-text-strong);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legacy-stat-row span{flex:0 0 auto;color:var(--app-color-muted);font-size:12px}.legacy-stat-row i{display:block;height:8px;overflow:hidden;border:1px solid var(--app-status-neutral-border);background:var(--app-color-background-mute)}.legacy-stat-row em{display:block;height:100%;min-width:6px;background:var(--app-element-primary)}.legacy-stat-total{margin-top:12px;padding-top:12px;border-top:1px solid var(--app-color-divider);color:var(--app-color-muted);font-size:12px;text-align:right}.staff-workbench-stack{display:grid;gap:16px}.role-notice-panel{max-width:760px}.role-notice-panel p{margin:0;color:var(--app-color-muted);font-size:13px;line-height:1.7}.status-tag{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:22px;padding:2px 8px;border:1px solid var(--app-accent-tint-border);background:var(--app-element-primary-soft);color:var(--app-color-primary);font-size:12px;line-height:1.4}.status-preparing{border-color:var(--app-status-success-border);background:var(--app-status-success-background);color:var(--app-status-success-text)}.status-filed{border-color:var(--app-status-cyan-border);background:var(--app-status-cyan-background);color:var(--app-status-cyan-text)}.status-borrowed{border-color:var(--app-status-danger-border);background:var(--app-status-danger-background);color:var(--app-status-danger-text)}@media(max-width:860px){.archive-legacy-layout{grid-template-columns:1fr}.archive-legacy-sidebar{display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));border-right:0;border-bottom:1px solid var(--app-border-color)}.archive-side-group{display:contents}.archive-side-item,.archive-side-item.grouped{min-height:44px;border-right:0;border-bottom:1px solid var(--app-border-color-strong)}.archive-legacy-main{min-height:680px}}@media(max-width:860px){.finance-legacy-main{padding:10px;overflow:visible}}.analytics-contract-chart{min-height:430px;padding:12px 18px 8px}@media(max-width:960px){.analytics-legacy-layout{grid-template-columns:1fr}.analytics-legacy-sidebar{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border-right:0;border-bottom:1px solid var(--app-border-color)}.analytics-side-group{border-bottom:0}.analytics-side-item{min-height:46px;border-right:0}.analytics-side-subnav{grid-column:1 / -1}.analytics-legacy-main{padding:12px}.analytics-legacy-toolbar{align-items:flex-start;flex-wrap:wrap}.analytics-date-control{width:100%;align-items:flex-start;flex-direction:column}.analytics-date-range{width:100%;height:auto;flex-wrap:wrap;padding:4px 8px}.analytics-date-range input{flex:1 1 128px}.analytics-advanced-panel{position:static;width:min(100%,410px);margin-top:8px;box-shadow:none}.analytics-toolbar-fill{display:none}.analytics-legacy-chart-grid.three,.analytics-legacy-chart-grid.professional{grid-template-columns:1fr}.analytics-contract-chart{min-height:390px}}.attachment-preview-panel{min-height:420px;border:1px solid var(--app-border-color);background:var(--app-color-background-subtle)}.attachment-preview-panel iframe,.attachment-preview-panel img{display:block;width:100%;height:min(64vh,640px);border:0;background:var(--app-color-surface)}.attachment-preview-panel img{object-fit:contain;padding:12px}.material-filter-item{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:center}.material-filter-item input{width:100%;min-width:0}.category-manager-toolbar input{min-width:220px;flex:1 1 260px;padding:0 10px}.article-detail-panel{min-height:280px;padding:16px;border:1px solid var(--app-border-color);background:var(--app-color-surface);color:var(--app-color-text-strong);font-size:13px;line-height:1.8}.rich-text-editor{display:grid;border:1px solid var(--app-border-color);background:var(--app-color-surface)}.rich-text-toolbar{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding:6px;border-bottom:1px solid var(--app-color-divider);background:var(--app-color-background-subtle)}.rich-text-toolbar button{min-width:32px;height:28px;padding:0 8px;border:1px solid transparent;background:transparent;color:var(--app-color-text-strong);font:inherit;font-size:12px;cursor:pointer}.rich-text-toolbar button:hover,.rich-text-toolbar button:focus-visible{border-color:var(--app-rich-text-focus-border);background:var(--app-nav-active-background);outline:0}.rich-text-divider{width:1px;height:20px;margin:0 2px;background:var(--app-border-color)}.rich-text-image-input{display:none}.rich-text-body{min-width:0;padding:12px;overflow:auto;color:var(--app-color-text-strong);font-size:13px;line-height:1.8;outline:0}.rich-text-body:empty:before{color:var(--app-color-text-disabled);content:attr(data-placeholder)}.rich-text-body:focus{box-shadow:inset 0 0 0 1px var(--app-element-primary)}.rich-text-body p,.article-detail-panel p{margin:0 0 8px}.rich-text-body h1,.rich-text-body h2,.rich-text-body h3,.article-detail-panel h1,.article-detail-panel h2,.article-detail-panel h3{margin:8px 0;color:var(--app-color-text-strong)}.rich-text-body table,.article-detail-panel table{width:100%;border-collapse:collapse}.rich-text-body th,.rich-text-body td,.article-detail-panel th,.article-detail-panel td{padding:6px 8px;border:1px solid var(--app-border-color)}.rich-text-body img,.article-detail-panel img{max-width:100%}.upload-file-list{display:flex;flex-wrap:wrap;gap:8px}.upload-file-list span{min-height:28px;padding:5px 8px;border:1px solid var(--app-inset-panel-border);background:var(--app-color-background-subtle);color:var(--app-color-text-secondary);font-size:12px}.selection-cell{width:44px;text-align:center!important}.selection-cell input{width:16px;height:16px;vertical-align:middle}.single-column-form{grid-template-columns:1fr}.detail-row span{color:var(--app-color-text-tertiary);font-size:12px}.detail-row strong{color:var(--app-color-text-strong);font-size:13px}.detail-row{display:flex;min-height:42px;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;border-bottom:1px solid var(--app-color-divider)}.detail-row:nth-child(odd){border-right:1px solid var(--app-color-divider)}.detail-row:last-child{border-bottom:0}.detail-row-block{min-height:72px;align-items:flex-start;flex-direction:column;justify-content:center;padding:10px 12px}.detail-row p{margin:0;color:var(--app-color-text-strong);font-size:12px;line-height:1.6}.empty-state-inline{padding:18px 12px;border:1px dashed var(--app-inset-panel-border);background:var(--app-color-background-subtle);color:var(--app-color-text-tertiary);font-size:12px}.attachment-panel-header{display:flex;justify-content:space-between;gap:12px;align-items:center}.attachment-panel-header strong{color:var(--app-color-text-strong);font-size:13px}.attachment-panel-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.attachment-panel-header span,.inline-feedback{color:var(--app-color-muted);font-size:12px}.inline-feedback-dismissible{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:0 12px;border:1px solid var(--app-border-color-strong);background:var(--app-color-surface)}.inline-feedback-dismissible button{display:inline-grid;place-items:center;width:24px;height:24px;border:0;background:transparent;color:var(--app-color-text-tertiary);font-size:16px;line-height:1;cursor:pointer}.inline-feedback-dismissible button:hover{color:var(--app-color-text-strong)}.attachment-panel{padding:14px;border:1px solid var(--app-color-divider);background:var(--app-color-background-soft)}.attachment-upload-row{display:grid;grid-template-columns:auto minmax(80px,.6fr) minmax(160px,1fr) auto;gap:8px;align-items:center}.attachment-upload-row input{min-width:0;height:32px;padding:0 10px;border:1px solid var(--app-border-color);background:var(--app-color-surface);color:var(--app-color-muted)}.attachment-upload-row input[type=file].attachment-file-input{position:absolute;width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none}.attachment-file-name{min-width:0;overflow:hidden;color:var(--app-color-text-tertiary);text-overflow:ellipsis;white-space:nowrap}.attachment-table{min-width:620px}.attachment-status{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border:1px solid var(--app-border-color);background:var(--app-color-background-mute);color:var(--app-color-muted);font-size:12px;white-space:nowrap}.attachment-status.available{border-color:var(--app-attachment-success-border);background:var(--app-attachment-success-background);color:var(--app-attachment-success-text)}.attachment-status.warning{border-color:var(--app-attachment-warning-border);background:var(--app-attachment-warning-background);color:var(--app-attachment-warning-text)}.attachment-status.danger{border-color:var(--app-attachment-danger-border);background:var(--app-attachment-danger-background);color:var(--app-attachment-danger-text)}.compact-placeholder{padding:16px}.boolean-tag{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:22px;padding:0 8px;border:1px solid var(--app-status-danger-border);background:var(--app-status-danger-background);color:var(--app-status-danger-text);font-size:12px}.boolean-tag.active{border-color:var(--app-status-success-border);background:var(--app-status-success-background);color:var(--app-status-success-text)}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:72px;height:24px;padding:0 10px;border:1px solid var(--app-status-neutral-border);background:var(--app-color-background-subtle);color:var(--app-status-neutral-text);font-size:12px;font-weight:600}.status-pill.delayed{border-color:var(--app-status-danger-border);background:var(--app-status-danger-background);color:var(--app-status-danger-text)}.status-pill.upcoming{border-color:var(--app-status-success-border);background:var(--app-status-success-background);color:var(--app-status-success-text)}.status-pill.danger{border-color:var(--app-status-danger-border);background:var(--app-status-danger-background);color:var(--app-status-danger-text)}.status-pill.warning{border-color:var(--app-status-warning-border);background:var(--app-status-warning-background);color:var(--app-status-warning-text)}.status-pill.info{border-color:var(--app-status-info-border);background:var(--app-status-info-background);color:var(--app-status-info-text)}.status-pill.neutral{border-color:var(--app-status-neutral-border);background:var(--app-color-background-subtle);color:var(--app-status-neutral-text)}.status-pill.missingPlan{border-color:var(--app-status-warning-border);background:var(--app-status-warning-background);color:var(--app-status-warning-text)}.inline-checkboxes{align-self:end;display:flex;flex-direction:row;gap:16px;min-height:36px;align-items:center}.inline-checkboxes label{display:inline-flex;align-items:center;gap:6px}.mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:16px}.mini-panel{padding:12px;background:var(--app-color-background-mute);border:1px solid var(--app-color-divider);display:flex;flex-direction:column;gap:6px}.mini-panel span{font-size:12px;color:var(--app-color-text-tertiary)}.mini-panel strong{font-size:12px;color:var(--app-color-text-strong);font-weight:600}.dialog-host-form{display:grid;gap:16px}.dialog-host-error{margin:0;color:var(--app-dialog-danger);font-size:12px}.dialog-confirm-button.danger{border-color:var(--app-dialog-danger);background:var(--app-dialog-danger);color:var(--app-color-on-primary)}.dialog-confirm-button.warning{border-color:var(--app-dialog-warning-border);background:var(--app-dialog-warning-background);color:var(--app-dialog-warning-text)}@media(forced-colors:active){.dialog-confirm-button.danger,.dialog-confirm-button.warning{border:2px solid ButtonText;forced-color-adjust:auto}}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.metric-card{padding:16px 18px;background:var(--app-metric-card-background);border:1px solid var(--app-color-divider)}.metric-card p{margin:0 0 8px;color:var(--app-color-text-tertiary);font-size:12px}.metric-card strong{font-size:22px;font-weight:600}.panel-card{padding:20px;background:var(--app-color-surface);border:1px solid var(--app-color-divider)}.panel-card h2{margin:0 0 12px;font-size:14px;font-weight:600}.panel-card p{margin:0;line-height:1.7;color:var(--app-color-text-secondary)}.card-subtitle{margin-bottom:16px;color:var(--app-color-text-tertiary);font-size:12px}.kv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.kv-grid div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--app-color-divider);font-size:12px}.kv-grid span{color:var(--app-color-text-tertiary)}.tag{padding:8px 12px;border-radius:999px;background:var(--app-element-primary-soft);color:var(--app-color-primary);font-size:12px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.form-grid .span-2{grid-column:span 2}@media(max-width:640px){.form-grid .span-2{grid-column:span 1}}.form-field{display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--app-color-muted)}.form-field input,.form-field select,.form-textarea{width:100%;border:1px solid var(--app-border-color);padding:10px 12px;font-size:12px;color:var(--app-color-muted);background:var(--app-color-surface)}.field-error{color:var(--app-color-form-error);font-size:12px;line-height:1.4}.form-textarea{min-height:120px;resize:none;line-height:1.7}.table-card{overflow-x:auto;background:var(--app-color-surface);border:1px solid var(--app-color-divider)}.table-card.compact{border:0}.table-card--fill{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}.table-card--fill>.el-table{flex:1 1 auto;min-height:0;width:100%}.table-toolbar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:12px 14px;border-bottom:1px solid var(--app-color-divider);background:var(--app-color-surface)}.data-table{width:100%;border-collapse:collapse;min-width:720px}.data-table th,.data-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--app-color-divider);font-size:12px}.data-table th{color:var(--app-color-muted);font-weight:600;background:var(--app-color-background-mute)}.data-table a{color:var(--app-color-primary);font-weight:600}.legacy-distribution-page{display:flex;flex-direction:column;gap:8px;height:calc(100vh - 92px);min-height:650px}.legacy-distribution-date-picker{flex:0 0 auto;z-index:4}.legacy-distribution-date-picker .legacy-date-trigger{width:230px}.legacy-distribution-calendar-popover{top:40px;left:0}.legacy-distribution-panel{position:relative;flex:1 1 auto;min-height:0;border:1px solid var(--app-color-divider);background:var(--app-color-surface);overflow:hidden;display:flex;flex-direction:column}.legacy-distribution-chart{min-height:370px;padding:2px 20px 8px;border-bottom:1px solid var(--app-color-divider);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.legacy-distribution-svg{width:min(660px,100%);height:290px;display:block;overflow:visible}.legacy-distribution-center-label{fill:var(--app-chart-center-label-fill);font-size:14px}.legacy-distribution-center-value{fill:var(--app-chart-center-label-fill);font-size:20px}.legacy-distribution-slice-label{fill:var(--app-chart-slice-label-fill);font-size:12px;font-weight:600}.legacy-distribution-legend{display:flex;justify-content:center;gap:10px 20px;flex-wrap:wrap;width:100%;color:var(--app-color-muted);font-size:12px}.legacy-distribution-legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.legacy-distribution-legend i{width:10px;height:10px;border-radius:50%}.legacy-distribution-table-wrap{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:auto}.legacy-distribution-slice.active{opacity:.85}.legacy-distribution-legend span.active{font-weight:600;color:var(--app-color-primary)}.table-link-button{font-weight:600;text-align:left}.table-row-active td{background:var(--app-table-row-active-background)}tbody tr[tabindex]:focus-visible{outline:2px solid var(--app-focus-color);outline-offset:-2px}.placeholder{padding:24px;background:var(--app-color-surface);border:1px solid var(--app-color-divider);color:var(--app-color-text-secondary)}.placeholder.error{color:var(--app-action-danger-color)}@media(max-width:1180px){.finance-advanced-search .finance-filter-popover{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.project-context-breadcrumb,.project-context-breadcrumb-current{max-width:100%}.finance-legacy-layout{grid-template-columns:1fr}.finance-legacy-sidebar{display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid var(--app-border-color)}.finance-side-item{min-width:150px}.finance-invoice-context,.finance-invoice-fields{grid-template-columns:1fr}.finance-invoice-context-full{grid-column:auto}.project-ledger-toolbar-card{position:static;box-shadow:none}.table-card.legacy-ledger-table{height:420px}.legacy-ledger-search,.legacy-ledger-actions-main,.legacy-ledger-create-actions{width:100%}.legacy-date-picker,.legacy-search-popover-wrapper,.custom-column-popover-wrapper{flex:1 1 100%;min-width:0}.legacy-search-button,.legacy-ledger-actions-main .action-button{width:100%}.legacy-ledger-create-actions{padding-top:10px;padding-left:0;border-top:1px solid var(--app-border-color-subtle);border-left:0}.legacy-filter-popover,.custom-column-popover{left:0;right:auto;width:min(520px,calc(100vw - 48px));transform:none}.legacy-filter-arrow,.custom-column-arrow{left:40px;right:auto}.legacy-popover-field{grid-template-columns:1fr;gap:6px}.legacy-popover-field>span{text-align:left}.project-edit-shell{display:flex}.analytics-metric-grid,.attachment-upload-row{grid-template-columns:1fr}}.highlight-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--app-color-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.highlight-toggle input[type=checkbox]{width:16px;height:16px;cursor:pointer}.demo-table-info-row td{background:var(--app-attachment-success-background)!important}.review-member-name{margin:0;line-height:1.5}.review-opinion-modal-body{padding:16px 0}.layout-main:has(.contract-page),.layout-main:has(.analytics-legacy-page),.layout-main:has(.archive-legacy-page),.layout-main:has(.finance-legacy-page){padding:16px;background:var(--app-color-background)}.content-shell:has(.contract-page),.content-shell:has(.analytics-legacy-page),.content-shell:has(.archive-legacy-page),.content-shell:has(.finance-legacy-page){padding:16px;overflow-x:hidden;overflow-y:auto;box-shadow:var(--app-shadow-card)}.contract-page,.analytics-legacy-page,.archive-legacy-page,.finance-legacy-page{height:auto;min-height:0;gap:16px;overflow:visible;background:transparent}.contract-module-layout,.analytics-legacy-layout,.archive-legacy-layout,.finance-legacy-layout{grid-template-columns:var(--app-module-sidebar-width) minmax(0,1fr);gap:var(--app-space-page);align-items:start;height:auto;min-height:0;background:transparent}.contract-module-sidebar,.analytics-legacy-sidebar,.archive-legacy-sidebar,.finance-legacy-sidebar{position:sticky;top:0;min-width:0;border:1px solid var(--app-shell-panel-border);background:var(--app-color-background-subtle)}.contract-module-side-item,.analytics-side-item,.archive-side-item,.finance-side-item{min-height:54px;padding:12px 14px;border:0;border-bottom:1px solid var(--app-border-color-strong);border-right:3px solid transparent;background:transparent;color:var(--app-color-text-strong);font-size:13px;box-shadow:none}.contract-module-side-item:hover,.analytics-side-item:hover,.archive-side-item:hover,.finance-side-item:hover{background:var(--app-color-surface);color:var(--app-color-primary)}.contract-module-side-item.active,.analytics-side-item.active,.archive-side-item.router-link-active,.archive-side-item.router-link-exact-active,.finance-side-item.active{border-right-color:var(--app-color-primary);background:var(--app-nav-active-background);color:var(--app-color-primary);font-weight:700;box-shadow:none}.analytics-side-group,.archive-side-group{border-bottom:1px solid var(--app-border-color-strong)}.analytics-side-subnav{border-bottom:1px solid var(--app-border-color-strong);background:var(--app-color-surface)}.legacy-module-sidebar{position:sticky;top:0;min-width:0;border:1px solid var(--app-shell-panel-border);overflow:hidden;background:var(--app-color-surface)}.legacy-module-sidebar-item{display:flex;align-items:center;justify-content:flex-start;width:100%;height:54px;min-height:54px;padding:0 16px;border:0;border-bottom:1px solid var(--app-classic-nav-border);border-right:3px solid transparent;border-radius:0;background:transparent;color:var(--app-classic-nav-color);font-size:13px;font-weight:400;line-height:1.4;text-align:left;text-decoration:none;box-shadow:none;cursor:pointer}.legacy-module-sidebar-item>strong{min-width:0;color:inherit;font-size:inherit;font-weight:inherit}.legacy-module-sidebar-item:hover{border-right-color:transparent;background:var(--app-classic-nav-hover-background);color:var(--app-color-primary)}.legacy-module-sidebar-item.active,.legacy-module-sidebar-item.router-link-active,.legacy-module-sidebar-item.router-link-exact-active{border-right-color:var(--app-color-primary);background:var(--app-classic-nav-active-background);color:var(--app-color-primary);font-weight:700;box-shadow:none}.legacy-module-sidebar-item-expandable{display:grid;grid-template-columns:18px minmax(0,1fr) 18px;column-gap:9px}.legacy-module-sidebar-item-expandable .project-ledger-nav-icon{grid-column:1;grid-row:1;margin-right:0}.legacy-module-sidebar-item-expandable>strong{grid-column:2;grid-row:1}.legacy-module-sidebar-item-expandable .project-ledger-nav-caret{grid-column:3;grid-row:1;color:currentColor}.legacy-module-sidebar-subnav{border-bottom:1px solid var(--app-classic-nav-border);background:var(--app-color-surface)}.legacy-module-sidebar-subitem{display:flex;align-items:center;gap:8px;width:100%;height:42px;min-height:42px;padding:0 16px 0 32px;border:0;border-bottom:1px solid var(--app-border-color-subtle);border-right:3px solid transparent;background:transparent;color:var(--app-color-muted);font-size:13px;text-align:left;text-decoration:none;cursor:pointer}.legacy-module-sidebar-subitem:hover,.legacy-module-sidebar-subitem.active{background:var(--app-classic-nav-active-background);color:var(--app-color-primary)}.legacy-module-sidebar-subitem.active{border-right-color:var(--app-color-primary);font-weight:700}.legacy-module-sidebar-subitem-icon{flex:none;line-height:1}.legacy-module-sidebar-item:focus-visible,.legacy-module-sidebar-subitem:focus-visible{position:relative;z-index:1;outline:3px solid var(--app-focus-outline-strong);outline-offset:-3px}.contract-list-page,.analytics-legacy-main,.archive-legacy-main,.finance-legacy-main{height:auto;min-height:0;padding:0;gap:12px;overflow:visible;background:transparent}.contract-flat-toolbar,.analytics-ledger-toolbar-card,.finance-toolbar-card{padding:0;border:1px solid var(--app-color-divider);background:var(--app-color-surface);overflow:visible}.contract-legacy-toolbar,.analytics-legacy-toolbar{display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap;min-height:40px;padding:10px 14px 12px;border:0;background:transparent}.contract-legacy-toolbar{justify-content:space-between}.contract-legacy-search{flex:1 1 460px}.analytics-date-range{border-color:var(--app-border-color)}.contract-table-panel,.analytics-legacy-panel,.analytics-legacy-main .table-card{border-color:var(--app-color-divider)}.contract-table-panel{flex:0 0 auto;overflow:hidden}.contract-table-status,.analytics-legacy-feedback{min-height:20px;margin:0;color:var(--app-color-muted);font-size:12px}.contract-table-status{min-height:38px;padding:0 12px;border-bottom:1px solid var(--app-color-divider)}.analytics-account-metrics{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:12px}.analytics-account-metrics .analytics-metric-card{display:grid;align-content:center;gap:5px;border:1px solid var(--app-color-divider);background:var(--app-color-surface)}.analytics-account-metrics .analytics-metric-card strong{font-size:18px;font-variant-numeric:tabular-nums}.analytics-account-metrics .analytics-metric-card small{color:var(--app-color-muted);font-size:12px}.analytics-date-range label{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.analytics-date-range label>span{color:var(--app-color-muted);font-size:12px}.analytics-money-negative{color:var(--app-action-danger-color)!important}.analytics-money-unreceived{color:var(--app-analytics-warning-text)}.analytics-money-negative small,.analytics-unattributed-badge{display:inline-block;margin-left:4px;padding:1px 5px;border:1px solid currentColor;color:inherit;font-size:11px;white-space:nowrap}.analytics-unattributed-badge{color:var(--app-analytics-warning-text)}.analytics-empty-cell>span{margin-right:10px}.analytics-legacy-main a:focus-visible,.analytics-legacy-main button:focus-visible,.analytics-legacy-main input:focus-visible,.analytics-legacy-main select:focus-visible{outline:3px solid var(--app-focus-outline-strong);outline-offset:2px}.analytics-legacy-sidebar .legacy-module-sidebar-item:focus-visible,.analytics-legacy-sidebar .legacy-module-sidebar-subitem:focus-visible{outline:3px solid var(--app-focus-outline-strong);outline-offset:-3px}.modal-field.inline-checkboxes{flex-direction:column;gap:6px}@media(max-width:860px){.contract-module-layout,.analytics-legacy-layout,.archive-legacy-layout,.finance-legacy-layout{grid-template-columns:1fr}.contract-module-sidebar,.analytics-legacy-sidebar,.archive-legacy-sidebar,.finance-legacy-sidebar{position:static;display:block;border-right:1px solid var(--app-shell-panel-border)}.legacy-module-sidebar{position:static}.legacy-module-sidebar-item{height:46px;min-height:46px;border-right:0}.contract-module-side-item,.analytics-side-item,.archive-side-item,.finance-side-item{min-height:46px;border-right:0}.analytics-side-subnav{grid-column:auto}.contract-legacy-toolbar,.analytics-legacy-toolbar{align-items:flex-start}.analytics-date-control{width:100%;align-items:flex-start;flex-direction:column}.analytics-date-range{width:100%;height:auto;flex-wrap:wrap;padding:4px 8px}.analytics-toolbar-fill{display:none}.analytics-account-metrics,.analytics-legacy-chart-grid.three,.analytics-legacy-chart-grid.professional{grid-template-columns:1fr}.my-work-nav-item,.analytics-side-item{grid-template-columns:22px minmax(0,1fr) auto}.material-filter-item.filter-item{width:100%;align-items:flex-start}}.contract-preview-mask .el-overlay-dialog{padding:24px}@media(max-width:640px){.archive-borrow-fields{grid-template-columns:1fr}}.legacy-button{min-height:32px;padding:0 15px;border:1px solid var(--app-iview-border);border-radius:4px;background:var(--app-color-surface);color:var(--app-iview-text);font:inherit;cursor:pointer}.legacy-icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:32px;padding:0;border:1px solid var(--app-iview-border);border-radius:4px;background:var(--app-color-surface);color:var(--app-iview-text);cursor:pointer}.legacy-button.primary{border-color:var(--app-iview-primary);background:var(--app-iview-primary);color:var(--app-color-on-primary)}.legacy-button.danger{border-color:var(--app-iview-danger);background:var(--app-iview-danger);color:var(--app-color-on-primary)}.legacy-button.info{border-color:var(--app-iview-info);background:var(--app-iview-info);color:var(--app-color-on-primary)}.legacy-button.warning{border-color:var(--app-iview-warning);background:var(--app-iview-warning);color:var(--app-color-on-primary)}.legacy-button.small{min-height:26px;padding:0 10px;font-size:12px}.legacy-button:disabled{cursor:not-allowed;opacity:.55}.legacy-feedback{min-height:20px;margin:0;color:var(--app-iview-text-muted);font-size:12px}.legacy-feedback.error{color:var(--app-iview-danger)}.legacy-row-actions{min-width:250px;white-space:nowrap}.legacy-link{border:0;background:none;padding:0;color:var(--app-iview-primary);cursor:pointer;font:inherit}.legacy-modal-section{margin-top:18px}.legacy-modal-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.row-expand-button{display:inline-grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid var(--app-row-expand-border);border-radius:5px;background:var(--app-color-surface);color:var(--app-row-expand-color);cursor:pointer}.row-expand-button:hover,.row-expand-button.expanded{border-color:var(--app-color-primary);background:var(--app-classic-nav-active-background);color:var(--app-color-primary)}.row-expand-button:focus-visible{outline:3px solid var(--app-focus-outline-soft);outline-offset:2px}.row-expand-button:disabled{cursor:not-allowed;opacity:.45}.row-expand-button-icon{transition:transform .16s cubic-bezier(.23,1,.32,1)}.row-expand-button-icon.expanded{transform:rotate(90deg)}.row-expansion-panel{min-width:0;padding:12px 16px 16px 64px;border-top:1px solid var(--app-row-expansion-border);background:var(--app-row-expansion-background);overflow-x:auto}@media(prefers-reduced-motion:reduce){.row-expand-button-icon{transition:none}}@media(min-width:961px){.layout-main:has(.legacy-primary-module-page){padding:var(--app-space-page);background:var(--app-color-background)}.content-shell:has(.legacy-primary-module-page){padding:0;overflow:hidden;background:transparent;box-shadow:none}.legacy-primary-module-page{height:100%;min-height:0;gap:0;overflow:hidden;background:transparent}.legacy-primary-module-page>.project-ledger-layout,.legacy-primary-module-page>.finance-legacy-layout,.legacy-primary-module-page>.my-work-layout{height:100%;min-height:0;align-items:stretch}.legacy-primary-module-page>.project-ledger-layout>.legacy-module-sidebar,.legacy-primary-module-page>.finance-legacy-layout>.legacy-module-sidebar,.legacy-primary-module-page>.my-work-layout>.legacy-module-sidebar{align-self:stretch;height:100%;overflow-x:hidden;overflow-y:auto}.legacy-primary-module-page>.project-ledger-layout>.project-ledger-main,.legacy-primary-module-page>.finance-legacy-layout>.finance-legacy-main,.legacy-primary-module-page>.my-work-layout>.project-ledger-main{height:100%;min-height:0;overflow:hidden}.legacy-primary-module-page>.my-work-layout>.my-work-content,.legacy-primary-module-page>.analytics-legacy-layout>.analytics-legacy-main{overflow-y:auto}.legacy-primary-module-page .policy-module-layout{height:100%;min-height:0;align-items:stretch}.legacy-primary-module-page .policy-main-content{min-height:0;overflow:auto}.legacy-primary-module-page .project-ledger-toolbar-card,.legacy-primary-module-page .contract-flat-toolbar,.legacy-primary-module-page .analytics-ledger-toolbar-card,.legacy-primary-module-page .finance-toolbar-card{flex:0 0 auto}.legacy-primary-module-page .contract-table-panel{flex:1 1 auto;min-height:0;overflow:hidden}.legacy-primary-module-page .finance-ledger-page{display:flex;flex-direction:column;gap:8px;height:100%;min-height:0;overflow:hidden}}@media(min-width:961px){.legacy-primary-module-page .legacy-submodule-page{height:100%;min-height:0}.legacy-primary-module-page .archive-legacy-main{height:100%;min-height:0;overflow:hidden}}.legacy-ledger-table tbody td{height:38px;padding:8px 10px;white-space:nowrap}.legacy-ledger-table .legacy-row-actions{width:100%;min-width:0;justify-content:center}@media(max-width:900px){.finance-professional-primary-filters{align-items:stretch}.finance-professional-primary-filters>label,.finance-professional-selected-actions,.finance-professional-ledger-tools{flex-basis:100%;width:100%}.finance-professional-ledger-tools{justify-content:flex-start;margin-left:0}}
