rowvia 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/rowvia.css +1 -1
- package/dist/rowvia.es.js +2878 -2814
- package/dist/rowvia.umd.cjs +18 -18
- package/dist/types/core/localeText.d.ts +2 -2
- package/dist/types/render/headerView.d.ts +1 -1
- package/dist/types/render/rowRenderer.d.ts +7 -3
- package/package.json +3 -2
package/dist/rowvia.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.ag-grid-root{--ag-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--ag-font-size: 13px;--ag-header-font-size: 12px;--ag-background-color: #fff;--ag-header-background-color: #f5f7fa;--ag-odd-row-background-color: rgba(0, 0, 0, .03);--ag-header-foreground-color: #5a636b;--ag-foreground-color: #181d1f;--ag-secondary-foreground-color: #6b7680;--ag-border-color: #dde2eb;--ag-border-color-strong: #b8c0c9;--ag-row-hover-color: rgba(33, 150, 243, .06);--ag-selected-row-background-color: rgba(33, 150, 243, .12);--ag-range-selection-background-color: rgba(33, 150, 243, .14);--ag-range-selection-border-color: #2196f3;--ag-range-selection-chart-category-color: #2196f3;--ag-range-selection-chart-background-color: rgba(33, 150, 243, .1);--ag-header-height: 48px;--ag-header-cell-horizontal-padding: 12px;--ag-cell-horizontal-padding: 12px;--ag-row-height: 42px;--ag-checkbox-checked-color: #2196f3;--ag-accent-color: #2196f3;--ag-alpine-active-color: #2196f3;--ag-input-focus-border-color: #2196f3;--ag-invalid-color: #e02525;--ag-disabled-foreground-color: rgba(24, 29, 31, .5);--ag-chip-background-color: rgba(24, 29, 31, .06);--ag-modal-overlay-background-color: rgba(0, 0, 0, .4);--ag-toggle-button-border-width: 0;--ag-widget-container-shadow: 0 4px 16px rgba(0, 0, 0, .18);--ag-cell-data-changed-color: #2196f3;--ag-chart-text-color: #5a636b;position:relative;box-sizing:border-box;font-family:var(--ag-font-family);font-size:var(--ag-font-size);color:var(--ag-foreground-color);background-color:var(--ag-background-color);line-height:1.4;-webkit-font-smoothing:antialiased}.ag-grid-root *,.ag-grid-root *:before,.ag-grid-root *:after{box-sizing:border-box}.ag-theme-quartz{--ag-header-background-color: #f9fafb;--ag-border-color: #eff0f1;--ag-odd-row-background-color: transparent;--ag-header-foreground-color: #39485d;--ag-foreground-color: #1f383c;--ag-secondary-foreground-color: rgba(31, 56, 60, .6);--ag-row-height: 42px;--ag-header-height: 48px;--ag-border-radius: 8px;--ag-selected-row-background-color: rgba(33, 150, 243, .1)}.ag-theme-balham{--ag-header-background-color: #f5f5f5;--ag-border-color: #bdbfc1;--ag-header-height: 32px;--ag-row-height: 28px;--ag-cell-horizontal-padding: 8px;--ag-font-size: 12px}.ag-theme-alpine-dark,.ag-theme-quartz-dark{--ag-background-color: #181d1f;--ag-header-background-color: #23272a;--ag-odd-row-background-color: rgba(255, 255, 255, .04);--ag-border-color: #3a4045;--ag-border-color-strong: #4c545b;--ag-foreground-color: #e5e9ec;--ag-header-foreground-color: #b6bcc2;--ag-secondary-foreground-color: rgba(229, 233, 236, .6);--ag-chip-background-color: rgba(255, 255, 255, .1);--ag-disabled-foreground-color: rgba(229, 233, 236, .5);--ag-range-selection-background-color: rgba(33, 150, 243, .24)}.ag-root{position:relative;display:flex;width:100%;height:100%;overflow:hidden}.ag-main{flex:1 1 auto;display:flex;flex-direction:column;min-width:0;position:relative;overflow:hidden}.ag-header-wrapper{position:relative;overflow:hidden;flex:none;min-height:0;border-bottom:1px solid var(--ag-border-color);background-color:var(--ag-header-background-color)}.ag-header{display:flex;position:relative;height:var(--ag-header-height);flex:none;overflow:hidden}.ag-pinned-left-header,.ag-pinned-right-header{position:relative;overflow:hidden;flex:none;height:100%}.ag-header-viewport{flex:1 1 auto;position:relative;overflow:hidden;min-width:0}.ag-header-container,.ag-header-row{position:relative;height:100%}.ag-header-cell{position:absolute;top:0;display:flex;align-items:center;height:100%;padding:0 var(--ag-header-cell-horizontal-padding);font-size:var(--ag-header-font-size);font-weight:600;color:var(--ag-header-foreground-color);background-color:var(--ag-header-background-color);border-right:1px solid var(--ag-border-color);-webkit-user-select:none;user-select:none;cursor:default;overflow:hidden}.ag-header-cell:last-child{border-right:none}.ag-header-cell-label{flex:1 1 auto;display:flex;align-items:center;gap:6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ag-header-cell-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ag-header-cell.ag-right-aligned-header,.ag-header-cell.ag-right-aligned-header .ag-header-cell-label{justify-content:flex-end}.ag-header-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:none;color:var(--ag-secondary-foreground-color);opacity:.75;cursor:pointer}.ag-header-icon:hover{opacity:1}.ag-sort-indicator{margin-left:4px}.ag-sort-indicator.ag-sort-asc,.ag-sort-indicator.ag-sort-desc{color:var(--ag-alpine-active-color);opacity:1}.ag-sort-order{font-size:10px;margin-left:-4px;align-self:flex-start;color:var(--ag-alpine-active-color)}.ag-filter-icon.ag-filter-active{color:var(--ag-alpine-active-color);opacity:1}.ag-header-cell-resize{position:absolute;top:0;right:-3px;bottom:0;width:7px;cursor:col-resize;z-index:2}.ag-header-cell-resize:after{content:"";position:absolute;top:20%;bottom:20%;right:3px;width:1px;background:var(--ag-border-color-strong)}.ag-header-cell-resize:hover:after{background:var(--ag-alpine-active-color);width:2px}body.ag-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.ag-header-cell-drag-ghost{opacity:.6}.ag-floating-filters{border-top:1px solid var(--ag-border-color);height:28px}.ag-floating-filter-cell{display:flex;align-items:center;padding:2px 6px;border-right:1px solid var(--ag-border-color);background-color:var(--ag-header-background-color)}.ag-floating-filter-input{width:100%;border:1px solid var(--ag-border-color);border-radius:4px;padding:2px 6px;font-size:12px;font-family:var(--ag-font-family);color:var(--ag-foreground-color);background:var(--ag-background-color);outline:none}.ag-floating-filter-input:focus{border-color:var(--ag-input-focus-border-color)}.ag-body{flex:1 1 auto;display:flex;position:relative;min-height:0;overflow:hidden}.ag-body-viewport-wrapper{flex:1 1 auto;display:flex;flex-direction:column;position:relative;min-width:0}.ag-body-viewport{flex:1 1 auto;overflow:auto;position:relative;outline:none;scrollbar-width:thin}.ag-body-viewport::-webkit-scrollbar{width:12px;height:12px}.ag-body-viewport::-webkit-scrollbar-thumb{background:#80808066;border-radius:6px;border:3px solid transparent;background-clip:content-box}.ag-body-viewport::-webkit-scrollbar-thumb:hover{background:#80808099;background-clip:content-box}.ag-body-container{position:relative;width:100%}.ag-pinned-left-cols-viewport,.ag-pinned-right-cols-viewport{position:relative;overflow:hidden;flex:none;align-self:stretch;height:100%}.ag-pinned-left-cols-viewport .ag-row>.ag-cell:last-child,.ag-pinned-left-header .ag-header-cell:last-child,.ag-floating-pinned-left .ag-row>.ag-cell:last-child,.ag-floating-pinned-bottom-left .ag-row>.ag-cell:last-child,.ag-sticky-group-rows-left .ag-row>.ag-cell:last-child{border-inline-end:1px solid var(--ag-border-color)}.ag-pinned-right-cols-viewport .ag-row>.ag-cell:first-child,.ag-pinned-right-header .ag-header-cell:first-child,.ag-floating-pinned-right .ag-row>.ag-cell:first-child,.ag-floating-pinned-bottom-right .ag-row>.ag-cell:first-child,.ag-sticky-group-rows-right .ag-row>.ag-cell:first-child{border-inline-start:1px solid var(--ag-border-color)}.ag-floating-top,.ag-floating-bottom{position:relative;overflow:hidden;flex:none}.ag-floating-top{border-bottom:1px solid var(--ag-border-color)}.ag-floating-bottom{border-top:1px solid var(--ag-border-color)}.ag-floating-pinned-cols{position:absolute;overflow:hidden;height:0;z-index:4}.ag-floating-pinned-left{top:0;left:0}.ag-floating-pinned-right{top:0;right:0}.ag-floating-pinned-bottom-left{bottom:0;left:0;border-top:1px solid var(--ag-border-color)}.ag-floating-pinned-bottom-right{bottom:0;right:0;border-top:1px solid var(--ag-border-color)}.ag-sticky-group-rows{position:absolute;top:0;left:0;right:0;height:0;z-index:5;pointer-events:none;background-color:var(--ag-header-background-color)}.ag-sticky-group-rows-left,.ag-sticky-group-rows-center,.ag-sticky-group-rows-right{position:absolute;top:0;height:0;overflow:hidden}.ag-sticky-group-rows-left{left:0}.ag-sticky-group-rows-center{left:0;right:0}.ag-sticky-group-rows-right{right:0}.ag-sticky-group-rows .ag-row{pointer-events:auto}.ag-row{position:absolute;left:0;width:100%;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--ag-border-color);background-color:var(--ag-background-color)}.ag-row.ag-row-even{background-color:var(--ag-odd-row-background-color)}.ag-row:hover,.ag-row.ag-row-hover{background-color:var(--ag-row-hover-color)}.ag-row.ag-row-selected{background-color:var(--ag-selected-row-background-color)}.ag-row.ag-row-group{background-color:var(--ag-header-background-color);font-weight:600;border-bottom:1px solid var(--ag-border-color)}.ag-row.ag-row-group:hover,.ag-row.ag-row-group.ag-row-hover{background-color:var(--ag-row-hover-color)}.ag-row.ag-row-footer{background-color:var(--ag-header-background-color);font-weight:600;border-top:1px solid var(--ag-border-color)}.ag-row-full-width{width:100%!important}.ag-cell{position:absolute;top:0;display:flex;align-items:center;height:100%;padding:0 var(--ag-cell-horizontal-padding);overflow:hidden;white-space:nowrap;border-right:1px solid var(--ag-border-color);background-color:inherit}.ag-cell:last-child{border-right:none}.ag-cell-value{flex:1 1 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ag-right-aligned-cell{justify-content:flex-end}.ag-right-aligned-cell .ag-cell-value{text-align:right}.ag-cell.ag-cell-focus{border:1px solid var(--ag-alpine-active-color)}.ag-cell.ag-cell-focus:after{content:""}.ag-cell.ag-cell-editing{padding:0;border:1px solid var(--ag-input-focus-border-color);box-shadow:0 0 0 1px var(--ag-input-focus-border-color);background-color:var(--ag-background-color)}.ag-cell.ag-cell-editing .ag-cell-value,.ag-cell.ag-cell-editing .ag-cell-note-marker,.ag-cell.ag-cell-editing .ag-row-drag-handle{display:none}.ag-cell.ag-cell-editing .ag-cell-editor{width:100%;height:100%}.ag-cell.ag-cell-invalid{border-color:var(--ag-invalid-color);box-shadow:0 0 0 1px var(--ag-invalid-color)}.ag-cell-data-change{animation:ag-cell-data-change 1s ease-out}@keyframes ag-cell-data-change{0%{background-color:var(--ag-cell-data-changed-color);color:#fff}to{background-color:transparent}}.ag-cell-range-selected{background-color:var(--ag-range-selection-background-color)}.ag-cell-range-anchor{box-shadow:inset 0 0 0 1px var(--ag-range-selection-border-color)}.ag-find-match{background-color:#ffeb3b73}.ag-find-active-match{background-color:#ff980099}.ag-group-cell-renderer{display:flex;align-items:center;width:100%;gap:6px}.ag-group-value-expanded-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:none;cursor:pointer;color:var(--ag-secondary-foreground-color);border-radius:4px}.ag-group-value-expanded-icon:hover{background-color:var(--ag-chip-background-color)}.ag-group-child-count{color:var(--ag-secondary-foreground-color);font-weight:400}.ag-cell-checkbox{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.ag-range-overlay{position:absolute;border:1px solid var(--ag-range-selection-border-color);background-color:var(--ag-range-selection-background-color);pointer-events:none;z-index:3}.ag-range-handle{position:absolute;width:8px;height:8px;background-color:var(--ag-range-selection-border-color);border:1px solid #fff;cursor:crosshair;z-index:4}.ag-row-detail{position:absolute;background-color:var(--ag-background-color);border-bottom:1px solid var(--ag-border-color);overflow:auto;z-index:1}.ag-status-bar{flex:none;display:flex;align-items:stretch;min-height:26px;border-top:1px solid var(--ag-border-color);background-color:var(--ag-header-background-color);font-size:12px;color:var(--ag-secondary-foreground-color);padding:0 12px;gap:24px}.ag-status-panel{display:flex;align-items:center;padding:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none}.ag-status-panel-center,.ag-status-panel-right{flex:0 1 auto;min-width:0}.ag-status-panel-center{flex:1 1 auto;justify-content:center}.ag-status-panel-right{margin-left:auto}.ag-pagination-page-label{color:var(--ag-secondary-foreground-color)}.ag-pagination-panel{flex:none;display:flex;align-items:center;justify-content:space-between;min-height:40px;padding:0 12px;border-top:1px solid var(--ag-border-color);background-color:var(--ag-header-background-color);font-size:12px;color:var(--ag-secondary-foreground-color);gap:12px}.ag-pagination-buttons{display:flex;align-items:center;gap:4px}.ag-pagination-button{border:1px solid var(--ag-border-color);background:var(--ag-background-color);color:var(--ag-foreground-color);border-radius:4px;min-width:26px;height:24px;cursor:pointer;font-size:12px;line-height:1;padding:0 6px}.ag-pagination-button:hover{background-color:var(--ag-row-hover-color)}.ag-pagination-page-input{width:48px;height:24px;border:1px solid var(--ag-border-color);border-radius:4px;text-align:center;font-size:12px;color:var(--ag-foreground-color);background:var(--ag-background-color)}.ag-pagination-info{white-space:nowrap}.ag-pagination-from-to{color:var(--ag-foreground-color)}.ag-pagination-page-size{display:flex;align-items:center;gap:6px}.ag-pagination-page-size-select{height:24px;border:1px solid var(--ag-border-color);border-radius:4px;font-size:12px;background:var(--ag-background-color);color:var(--ag-foreground-color)}.ag-side-bar{display:flex;flex-direction:column;width:220px;flex:none;border-left:1px solid var(--ag-border-color);background-color:var(--ag-background-color);overflow:hidden}.ag-side-bar-left{border-left:none;border-right:1px solid var(--ag-border-color);order:-1}.ag-side-buttons{display:flex;flex-direction:column;border-bottom:1px solid var(--ag-border-color);background-color:var(--ag-header-background-color);flex:none}.ag-side-button{border:none;background:none;text-align:left;padding:10px 12px;font-size:12px;font-weight:600;color:var(--ag-header-foreground-color);cursor:pointer;border-left:3px solid transparent;font-family:var(--ag-font-family)}.ag-side-button:hover{background-color:var(--ag-row-hover-color)}.ag-side-button.ag-selected{color:var(--ag-alpine-active-color);border-left-color:var(--ag-alpine-active-color);background-color:var(--ag-selected-row-background-color)}.ag-side-bar-panel{flex:1 1 auto;overflow:auto;padding:8px;font-size:12px}.ag-side-bar-empty,.ag-column-group-hint{color:var(--ag-secondary-foreground-color);padding:8px 4px;font-style:italic}.ag-column-panel,.ag-filters-panel{display:flex;flex-direction:column;gap:8px}.ag-column-panel-search{width:100%;border:1px solid var(--ag-border-color);border-radius:4px;padding:5px 8px;font-size:12px;color:var(--ag-foreground-color);background:var(--ag-background-color);outline:none}.ag-column-panel-search:focus{border-color:var(--ag-input-focus-border-color)}.ag-column-panel-columns{display:flex;flex-direction:column}.ag-column-select-column{display:flex;align-items:center;gap:8px;padding:4px;border-radius:4px;cursor:grab}.ag-column-select-column:hover{background-color:var(--ag-row-hover-color)}.ag-column-select-label{flex:1 1 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--ag-foreground-color)}.ag-column-select-actions{display:flex;gap:2px}.ag-column-select-action{border:none;background:none;cursor:pointer;color:var(--ag-secondary-foreground-color);padding:0 2px;font-size:12px;line-height:1}.ag-column-select-action:hover{color:var(--ag-alpine-active-color)}.ag-column-panel-section-title,.ag-side-bar-section-title{font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--ag-secondary-foreground-color);margin:8px 0 4px}.ag-column-group-list{display:flex;flex-direction:column;gap:4px;min-height:32px;border:1px dashed var(--ag-border-color-strong);border-radius:4px;padding:4px}.ag-column-group-item{display:flex;align-items:center;gap:6px;background-color:var(--ag-chip-background-color);border-radius:4px;padding:3px 6px;cursor:grab}.ag-column-group-item span{flex:1 1 auto}.ag-column-group-remove{border:none;background:none;cursor:pointer;color:var(--ag-secondary-foreground-color);font-size:14px;line-height:1;padding:0 2px}.ag-column-group-remove:hover{color:var(--ag-invalid-color)}.ag-filters-tool-panel-item{display:flex;flex-direction:column;gap:4px;padding:6px 4px;border-bottom:1px solid var(--ag-border-color)}.ag-filters-tool-panel-item-header{display:flex;align-items:center;justify-content:space-between;font-weight:600;color:var(--ag-foreground-color)}.ag-filters-tool-panel-item-badge{color:var(--ag-alpine-active-color);display:inline-flex}.ag-popup{position:absolute;z-index:100;background-color:var(--ag-background-color);border:1px solid var(--ag-border-color);border-radius:6px;box-shadow:var(--ag-widget-container-shadow);font-size:12px;color:var(--ag-foreground-color);padding:4px;max-height:70vh;overflow:auto}.ag-popup-title{font-weight:700;padding:6px 8px;font-size:12px;border-bottom:1px solid var(--ag-border-color);margin-bottom:4px;color:var(--ag-header-foreground-color)}.ag-menu-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer;position:relative;white-space:nowrap}.ag-menu-item:hover{background-color:var(--ag-row-hover-color)}.ag-menu-item-disabled,.ag-menu-item-disabled:hover{color:var(--ag-disabled-foreground-color);cursor:default;background:none}.ag-menu-item-active{color:var(--ag-alpine-active-color)}.ag-menu-item-icon,.ag-menu-item-check{width:16px;display:inline-flex;align-items:center;justify-content:center;flex:none}.ag-menu-item-label{flex:1 1 auto}.ag-menu-item-shortcut{color:var(--ag-secondary-foreground-color);font-size:11px}.ag-menu-item-arrow{margin-left:4px}.ag-menu-separator{height:1px;background-color:var(--ag-border-color);margin:4px 0}.ag-menu-section{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--ag-secondary-foreground-color);padding:6px 8px 2px;font-weight:700}.ag-menu-popup-sub{position:absolute;left:100%;top:0;background-color:var(--ag-background-color);border:1px solid var(--ag-border-color);border-radius:6px;box-shadow:var(--ag-widget-container-shadow);padding:4px;min-width:160px;z-index:101}.ag-filter-popup{display:flex;flex-direction:column;gap:8px;padding:8px}.ag-filter-condition{width:100%;border:1px solid var(--ag-border-color);border-radius:4px;padding:4px 6px;font-size:12px;color:var(--ag-foreground-color);background:var(--ag-background-color)}.ag-filter-input{width:100%;border:1px solid var(--ag-border-color);border-radius:4px;padding:4px 6px;font-size:12px;color:var(--ag-foreground-color);background:var(--ag-background-color);outline:none}.ag-filter-input:focus{border-color:var(--ag-input-focus-border-color)}.ag-filter-inputs{display:flex;gap:6px}.ag-popup-buttons{display:flex;justify-content:flex-end;gap:6px;margin-top:4px}.ag-button{border:1px solid var(--ag-border-color);background:var(--ag-background-color);color:var(--ag-foreground-color);border-radius:4px;padding:4px 10px;font-size:12px;cursor:pointer;font-family:var(--ag-font-family)}.ag-button:hover{background-color:var(--ag-row-hover-color)}.ag-button-primary{background-color:var(--ag-alpine-active-color);border-color:var(--ag-alpine-active-color);color:#fff}.ag-button-primary:hover{filter:brightness(1.08);background-color:var(--ag-alpine-active-color)}.ag-button-small{padding:2px 8px;font-size:11px}.ag-set-filter{display:flex;flex-direction:column;gap:6px;padding:8px}.ag-set-filter-list{max-height:180px;overflow:auto;display:flex;flex-direction:column;gap:2px}.ag-set-filter-item{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:4px;cursor:pointer}.ag-set-filter-item:hover{background-color:var(--ag-row-hover-color)}.ag-set-filter-actions{display:flex;gap:6px}.ag-set-filter-empty{color:var(--ag-secondary-foreground-color);padding:8px;font-style:italic}.ag-find-bar{display:flex;align-items:center;gap:8px;padding:8px}.ag-find-input{flex:1 1 auto;border:1px solid var(--ag-border-color);border-radius:4px;padding:5px 8px;font-size:12px;color:var(--ag-foreground-color);background:var(--ag-background-color);outline:none}.ag-find-input:focus{border-color:var(--ag-input-focus-border-color)}.ag-find-count{color:var(--ag-secondary-foreground-color);white-space:nowrap;min-width:64px}.ag-find-case{display:flex;align-items:center;gap:4px;white-space:nowrap}.ag-chart-panel{display:flex;flex-direction:column;gap:6px}.ag-chart-panel-label{font-weight:600;color:var(--ag-secondary-foreground-color);font-size:11px;margin-top:4px}.ag-chart-panel-select{width:100%;border:1px solid var(--ag-border-color);border-radius:4px;padding:4px 6px;font-size:12px;background:var(--ag-background-color);color:var(--ag-foreground-color)}.ag-chart-panel-series{display:flex;flex-direction:column;gap:2px;max-height:140px;overflow:auto}.ag-chart-panel-series-item{display:flex;align-items:center;gap:6px;padding:2px 4px}.ag-chart-panel-create{margin-top:8px}.ag-chart-panel-list{margin-top:8px;display:flex;flex-direction:column;gap:4px}.ag-chart-panel-list-item{display:flex;align-items:center;justify-content:space-between;background-color:var(--ag-chip-background-color);border-radius:4px;padding:4px 8px}.ag-chart-window{width:640px!important;max-width:90vw}.ag-chart-window-header{display:flex;align-items:center;gap:8px;padding:4px 4px 8px;border-bottom:1px solid var(--ag-border-color)}.ag-chart-window-title{flex:1 1 auto;font-weight:700}.ag-chart-window-body{padding:12px;display:flex;flex-direction:column;align-items:center}.ag-chart-canvas{background-color:var(--ag-background-color);max-width:100%}.ag-chart-legend{display:flex;flex-wrap:wrap;gap:12px;padding-top:8px;font-size:11px;color:var(--ag-secondary-foreground-color)}.ag-chart-legend-item{display:flex;align-items:center;gap:4px}.ag-chart-legend-swatch{width:10px;height:10px;border-radius:2px;display:inline-block}.ag-overlay{display:flex;align-items:center;justify-content:center;background-color:color-mix(in srgb,var(--ag-background-color) 80%,transparent)}.ag-overlay-loading-wrapper,.ag-overlay-no-rows-wrapper{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--ag-secondary-foreground-color);font-size:13px}.ag-overlay-loading-spinner{width:28px;height:28px;border:3px solid var(--ag-border-color);border-top-color:var(--ag-alpine-active-color);border-radius:50%;animation:ag-spin .9s linear infinite}@keyframes ag-spin{to{transform:rotate(360deg)}}.ag-cell-editor{width:100%;height:100%}.ag-cell-editor-input{width:100%;height:100%;border:none;outline:none;padding:0 var(--ag-cell-horizontal-padding);font-size:var(--ag-font-size);font-family:var(--ag-font-family);color:var(--ag-foreground-color);background:var(--ag-background-color)}.ag-cell-editor-number{display:flex;align-items:center;width:100%;height:100%;position:relative}.ag-cell-editor-number .ag-cell-editor-input{text-align:inherit}.ag-cell-editor-stepper{width:18px;display:flex;align-items:center;justify-content:center;font-size:8px;color:var(--ag-secondary-foreground-color);cursor:pointer;-webkit-user-select:none;user-select:none}.ag-cell-editor-stepper:hover{color:var(--ag-alpine-active-color)}.ag-cell-editor-select{width:100%;height:100%;border:none;outline:none;padding:0 var(--ag-cell-horizontal-padding);font-size:var(--ag-font-size);font-family:var(--ag-font-family);color:var(--ag-foreground-color);background:var(--ag-background-color)}.ag-cell-editor-textarea{width:100%;height:100%;border:none;outline:none;padding:4px var(--ag-cell-horizontal-padding);font-size:var(--ag-font-size);font-family:var(--ag-font-family);resize:none;color:var(--ag-foreground-color);background:var(--ag-background-color)}.ag-sparkline-cell{display:flex;align-items:center;width:100%;height:100%}.ag-sparkline{color:var(--ag-alpine-active-color)}.ag-row{transition:top .25s ease}.ag-native-checkbox{accent-color:var(--ag-checkbox-checked-color);width:14px;height:14px;cursor:pointer}.ag-group-header-rows{position:relative}.ag-group-header-row{border-bottom:1px solid var(--ag-border-color)}.ag-header-group-cell{position:absolute;top:0;display:flex;align-items:center;justify-content:center;font-size:var(--ag-header-font-size);font-weight:600;color:var(--ag-header-foreground-color);border-right:1px solid var(--ag-border-color);cursor:pointer;overflow:hidden;-webkit-user-select:none;user-select:none;background-color:var(--ag-header-background-color)}.ag-header-group-cell-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ag-header-group-expand{margin-left:6px;color:var(--ag-secondary-foreground-color)}.ag-row-group-panel{display:flex;align-items:center;gap:8px;padding:4px 8px;border-bottom:1px solid var(--ag-border-color);background-color:var(--ag-header-background-color);min-height:28px;font-size:11px;color:var(--ag-secondary-foreground-color)}.ag-row-group-panel-label{text-transform:uppercase;letter-spacing:.6px;font-weight:700;white-space:nowrap}.ag-row-group-panel-chips{display:flex;gap:6px;flex-wrap:wrap;flex:1 1 auto;min-height:22px;border:1px dashed transparent;border-radius:4px;padding:2px}.ag-row-group-panel-chips.ag-drag-over{border-color:var(--ag-alpine-active-color);background-color:var(--ag-selected-row-background-color)}.ag-row-group-chip{display:flex;align-items:center;gap:6px;background-color:var(--ag-chip-background-color);border-radius:4px;padding:2px 6px;cursor:grab;font-weight:600;color:var(--ag-foreground-color)}.ag-row-group-chip-remove{border:none;background:none;cursor:pointer;color:var(--ag-secondary-foreground-color);font-size:12px;line-height:1;padding:0}.ag-row-group-chip-remove:hover{color:var(--ag-invalid-color)}.ag-row-number-cell{color:var(--ag-secondary-foreground-color);font-variant-numeric:tabular-nums}.ag-cell-row-drag{cursor:grab}.ag-animate-show-change-cell-renderer{display:inline-flex;align-items:center;gap:6px;width:100%}.ag-value-change-arrow{display:inline-flex;align-items:center;flex:none}.ag-value-change-old{opacity:.55;text-decoration:line-through;flex:none}.ag-value-change-new{border-radius:12px;padding:1px 8px;transition:background-color .6s ease}.ag-value-change-value-highlight .ag-value-change-new{background-color:#4caf5040;color:#1b5e20}.ag-value-change-value-highlight.ag-value-change-delta-down .ag-value-change-new{background-color:#f4433640;color:#b71c1c}.ag-value-change-delta-up{color:#1b5e20}.ag-value-change-delta-down{color:#b71c1c}.ag-rich-select{width:100%;height:100%}.ag-rich-select-input{width:100%;height:100%;border:none;outline:none;padding:0 var(--ag-cell-horizontal-padding);font-size:var(--ag-font-size);font-family:var(--ag-font-family);color:var(--ag-foreground-color);background:var(--ag-background-color)}.ag-rich-select-popup{background-color:var(--ag-background-color);border:1px solid var(--ag-border-color);border-radius:6px;box-shadow:var(--ag-widget-container-shadow);max-height:260px;display:flex;flex-direction:column;overflow:hidden}.ag-rich-select-search{border:none;border-bottom:1px solid var(--ag-border-color);padding:6px 8px;font-size:12px;outline:none;color:var(--ag-foreground-color);background:var(--ag-background-color)}.ag-rich-select-list{overflow:auto;padding:4px}.ag-rich-select-item{padding:5px 8px;border-radius:4px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ag-rich-select-item:hover,.ag-rich-select-item.ag-active{background-color:var(--ag-selected-row-background-color)}.ag-rich-select-item.ag-selected{color:var(--ag-alpine-active-color);font-weight:600}.ag-rich-select-highlight{background-color:#ffc10773;font-weight:700}.ag-rich-select-empty{padding:8px;color:var(--ag-secondary-foreground-color);font-style:italic}.ag-example-wrapper{display:flex;flex-direction:column;height:100vh;overflow:hidden}.ag-example-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;flex-wrap:wrap}.ag-example-tabs{display:flex;gap:4px;background:#f9fafb;border:1px solid #eff0f1;border-radius:8px;padding:4px}.ag-example-tab{border:none;background:transparent;border-radius:6px;padding:6px 14px;font-size:13px;cursor:pointer;color:#39485d;font-family:var(--ag-font-family)}.ag-example-tab.ag-active{background:#fff;color:#000;box-shadow:0 1px 3px #0000001a}.ag-example-input-wrapper{position:relative;display:flex;align-items:center}.ag-example-input-wrapper svg{position:absolute;left:8px;color:#98a2b3}.ag-example-input{border:1px solid #eff0f1;border-radius:8px;padding:8px 12px 8px 30px;font-size:13px;width:220px;outline:none;font-family:var(--ag-font-family);color:#1f383c;background:#fff}.ag-example-input:focus{border-color:var(--ag-input-focus-border-color)}.ag-multi-filter-operator{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ag-secondary-foreground-color)}.ag-multi-filter-operator .ag-filter-condition{flex:1 1 auto}.ag-multi-filter-list,.ag-advanced-filter-list{display:flex;flex-direction:column;gap:6px}.ag-multi-filter-row,.ag-advanced-filter-row{display:flex;align-items:center;gap:4px}.ag-multi-filter-row .ag-filter-condition,.ag-advanced-filter-row .ag-filter-condition{width:auto;flex:0 0 auto}.ag-multi-filter-row .ag-filter-input,.ag-advanced-filter-row .ag-filter-input{flex:1 1 auto;min-width:60px}.ag-advanced-filter-popup .ag-multi-filter-operator{margin-top:8px}.ag-formula-editor{display:flex;flex-direction:column;gap:8px;padding:8px}.ag-formula-input{width:100%;border:1px solid var(--ag-border-color);border-radius:4px;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;resize:vertical;color:var(--ag-foreground-color);background:var(--ag-background-color);outline:none}.ag-formula-preview{font-size:12px;color:var(--ag-secondary-foreground-color);min-height:16px}.ag-formula-preview.ag-formula-error{color:var(--ag-invalid-color)}.ag-formula-functions-title{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--ag-secondary-foreground-color);font-weight:700;margin-bottom:4px}.ag-formula-functions-list{display:flex;flex-wrap:wrap;gap:4px;max-height:120px;overflow:auto}.ag-cell-note-marker{position:absolute;top:2px;right:2px;width:0;height:0;border-left:6px solid transparent;border-top:6px solid var(--ag-alpine-active-color);cursor:pointer}.ag-cell-note-marker:hover{border-top-color:#ff9800}.ag-note-editor{display:flex;flex-direction:column;gap:8px;padding:8px}.ag-row-drag-handle{display:inline-flex;align-items:center;justify-content:center;width:18px;height:100%;flex:none;cursor:grab;color:var(--ag-secondary-foreground-color);opacity:.6}.ag-row-drag-handle:hover{opacity:1}.ag-row-draggable{cursor:grab}body.ag-row-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.ag-row-drag-ghost{position:fixed;z-index:2000;background:var(--ag-background-color);border:1px solid var(--ag-alpine-active-color);border-radius:4px;box-shadow:var(--ag-widget-container-shadow);padding:4px 10px;font-size:12px;pointer-events:none;opacity:.9}.ag-row-drop-indicator{position:absolute;left:0;right:0;height:2px;background:var(--ag-alpine-active-color);pointer-events:none;z-index:5}.ag-direction-rtl{direction:rtl}.ag-direction-rtl .ag-header-cell,.ag-direction-rtl .ag-cell{border-right:none;border-left:1px solid var(--ag-border-color)}.ag-chart-window-body{position:relative}.ag-chart-tooltip{position:absolute;z-index:10;background:var(--ag-background-color);border:1px solid var(--ag-border-color);border-radius:6px;box-shadow:var(--ag-widget-container-shadow);padding:6px 8px;font-size:11px;color:var(--ag-foreground-color);pointer-events:none;white-space:nowrap}.ag-chart-tooltip-title{font-weight:700;margin-bottom:2px}.ag-cell-col-span{overflow:visible}@media print{.ag-grid-root{height:auto!important}.ag-body-viewport{overflow:visible!important;height:auto!important}.ag-body-container,.ag-pinned-left-cols-viewport,.ag-pinned-right-cols-viewport{position:static!important;height:auto!important;overflow:visible!important}.ag-row{position:static!important;display:flex!important;page-break-inside:avoid}.ag-header{position:static!important}.ag-side-bar,.ag-pagination-panel,.ag-popup{display:none!important}}.ag-pinned-cols-inner{position:absolute;top:0;left:0;right:0;will-change:transform}.rowvia-detail-dialog{font:14px/1.5 -apple-system,BlinkMacSystemFont,PingFang SC,sans-serif;color:#1f2329;background:#fff;border:1px solid #dee0e3;border-radius:8px;padding:24px;min-width:320px;max-width:calc(100vw - 48px);box-sizing:border-box}.rowvia-detail-dialog::backdrop{background:#1f232930}.rowvia-detail-dialog h2{font-size:18px;margin:0 0 20px}.rowvia-detail-dialog dl{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0 0 24px}.rowvia-detail-dialog dt{color:#646a73}.rowvia-detail-dialog dd{margin:0;overflow-wrap:anywhere}.rowvia-detail-dialog button{font:inherit;border:1px solid #dee0e3;background:#fff;border-radius:4px;padding:6px 16px;cursor:pointer}.rowvia-detail-dialog button:hover{background:#f5f6f7}.rowvia-detail-dialog button:focus-visible{outline:2px solid #4254e8;outline-offset:2px}.rowvia-gantt{--ag-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Roboto, Helvetica, Arial, sans-serif;--gt-accent: #3370ff;--gt-text: #1f2329;--gt-text-secondary: #646a73;--gt-text-tertiary: #8f959e;--gt-border: #dee0e3;--gt-border-light: #eff0f1;--gt-fill: #f5f6f7;--gt-group-row: #f7f8fa;--gt-status-not-started: #b8bdc4;--gt-status-in-progress: #3370ff;--gt-status-done: #2ea121;--gt-status-delayed: #f54a45;--gt-summary: #2f3b52;--gt-weekend: rgba(31, 35, 41, .04);--gt-row-height: 36px;--gt-header-height: 44px}.rowvia-gantt,.rowvia-gantt *{box-sizing:border-box}.rowvia-gantt .gantt-app{display:flex;flex-direction:column;height:100vh;background:#fff}.rowvia-gantt .gantt-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;height:48px;padding:0 16px;background:#fff;border-bottom:1px solid var(--gt-border);flex-shrink:0}.rowvia-gantt .gantt-title{display:flex;align-items:baseline;gap:10px;min-width:0}.rowvia-gantt .gantt-title-name{font-size:15px;font-weight:600;white-space:nowrap}.rowvia-gantt .gantt-title-sub{font-size:12px;color:var(--gt-text-tertiary);white-space:nowrap}.rowvia-gantt .gantt-tools{display:flex;align-items:center;gap:8px}.rowvia-gantt .gt-tool-label{font-size:12px;color:var(--gt-text-secondary)}.rowvia-gantt .gt-sep{width:1px;height:18px;background:var(--gt-border);margin:0 2px}.rowvia-gantt .gt-seg{display:inline-flex;border:1px solid var(--gt-border);border-radius:6px;overflow:hidden;background:#fff}.rowvia-gantt .gt-seg button{border:none;background:transparent;padding:4px 12px;font-size:12px;color:var(--gt-text-secondary);cursor:pointer;border-right:1px solid var(--gt-border-light);line-height:20px}.rowvia-gantt .gt-seg button:last-child{border-right:none}.rowvia-gantt .gt-seg button:hover{background:#3370ff0f;color:var(--gt-accent)}.rowvia-gantt .gt-seg button.gt-seg-active{background:var(--gt-accent);color:#fff}.rowvia-gantt .gt-btn{border:1px solid var(--gt-border);background:#fff;border-radius:6px;padding:4px 12px;font-size:12px;line-height:20px;color:var(--gt-text);cursor:pointer;white-space:nowrap}.rowvia-gantt .gt-btn:hover{border-color:var(--gt-accent);color:var(--gt-accent)}.rowvia-gantt .gt-btn-active{border-color:var(--gt-accent);color:var(--gt-accent);background:#3370ff0f}.rowvia-gantt .gt-btn-active:after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gt-accent);margin-left:6px;vertical-align:1px}.rowvia-gantt .gantt-body{flex:1;display:flex;min-height:0;background:#fff}.rowvia-gantt .gantt-left{width:660px;min-width:660px;display:flex;flex-direction:column;border-right:1px solid var(--gt-border);overflow:hidden}.rowvia-gantt .gantt-left .grid{flex:1;min-height:0}.rowvia-gantt .gantt-left .ag-theme-quartz{--ag-header-height: 44px;--ag-row-height: 36px;--ag-font-size: 12px;--ag-header-font-size: 12px;--ag-header-background-color: #fff;--ag-header-foreground-color: var(--gt-text);--ag-foreground-color: var(--gt-text);--ag-secondary-foreground-color: var(--gt-text-tertiary);--ag-odd-row-background-color: transparent;--ag-border-color: var(--gt-border-light);--ag-row-hover-color: rgba(51, 112, 255, .05);--ag-selected-row-background-color: rgba(51, 112, 255, .09);--ag-cell-horizontal-padding: 12px}.rowvia-gantt .gantt-left .ag-header-cell{font-weight:500;border-bottom:1px solid var(--gt-border)}.rowvia-gantt .gantt-left .ag-cell{border-bottom:1px solid rgba(31,35,41,.05)}.rowvia-gantt .gantt-left .ag-row.ag-row-group{background:var(--gt-group-row)}.rowvia-gantt .gantt-left .ag-row.ag-row-group.ag-row-hover{background:#3370ff0f}.rowvia-gantt .gantt-left .ag-body-viewport::-webkit-scrollbar{width:6px}.rowvia-gantt .gantt-left .ag-body-viewport::-webkit-scrollbar-thumb{background:#1f23292e;border-radius:3px}.rowvia-gantt .gantt-left .ag-body-viewport::-webkit-scrollbar-track{background:transparent}.rowvia-gantt .gantt-right{flex:1;min-width:0;display:flex}.rowvia-gantt .gantt-status{display:flex;align-items:center;justify-content:flex-end;gap:20px;height:36px;padding:0 16px;background:#fff;border-top:1px solid var(--gt-border);font-size:12px;color:var(--gt-text-secondary);flex-shrink:0}.rowvia-gantt .gt-status-item{display:flex;align-items:baseline;gap:5px;white-space:nowrap}.rowvia-gantt .gt-status-value{font-weight:600;color:var(--gt-text);font-variant-numeric:tabular-nums}.rowvia-gantt .gt-task-name{display:inline-flex;align-items:center;gap:6px}.rowvia-gantt .gt-name-icon{width:12px;height:12px;min-width:12px;border:1.5px solid var(--gt-text-tertiary);margin-right:2px}.rowvia-gantt .gt-name-icon-task{border-radius:50%}.rowvia-gantt .gt-name-icon-milestone{border-radius:3px;border-color:#f80}.rowvia-gantt .gt-task-badge{font-size:10px;padding:0 5px;border-radius:4px;line-height:16px;white-space:nowrap}.rowvia-gantt .gt-task-badge-phase{background:#3370ff1a;color:var(--gt-accent)}.rowvia-gantt .gt-task-badge-milestone{background:#ff88001f;color:#d97400}.rowvia-gantt .gt-cell-owner{display:flex;align-items:center;gap:6px}.rowvia-gantt .gt-cell-owner-empty{color:#c2c7cd;font-size:12px}.rowvia-gantt .gt-avatar{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;min-width:20px;border-radius:50%;color:#fff;font-size:11px;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none}.rowvia-gantt .gt-cell-status{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.rowvia-gantt .gt-status-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.rowvia-gantt .gt-cell-status.gt-status-not-started{color:var(--gt-text-tertiary)}.rowvia-gantt .gt-cell-status.gt-status-in-progress{color:var(--gt-status-in-progress)}.rowvia-gantt .gt-cell-status.gt-status-done{color:var(--gt-status-done)}.rowvia-gantt .gt-cell-status.gt-status-delayed{color:var(--gt-status-delayed)}.rowvia-gantt .gt-cell-status-summary{color:var(--gt-text-tertiary)}.rowvia-gantt .gt-cell-date{font-variant-numeric:tabular-nums}.rowvia-gantt .gt-cell-date-derived{color:var(--gt-text-tertiary)}.rowvia-gantt .gt-cell-date-empty{color:#c2c7cd}.rowvia-gantt .gt-cell-progress{display:flex;align-items:center;gap:6px}.rowvia-gantt .gt-progress-track{flex:1;height:4px;border-radius:2px;background:var(--gt-fill);overflow:hidden}.rowvia-gantt .gt-progress-fill{display:block;height:100%;border-radius:2px;background:var(--gt-status-in-progress)}.rowvia-gantt .gt-progress-fill.gt-status-done{background:var(--gt-status-done)}.rowvia-gantt .gt-progress-fill.gt-status-delayed{background:var(--gt-status-delayed)}.rowvia-gantt .gt-progress-value{font-size:11px;color:var(--gt-text-tertiary);font-variant-numeric:tabular-nums;min-width:30px;text-align:right}.rowvia-gantt .gt-cell-progress-summary{color:var(--gt-text-tertiary);font-size:12px}.rowvia-gantt .gt-root{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;-webkit-user-select:none;user-select:none}.rowvia-gantt .gt-header{position:relative;height:var(--gt-header-height);background:#fff;border-bottom:1px solid var(--gt-border);overflow:hidden;flex-shrink:0}.rowvia-gantt .gt-ruler{display:block}.rowvia-gantt .gt-ruler-tools{position:absolute;right:12px;top:0;height:100%;display:flex;align-items:center;gap:2px;z-index:6;background:linear-gradient(to right,#fff0 0,#fff 28px);padding-left:28px}.rowvia-gantt .gt-ruler-btn{border:none;background:transparent;font-size:12px;color:var(--gt-text-secondary);padding:3px 7px;border-radius:4px;cursor:pointer;line-height:18px;font-family:inherit}.rowvia-gantt .gt-ruler-btn:hover{background:var(--gt-fill);color:var(--gt-accent)}.rowvia-gantt .gt-ruler-step{display:inline-flex;align-items:center;gap:3px;font-weight:500}.rowvia-gantt .gt-ruler-caret{font-size:9px}.rowvia-gantt .gt-ruler-icon{font-size:13px;padding:3px 6px}.rowvia-gantt .gt-ruler-zoom-value{font-size:11px;color:var(--gt-text-tertiary);min-width:38px;text-align:center;font-variant-numeric:tabular-nums}.rowvia-gantt .gt-ruler-today{font-weight:500}.rowvia-gantt .gt-step-menu{position:absolute;background:#fff;border:1px solid var(--gt-border);border-radius:6px;box-shadow:0 8px 24px #1f23291f;padding:4px;z-index:20;min-width:76px}.rowvia-gantt .gt-step-item{padding:6px 10px;font-size:12px;color:var(--gt-text);border-radius:4px;cursor:pointer}.rowvia-gantt .gt-step-item:hover{background:var(--gt-fill)}.rowvia-gantt .gt-step-item-active{color:var(--gt-accent);font-weight:600}.rowvia-gantt .gt-scroll{flex:1;min-height:0;overflow:auto;position:relative}.rowvia-gantt .gt-spacer{pointer-events:none}.rowvia-gantt .gt-canvas{position:absolute;left:0;top:0;display:block}.rowvia-gantt .gt-tooltip{position:absolute;z-index:10;background:#1f2329eb;color:#fff;font-size:11px;padding:4px 8px;border-radius:4px;pointer-events:none;white-space:nowrap}.rowvia-gantt .gt-popup{position:absolute;z-index:11;background:#fff;border:1px solid var(--gt-border);border-radius:8px;box-shadow:0 8px 24px #1f23291f;padding:6px;min-width:136px}.rowvia-gantt .gt-popup-title{font-size:11px;color:var(--gt-text-tertiary);padding:4px 8px 6px}.rowvia-gantt .gt-popup-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;cursor:pointer}.rowvia-gantt .gt-popup-item:hover{background:#3370ff14}.rowvia-gantt .gt-popup-item-active{color:var(--gt-accent);font-weight:600}.rowvia-gantt .gt-popup-clear{border-top:1px solid var(--gt-border-light);margin-top:4px;border-radius:0 0 6px 6px;color:var(--gt-text-secondary);font-size:12px}.rowvia-gantt .gt-panel{position:fixed;z-index:30;display:none;width:420px;max-width:calc(100vw - 24px);background:#fff;border:1px solid var(--gt-border);border-radius:8px;box-shadow:0 10px 32px #1f232924;padding:14px 16px}.rowvia-gantt .gt-panel-title{font-size:14px;font-weight:600;margin-bottom:12px}.rowvia-gantt .gt-panel-empty{font-size:12px;color:var(--gt-text-tertiary);padding:8px 0 12px}.rowvia-gantt .gt-panel-hint{font-size:11px;color:var(--gt-text-tertiary);margin-top:10px}.rowvia-gantt .gt-panel-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--gt-border-light)}.rowvia-gantt .gt-panel-btn{border:1px solid var(--gt-border);background:#fff;border-radius:6px;padding:5px 16px;font-size:12px;color:var(--gt-text);cursor:pointer}.rowvia-gantt .gt-panel-btn:hover{border-color:var(--gt-accent);color:var(--gt-accent)}.rowvia-gantt .gt-panel-btn-primary{background:var(--gt-accent);border-color:var(--gt-accent);color:#fff}.rowvia-gantt .gt-panel-btn-primary:hover{background:#245bdb;color:#fff}.rowvia-gantt .gt-panel-select,.rowvia-gantt .gt-panel-input{height:28px;border:1px solid var(--gt-border);border-radius:6px;padding:0 8px;font-size:12px;font-family:inherit;color:var(--gt-text);background:#fff;min-width:0}.rowvia-gantt .gt-panel-select:focus,.rowvia-gantt .gt-panel-input:focus{outline:none;border-color:var(--gt-accent)}.rowvia-gantt .gt-panel-input-num{width:76px}.rowvia-gantt .gt-filter-row{display:flex;align-items:center;gap:6px;margin-bottom:8px}.rowvia-gantt .gt-filter-row .gt-panel-select:first-child{width:96px;flex:none}.rowvia-gantt .gt-filter-row .gt-panel-select-cond{width:76px;flex:none}.rowvia-gantt .gt-filter-row .gt-panel-input[type=date],.rowvia-gantt .gt-filter-row .gt-panel-input[type=text]{flex:1}.rowvia-gantt .gt-filter-remove{border:none;background:transparent;color:var(--gt-text-tertiary);font-size:14px;cursor:pointer;padding:2px 6px;border-radius:4px;flex:none}.rowvia-gantt .gt-filter-remove:hover{background:var(--gt-fill);color:var(--gt-status-delayed)}.rowvia-gantt .gt-filter-add{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.rowvia-gantt .gt-filter-add-btn{border:1px dashed var(--gt-border);background:#fff;border-radius:6px;padding:4px 10px;font-size:12px;color:var(--gt-text-secondary);cursor:pointer}.rowvia-gantt .gt-filter-add-btn:hover{border-color:var(--gt-accent);color:var(--gt-accent)}.rowvia-gantt .gt-sort-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:13px}.rowvia-gantt .gt-sort-item:hover{background:var(--gt-fill)}.rowvia-gantt .gt-sort-item-active{color:var(--gt-accent)}.rowvia-gantt .gt-sort-label{flex:1}.rowvia-gantt .gt-sort-badge{min-width:18px;height:18px;border-radius:9px;background:var(--gt-accent);color:#fff;font-size:11px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}.rowvia-gantt .gt-sort-dir{font-size:12px}.rowvia-gantt{width:100%;height:100%;min-height:260px;position:relative;font:12px -apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif;color:#1f2329;--gt-header-height:72px;--gt-accent:#4555e5;--gt-group-row:#fff}.rowvia-gantt .gantt-app{height:100%;position:relative}.rowvia-gantt .gantt-toolbar{height:40px;padding:0 16px;border-color:#eff0f1}.rowvia-gantt .gantt-title-name{font-size:14px}.rowvia-gantt .gantt-title-sub{font-size:11px;background:#f5f3fa;padding:2px 5px;color:#646a73}.rowvia-gantt .gt-view-toolbar{display:flex;align-items:center;gap:4px;height:40px;flex-shrink:0;padding:0 16px;border-bottom:1px solid #eff0f1}.rowvia-gantt .gt-toolbar-spacer{flex:1}.rowvia-gantt .gt-btn{border:0;padding:4px 8px;border-radius:4px}.rowvia-gantt .gt-btn:hover{background:#f5f6f7;color:#1f2329}.rowvia-gantt .gt-quick{height:44px;display:flex;align-items:center;padding:0 16px;flex-shrink:0}.rowvia-gantt .gt-quick input{font:inherit;border:0;outline:none;width:200px;padding:6px 8px;border-radius:4px;background:transparent}.rowvia-gantt .gt-quick input:focus{outline:1px solid #4555e5}.rowvia-gantt .gantt-body{margin:0 16px 16px;border:1px solid #dee0e3;border-radius:4px;overflow:hidden}.rowvia-gantt .gantt-left{width:250px;min-width:160px;flex-shrink:0;background:#fff}.rowvia-gantt .gantt-left .ag-theme-quartz{--ag-header-height:72px;--ag-cell-horizontal-padding:16px;--ag-font-size:12px}.rowvia-gantt .gantt-left .ag-root-wrapper{border:0;border-radius:0}.rowvia-gantt .gantt-left .ag-row.ag-row-group{background:#fff}.rowvia-gantt .gantt-left .ag-row.ag-row-hover{background:#f5f6f7}.rowvia-gantt .gantt-left .ag-cell{border-right:0}.rowvia-gantt .gantt-left .ag-header-cell{border:0}.rowvia-gantt .gt-title-header{height:100%;display:flex;align-items:center;gap:8px;color:#646a73;font-weight:400}.rowvia-gantt .gt-tree-toggle{border:0;background:none;color:#8f959e;cursor:pointer;padding:0;font-size:12px}.rowvia-gantt .gt-title-link{font:inherit;border:0;background:none;text-align:left;cursor:pointer;padding:0;color:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rowvia-gantt .gt-title-link:hover{color:#4555e5}.rowvia-gantt .gt-task-name{min-width:0;max-width:100%;gap:8px}.rowvia-gantt .gt-node-dot{width:12px;height:12px;border:1px solid #b9bdc2;border-radius:50%;background:#d1d4d8;flex-shrink:0}.rowvia-gantt .gt-node-done{background:#34b625;border-color:#289b1d}.rowvia-gantt .gt-node-in-progress{background:#ffcf22;border-color:#e1b31a}.rowvia-gantt .gt-node-delayed{background:#f54a45;border-color:#d83931}.rowvia-gantt .gantt-status{position:absolute;right:110px;bottom:26px;border:1px solid #eff0f1;border-radius:24px;box-shadow:0 2px 8px #1f232914;padding:0 16px;height:36px;font-size:12px;z-index:8}.rowvia-gantt .gt-ruler-tools{height:40px;right:12px}.rowvia-gantt .gt-ruler-today{border-left:1px solid #eff0f1;border-radius:0;margin-left:8px;padding-left:16px}.rowvia-gantt .gt-step-menu{min-width:120px;right:150px!important}.rowvia-gantt .gt-step-item{cursor:pointer}.rowvia-gantt .gt-settings{position:absolute;z-index:25;right:16px;top:76px;width:288px;padding:16px;background:#fff;border:1px solid #dee0e3;border-radius:6px;box-shadow:0 4px 16px #1f23291f}.rowvia-gantt .gt-settings[hidden]{display:none}.rowvia-gantt .gt-settings-title{margin-bottom:12px}.rowvia-gantt .gt-settings label{display:flex;align-items:center;gap:6px;margin:10px 0}.rowvia-gantt .gt-settings input{accent-color:#4555e5;margin:0}.rowvia-gantt .gt-settings .gt-indented{margin-left:22px}.rowvia-gantt .gt-theme-options{display:flex;gap:8px;margin-top:16px}.rowvia-gantt .gt-theme-options label{padding:20px 10px;border:1px solid #dee0e3;border-radius:4px;flex:1}.rowvia-gantt .gt-theme-options label:has(:checked){border-color:#4555e5;background:#f5f5ff}.rowvia-gantt button:focus-visible,.rowvia-gantt [tabindex]:focus-visible{outline:2px solid #4555e5;outline-offset:-2px}@media (max-width:600px){.rowvia-gantt .gantt-left{width:180px!important;min-width:140px}.rowvia-gantt .gantt-body{margin:0 8px 8px}.rowvia-gantt .gantt-status{right:20px;bottom:18px}.rowvia-gantt .gt-ruler-tools{right:0;padding-left:4px;gap:0}.rowvia-gantt .gt-ruler-btn{padding:3px 4px}}.rowvia-gantt{font-size:14px;--gt-header-height:80px}.rowvia-gantt .gantt-toolbar,.rowvia-gantt .gt-view-toolbar{height:44px}.rowvia-gantt .gt-quick{height:48px}.rowvia-gantt .gantt-left .ag-theme-quartz{--ag-header-height:80px;--ag-font-size:14px;--ag-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif}.rowvia-gantt .gantt-left .ag-cell{border-bottom:1px solid #dee0e3}.rowvia-gantt .gt-title-header,.rowvia-gantt .gt-ruler-btn{font-size:14px}.rowvia-gantt .gantt-left .ag-group-value{min-width:0;overflow:visible}.rowvia-gantt .gt-child-name{position:relative}.rowvia-gantt .gt-child-name:before{content:"";position:absolute;left:-24px;top:-14px;width:15px;height:26px;border-left:1px solid #dee0e3;border-bottom:1px solid #dee0e3;border-bottom-left-radius:7px}.rowvia-gantt .gt-root-leaf{padding-left:24px}.rowvia-gantt .gt-task-name{width:100%}.rowvia-gantt .gt-title-link{max-width:100%}.rowvia-gantt .gantt-status{font-size:14px}.rowvia-gantt .gantt-left .ag-row-group .gt-title-link{font-weight:500}.rowvia-gantt .gt-child-name{padding-left:12px}.rowvia-gantt .gt-child-name:before{top:-22px;height:34px;left:-12px}.rowvia-gantt .gt-title-header{padding-left:8px}.rowvia-gantt .gt-today-badge{position:absolute;width:50px;height:20px;line-height:20px;text-align:center;background:#4555e5;color:#fff;border-radius:12px;font-size:12px;pointer-events:none;z-index:7}.personnel-schedule{font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif;color:#1f2329;background:#fff;height:100%;min-height:400px;position:relative;display:flex;flex-direction:column;overflow:hidden;--line:#e4e5e7;--blue:#4254e8}.personnel-schedule *{box-sizing:border-box}.personnel-schedule [hidden]{display:none!important}.personnel-schedule button,.personnel-schedule input,.personnel-schedule select{font:inherit;color:inherit}.personnel-schedule button{border:0;background:transparent;cursor:pointer;padding:5px 8px;border-radius:4px;white-space:nowrap}.personnel-schedule button:hover{background:#f1f2f5}.personnel-schedule button:focus-visible,.personnel-schedule input:focus-visible,.personnel-schedule select:focus-visible{outline:2px solid #6874ec;outline-offset:1px}.personnel-schedule input:not([type=checkbox]):not([type=range]),.personnel-schedule select{border:1px solid var(--line);border-radius:4px;padding:6px 8px;background:#fff;min-width:0}.personnel-schedule input[type=checkbox]{accent-color:var(--blue);margin-right:7px}.personnel-schedule .ps-title{height:44px;flex-shrink:0;border-bottom:1px solid var(--line);display:flex;gap:8px;align-items:center;padding:0 16px}.personnel-schedule .ps-title strong{font-weight:500}.personnel-schedule .ps-app-icon{color:#fff;background:#18b6a4;border-radius:6px;width:24px;height:24px;text-align:center}.personnel-schedule .ps-title nav{position:absolute;left:44%;display:flex;gap:16px;font-size:13px}.personnel-schedule .ps-title nav button{height:44px;color:#646a73}.personnel-schedule .ps-title nav .active{color:#1f2329}.personnel-schedule .ps-toolbar{height:48px;display:flex;align-items:center;gap:8px;padding:0 16px;border-bottom:1px solid var(--line);flex-shrink:0;white-space:nowrap}.personnel-schedule .ps-toolbar button{font-size:13px}.personnel-schedule .ps-tint{background:#f0f1ff;color:var(--blue)}.personnel-schedule .ps-space{flex:1}.personnel-schedule .ps-round{border:1px solid var(--line);border-radius:50%;padding:0;width:24px;height:24px;color:#9da1a7}.personnel-schedule .ps-zoom{width:112px;height:3px;accent-color:#9098e4}.personnel-schedule .ps-save{border:1px solid var(--line);color:var(--blue)}.personnel-schedule .ps-scroll{flex:1;min-height:0;overflow:auto;position:relative;padding-bottom:54px}.personnel-schedule .ps-table{min-width:100%}.personnel-schedule .ps-time-header{height:34px;display:flex;position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid var(--line)}.personnel-schedule .ps-date-nav{width:200px;flex-shrink:0;position:sticky;left:0;z-index:6;display:flex;align-items:center;padding:0 16px;background:#fff;border-right:1px solid var(--line);font-size:12px;font-weight:500}.personnel-schedule .ps-date-nav button{padding:0 3px}.personnel-schedule .ps-date-nav .ps-date-label{margin-right:4px}.personnel-schedule .ps-weeks{display:flex;font-size:12px;font-weight:500;align-items:stretch}.personnel-schedule .ps-weeks span{flex-shrink:0;border-right:1px solid var(--line);text-align:center;padding:8px 0}.personnel-schedule .ps-person-row{display:flex;border-bottom:2px solid #dcdfe3;position:relative}.personnel-schedule .ps-person{width:200px;flex-shrink:0;position:sticky;left:0;z-index:3;background:#fff;border-right:1px solid var(--line);padding:12px 16px;color:#8b8f97;font-size:12px}.personnel-schedule .ps-person>div:not(:first-child){display:flex;justify-content:space-between;height:24px;align-items:center}.personnel-schedule .ps-person b{font-weight:500;color:#40444c}.personnel-schedule .ps-person-name{display:flex;align-items:center;gap:6px;color:#1f2329;font-size:14px;margin-bottom:8px}.personnel-schedule .ps-person-name strong{font-weight:500}.personnel-schedule .ps-avatar{width:24px;height:24px;border-radius:50%;color:#fff;text-align:center;font-size:8px;line-height:24px;box-shadow:inset 0 0 8px #ffffff50}.personnel-schedule .ps-person button{padding:0;color:#5665dc;font-size:12px}.personnel-schedule .ps-timeline{position:relative;overflow:hidden;background:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--day) - 1px),#e9eaec calc(var(--day) - 1px),#e9eaec var(--day))}.personnel-schedule .ps-weekend{position:absolute;top:0;bottom:0;background:#f4f4f5;z-index:0;border-right:1px solid #e9eaec}.personnel-schedule .ps-today{position:absolute;top:0;bottom:0;border-left:1px solid #9f93f2;z-index:2;pointer-events:none}.personnel-schedule .ps-today:before{content:"";position:absolute;top:0;left:-3px;width:5px;height:5px;background:#9f93f2;border-radius:50%}.personnel-schedule .ps-bar{position:absolute;height:32px;display:flex;align-items:center;gap:6px;text-align:left;border-radius:0;padding:0 10px;overflow:hidden;z-index:2;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;font-size:12px}.personnel-schedule .ps-color{background:color-mix(in srgb,var(--bar-color) 85%,transparent);color:#fff}.personnel-schedule .ps-bar.ps-color:hover{background:var(--bar-color);box-shadow:0 0 0 1px #7698d1}.personnel-schedule .ps-bar-name{overflow:hidden;text-overflow:ellipsis;max-width:300px;flex-shrink:0}.personnel-schedule .ps-status{background:#00000015;border-radius:3px;padding:0 4px;flex-shrink:0}.personnel-schedule .ps-node{flex-shrink:0}.personnel-schedule .ps-node:first-letter{color:#46aa59}.personnel-schedule .ps-effort{margin-left:auto;padding-right:8px}.personnel-schedule .ps-content{background:#fff;border:1px solid #d9dce2;border-left:4px solid var(--bar-color);color:#4f5560}.personnel-schedule .ps-resize{position:absolute;left:0;top:0;bottom:0;width:7px;cursor:ew-resize}.personnel-schedule .ps-resize[data-edge=end]{left:auto;right:0}.personnel-schedule .ps-no-schedule{position:absolute;left:24px;top:54px;color:#b6b9c0;font-size:12px}.personnel-schedule .ps-total{position:absolute;bottom:24px;right:104px;z-index:6;background:#fff;border:1px solid #e3e5eb;border-radius:24px;padding:10px 14px;box-shadow:0 3px 16px #202d4b12;color:#8d929b;font-size:12px}.personnel-schedule .ps-empty{padding:80px;width:calc(100vw - 30px);text-align:center;color:#8d929b}.personnel-schedule .ps-popover{position:absolute;z-index:20;background:#fff;border:1px solid #dddfe5;box-shadow:0 5px 20px #25324b18;border-radius:5px;width:420px;max-width:calc(100% - 24px);padding:16px;font-size:13px;max-height:calc(100% - 120px);overflow:auto}.personnel-schedule .ps-panel-title{color:#757b85;margin:0 0 14px;display:flex;justify-content:space-between;align-items:center;font-size:13px}.personnel-schedule .ps-popover label{display:flex;align-items:center;gap:6px;margin:8px 0}.personnel-schedule .ps-panel-title label{margin:0;font-size:12px}.personnel-schedule .ps-person-filter{display:flex;gap:10px;margin-bottom:12px}.personnel-schedule .ps-person-filter span{background:#f5f6f8;padding:7px;flex:1;white-space:nowrap;font-size:12px}.personnel-schedule .ps-person-search{width:100%}.personnel-schedule .ps-person-options{display:grid;grid-template-columns:1fr 1fr}.personnel-schedule .ps-sort-fields{display:flex;gap:6px;background:#f5f6f8}.personnel-schedule .ps-sort-fields select{flex:1}.personnel-schedule .ps-link{color:#5665dc}.personnel-schedule .ps-segment{display:flex;background:#f2f3f5;border:1px solid var(--line);border-radius:5px;margin-bottom:16px}.personnel-schedule .ps-segment button{flex:1}.personnel-schedule .selected{color:#4254e8;background:#eef0ff}.personnel-schedule .ps-segment .selected{color:#fff;background:#4254e8}.personnel-schedule .ps-panel-settings{width:320px}.personnel-schedule .ps-style-options{display:flex;gap:12px}.personnel-schedule .ps-style-options button{border:1px solid var(--line);width:50%;text-align:left;font-size:12px}.personnel-schedule .ps-style-options i{display:block;margin:10px 0 20px;height:28px;border-left:4px solid #8270ef;background:linear-gradient(#fff 25%,#e9eaee 25%,#e9eaee 75%,#fff 75%)}.personnel-schedule .ps-style-options button:last-child i{border:7px solid #8270ef;background:#fff;border-radius:5px}.personnel-schedule .ps-range-inputs{display:flex;gap:10px;align-items:center}.personnel-schedule .ps-range-inputs input{width:50%}.personnel-schedule .ps-calendars{display:flex;gap:16px;margin:12px 0}.personnel-schedule .ps-calendar{flex:1;min-width:0}.personnel-schedule .ps-calendar>div:first-child{display:flex;justify-content:space-between;align-items:center}.personnel-schedule .ps-calendar strong{font-size:13px;font-weight:500}.personnel-schedule .ps-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);margin-top:10px;gap:2px;text-align:center}.personnel-schedule .ps-calendar-grid>*{height:28px;font-size:12px;padding:5px 0}.personnel-schedule .ps-calendar-grid button{border-radius:50%}.personnel-schedule .ps-calendar-grid .in-range{background:#f0f1fb}.personnel-schedule .ps-calendar-grid .selected{background:#4254e8;color:#fff}.personnel-schedule .ps-presets{display:flex;gap:6px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}.personnel-schedule .ps-presets button{background:#f4f5f7;color:#5262d5;min-width:66px;font-size:12px}.personnel-schedule .ps-panel-unplanned{width:760px}.personnel-schedule table{width:100%;border-collapse:collapse;font-size:12px}.personnel-schedule th{text-align:left;font-weight:400;color:#9398a0;border-bottom:1px solid #d7dae0;padding:8px 0}.personnel-schedule td{padding:8px 0}.personnel-schedule td:first-child button{max-width:310px;overflow:hidden;text-overflow:ellipsis;font-weight:500}.personnel-schedule td input{width:65px!important;border:0!important}.personnel-schedule td:nth-child(2){color:#9499a1}.personnel-schedule .ps-detail{position:absolute;right:0;top:0;bottom:0;width:660px;max-width:90%;background:#fff;box-shadow:-6px 0 20px #25324b20;z-index:30;overflow:auto;border-left:1px solid var(--line)}.personnel-schedule .ps-detail header{height:52px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 20px}.personnel-schedule .ps-detail-body{padding:24px}.personnel-schedule .ps-detail h3{font-size:16px;margin:24px 0}.personnel-schedule .ps-detail label{display:grid;grid-template-columns:140px 1fr;gap:15px;align-items:center;margin:20px 0}.personnel-schedule .ps-chip{background:#f0edff;padding:3px 6px;border-radius:3px;font-size:12px}.personnel-schedule .ps-primary{background:#4254e8;color:#fff;padding:7px 18px}.personnel-schedule .ps-primary:hover{background:#3447d7}.personnel-schedule .ps-error{color:#d34848}.personnel-schedule .ps-view{display:block;width:100%;text-align:left}.personnel-schedule .ps-toast{position:absolute;top:24px;left:50%;transform:translate(-50%);border-radius:6px;padding:10px 22px;background:#252a36;color:#fff;z-index:50;font-size:13px}@media (max-width:700px){.personnel-schedule .ps-toolbar{overflow-x:auto;gap:4px;padding:0 8px}.personnel-schedule .ps-title nav{position:static;margin-left:auto}.personnel-schedule .ps-zoom{min-width:70px}.personnel-schedule .ps-total{right:16px}.personnel-schedule .ps-detail label{grid-template-columns:90px 1fr}.personnel-schedule .ps-panel-unplanned{overflow:auto}.personnel-schedule .ps-panel-unplanned table{min-width:620px}}
|
|
1
|
+
.ag-grid-root{--ag-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--ag-font-size: 13px;--ag-header-font-size: 12px;--ag-background-color: #fff;--ag-header-background-color: #f5f7fa;--ag-odd-row-background-color: rgba(0, 0, 0, .03);--ag-header-foreground-color: #5a636b;--ag-foreground-color: #181d1f;--ag-secondary-foreground-color: #6b7680;--ag-border-color: #dde2eb;--ag-border-color-strong: #b8c0c9;--ag-row-hover-color: rgba(33, 150, 243, .06);--ag-selected-row-background-color: rgba(33, 150, 243, .12);--ag-range-selection-background-color: rgba(33, 150, 243, .14);--ag-range-selection-border-color: #2196f3;--ag-range-selection-chart-category-color: #2196f3;--ag-range-selection-chart-background-color: rgba(33, 150, 243, .1);--ag-header-height: 48px;--ag-header-cell-horizontal-padding: 12px;--ag-cell-horizontal-padding: 12px;--ag-row-height: 42px;--ag-checkbox-checked-color: #2196f3;--ag-accent-color: #2196f3;--ag-alpine-active-color: #2196f3;--ag-input-focus-border-color: #2196f3;--ag-invalid-color: #e02525;--ag-disabled-foreground-color: rgba(24, 29, 31, .5);--ag-chip-background-color: rgba(24, 29, 31, .06);--ag-modal-overlay-background-color: rgba(0, 0, 0, .4);--ag-toggle-button-border-width: 0;--ag-widget-container-shadow: 0 4px 16px rgba(0, 0, 0, .18);--ag-cell-data-changed-color: #2196f3;--ag-chart-text-color: #5a636b;position:relative;box-sizing:border-box;font-family:var(--ag-font-family);font-size:var(--ag-font-size);color:var(--ag-foreground-color);background-color:var(--ag-background-color);line-height:1.4;-webkit-font-smoothing:antialiased}.ag-grid-root *,.ag-grid-root *:before,.ag-grid-root *:after{box-sizing:border-box}.ag-theme-quartz{--ag-header-background-color: #f9fafb;--ag-border-color: #eff0f1;--ag-odd-row-background-color: transparent;--ag-header-foreground-color: #39485d;--ag-foreground-color: #1f383c;--ag-secondary-foreground-color: rgba(31, 56, 60, .6);--ag-row-height: 42px;--ag-header-height: 48px;--ag-border-radius: 8px;--ag-selected-row-background-color: rgba(33, 150, 243, .1)}.ag-theme-balham{--ag-header-background-color: #f5f5f5;--ag-border-color: #bdbfc1;--ag-header-height: 32px;--ag-row-height: 28px;--ag-cell-horizontal-padding: 8px;--ag-font-size: 12px}.ag-theme-alpine-dark,.ag-theme-quartz-dark{--ag-background-color: #181d1f;--ag-header-background-color: #23272a;--ag-odd-row-background-color: rgba(255, 255, 255, .04);--ag-border-color: #3a4045;--ag-border-color-strong: #4c545b;--ag-foreground-color: #e5e9ec;--ag-header-foreground-color: #b6bcc2;--ag-secondary-foreground-color: rgba(229, 233, 236, .6);--ag-chip-background-color: rgba(255, 255, 255, .1);--ag-disabled-foreground-color: rgba(229, 233, 236, .5);--ag-range-selection-background-color: rgba(33, 150, 243, .24)}.ag-root{position:relative;display:flex;width:100%;height:100%;overflow:hidden}.ag-main{flex:1 1 auto;display:flex;flex-direction:column;min-width:0;position:relative;overflow:hidden}.ag-header-wrapper{position:relative;overflow:hidden;flex:none;min-height:0;border-bottom:1px solid var(--ag-border-color);background-color:var(--ag-header-background-color)}.ag-header{display:flex;position:relative;height:var(--ag-header-height);flex:none;overflow:hidden}.ag-pinned-left-header,.ag-pinned-right-header{position:relative;overflow:hidden;flex:none;height:100%}.ag-header-viewport{flex:1 1 auto;position:relative;overflow:hidden;min-width:0}.ag-header-container,.ag-header-row{position:relative;height:100%}.ag-header-cell{position:absolute;top:0;display:flex;align-items:center;height:100%;padding:0 var(--ag-header-cell-horizontal-padding);font-size:var(--ag-header-font-size);font-weight:600;color:var(--ag-header-foreground-color);background-color:var(--ag-header-background-color);border-right:1px solid var(--ag-border-color);-webkit-user-select:none;user-select:none;cursor:default;overflow:hidden}.ag-header-cell:last-child{border-right:none}.ag-header-cell-label{flex:1 1 auto;display:flex;align-items:center;gap:6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ag-header-cell-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ag-header-cell.ag-right-aligned-header,.ag-header-cell.ag-right-aligned-header .ag-header-cell-label{justify-content:flex-end}.ag-header-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:none;color:var(--ag-secondary-foreground-color);opacity:.75;cursor:pointer}.ag-header-icon:hover{opacity:1}.ag-sort-indicator{margin-left:4px}.ag-sort-indicator.ag-sort-asc,.ag-sort-indicator.ag-sort-desc{color:var(--ag-alpine-active-color);opacity:1}.ag-sort-order{font-size:10px;margin-left:-4px;align-self:flex-start;color:var(--ag-alpine-active-color)}.ag-filter-icon.ag-filter-active{color:var(--ag-alpine-active-color);opacity:1}.ag-header-cell-resize{position:absolute;top:0;right:-3px;bottom:0;width:7px;cursor:col-resize;z-index:2}.ag-header-cell-resize:after{content:"";position:absolute;top:20%;bottom:20%;right:3px;width:1px;background:var(--ag-border-color-strong)}.ag-header-cell-resize:hover:after{background:var(--ag-alpine-active-color);width:2px}body.ag-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.ag-header-cell-drag-ghost{opacity:.6}.ag-floating-filters{border-top:1px solid var(--ag-border-color);height:28px}.ag-floating-filter-cell{display:flex;align-items:center;padding:2px 6px;border-right:1px solid var(--ag-border-color);background-color:var(--ag-header-background-color)}.ag-floating-filter-input{width:100%;border:1px solid var(--ag-border-color);border-radius:4px;padding:2px 6px;font-size:12px;font-family:var(--ag-font-family);color:var(--ag-foreground-color);background:var(--ag-background-color);outline:none}.ag-floating-filter-input:focus{border-color:var(--ag-input-focus-border-color)}.ag-body{flex:1 1 auto;display:flex;position:relative;min-height:0;overflow:hidden}.ag-body-viewport-wrapper{flex:1 1 auto;display:flex;flex-direction:column;position:relative;min-width:0}.ag-body-viewport{flex:1 1 auto;overflow:auto;position:relative;outline:none;scrollbar-width:thin}.ag-body-viewport::-webkit-scrollbar{width:12px;height:12px}.ag-body-viewport::-webkit-scrollbar-thumb{background:#80808066;border-radius:6px;border:3px solid transparent;background-clip:content-box}.ag-body-viewport::-webkit-scrollbar-thumb:hover{background:#80808099;background-clip:content-box}.ag-body-container{position:relative;width:100%}.ag-pinned-left-cols-viewport,.ag-pinned-right-cols-viewport{position:relative;overflow:hidden;flex:none;align-self:stretch;height:100%}.ag-pinned-left-cols-viewport .ag-row>.ag-cell:last-child,.ag-pinned-left-header .ag-header-cell:last-child,.ag-floating-pinned-left .ag-row>.ag-cell:last-child,.ag-floating-pinned-bottom-left .ag-row>.ag-cell:last-child,.ag-sticky-group-rows-left .ag-row>.ag-cell:last-child{border-inline-end:1px solid var(--ag-border-color)}.ag-pinned-right-cols-viewport .ag-row>.ag-cell:first-child,.ag-pinned-right-header .ag-header-cell:first-child,.ag-floating-pinned-right .ag-row>.ag-cell:first-child,.ag-floating-pinned-bottom-right .ag-row>.ag-cell:first-child,.ag-sticky-group-rows-right .ag-row>.ag-cell:first-child{border-inline-start:1px solid var(--ag-border-color)}.ag-floating-top,.ag-floating-bottom{position:relative;overflow:hidden;flex:none}.ag-floating-top{border-bottom:1px solid var(--ag-border-color)}.ag-floating-bottom{border-top:1px solid var(--ag-border-color)}.ag-floating-pinned-cols{position:absolute;overflow:hidden;height:0;z-index:4}.ag-floating-pinned-left{top:0;left:0}.ag-floating-pinned-right{top:0;right:0}.ag-floating-pinned-bottom-left{bottom:0;left:0;border-top:1px solid var(--ag-border-color)}.ag-floating-pinned-bottom-right{bottom:0;right:0;border-top:1px solid var(--ag-border-color)}.ag-sticky-group-rows{position:absolute;top:0;left:0;right:0;height:0;z-index:5;pointer-events:none;background-color:var(--ag-header-background-color)}.ag-sticky-group-rows-left,.ag-sticky-group-rows-center,.ag-sticky-group-rows-right{position:absolute;top:0;height:0;overflow:hidden}.ag-sticky-group-rows-left{left:0}.ag-sticky-group-rows-center{left:0;right:0}.ag-sticky-group-rows-right{right:0}.ag-sticky-group-rows .ag-row{pointer-events:auto}.ag-row{position:absolute;left:0;width:100%;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--ag-border-color);background-color:var(--ag-background-color)}.ag-row.ag-row-even{background-color:var(--ag-odd-row-background-color)}.ag-row:hover,.ag-row.ag-row-hover{background-color:var(--ag-row-hover-color)}.ag-row.ag-row-selected{background-color:var(--ag-selected-row-background-color)}.ag-row.ag-row-group{background-color:var(--ag-header-background-color);font-weight:600;border-bottom:1px solid var(--ag-border-color)}.ag-row.ag-row-group:hover,.ag-row.ag-row-group.ag-row-hover{background-color:var(--ag-row-hover-color)}.ag-row.ag-row-footer{background-color:var(--ag-header-background-color);font-weight:600;border-top:1px solid var(--ag-border-color)}.ag-row-full-width{width:100%!important}.ag-cell{position:absolute;top:0;display:flex;align-items:center;height:100%;padding:0 var(--ag-cell-horizontal-padding);overflow:hidden;white-space:nowrap;border-right:1px solid var(--ag-border-color);background-color:inherit}.ag-cell:last-child{border-right:none}.ag-cell-value{flex:1 1 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ag-right-aligned-cell{justify-content:flex-end}.ag-right-aligned-cell .ag-cell-value{text-align:right}.ag-cell.ag-cell-focus{border:1px solid var(--ag-alpine-active-color)}.ag-cell.ag-cell-focus:after{content:""}.ag-cell.ag-cell-editing{padding:0;border:1px solid var(--ag-input-focus-border-color);box-shadow:0 0 0 1px var(--ag-input-focus-border-color);background-color:var(--ag-background-color)}.ag-cell.ag-cell-editing .ag-cell-value,.ag-cell.ag-cell-editing .ag-cell-note-marker,.ag-cell.ag-cell-editing .ag-row-drag-handle{display:none}.ag-cell.ag-cell-editing .ag-cell-editor{width:100%;height:100%}.ag-cell.ag-cell-invalid{border-color:var(--ag-invalid-color);box-shadow:0 0 0 1px var(--ag-invalid-color)}.ag-cell-data-change{animation:ag-cell-data-change 1s ease-out}@keyframes ag-cell-data-change{0%{background-color:var(--ag-cell-data-changed-color);color:#fff}to{background-color:transparent}}.ag-cell-range-selected{background-color:var(--ag-range-selection-background-color)}.ag-cell-range-anchor{box-shadow:inset 0 0 0 1px var(--ag-range-selection-border-color)}.ag-find-match{background-color:#ffeb3b73}.ag-find-active-match{background-color:#ff980099}.ag-group-cell-renderer{display:flex;align-items:center;width:100%;gap:6px}.ag-group-value-expanded-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:none;cursor:pointer;color:var(--ag-secondary-foreground-color);border-radius:4px}.ag-group-value-expanded-icon:hover{background-color:var(--ag-chip-background-color)}.ag-group-child-count{color:var(--ag-secondary-foreground-color);font-weight:400}.ag-cell-checkbox{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.ag-range-overlay{position:absolute;border:1px solid var(--ag-range-selection-border-color);background-color:var(--ag-range-selection-background-color);pointer-events:none;z-index:3}.ag-range-handle{position:absolute;width:8px;height:8px;background-color:var(--ag-range-selection-border-color);border:1px solid #fff;cursor:crosshair;z-index:4}.ag-row-detail{position:absolute;background-color:var(--ag-background-color);border-bottom:1px solid var(--ag-border-color);overflow:auto;z-index:1}.ag-status-bar{flex:none;display:flex;align-items:stretch;min-height:26px;border-top:1px solid var(--ag-border-color);background-color:var(--ag-header-background-color);font-size:12px;color:var(--ag-secondary-foreground-color);padding:0 12px;gap:24px}.ag-status-panel{display:flex;align-items:center;padding:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none}.ag-status-panel-center,.ag-status-panel-right{flex:0 1 auto;min-width:0}.ag-status-panel-center{flex:1 1 auto;justify-content:center}.ag-status-panel-right{margin-left:auto}.ag-pagination-page-label{color:var(--ag-secondary-foreground-color)}.ag-pagination-panel{flex:none;display:flex;align-items:center;justify-content:space-between;min-height:40px;padding:0 12px;border-top:1px solid var(--ag-border-color);background-color:var(--ag-header-background-color);font-size:12px;color:var(--ag-secondary-foreground-color);gap:12px}.ag-pagination-buttons{display:flex;align-items:center;gap:4px}.ag-pagination-button{border:1px solid var(--ag-border-color);background:var(--ag-background-color);color:var(--ag-foreground-color);border-radius:4px;min-width:26px;height:24px;cursor:pointer;font-size:12px;line-height:1;padding:0 6px}.ag-pagination-button:hover{background-color:var(--ag-row-hover-color)}.ag-pagination-page-input{width:48px;height:24px;border:1px solid var(--ag-border-color);border-radius:4px;text-align:center;font-size:12px;color:var(--ag-foreground-color);background:var(--ag-background-color)}.ag-pagination-info{white-space:nowrap}.ag-pagination-from-to{color:var(--ag-foreground-color)}.ag-pagination-page-size{display:flex;align-items:center;gap:6px}.ag-pagination-page-size-select{height:24px;border:1px solid var(--ag-border-color);border-radius:4px;font-size:12px;background:var(--ag-background-color);color:var(--ag-foreground-color)}.ag-side-bar{display:flex;flex-direction:column;width:220px;flex:none;border-left:1px solid var(--ag-border-color);background-color:var(--ag-background-color);overflow:hidden}.ag-side-bar-left{border-left:none;border-right:1px solid var(--ag-border-color);order:-1}.ag-side-buttons{display:flex;flex-direction:column;border-bottom:1px solid var(--ag-border-color);background-color:var(--ag-header-background-color);flex:none}.ag-side-button{border:none;background:none;text-align:left;padding:10px 12px;font-size:12px;font-weight:600;color:var(--ag-header-foreground-color);cursor:pointer;border-left:3px solid transparent;font-family:var(--ag-font-family)}.ag-side-button:hover{background-color:var(--ag-row-hover-color)}.ag-side-button.ag-selected{color:var(--ag-alpine-active-color);border-left-color:var(--ag-alpine-active-color);background-color:var(--ag-selected-row-background-color)}.ag-side-bar-panel{flex:1 1 auto;overflow:auto;padding:8px;font-size:12px}.ag-side-bar-empty,.ag-column-group-hint{color:var(--ag-secondary-foreground-color);padding:8px 4px;font-style:italic}.ag-column-panel,.ag-filters-panel{display:flex;flex-direction:column;gap:8px}.ag-column-panel-search{width:100%;border:1px solid var(--ag-border-color);border-radius:4px;padding:5px 8px;font-size:12px;color:var(--ag-foreground-color);background:var(--ag-background-color);outline:none}.ag-column-panel-search:focus{border-color:var(--ag-input-focus-border-color)}.ag-column-panel-columns{display:flex;flex-direction:column}.ag-column-select-column{display:flex;align-items:center;gap:8px;padding:4px;border-radius:4px;cursor:grab}.ag-column-select-column:hover{background-color:var(--ag-row-hover-color)}.ag-column-select-label{flex:1 1 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--ag-foreground-color)}.ag-column-select-actions{display:flex;gap:2px}.ag-column-select-action{border:none;background:none;cursor:pointer;color:var(--ag-secondary-foreground-color);padding:0 2px;font-size:12px;line-height:1}.ag-column-select-action:hover{color:var(--ag-alpine-active-color)}.ag-column-panel-section-title,.ag-side-bar-section-title{font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--ag-secondary-foreground-color);margin:8px 0 4px}.ag-column-group-list{display:flex;flex-direction:column;gap:4px;min-height:32px;border:1px dashed var(--ag-border-color-strong);border-radius:4px;padding:4px}.ag-column-group-item{display:flex;align-items:center;gap:6px;background-color:var(--ag-chip-background-color);border-radius:4px;padding:3px 6px;cursor:grab}.ag-column-group-item span{flex:1 1 auto}.ag-column-group-remove{border:none;background:none;cursor:pointer;color:var(--ag-secondary-foreground-color);font-size:14px;line-height:1;padding:0 2px}.ag-column-group-remove:hover{color:var(--ag-invalid-color)}.ag-filters-tool-panel-item{display:flex;flex-direction:column;gap:4px;padding:6px 4px;border-bottom:1px solid var(--ag-border-color)}.ag-filters-tool-panel-item-header{display:flex;align-items:center;justify-content:space-between;font-weight:600;color:var(--ag-foreground-color)}.ag-filters-tool-panel-item-badge{color:var(--ag-alpine-active-color);display:inline-flex}.ag-popup{position:absolute;z-index:100;background-color:var(--ag-background-color);border:1px solid var(--ag-border-color);border-radius:6px;box-shadow:var(--ag-widget-container-shadow);font-size:12px;color:var(--ag-foreground-color);padding:4px;max-height:70vh;overflow:auto}.ag-popup-title{font-weight:700;padding:6px 8px;font-size:12px;border-bottom:1px solid var(--ag-border-color);margin-bottom:4px;color:var(--ag-header-foreground-color)}.ag-menu-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer;position:relative;white-space:nowrap}.ag-menu-item:hover{background-color:var(--ag-row-hover-color)}.ag-menu-item-disabled,.ag-menu-item-disabled:hover{color:var(--ag-disabled-foreground-color);cursor:default;background:none}.ag-menu-item-active{color:var(--ag-alpine-active-color)}.ag-menu-item-icon,.ag-menu-item-check{width:16px;display:inline-flex;align-items:center;justify-content:center;flex:none}.ag-menu-item-label{flex:1 1 auto}.ag-menu-item-shortcut{color:var(--ag-secondary-foreground-color);font-size:11px}.ag-menu-item-arrow{margin-left:4px}.ag-menu-separator{height:1px;background-color:var(--ag-border-color);margin:4px 0}.ag-menu-section{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--ag-secondary-foreground-color);padding:6px 8px 2px;font-weight:700}.ag-menu-popup-sub{position:absolute;left:100%;top:0;background-color:var(--ag-background-color);border:1px solid var(--ag-border-color);border-radius:6px;box-shadow:var(--ag-widget-container-shadow);padding:4px;min-width:160px;z-index:101}.ag-filter-popup{display:flex;flex-direction:column;gap:8px;padding:8px}.ag-filter-condition{width:100%;border:1px solid var(--ag-border-color);border-radius:4px;padding:4px 6px;font-size:12px;color:var(--ag-foreground-color);background:var(--ag-background-color)}.ag-filter-input{width:100%;border:1px solid var(--ag-border-color);border-radius:4px;padding:4px 6px;font-size:12px;color:var(--ag-foreground-color);background:var(--ag-background-color);outline:none}.ag-filter-input:focus{border-color:var(--ag-input-focus-border-color)}.ag-filter-inputs{display:flex;gap:6px}.ag-popup-buttons{display:flex;justify-content:flex-end;gap:6px;margin-top:4px}.ag-button{border:1px solid var(--ag-border-color);background:var(--ag-background-color);color:var(--ag-foreground-color);border-radius:4px;padding:4px 10px;font-size:12px;cursor:pointer;font-family:var(--ag-font-family)}.ag-button:hover{background-color:var(--ag-row-hover-color)}.ag-button-primary{background-color:var(--ag-alpine-active-color);border-color:var(--ag-alpine-active-color);color:#fff}.ag-button-primary:hover{filter:brightness(1.08);background-color:var(--ag-alpine-active-color)}.ag-button-small{padding:2px 8px;font-size:11px}.ag-set-filter{display:flex;flex-direction:column;gap:6px;padding:8px}.ag-set-filter-list{max-height:180px;overflow:auto;display:flex;flex-direction:column;gap:2px}.ag-set-filter-item{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:4px;cursor:pointer}.ag-set-filter-item:hover{background-color:var(--ag-row-hover-color)}.ag-set-filter-actions{display:flex;gap:6px}.ag-set-filter-empty{color:var(--ag-secondary-foreground-color);padding:8px;font-style:italic}.ag-find-bar{display:flex;align-items:center;gap:8px;padding:8px}.ag-find-input{flex:1 1 auto;border:1px solid var(--ag-border-color);border-radius:4px;padding:5px 8px;font-size:12px;color:var(--ag-foreground-color);background:var(--ag-background-color);outline:none}.ag-find-input:focus{border-color:var(--ag-input-focus-border-color)}.ag-find-count{color:var(--ag-secondary-foreground-color);white-space:nowrap;min-width:64px}.ag-find-case{display:flex;align-items:center;gap:4px;white-space:nowrap}.ag-chart-panel{display:flex;flex-direction:column;gap:6px}.ag-chart-panel-label{font-weight:600;color:var(--ag-secondary-foreground-color);font-size:11px;margin-top:4px}.ag-chart-panel-select{width:100%;border:1px solid var(--ag-border-color);border-radius:4px;padding:4px 6px;font-size:12px;background:var(--ag-background-color);color:var(--ag-foreground-color)}.ag-chart-panel-series{display:flex;flex-direction:column;gap:2px;max-height:140px;overflow:auto}.ag-chart-panel-series-item{display:flex;align-items:center;gap:6px;padding:2px 4px}.ag-chart-panel-create{margin-top:8px}.ag-chart-panel-list{margin-top:8px;display:flex;flex-direction:column;gap:4px}.ag-chart-panel-list-item{display:flex;align-items:center;justify-content:space-between;background-color:var(--ag-chip-background-color);border-radius:4px;padding:4px 8px}.ag-chart-window{width:640px!important;max-width:90vw}.ag-chart-window-header{display:flex;align-items:center;gap:8px;padding:4px 4px 8px;border-bottom:1px solid var(--ag-border-color)}.ag-chart-window-title{flex:1 1 auto;font-weight:700}.ag-chart-window-body{padding:12px;display:flex;flex-direction:column;align-items:center}.ag-chart-canvas{background-color:var(--ag-background-color);max-width:100%}.ag-chart-legend{display:flex;flex-wrap:wrap;gap:12px;padding-top:8px;font-size:11px;color:var(--ag-secondary-foreground-color)}.ag-chart-legend-item{display:flex;align-items:center;gap:4px}.ag-chart-legend-swatch{width:10px;height:10px;border-radius:2px;display:inline-block}.ag-overlay{display:flex;align-items:center;justify-content:center;background-color:color-mix(in srgb,var(--ag-background-color) 80%,transparent)}.ag-overlay-loading-wrapper,.ag-overlay-no-rows-wrapper{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--ag-secondary-foreground-color);font-size:13px}.ag-overlay-loading-spinner{width:28px;height:28px;border:3px solid var(--ag-border-color);border-top-color:var(--ag-alpine-active-color);border-radius:50%;animation:ag-spin .9s linear infinite}@keyframes ag-spin{to{transform:rotate(360deg)}}.ag-cell-editor{width:100%;height:100%}.ag-cell-editor-input{width:100%;height:100%;border:none;outline:none;padding:0 var(--ag-cell-horizontal-padding);font-size:var(--ag-font-size);font-family:var(--ag-font-family);color:var(--ag-foreground-color);background:var(--ag-background-color)}.ag-cell-editor-number{display:flex;align-items:center;width:100%;height:100%;position:relative}.ag-cell-editor-number .ag-cell-editor-input{text-align:inherit}.ag-cell-editor-stepper{width:18px;display:flex;align-items:center;justify-content:center;font-size:8px;color:var(--ag-secondary-foreground-color);cursor:pointer;-webkit-user-select:none;user-select:none}.ag-cell-editor-stepper:hover{color:var(--ag-alpine-active-color)}.ag-cell-editor-select{width:100%;height:100%;border:none;outline:none;padding:0 var(--ag-cell-horizontal-padding);font-size:var(--ag-font-size);font-family:var(--ag-font-family);color:var(--ag-foreground-color);background:var(--ag-background-color)}.ag-cell-editor-textarea{width:100%;height:100%;border:none;outline:none;padding:4px var(--ag-cell-horizontal-padding);font-size:var(--ag-font-size);font-family:var(--ag-font-family);resize:none;color:var(--ag-foreground-color);background:var(--ag-background-color)}.ag-sparkline-cell{display:flex;align-items:center;width:100%;height:100%}.ag-sparkline{color:var(--ag-alpine-active-color)}.ag-row{transition:top .25s ease}.ag-native-checkbox{accent-color:var(--ag-checkbox-checked-color);width:14px;height:14px;cursor:pointer}.ag-group-header-rows{position:relative}.ag-group-header-row{border-bottom:1px solid var(--ag-border-color)}.ag-header-group-cell{position:absolute;top:0;display:flex;align-items:center;justify-content:center;font-size:var(--ag-header-font-size);font-weight:600;color:var(--ag-header-foreground-color);border-right:1px solid var(--ag-border-color);cursor:pointer;overflow:hidden;-webkit-user-select:none;user-select:none;background-color:var(--ag-header-background-color)}.ag-header-group-cell-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ag-header-group-expand{margin-left:6px;color:var(--ag-secondary-foreground-color)}.ag-row-group-panel{display:flex;align-items:center;gap:8px;padding:4px 8px;border-bottom:1px solid var(--ag-border-color);background-color:var(--ag-header-background-color);min-height:28px;font-size:11px;color:var(--ag-secondary-foreground-color)}.ag-row-group-panel-label{text-transform:uppercase;letter-spacing:.6px;font-weight:700;white-space:nowrap}.ag-row-group-panel-chips{display:flex;gap:6px;flex-wrap:wrap;flex:1 1 auto;min-height:22px;border:1px dashed transparent;border-radius:4px;padding:2px}.ag-row-group-panel-chips.ag-drag-over{border-color:var(--ag-alpine-active-color);background-color:var(--ag-selected-row-background-color)}.ag-row-group-chip{display:flex;align-items:center;gap:6px;background-color:var(--ag-chip-background-color);border-radius:4px;padding:2px 6px;cursor:grab;font-weight:600;color:var(--ag-foreground-color)}.ag-row-group-chip-remove{border:none;background:none;cursor:pointer;color:var(--ag-secondary-foreground-color);font-size:12px;line-height:1;padding:0}.ag-row-group-chip-remove:hover{color:var(--ag-invalid-color)}.ag-row-number-cell{color:var(--ag-secondary-foreground-color);font-variant-numeric:tabular-nums}.ag-cell-row-drag{cursor:grab}.ag-animate-show-change-cell-renderer{display:inline-flex;align-items:center;gap:6px;width:100%}.ag-value-change-arrow{display:inline-flex;align-items:center;flex:none}.ag-value-change-old{opacity:.55;text-decoration:line-through;flex:none}.ag-value-change-new{border-radius:12px;padding:1px 8px;transition:background-color .6s ease}.ag-value-change-value-highlight .ag-value-change-new{background-color:#4caf5040;color:#1b5e20}.ag-value-change-value-highlight.ag-value-change-delta-down .ag-value-change-new{background-color:#f4433640;color:#b71c1c}.ag-value-change-delta-up{color:#1b5e20}.ag-value-change-delta-down{color:#b71c1c}.ag-rich-select{width:100%;height:100%}.ag-rich-select-input{width:100%;height:100%;border:none;outline:none;padding:0 var(--ag-cell-horizontal-padding);font-size:var(--ag-font-size);font-family:var(--ag-font-family);color:var(--ag-foreground-color);background:var(--ag-background-color)}.ag-rich-select-popup{background-color:var(--ag-background-color);border:1px solid var(--ag-border-color);border-radius:6px;box-shadow:var(--ag-widget-container-shadow);max-height:260px;display:flex;flex-direction:column;overflow:hidden}.ag-rich-select-search{border:none;border-bottom:1px solid var(--ag-border-color);padding:6px 8px;font-size:12px;outline:none;color:var(--ag-foreground-color);background:var(--ag-background-color)}.ag-rich-select-list{overflow:auto;padding:4px}.ag-rich-select-item{padding:5px 8px;border-radius:4px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ag-rich-select-item:hover,.ag-rich-select-item.ag-active{background-color:var(--ag-selected-row-background-color)}.ag-rich-select-item.ag-selected{color:var(--ag-alpine-active-color);font-weight:600}.ag-rich-select-highlight{background-color:#ffc10773;font-weight:700}.ag-rich-select-empty{padding:8px;color:var(--ag-secondary-foreground-color);font-style:italic}.ag-example-wrapper{display:flex;flex-direction:column;height:100vh;overflow:hidden}.ag-example-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;flex-wrap:wrap}.ag-example-tabs{display:flex;gap:4px;background:#f9fafb;border:1px solid #eff0f1;border-radius:8px;padding:4px}.ag-example-tab{border:none;background:transparent;border-radius:6px;padding:6px 14px;font-size:13px;cursor:pointer;color:#39485d;font-family:var(--ag-font-family)}.ag-example-tab.ag-active{background:#fff;color:#000;box-shadow:0 1px 3px #0000001a}.ag-example-input-wrapper{position:relative;display:flex;align-items:center}.ag-example-input-wrapper svg{position:absolute;left:8px;color:#98a2b3}.ag-example-input{border:1px solid #eff0f1;border-radius:8px;padding:8px 12px 8px 30px;font-size:13px;width:220px;outline:none;font-family:var(--ag-font-family);color:#1f383c;background:#fff}.ag-example-input:focus{border-color:var(--ag-input-focus-border-color)}.ag-multi-filter-operator{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ag-secondary-foreground-color)}.ag-multi-filter-operator .ag-filter-condition{flex:1 1 auto}.ag-multi-filter-list,.ag-advanced-filter-list{display:flex;flex-direction:column;gap:6px}.ag-multi-filter-row,.ag-advanced-filter-row{display:flex;align-items:center;gap:4px}.ag-multi-filter-row .ag-filter-condition,.ag-advanced-filter-row .ag-filter-condition{width:auto;flex:0 0 auto}.ag-multi-filter-row .ag-filter-input,.ag-advanced-filter-row .ag-filter-input{flex:1 1 auto;min-width:60px}.ag-advanced-filter-popup .ag-multi-filter-operator{margin-top:8px}.ag-formula-editor{display:flex;flex-direction:column;gap:8px;padding:8px}.ag-formula-input{width:100%;border:1px solid var(--ag-border-color);border-radius:4px;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;resize:vertical;color:var(--ag-foreground-color);background:var(--ag-background-color);outline:none}.ag-formula-preview{font-size:12px;color:var(--ag-secondary-foreground-color);min-height:16px}.ag-formula-preview.ag-formula-error{color:var(--ag-invalid-color)}.ag-formula-functions-title{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--ag-secondary-foreground-color);font-weight:700;margin-bottom:4px}.ag-formula-functions-list{display:flex;flex-wrap:wrap;gap:4px;max-height:120px;overflow:auto}.ag-cell-note-marker{position:absolute;top:2px;right:2px;width:0;height:0;border-left:6px solid transparent;border-top:6px solid var(--ag-alpine-active-color);cursor:pointer}.ag-cell-note-marker:hover{border-top-color:#ff9800}.ag-note-editor{display:flex;flex-direction:column;gap:8px;padding:8px}.ag-row-drag-handle{display:inline-flex;align-items:center;justify-content:center;width:18px;height:100%;flex:none;cursor:grab;color:var(--ag-secondary-foreground-color);opacity:.6}.ag-row-drag-handle:hover{opacity:1}.ag-row-draggable .ag-row-drag-handle{cursor:grab}body.ag-row-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.ag-row-drag-ghost{position:fixed;z-index:2000;background:var(--ag-background-color);border:1px solid var(--ag-alpine-active-color);border-radius:4px;box-shadow:var(--ag-widget-container-shadow);padding:4px 10px;font-size:12px;pointer-events:none;opacity:.9}.ag-row-drop-indicator{position:absolute;left:0;right:0;height:2px;background:var(--ag-alpine-active-color);pointer-events:none;z-index:5}.ag-direction-rtl{direction:rtl}.ag-direction-rtl .ag-header-cell,.ag-direction-rtl .ag-cell{border-right:none;border-left:1px solid var(--ag-border-color)}.ag-chart-window-body{position:relative}.ag-chart-tooltip{position:absolute;z-index:10;background:var(--ag-background-color);border:1px solid var(--ag-border-color);border-radius:6px;box-shadow:var(--ag-widget-container-shadow);padding:6px 8px;font-size:11px;color:var(--ag-foreground-color);pointer-events:none;white-space:nowrap}.ag-chart-tooltip-title{font-weight:700;margin-bottom:2px}.ag-cell-col-span{overflow:visible}@media print{.ag-grid-root{height:auto!important}.ag-body-viewport{overflow:visible!important;height:auto!important}.ag-body-container,.ag-pinned-left-cols-viewport,.ag-pinned-right-cols-viewport{position:static!important;height:auto!important;overflow:visible!important}.ag-row{position:static!important;display:flex!important;page-break-inside:avoid}.ag-header{position:static!important}.ag-side-bar,.ag-pagination-panel,.ag-popup{display:none!important}}.ag-pinned-cols-inner{position:absolute;top:0;left:0;right:0;will-change:transform}.rowvia-detail-dialog{font:14px/1.5 -apple-system,BlinkMacSystemFont,PingFang SC,sans-serif;color:#1f2329;background:#fff;border:1px solid #dee0e3;border-radius:8px;padding:24px;min-width:320px;max-width:calc(100vw - 48px);box-sizing:border-box}.rowvia-detail-dialog::backdrop{background:#1f232930}.rowvia-detail-dialog h2{font-size:18px;margin:0 0 20px}.rowvia-detail-dialog dl{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0 0 24px}.rowvia-detail-dialog dt{color:#646a73}.rowvia-detail-dialog dd{margin:0;overflow-wrap:anywhere}.rowvia-detail-dialog button{font:inherit;border:1px solid #dee0e3;background:#fff;border-radius:4px;padding:6px 16px;cursor:pointer}.rowvia-detail-dialog button:hover{background:#f5f6f7}.rowvia-detail-dialog button:focus-visible{outline:2px solid #4254e8;outline-offset:2px}.rowvia-gantt{--ag-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Roboto, Helvetica, Arial, sans-serif;--gt-accent: #3370ff;--gt-text: #1f2329;--gt-text-secondary: #646a73;--gt-text-tertiary: #8f959e;--gt-border: #dee0e3;--gt-border-light: #eff0f1;--gt-fill: #f5f6f7;--gt-group-row: #f7f8fa;--gt-status-not-started: #b8bdc4;--gt-status-in-progress: #3370ff;--gt-status-done: #2ea121;--gt-status-delayed: #f54a45;--gt-summary: #2f3b52;--gt-weekend: rgba(31, 35, 41, .04);--gt-row-height: 36px;--gt-header-height: 44px}.rowvia-gantt,.rowvia-gantt *{box-sizing:border-box}.rowvia-gantt .gantt-app{display:flex;flex-direction:column;height:100vh;background:#fff}.rowvia-gantt .gantt-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;height:48px;padding:0 16px;background:#fff;border-bottom:1px solid var(--gt-border);flex-shrink:0}.rowvia-gantt .gantt-title{display:flex;align-items:baseline;gap:10px;min-width:0}.rowvia-gantt .gantt-title-name{font-size:15px;font-weight:600;white-space:nowrap}.rowvia-gantt .gantt-title-sub{font-size:12px;color:var(--gt-text-tertiary);white-space:nowrap}.rowvia-gantt .gantt-tools{display:flex;align-items:center;gap:8px}.rowvia-gantt .gt-tool-label{font-size:12px;color:var(--gt-text-secondary)}.rowvia-gantt .gt-sep{width:1px;height:18px;background:var(--gt-border);margin:0 2px}.rowvia-gantt .gt-seg{display:inline-flex;border:1px solid var(--gt-border);border-radius:6px;overflow:hidden;background:#fff}.rowvia-gantt .gt-seg button{border:none;background:transparent;padding:4px 12px;font-size:12px;color:var(--gt-text-secondary);cursor:pointer;border-right:1px solid var(--gt-border-light);line-height:20px}.rowvia-gantt .gt-seg button:last-child{border-right:none}.rowvia-gantt .gt-seg button:hover{background:#3370ff0f;color:var(--gt-accent)}.rowvia-gantt .gt-seg button.gt-seg-active{background:var(--gt-accent);color:#fff}.rowvia-gantt .gt-btn{border:1px solid var(--gt-border);background:#fff;border-radius:6px;padding:4px 12px;font-size:12px;line-height:20px;color:var(--gt-text);cursor:pointer;white-space:nowrap}.rowvia-gantt .gt-btn:hover{border-color:var(--gt-accent);color:var(--gt-accent)}.rowvia-gantt .gt-btn-active{border-color:var(--gt-accent);color:var(--gt-accent);background:#3370ff0f}.rowvia-gantt .gt-btn-active:after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gt-accent);margin-left:6px;vertical-align:1px}.rowvia-gantt .gantt-body{flex:1;display:flex;min-height:0;background:#fff}.rowvia-gantt .gantt-left{width:660px;min-width:660px;display:flex;flex-direction:column;border-right:1px solid var(--gt-border);overflow:hidden}.rowvia-gantt .gantt-left .grid{flex:1;min-height:0}.rowvia-gantt .gantt-left .ag-theme-quartz{--ag-header-height: 44px;--ag-row-height: 36px;--ag-font-size: 12px;--ag-header-font-size: 12px;--ag-header-background-color: #fff;--ag-header-foreground-color: var(--gt-text);--ag-foreground-color: var(--gt-text);--ag-secondary-foreground-color: var(--gt-text-tertiary);--ag-odd-row-background-color: transparent;--ag-border-color: var(--gt-border-light);--ag-row-hover-color: rgba(51, 112, 255, .05);--ag-selected-row-background-color: rgba(51, 112, 255, .09);--ag-cell-horizontal-padding: 12px}.rowvia-gantt .gantt-left .ag-header-cell{font-weight:500;border-bottom:1px solid var(--gt-border)}.rowvia-gantt .gantt-left .ag-cell{border-bottom:1px solid rgba(31,35,41,.05)}.rowvia-gantt .gantt-left .ag-row.ag-row-group{background:var(--gt-group-row)}.rowvia-gantt .gantt-left .ag-row.ag-row-group.ag-row-hover{background:#3370ff0f}.rowvia-gantt .gantt-left .ag-body-viewport::-webkit-scrollbar{width:6px}.rowvia-gantt .gantt-left .ag-body-viewport::-webkit-scrollbar-thumb{background:#1f23292e;border-radius:3px}.rowvia-gantt .gantt-left .ag-body-viewport::-webkit-scrollbar-track{background:transparent}.rowvia-gantt .gantt-right{flex:1;min-width:0;display:flex}.rowvia-gantt .gantt-status{display:flex;align-items:center;justify-content:flex-end;gap:20px;height:36px;padding:0 16px;background:#fff;border-top:1px solid var(--gt-border);font-size:12px;color:var(--gt-text-secondary);flex-shrink:0}.rowvia-gantt .gt-status-item{display:flex;align-items:baseline;gap:5px;white-space:nowrap}.rowvia-gantt .gt-status-value{font-weight:600;color:var(--gt-text);font-variant-numeric:tabular-nums}.rowvia-gantt .gt-task-name{display:inline-flex;align-items:center;gap:6px}.rowvia-gantt .gt-name-icon{width:12px;height:12px;min-width:12px;border:1.5px solid var(--gt-text-tertiary);margin-right:2px}.rowvia-gantt .gt-name-icon-task{border-radius:50%}.rowvia-gantt .gt-name-icon-milestone{border-radius:3px;border-color:#f80}.rowvia-gantt .gt-task-badge{font-size:10px;padding:0 5px;border-radius:4px;line-height:16px;white-space:nowrap}.rowvia-gantt .gt-task-badge-phase{background:#3370ff1a;color:var(--gt-accent)}.rowvia-gantt .gt-task-badge-milestone{background:#ff88001f;color:#d97400}.rowvia-gantt .gt-cell-owner{display:flex;align-items:center;gap:6px}.rowvia-gantt .gt-cell-owner-empty{color:#c2c7cd;font-size:12px}.rowvia-gantt .gt-avatar{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;min-width:20px;border-radius:50%;color:#fff;font-size:11px;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none}.rowvia-gantt .gt-cell-status{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.rowvia-gantt .gt-status-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.rowvia-gantt .gt-cell-status.gt-status-not-started{color:var(--gt-text-tertiary)}.rowvia-gantt .gt-cell-status.gt-status-in-progress{color:var(--gt-status-in-progress)}.rowvia-gantt .gt-cell-status.gt-status-done{color:var(--gt-status-done)}.rowvia-gantt .gt-cell-status.gt-status-delayed{color:var(--gt-status-delayed)}.rowvia-gantt .gt-cell-status-summary{color:var(--gt-text-tertiary)}.rowvia-gantt .gt-cell-date{font-variant-numeric:tabular-nums}.rowvia-gantt .gt-cell-date-derived{color:var(--gt-text-tertiary)}.rowvia-gantt .gt-cell-date-empty{color:#c2c7cd}.rowvia-gantt .gt-cell-progress{display:flex;align-items:center;gap:6px}.rowvia-gantt .gt-progress-track{flex:1;height:4px;border-radius:2px;background:var(--gt-fill);overflow:hidden}.rowvia-gantt .gt-progress-fill{display:block;height:100%;border-radius:2px;background:var(--gt-status-in-progress)}.rowvia-gantt .gt-progress-fill.gt-status-done{background:var(--gt-status-done)}.rowvia-gantt .gt-progress-fill.gt-status-delayed{background:var(--gt-status-delayed)}.rowvia-gantt .gt-progress-value{font-size:11px;color:var(--gt-text-tertiary);font-variant-numeric:tabular-nums;min-width:30px;text-align:right}.rowvia-gantt .gt-cell-progress-summary{color:var(--gt-text-tertiary);font-size:12px}.rowvia-gantt .gt-root{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;-webkit-user-select:none;user-select:none}.rowvia-gantt .gt-header{position:relative;height:var(--gt-header-height);background:#fff;border-bottom:1px solid var(--gt-border);overflow:hidden;flex-shrink:0}.rowvia-gantt .gt-ruler{display:block}.rowvia-gantt .gt-ruler-tools{position:absolute;right:12px;top:0;height:100%;display:flex;align-items:center;gap:2px;z-index:6;background:linear-gradient(to right,#fff0 0,#fff 28px);padding-left:28px}.rowvia-gantt .gt-ruler-btn{border:none;background:transparent;font-size:12px;color:var(--gt-text-secondary);padding:3px 7px;border-radius:4px;cursor:pointer;line-height:18px;font-family:inherit}.rowvia-gantt .gt-ruler-btn:hover{background:var(--gt-fill);color:var(--gt-accent)}.rowvia-gantt .gt-ruler-step{display:inline-flex;align-items:center;gap:3px;font-weight:500}.rowvia-gantt .gt-ruler-caret{font-size:9px}.rowvia-gantt .gt-ruler-icon{font-size:13px;padding:3px 6px}.rowvia-gantt .gt-ruler-zoom-value{font-size:11px;color:var(--gt-text-tertiary);min-width:38px;text-align:center;font-variant-numeric:tabular-nums}.rowvia-gantt .gt-ruler-today{font-weight:500}.rowvia-gantt .gt-step-menu{position:absolute;background:#fff;border:1px solid var(--gt-border);border-radius:6px;box-shadow:0 8px 24px #1f23291f;padding:4px;z-index:20;min-width:76px}.rowvia-gantt .gt-step-item{padding:6px 10px;font-size:12px;color:var(--gt-text);border-radius:4px;cursor:pointer}.rowvia-gantt .gt-step-item:hover{background:var(--gt-fill)}.rowvia-gantt .gt-step-item-active{color:var(--gt-accent);font-weight:600}.rowvia-gantt .gt-scroll{flex:1;min-height:0;overflow:auto;position:relative}.rowvia-gantt .gt-spacer{pointer-events:none}.rowvia-gantt .gt-canvas{position:absolute;left:0;top:0;display:block}.rowvia-gantt .gt-tooltip{position:absolute;z-index:10;background:#1f2329eb;color:#fff;font-size:11px;padding:4px 8px;border-radius:4px;pointer-events:none;white-space:nowrap}.rowvia-gantt .gt-popup{position:absolute;z-index:11;background:#fff;border:1px solid var(--gt-border);border-radius:8px;box-shadow:0 8px 24px #1f23291f;padding:6px;min-width:136px}.rowvia-gantt .gt-popup-title{font-size:11px;color:var(--gt-text-tertiary);padding:4px 8px 6px}.rowvia-gantt .gt-popup-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;cursor:pointer}.rowvia-gantt .gt-popup-item:hover{background:#3370ff14}.rowvia-gantt .gt-popup-item-active{color:var(--gt-accent);font-weight:600}.rowvia-gantt .gt-popup-clear{border-top:1px solid var(--gt-border-light);margin-top:4px;border-radius:0 0 6px 6px;color:var(--gt-text-secondary);font-size:12px}.rowvia-gantt .gt-panel{position:fixed;z-index:30;display:none;width:420px;max-width:calc(100vw - 24px);background:#fff;border:1px solid var(--gt-border);border-radius:8px;box-shadow:0 10px 32px #1f232924;padding:14px 16px}.rowvia-gantt .gt-panel-title{font-size:14px;font-weight:600;margin-bottom:12px}.rowvia-gantt .gt-panel-empty{font-size:12px;color:var(--gt-text-tertiary);padding:8px 0 12px}.rowvia-gantt .gt-panel-hint{font-size:11px;color:var(--gt-text-tertiary);margin-top:10px}.rowvia-gantt .gt-panel-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--gt-border-light)}.rowvia-gantt .gt-panel-btn{border:1px solid var(--gt-border);background:#fff;border-radius:6px;padding:5px 16px;font-size:12px;color:var(--gt-text);cursor:pointer}.rowvia-gantt .gt-panel-btn:hover{border-color:var(--gt-accent);color:var(--gt-accent)}.rowvia-gantt .gt-panel-btn-primary{background:var(--gt-accent);border-color:var(--gt-accent);color:#fff}.rowvia-gantt .gt-panel-btn-primary:hover{background:#245bdb;color:#fff}.rowvia-gantt .gt-panel-select,.rowvia-gantt .gt-panel-input{height:28px;border:1px solid var(--gt-border);border-radius:6px;padding:0 8px;font-size:12px;font-family:inherit;color:var(--gt-text);background:#fff;min-width:0}.rowvia-gantt .gt-panel-select:focus,.rowvia-gantt .gt-panel-input:focus{outline:none;border-color:var(--gt-accent)}.rowvia-gantt .gt-panel-input-num{width:76px}.rowvia-gantt .gt-filter-row{display:flex;align-items:center;gap:6px;margin-bottom:8px}.rowvia-gantt .gt-filter-row .gt-panel-select:first-child{width:96px;flex:none}.rowvia-gantt .gt-filter-row .gt-panel-select-cond{width:76px;flex:none}.rowvia-gantt .gt-filter-row .gt-panel-input[type=date],.rowvia-gantt .gt-filter-row .gt-panel-input[type=text]{flex:1}.rowvia-gantt .gt-filter-remove{border:none;background:transparent;color:var(--gt-text-tertiary);font-size:14px;cursor:pointer;padding:2px 6px;border-radius:4px;flex:none}.rowvia-gantt .gt-filter-remove:hover{background:var(--gt-fill);color:var(--gt-status-delayed)}.rowvia-gantt .gt-filter-add{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.rowvia-gantt .gt-filter-add-btn{border:1px dashed var(--gt-border);background:#fff;border-radius:6px;padding:4px 10px;font-size:12px;color:var(--gt-text-secondary);cursor:pointer}.rowvia-gantt .gt-filter-add-btn:hover{border-color:var(--gt-accent);color:var(--gt-accent)}.rowvia-gantt .gt-sort-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:13px}.rowvia-gantt .gt-sort-item:hover{background:var(--gt-fill)}.rowvia-gantt .gt-sort-item-active{color:var(--gt-accent)}.rowvia-gantt .gt-sort-label{flex:1}.rowvia-gantt .gt-sort-badge{min-width:18px;height:18px;border-radius:9px;background:var(--gt-accent);color:#fff;font-size:11px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}.rowvia-gantt .gt-sort-dir{font-size:12px}.rowvia-gantt{width:100%;height:100%;min-height:260px;position:relative;font:12px -apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif;color:#1f2329;--gt-header-height:72px;--gt-accent:#4555e5;--gt-group-row:#fff}.rowvia-gantt .gantt-app{height:100%;position:relative}.rowvia-gantt .gantt-toolbar{height:40px;padding:0 16px;border-color:#eff0f1}.rowvia-gantt .gantt-title-name{font-size:14px}.rowvia-gantt .gantt-title-sub{font-size:11px;background:#f5f3fa;padding:2px 5px;color:#646a73}.rowvia-gantt .gt-view-toolbar{display:flex;align-items:center;gap:4px;height:40px;flex-shrink:0;padding:0 16px;border-bottom:1px solid #eff0f1}.rowvia-gantt .gt-toolbar-spacer{flex:1}.rowvia-gantt .gt-btn{border:0;padding:4px 8px;border-radius:4px}.rowvia-gantt .gt-btn:hover{background:#f5f6f7;color:#1f2329}.rowvia-gantt .gt-quick{height:44px;display:flex;align-items:center;padding:0 16px;flex-shrink:0}.rowvia-gantt .gt-quick input{font:inherit;border:0;outline:none;width:200px;padding:6px 8px;border-radius:4px;background:transparent}.rowvia-gantt .gt-quick input:focus{outline:1px solid #4555e5}.rowvia-gantt .gantt-body{margin:0 16px 16px;border:1px solid #dee0e3;border-radius:4px;overflow:hidden}.rowvia-gantt .gantt-left{width:250px;min-width:160px;flex-shrink:0;background:#fff}.rowvia-gantt .gantt-left .ag-theme-quartz{--ag-header-height:72px;--ag-cell-horizontal-padding:16px;--ag-font-size:12px}.rowvia-gantt .gantt-left .ag-root-wrapper{border:0;border-radius:0}.rowvia-gantt .gantt-left .ag-row.ag-row-group{background:#fff}.rowvia-gantt .gantt-left .ag-row.ag-row-hover{background:#f5f6f7}.rowvia-gantt .gantt-left .ag-cell{border-right:0}.rowvia-gantt .gantt-left .ag-header-cell{border:0}.rowvia-gantt .gt-title-header{height:100%;display:flex;align-items:center;gap:8px;color:#646a73;font-weight:400}.rowvia-gantt .gt-tree-toggle{border:0;background:none;color:#8f959e;cursor:pointer;padding:0;font-size:12px}.rowvia-gantt .gt-title-link{font:inherit;border:0;background:none;text-align:left;cursor:pointer;padding:0;color:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rowvia-gantt .gt-title-link:hover{color:#4555e5}.rowvia-gantt .gt-task-name{min-width:0;max-width:100%;gap:8px}.rowvia-gantt .gt-node-dot{width:12px;height:12px;border:1px solid #b9bdc2;border-radius:50%;background:#d1d4d8;flex-shrink:0}.rowvia-gantt .gt-node-done{background:#34b625;border-color:#289b1d}.rowvia-gantt .gt-node-in-progress{background:#ffcf22;border-color:#e1b31a}.rowvia-gantt .gt-node-delayed{background:#f54a45;border-color:#d83931}.rowvia-gantt .gantt-status{position:absolute;right:110px;bottom:26px;border:1px solid #eff0f1;border-radius:24px;box-shadow:0 2px 8px #1f232914;padding:0 16px;height:36px;font-size:12px;z-index:8}.rowvia-gantt .gt-ruler-tools{height:40px;right:12px}.rowvia-gantt .gt-ruler-today{border-left:1px solid #eff0f1;border-radius:0;margin-left:8px;padding-left:16px}.rowvia-gantt .gt-step-menu{min-width:120px;right:150px!important}.rowvia-gantt .gt-step-item{cursor:pointer}.rowvia-gantt .gt-settings{position:absolute;z-index:25;right:16px;top:76px;width:288px;padding:16px;background:#fff;border:1px solid #dee0e3;border-radius:6px;box-shadow:0 4px 16px #1f23291f}.rowvia-gantt .gt-settings[hidden]{display:none}.rowvia-gantt .gt-settings-title{margin-bottom:12px}.rowvia-gantt .gt-settings label{display:flex;align-items:center;gap:6px;margin:10px 0}.rowvia-gantt .gt-settings input{accent-color:#4555e5;margin:0}.rowvia-gantt .gt-settings .gt-indented{margin-left:22px}.rowvia-gantt .gt-theme-options{display:flex;gap:8px;margin-top:16px}.rowvia-gantt .gt-theme-options label{padding:20px 10px;border:1px solid #dee0e3;border-radius:4px;flex:1}.rowvia-gantt .gt-theme-options label:has(:checked){border-color:#4555e5;background:#f5f5ff}.rowvia-gantt button:focus-visible,.rowvia-gantt [tabindex]:focus-visible{outline:2px solid #4555e5;outline-offset:-2px}@media (max-width:600px){.rowvia-gantt .gantt-left{width:180px!important;min-width:140px}.rowvia-gantt .gantt-body{margin:0 8px 8px}.rowvia-gantt .gantt-status{right:20px;bottom:18px}.rowvia-gantt .gt-ruler-tools{right:0;padding-left:4px;gap:0}.rowvia-gantt .gt-ruler-btn{padding:3px 4px}}.rowvia-gantt{font-size:14px;--gt-header-height:80px}.rowvia-gantt .gantt-toolbar,.rowvia-gantt .gt-view-toolbar{height:44px}.rowvia-gantt .gt-quick{height:48px}.rowvia-gantt .gantt-left .ag-theme-quartz{--ag-header-height:80px;--ag-font-size:14px;--ag-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif}.rowvia-gantt .gantt-left .ag-cell{border-bottom:1px solid #dee0e3}.rowvia-gantt .gt-title-header,.rowvia-gantt .gt-ruler-btn{font-size:14px}.rowvia-gantt .gantt-left .ag-group-value{min-width:0;overflow:visible}.rowvia-gantt .gt-child-name{position:relative}.rowvia-gantt .gt-child-name:before{content:"";position:absolute;left:-24px;top:-14px;width:15px;height:26px;border-left:1px solid #dee0e3;border-bottom:1px solid #dee0e3;border-bottom-left-radius:7px}.rowvia-gantt .gt-root-leaf{padding-left:24px}.rowvia-gantt .gt-task-name{width:100%}.rowvia-gantt .gt-title-link{max-width:100%}.rowvia-gantt .gantt-status{font-size:14px}.rowvia-gantt .gantt-left .ag-row-group .gt-title-link{font-weight:500}.rowvia-gantt .gt-child-name{padding-left:12px}.rowvia-gantt .gt-child-name:before{top:-22px;height:34px;left:-12px}.rowvia-gantt .gt-title-header{padding-left:8px}.rowvia-gantt .gt-today-badge{position:absolute;width:50px;height:20px;line-height:20px;text-align:center;background:#4555e5;color:#fff;border-radius:12px;font-size:12px;pointer-events:none;z-index:7}.personnel-schedule{font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif;color:#1f2329;background:#fff;height:100%;min-height:400px;position:relative;display:flex;flex-direction:column;overflow:hidden;--line:#e4e5e7;--blue:#4254e8}.personnel-schedule *{box-sizing:border-box}.personnel-schedule [hidden]{display:none!important}.personnel-schedule button,.personnel-schedule input,.personnel-schedule select{font:inherit;color:inherit}.personnel-schedule button{border:0;background:transparent;cursor:pointer;padding:5px 8px;border-radius:4px;white-space:nowrap}.personnel-schedule button:hover{background:#f1f2f5}.personnel-schedule button:focus-visible,.personnel-schedule input:focus-visible,.personnel-schedule select:focus-visible{outline:2px solid #6874ec;outline-offset:1px}.personnel-schedule input:not([type=checkbox]):not([type=range]),.personnel-schedule select{border:1px solid var(--line);border-radius:4px;padding:6px 8px;background:#fff;min-width:0}.personnel-schedule input[type=checkbox]{accent-color:var(--blue);margin-right:7px}.personnel-schedule .ps-title{height:44px;flex-shrink:0;border-bottom:1px solid var(--line);display:flex;gap:8px;align-items:center;padding:0 16px}.personnel-schedule .ps-title strong{font-weight:500}.personnel-schedule .ps-app-icon{color:#fff;background:#18b6a4;border-radius:6px;width:24px;height:24px;text-align:center}.personnel-schedule .ps-title nav{position:absolute;left:44%;display:flex;gap:16px;font-size:13px}.personnel-schedule .ps-title nav button{height:44px;color:#646a73}.personnel-schedule .ps-title nav .active{color:#1f2329}.personnel-schedule .ps-toolbar{height:48px;display:flex;align-items:center;gap:8px;padding:0 16px;border-bottom:1px solid var(--line);flex-shrink:0;white-space:nowrap}.personnel-schedule .ps-toolbar button{font-size:13px}.personnel-schedule .ps-tint{background:#f0f1ff;color:var(--blue)}.personnel-schedule .ps-space{flex:1}.personnel-schedule .ps-round{border:1px solid var(--line);border-radius:50%;padding:0;width:24px;height:24px;color:#9da1a7}.personnel-schedule .ps-zoom{width:112px;height:3px;accent-color:#9098e4}.personnel-schedule .ps-save{border:1px solid var(--line);color:var(--blue)}.personnel-schedule .ps-scroll{flex:1;min-height:0;overflow:auto;position:relative;padding-bottom:54px}.personnel-schedule .ps-table{min-width:100%}.personnel-schedule .ps-time-header{height:34px;display:flex;position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid var(--line)}.personnel-schedule .ps-date-nav{width:200px;flex-shrink:0;position:sticky;left:0;z-index:6;display:flex;align-items:center;padding:0 16px;background:#fff;border-right:1px solid var(--line);font-size:12px;font-weight:500}.personnel-schedule .ps-date-nav button{padding:0 3px}.personnel-schedule .ps-date-nav .ps-date-label{margin-right:4px}.personnel-schedule .ps-weeks{display:flex;font-size:12px;font-weight:500;align-items:stretch}.personnel-schedule .ps-weeks span{flex-shrink:0;border-right:1px solid var(--line);text-align:center;padding:8px 0}.personnel-schedule .ps-person-row{display:flex;border-bottom:2px solid #dcdfe3;position:relative}.personnel-schedule .ps-person{width:200px;flex-shrink:0;position:sticky;left:0;z-index:3;background:#fff;border-right:1px solid var(--line);padding:12px 16px;color:#8b8f97;font-size:12px}.personnel-schedule .ps-person>div:not(:first-child){display:flex;justify-content:space-between;height:24px;align-items:center}.personnel-schedule .ps-person b{font-weight:500;color:#40444c}.personnel-schedule .ps-person-name{display:flex;align-items:center;gap:6px;color:#1f2329;font-size:14px;margin-bottom:8px}.personnel-schedule .ps-person-name strong{font-weight:500}.personnel-schedule .ps-avatar{width:24px;height:24px;border-radius:50%;color:#fff;text-align:center;font-size:8px;line-height:24px;box-shadow:inset 0 0 8px #ffffff50}.personnel-schedule .ps-person button{padding:0;color:#5665dc;font-size:12px}.personnel-schedule .ps-timeline{position:relative;overflow:hidden;background:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--day) - 1px),#e9eaec calc(var(--day) - 1px),#e9eaec var(--day))}.personnel-schedule .ps-weekend{position:absolute;top:0;bottom:0;background:#f4f4f5;z-index:0;border-right:1px solid #e9eaec}.personnel-schedule .ps-today{position:absolute;top:0;bottom:0;border-left:1px solid #9f93f2;z-index:2;pointer-events:none}.personnel-schedule .ps-today:before{content:"";position:absolute;top:0;left:-3px;width:5px;height:5px;background:#9f93f2;border-radius:50%}.personnel-schedule .ps-bar{position:absolute;height:32px;display:flex;align-items:center;gap:6px;text-align:left;border-radius:0;padding:0 10px;overflow:hidden;z-index:2;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;font-size:12px}.personnel-schedule .ps-color{background:color-mix(in srgb,var(--bar-color) 85%,transparent);color:#fff}.personnel-schedule .ps-bar.ps-color:hover{background:var(--bar-color);box-shadow:0 0 0 1px #7698d1}.personnel-schedule .ps-bar-name{overflow:hidden;text-overflow:ellipsis;max-width:300px;flex-shrink:0}.personnel-schedule .ps-status{background:#00000015;border-radius:3px;padding:0 4px;flex-shrink:0}.personnel-schedule .ps-node{flex-shrink:0}.personnel-schedule .ps-node:first-letter{color:#46aa59}.personnel-schedule .ps-effort{margin-left:auto;padding-right:8px}.personnel-schedule .ps-content{background:#fff;border:1px solid #d9dce2;border-left:4px solid var(--bar-color);color:#4f5560}.personnel-schedule .ps-resize{position:absolute;left:0;top:0;bottom:0;width:7px;cursor:ew-resize}.personnel-schedule .ps-resize[data-edge=end]{left:auto;right:0}.personnel-schedule .ps-no-schedule{position:absolute;left:24px;top:54px;color:#b6b9c0;font-size:12px}.personnel-schedule .ps-total{position:absolute;bottom:24px;right:104px;z-index:6;background:#fff;border:1px solid #e3e5eb;border-radius:24px;padding:10px 14px;box-shadow:0 3px 16px #202d4b12;color:#8d929b;font-size:12px}.personnel-schedule .ps-empty{padding:80px;width:calc(100vw - 30px);text-align:center;color:#8d929b}.personnel-schedule .ps-popover{position:absolute;z-index:20;background:#fff;border:1px solid #dddfe5;box-shadow:0 5px 20px #25324b18;border-radius:5px;width:420px;max-width:calc(100% - 24px);padding:16px;font-size:13px;max-height:calc(100% - 120px);overflow:auto}.personnel-schedule .ps-panel-title{color:#757b85;margin:0 0 14px;display:flex;justify-content:space-between;align-items:center;font-size:13px}.personnel-schedule .ps-popover label{display:flex;align-items:center;gap:6px;margin:8px 0}.personnel-schedule .ps-panel-title label{margin:0;font-size:12px}.personnel-schedule .ps-person-filter{display:flex;gap:10px;margin-bottom:12px}.personnel-schedule .ps-person-filter span{background:#f5f6f8;padding:7px;flex:1;white-space:nowrap;font-size:12px}.personnel-schedule .ps-person-search{width:100%}.personnel-schedule .ps-person-options{display:grid;grid-template-columns:1fr 1fr}.personnel-schedule .ps-sort-fields{display:flex;gap:6px;background:#f5f6f8}.personnel-schedule .ps-sort-fields select{flex:1}.personnel-schedule .ps-link{color:#5665dc}.personnel-schedule .ps-segment{display:flex;background:#f2f3f5;border:1px solid var(--line);border-radius:5px;margin-bottom:16px}.personnel-schedule .ps-segment button{flex:1}.personnel-schedule .selected{color:#4254e8;background:#eef0ff}.personnel-schedule .ps-segment .selected{color:#fff;background:#4254e8}.personnel-schedule .ps-panel-settings{width:320px}.personnel-schedule .ps-style-options{display:flex;gap:12px}.personnel-schedule .ps-style-options button{border:1px solid var(--line);width:50%;text-align:left;font-size:12px}.personnel-schedule .ps-style-options i{display:block;margin:10px 0 20px;height:28px;border-left:4px solid #8270ef;background:linear-gradient(#fff 25%,#e9eaee 25%,#e9eaee 75%,#fff 75%)}.personnel-schedule .ps-style-options button:last-child i{border:7px solid #8270ef;background:#fff;border-radius:5px}.personnel-schedule .ps-range-inputs{display:flex;gap:10px;align-items:center}.personnel-schedule .ps-range-inputs input{width:50%}.personnel-schedule .ps-calendars{display:flex;gap:16px;margin:12px 0}.personnel-schedule .ps-calendar{flex:1;min-width:0}.personnel-schedule .ps-calendar>div:first-child{display:flex;justify-content:space-between;align-items:center}.personnel-schedule .ps-calendar strong{font-size:13px;font-weight:500}.personnel-schedule .ps-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);margin-top:10px;gap:2px;text-align:center}.personnel-schedule .ps-calendar-grid>*{height:28px;font-size:12px;padding:5px 0}.personnel-schedule .ps-calendar-grid button{border-radius:50%}.personnel-schedule .ps-calendar-grid .in-range{background:#f0f1fb}.personnel-schedule .ps-calendar-grid .selected{background:#4254e8;color:#fff}.personnel-schedule .ps-presets{display:flex;gap:6px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}.personnel-schedule .ps-presets button{background:#f4f5f7;color:#5262d5;min-width:66px;font-size:12px}.personnel-schedule .ps-panel-unplanned{width:760px}.personnel-schedule table{width:100%;border-collapse:collapse;font-size:12px}.personnel-schedule th{text-align:left;font-weight:400;color:#9398a0;border-bottom:1px solid #d7dae0;padding:8px 0}.personnel-schedule td{padding:8px 0}.personnel-schedule td:first-child button{max-width:310px;overflow:hidden;text-overflow:ellipsis;font-weight:500}.personnel-schedule td input{width:65px!important;border:0!important}.personnel-schedule td:nth-child(2){color:#9499a1}.personnel-schedule .ps-detail{position:absolute;right:0;top:0;bottom:0;width:660px;max-width:90%;background:#fff;box-shadow:-6px 0 20px #25324b20;z-index:30;overflow:auto;border-left:1px solid var(--line)}.personnel-schedule .ps-detail header{height:52px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 20px}.personnel-schedule .ps-detail-body{padding:24px}.personnel-schedule .ps-detail h3{font-size:16px;margin:24px 0}.personnel-schedule .ps-detail label{display:grid;grid-template-columns:140px 1fr;gap:15px;align-items:center;margin:20px 0}.personnel-schedule .ps-chip{background:#f0edff;padding:3px 6px;border-radius:3px;font-size:12px}.personnel-schedule .ps-primary{background:#4254e8;color:#fff;padding:7px 18px}.personnel-schedule .ps-primary:hover{background:#3447d7}.personnel-schedule .ps-error{color:#d34848}.personnel-schedule .ps-view{display:block;width:100%;text-align:left}.personnel-schedule .ps-toast{position:absolute;top:24px;left:50%;transform:translate(-50%);border-radius:6px;padding:10px 22px;background:#252a36;color:#fff;z-index:50;font-size:13px}@media (max-width:700px){.personnel-schedule .ps-toolbar{overflow-x:auto;gap:4px;padding:0 8px}.personnel-schedule .ps-title nav{position:static;margin-left:auto}.personnel-schedule .ps-zoom{min-width:70px}.personnel-schedule .ps-total{right:16px}.personnel-schedule .ps-detail label{grid-template-columns:90px 1fr}.personnel-schedule .ps-panel-unplanned{overflow:auto}.personnel-schedule .ps-panel-unplanned table{min-width:620px}}
|