.filter-bar,.search-filter-bar,.filter-fields,.filter-panel-body{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.filter-panel-body{padding:var(--space-3) var(--style-card-padding)}.filter-panel-bare .filter-panel-body{padding:0}.filter-fields{flex:auto;min-width:0}.filter-fields-more{padding-top:var(--space-2);border-top:1px dashed var(--color-border);flex:100%}.filter-actions{align-items:center;gap:var(--space-2);flex-shrink:0;margin-left:auto;display:flex}.filter-count{font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap}.filter-field{flex-direction:column;flex:0 200px;gap:3px;min-width:0;display:flex}.filter-field-label{font-size:var(--text-xs);color:var(--color-text-secondary);font-weight:550}.filter-field>.form-input,.filter-field>.form-select,.filter-field>.date-range-picker,.filter-field>.filter-search-wrap{width:100%}.filter-search-wrap{display:flex;position:relative}.filter-search-wrap .form-input{min-width:0;padding-right:30px}.filter-search-clear{width:22px;height:22px;font-family:inherit;font-size:var(--text-xs);color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.filter-search-clear:hover{color:var(--color-text);background:var(--color-surface-hover)}.filter-more{font-family:inherit;font-size:var(--text-sm);color:var(--color-text-secondary);border:1px dashed var(--color-border);border-radius:var(--radius);cursor:pointer;white-space:nowrap;transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;align-self:flex-end;padding:8px 10px}.filter-more:hover{color:var(--color-primary);border-color:var(--color-primary)}.filter-more-caret{margin-left:var(--space-1);font-size:var(--text-xs)}.filter-more-count{margin-left:var(--space-1);font-variant-numeric:tabular-nums;color:var(--color-text-tertiary)}.filter-panel-hint{font-size:var(--text-xs);color:var(--color-text-tertiary);flex:100%;line-height:1.5}.filter-bar>.form-input,.filter-bar>.form-select,.filter-bar>.date-range-picker,.search-filter-bar>.form-input,.search-filter-bar>.form-select,.gitlab-filter-bar>.form-input,.gitlab-filter-bar>.form-select{flex:0 200px;min-width:0}.filter-bar>label,.search-filter-bar>label{flex-shrink:0}.filter-bar>.form-label{margin-bottom:0}.card.filter-bar,.card.search-filter-bar,.card.gitlab-filter-bar{padding:var(--space-4) var(--style-card-padding)}.filter-bar{margin-bottom:var(--space-4)}.search-filter-bar,.filter-panel{margin-bottom:var(--space-3)}.filter-bar>.filter-search-wrap{flex:240px;min-width:0}.filter-bar-field{gap:var(--space-1);flex-direction:column;flex:0 200px;min-width:0;display:flex}.search-filter-bar .filter-bar-field .form-input{width:100%;min-width:0}.filter-group{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.filter-select{min-width:140px}.filter-result-count{white-space:nowrap;flex-shrink:0}.member-select-list{border:1px solid var(--color-border);border-radius:var(--radius-md);max-height:160px;padding:var(--space-2);background:var(--color-bg);overflow-y:auto}.member-select-item{align-items:center;gap:var(--space-2);cursor:pointer;transition:background var(--transition-fast);padding:3px 0;display:flex}.member-select-item:hover{background:var(--color-surface-hover)}.member-select-item input[type=checkbox]{flex-shrink:0}.member-select-name{font-size:var(--text-sm);flex:1}.member-select-list-tall{max-height:calc(var(--space-16) * 5)}.link-plain{color:inherit;cursor:pointer;text-decoration:none}.link-plain:hover{color:var(--color-primary);text-decoration:underline}.icon-input-row{align-items:center;gap:8px;display:flex}.icon-input-row .form-input{flex:1}.icon-picker{border:1px solid var(--color-border);background:var(--color-bg-card,#fff);z-index:40;border-radius:8px;max-width:360px;margin-top:8px;position:relative;box-shadow:0 4px 12px rgba(0,0,0,.12)}.icon-picker-header{border-bottom:1px solid var(--color-border);gap:8px;padding:8px;display:flex}.icon-picker-body{max-height:240px;padding:8px;overflow-y:auto}.icon-picker-category{margin-bottom:6px}.icon-picker-category-name{color:var(--color-text-tertiary);margin-bottom:4px;font-size:12px}.icon-picker-grid{flex-wrap:wrap;gap:4px;display:flex}.icon-picker-item{cursor:pointer;background:0 0;border:1px solid transparent;border-radius:6px;justify-content:center;align-items:center;width:34px;height:34px;padding:0;font-size:18px;display:inline-flex}.icon-picker-item:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.gantt-chart{gap:var(--space-3);flex-direction:column;display:flex}.gantt-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.gantt-zoom{gap:4px;display:inline-flex}.gantt-zoom-btn{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;color:var(--color-text-secondary);border-radius:6px;padding:4px 10px;font-size:12px}.gantt-zoom-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.gantt-body{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);max-height:calc(100vh - 280px);overflow:auto}.gantt-grid{position:relative}.gantt-row{border-bottom:1px solid var(--color-border-light);height:30px;display:flex}.gantt-row-label{z-index:4;background:var(--color-surface);border-right:1px solid var(--color-border);white-space:nowrap;flex-shrink:0;align-items:center;gap:8px;width:220px;min-width:220px;padding:0 10px;display:flex;position:sticky;left:0;overflow:hidden}.gantt-stage-label{font-size:13px;font-weight:600}.gantt-task-label{color:var(--color-text);cursor:pointer;font-size:13px}.gantt-task-label.indent{padding-left:6px}.gantt-task-label:hover{color:var(--color-primary)}.gantt-progress-track{background:var(--color-bg-muted);border-radius:3px;flex:1;max-width:70px;height:6px;overflow:hidden}.gantt-progress-fill{background:var(--color-primary);border-radius:3px;height:100%}.gantt-track{flex:none;position:relative}.gantt-bar{cursor:pointer;box-sizing:border-box;z-index:2;border-radius:4px;height:18px;position:absolute;top:6px}.gantt-bar:hover{filter:brightness(1.08)}.gantt-bar.dot{border-radius:50%;width:8px;height:8px;top:11px}.gantt-today-line{background:var(--color-danger);z-index:3;pointer-events:none;width:2px;position:absolute;top:0}.gantt-deps{z-index:1;pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.gantt-legend{color:var(--color-text-secondary);flex-wrap:wrap;gap:14px;font-size:12px;display:flex}.gantt-legend-item{align-items:center;gap:5px;display:inline-flex}.gantt-legend-swatch{border-radius:2px;width:14px;height:8px;display:inline-block}.cost-name{font-weight:550}.cost-money{font-variant-numeric:tabular-nums;font-weight:550}.cost-row-actions{flex-wrap:wrap;gap:4px;display:flex}.assign-user-row{align-items:center;gap:var(--space-3);border-bottom:1px solid var(--color-border-light);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);padding:8px 12px;display:flex}.assign-user-row:hover{background:var(--color-surface-hover)}.assign-user-row.selected{background:var(--color-primary-bg)}.detail-grid{gap:10px var(--space-6);grid-template-columns:1fr 1fr;display:grid}@media (width<=640px){.detail-grid{grid-template-columns:1fr}}.cost-footnote{margin-top:var(--space-4);color:var(--color-text-tertiary);text-align:center;font-size:12px}.cost-form-grid{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.cost-coef-row{gap:var(--space-4);margin-top:var(--space-3);align-items:flex-start;display:flex}.cost-invalid{border-color:var(--color-danger)!important}.cost-warn{color:var(--color-danger);margin-top:4px;font-size:12px}.cost-ratio-badge{flex-direction:column;align-items:flex-start;gap:4px;padding-top:22px;display:flex}.cost-group{border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-3);margin-top:var(--space-3)}.cost-group-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.cost-group-title{font-size:13px;font-weight:600}.cost-group-empty{color:var(--color-text-tertiary);padding:var(--space-2) 0;font-size:12px}.cost-item-row{gap:var(--space-2);margin-bottom:var(--space-2);align-items:flex-start;display:flex}.cost-preview{margin-top:var(--space-3)}.cost-preview-title{margin-bottom:var(--space-3);font-size:13px;font-weight:600}.cost-preview-grid{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.cost-preview-cell{padding:var(--space-2);background:var(--color-bg-muted);border-radius:6px;flex-direction:column;gap:2px;display:flex}.cost-preview-cell.strong{background:var(--color-primary-soft)}.cost-preview-label{color:var(--color-text-secondary);font-size:12px}.cost-preview-value{font-variant-numeric:tabular-nums;font-weight:600}.cost-formula-line{margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px dashed var(--color-border);color:var(--color-text-secondary);font-size:13px}.cost-proj-name{margin-bottom:2px;font-weight:550}.cost-bar{flex-direction:column;gap:3px;min-width:120px;display:flex}.cost-bar-track{background:var(--color-bg-muted);border-radius:3px;height:6px;overflow:hidden}.cost-bar-fill{border-radius:3px;height:100%}.cost-bar-fill.budget{background:var(--color-text-tertiary)}.cost-bar-fill.est{background:var(--color-primary)}.cost-bar-fill.over{background:var(--color-danger)}.cost-usage-pct{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.cost-bind-list{gap:var(--space-2);flex-direction:column;display:flex}.cost-bind-item{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:6px;display:flex}.cost-bind-info{flex-direction:column;gap:2px;min-width:0;display:flex}.cost-bind-name{font-weight:550}.cost-timeline{padding-left:var(--space-4);position:relative}.cost-timeline-item{padding:var(--space-2) 0 var(--space-3) var(--space-4);border-left:2px solid var(--color-border);position:relative}.cost-timeline-dot{background:var(--color-primary);border-radius:50%;width:10px;height:10px;position:absolute;top:10px;left:-6px}.cost-timeline-head{gap:var(--space-2);align-items:center;display:flex}.cost-timeline-total{gap:var(--space-3);align-items:baseline;margin-top:2px;display:flex}.cost-diff{font-variant-numeric:tabular-nums;font-size:12px}.cost-summary-grid{gap:var(--space-3);margin-bottom:var(--space-3);grid-template-columns:repeat(4,1fr);display:grid}.cost-summary-cell{flex-direction:column;gap:2px;display:flex}.cost-summary-cell span{color:var(--color-text-secondary);font-size:12px}.cost-summary-cell strong{font-size:15px}.cost-factor{margin-top:var(--space-3)}.cost-factor-title{margin-bottom:var(--space-2);font-size:13px;font-weight:600}.cost-totals{margin-top:var(--space-3)}.cost-totals-grid{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.cost-total-cell{padding:var(--space-2);background:var(--color-bg-muted);border-radius:6px;flex-direction:column;gap:2px;display:flex}.cost-total-cell.strong{background:var(--color-primary-soft)}.cost-total-label{color:var(--color-text-secondary);font-size:12px}.cost-total-value{font-variant-numeric:tabular-nums;font-weight:600}.cost-export{margin-top:var(--space-3)}.cost-export-head{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.cost-export-title{margin-right:auto;font-size:13px;font-weight:600}.cost-csv{background:var(--color-bg-muted);border:1px solid var(--color-border);padding:var(--space-3);white-space:pre;border-radius:6px;max-height:300px;font-size:12px;overflow-x:auto}