.gantt-root[data-v-62f84749]{--olive:#5C6645;--olive-dark:#434b30;--olive-light:#8a9370;--olive-pale:#d4d9c5;--olive-bg:#eef0e8;--tan:#9e8a72;--border:#e7e5e4;--border-lt:#f5f5f4;--text:#2e2b27;--text-sub:#57534e;--text-muted:#a8a29e;--bg-card:#ffffff;--bg-surface:#f9fafb;display:flex;flex-direction:column;height:100%;min-height:0;width:100%;min-width:0;overflow:hidden;font-family:Noto Sans TC,sans-serif;background:var(--bg-card)}.gantt-toolbar[data-v-62f84749]{display:flex;align-items:center;justify-content:space-between;padding:10px 15px;gap:12px;flex-wrap:wrap;flex-shrink:0;background:var(--bg-card);border-bottom:1px solid var(--border)}.gantt-toolbar .toolbar-left[data-v-62f84749]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn-ghost[data-v-62f84749]{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:13px;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-sub);cursor:pointer;font-family:inherit;transition:background .15s}.btn-ghost[data-v-62f84749]:hover{background:var(--bg-surface)}.btn-primary[data-v-62f84749]{display:flex;align-items:center;gap:6px;padding:6px 16px;font-size:13px;font-weight:500;background:var(--olive);color:#fff;border:none;border-radius:8px;cursor:pointer;font-family:inherit;transition:background .15s}.btn-primary[data-v-62f84749]:hover{background:var(--olive-dark)}.zoom-control[data-v-62f84749]{display:flex;align-items:center;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg-card)}.zoom-btn[data-v-62f84749]{display:flex;align-items:center;justify-content:center;padding:6px 10px;border:none;background:transparent;cursor:pointer;color:var(--text-muted);transition:background .15s}.zoom-btn[data-v-62f84749]:hover{background:var(--bg-surface)}.zoom-label[data-v-62f84749]{padding:6px 8px;font-size:12px;color:var(--text-sub);border-left:1px solid var(--border);border-right:1px solid var(--border);min-width:36px;text-align:center}.legend[data-v-62f84749]{display:flex;align-items:center;gap:12px}.legend-item[data-v-62f84749]{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted)}.legend-dot[data-v-62f84749]{width:10px;height:10px;border-radius:3px;flex-shrink:0}.gantt-scroll[data-v-62f84749]{flex:1;min-height:0;min-width:0;overflow:auto;border-radius:12px}.corner-cell[data-v-62f84749]{height:28px;flex-shrink:0;background:var(--bg-surface);border-bottom:1px solid var(--border);border-right:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;color:var(--text-muted);position:sticky;left:0;z-index:40;box-sizing:border-box}.week-corner[data-v-62f84749]{height:32px}.tt1[data-v-62f84749],.tt2[data-v-62f84749]{position:absolute;top:0;left:0;width:100%;height:59px;display:flex;align-items:center;justify-content:center}.month-header[data-v-62f84749]{display:flex;height:28px;background:var(--bg-surface);border-bottom:1px solid var(--border)}.month-cell[data-v-62f84749]{flex-shrink:0;border-right:1px solid var(--border);display:flex;align-items:center;padding:0 8px;font-size:11px;font-weight:500;color:var(--text-sub);white-space:nowrap;box-sizing:border-box}.week-header-row[data-v-62f84749]{height:32px;background:var(--bg-surface);border-bottom:1px solid var(--border);position:relative}.week-cell[data-v-62f84749]{position:absolute;top:0;height:32px;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--border-lt);font-size:11px;color:var(--text-muted);box-sizing:border-box}.today-hdr-line[data-v-62f84749]{position:absolute;top:0;bottom:0;width:2px;background:#d04a4a;z-index:5;pointer-events:none}.today-label[data-v-62f84749]{position:absolute;top:2px;left:4px;font-size:10px;background-color:#d04a4a;white-space:nowrap;font-weight:500;color:#fff;padding:0 8px;border-radius:50px}.rows-wrap[data-v-62f84749]{position:relative}.weekend-shade[data-v-62f84749]{position:absolute;top:0;bottom:0;background:#00000006;pointer-events:none;z-index:0}.today-line[data-v-62f84749]{position:absolute;top:0;bottom:0;width:2px;background:#d04a4a;z-index:5;pointer-events:none}.group-block[data-v-62f84749]{display:flex;border-bottom:2px solid var(--border);position:relative}.group-label[data-v-62f84749]{position:sticky;left:0;z-index:20;flex-shrink:0;background:var(--bg-surface);border-right:1px solid var(--border);border-bottom:2px solid var(--border);display:flex;align-items:center;justify-content:center;box-sizing:border-box}.group-name-text[data-v-62f84749]{font-size:12px;font-weight:600;color:var(--text-sub);text-align:center;padding:0 4px;word-break:break-all}.task-name-col[data-v-62f84749]{position:sticky;z-index:20;flex-shrink:0;background:var(--bg-card);border-right:2px solid var(--border);box-sizing:border-box}.task-name-row[data-v-62f84749]{height:40px;display:flex;align-items:center;gap:7px;padding:0 10px;border-bottom:1px solid var(--border-lt);cursor:pointer;box-sizing:border-box}.task-name-row[data-v-62f84749]:hover{background:#5c66450a}.status-dot[data-v-62f84749]{width:6px;height:6px;border-radius:50%;flex-shrink:0}.task-name-text[data-v-62f84749]{font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-tasks[data-v-62f84749]{flex-shrink:0}.bar-row[data-v-62f84749]{height:40px;border-bottom:1px solid var(--border-lt);position:relative}.bar-row[data-v-62f84749]:hover{background:#5c664506}.gantt-bar[data-v-62f84749]{position:absolute;top:7px;height:26px;border-radius:5px;display:flex;align-items:center;padding:0 8px;font-size:11px;font-weight:500;white-space:nowrap;z-index:10;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:grab;transition:box-shadow .12s}.gantt-bar.dragging[data-v-62f84749]{box-shadow:0 4px 16px #0000002e;opacity:.9;cursor:grabbing;z-index:30}.bar-active[data-v-62f84749]{background:#5c6645;color:#fff}.bar-done[data-v-62f84749]{background:#d4d9c5;color:#434b30}.bar-pending[data-v-62f84749]{background:#e8e0d5;color:#7a6857}.bar-warn[data-v-62f84749]{background:#f5c4b3;color:#712b13}.bar-progress[data-v-62f84749]{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:#fff3;pointer-events:none}.bar-label[data-v-62f84749]{overflow:hidden;text-overflow:ellipsis;flex:1;position:relative;z-index:1;pointer-events:none}.resize-l[data-v-62f84749],.resize-r[data-v-62f84749]{position:absolute;top:0;bottom:0;width:8px;cursor:ew-resize;z-index:2}.resize-l[data-v-62f84749]{left:0}.resize-r[data-v-62f84749]{right:0}.drag-tooltip[data-v-62f84749]{position:fixed;background:#2e2b27;color:#fff;font-size:11px;padding:4px 10px;border-radius:6px;pointer-events:none;z-index:200;white-space:nowrap;transform:translate(-50%,-130%);font-family:Noto Sans TC,sans-serif}.modal-backdrop[data-v-62f84749]{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;background:#1e1a1473}.modal-box[data-v-62f84749]{background:var(--bg-card);border-radius:20px;border:1px solid var(--border);overflow:hidden;width:100%;max-width:440px;max-height:90vh;display:flex;flex-direction:column}.modal-header[data-v-62f84749]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-lt);flex-shrink:0}.modal-title-row[data-v-62f84749]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.modal-title[data-v-62f84749]{font-size:14px;font-weight:500;color:var(--text)}.modal-sub[data-v-62f84749]{font-size:11px;color:var(--text-muted)}.close-btn[data-v-62f84749]{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:8px;border:none;background:transparent;cursor:pointer;color:var(--text-muted);flex-shrink:0;transition:background .15s}.close-btn[data-v-62f84749]:hover{background:var(--bg-surface)}.modal-body[data-v-62f84749]{padding:16px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.modal-footer[data-v-62f84749]{display:flex;gap:8px;padding:12px 20px;border-top:1px solid var(--border-lt);background:var(--bg-surface);flex-shrink:0}.status-badge[data-v-62f84749]{font-size:11px;padding:2px 10px;border-radius:20px;font-weight:500}.date-grid[data-v-62f84749]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.date-card[data-v-62f84749]{background:var(--bg-surface);border-radius:12px;padding:12px 14px}.date-label[data-v-62f84749]{font-size:11px;color:var(--text-muted);margin-bottom:4px}.date-value[data-v-62f84749]{font-size:13px;font-weight:500;color:var(--text-sub)}.progress-header[data-v-62f84749]{display:flex;justify-content:space-between;margin-bottom:6px;font-size:11px;color:var(--text-muted)}.progress-pct[data-v-62f84749]{color:var(--olive);font-weight:500}.progress-track[data-v-62f84749]{height:8px;background:var(--border-lt);border-radius:99px;overflow:hidden}.progress-fill[data-v-62f84749]{height:100%;background:var(--olive);border-radius:99px;transition:width .3s}.owner-row[data-v-62f84749]{display:flex;flex-direction:column;gap:4px}.owner-info[data-v-62f84749]{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-sub)}.owner-avatar[data-v-62f84749]{width:28px;height:28px;border-radius:50%;background:var(--tan);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500}.note-text[data-v-62f84749]{font-size:13px;color:var(--text-sub);line-height:1.6;background:var(--bg-surface);border-radius:12px;padding:12px 14px;margin-top:6px}.field[data-v-62f84749]{display:flex;flex-direction:column;gap:6px}.field-label[data-v-62f84749]{font-size:11px;font-weight:500;color:var(--text-muted)}.field-row[data-v-62f84749]{display:flex;gap:8px}.field-grid[data-v-62f84749]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field-input[data-v-62f84749],.field-select[data-v-62f84749],.field-textarea[data-v-62f84749]{width:100%;padding:8px 12px;font-size:13px;border:1px solid var(--border);border-radius:8px;background:var(--bg-surface);color:var(--text);outline:none;font-family:inherit;box-sizing:border-box;transition:border-color .15s}.field-input[data-v-62f84749]:focus,.field-select[data-v-62f84749]:focus,.field-textarea[data-v-62f84749]:focus{border-color:var(--olive-light)}.field-textarea[data-v-62f84749]{resize:none}.field-range[data-v-62f84749]{width:100%;margin-top:4px}.form-error[data-v-62f84749]{font-size:12px;color:#f87171}.btn-ghost-sm[data-v-62f84749]{flex:1;font-size:13px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-sub);cursor:pointer;font-family:inherit}.btn-ghost-sm[data-v-62f84749]:hover{background:var(--bg-surface)}.btn-primary-sm[data-v-62f84749]{flex:1;font-size:13px;font-weight:500;padding:8px;background:var(--olive);color:#fff;border:none;border-radius:8px;cursor:pointer;font-family:inherit}.btn-primary-sm[data-v-62f84749]:hover{background:var(--olive-dark)}.btn-danger-sm[data-v-62f84749]{font-size:13px;padding:8px 14px;border:1px solid #fee2e2;border-radius:8px;background:var(--bg-card);color:#f87171;cursor:pointer;font-family:inherit}.btn-danger-sm[data-v-62f84749]:hover{background:#fff5f5}.modal-enter-active[data-v-62f84749],.modal-leave-active[data-v-62f84749]{transition:opacity .18s ease}.modal-enter-active .modal-box[data-v-62f84749],.modal-leave-active .modal-box[data-v-62f84749]{transition:transform .2s ease,opacity .18s ease}.modal-enter-from[data-v-62f84749],.modal-leave-to[data-v-62f84749]{opacity:0}.modal-enter-from .modal-box[data-v-62f84749],.modal-leave-to .modal-box[data-v-62f84749]{transform:translateY(14px);opacity:0}
